summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
Diffstat (limited to 'board')
l---------board/adlrvpm_ite/board.c1
l---------board/adlrvpm_ite/board.h1
l---------board/adlrvpm_ite/build.mk1
-rw-r--r--board/adlrvpm_ite/ec.tasklist23
l---------board/adlrvpm_ite/gpio.inc1
-rw-r--r--board/adlrvpm_ite/vif_override.xml3
-rw-r--r--board/adlrvpp_ite/board.c117
-rw-r--r--board/adlrvpp_ite/board.h103
-rw-r--r--board/adlrvpp_ite/build.mk14
-rw-r--r--board/adlrvpp_ite/ec.tasklist27
-rw-r--r--board/adlrvpp_ite/gpio.inc202
-rw-r--r--board/adlrvpp_ite/vif_override.xml3
-rw-r--r--board/adlrvpp_mchp1521/board.c88
-rw-r--r--board/adlrvpp_mchp1521/board.h150
-rw-r--r--board/adlrvpp_mchp1521/build.mk18
-rw-r--r--board/adlrvpp_mchp1521/ec.tasklist24
-rw-r--r--board/adlrvpp_mchp1521/gpio.inc314
-rw-r--r--board/adlrvpp_mchp1521/vif_override.xml3
-rw-r--r--board/adlrvpp_mchp1727/board.c113
-rw-r--r--board/adlrvpp_mchp1727/board.h158
-rw-r--r--board/adlrvpp_mchp1727/build.mk20
-rw-r--r--board/adlrvpp_mchp1727/ec.tasklist24
-rw-r--r--board/adlrvpp_mchp1727/gpio.inc262
-rw-r--r--board/adlrvpp_mchp1727/vif_override.xml3
-rw-r--r--board/adlrvpp_npcx/board.c105
-rw-r--r--board/adlrvpp_npcx/board.h113
-rw-r--r--board/adlrvpp_npcx/build.mk14
-rw-r--r--board/adlrvpp_npcx/ec.tasklist28
-rw-r--r--board/adlrvpp_npcx/gpio.inc176
-rw-r--r--board/adlrvpp_npcx/vif_override.xml3
-rw-r--r--board/akemi/battery.c116
-rw-r--r--board/akemi/board.c440
-rw-r--r--board/akemi/board.h169
-rw-r--r--board/akemi/build.mk15
-rw-r--r--board/akemi/ec.tasklist26
-rw-r--r--board/akemi/gpio.inc140
-rw-r--r--board/akemi/led.c115
-rw-r--r--board/akemi/vif_override.xml3
l---------board/aleena/analyzestack.yaml1
-rw-r--r--board/aleena/battery.c121
-rw-r--r--board/aleena/board.c208
-rw-r--r--board/aleena/board.h78
-rw-r--r--board/aleena/build.mk15
-rw-r--r--board/aleena/ec.tasklist25
-rw-r--r--board/aleena/gpio.inc122
-rw-r--r--board/aleena/led.c101
-rw-r--r--board/aleena/vif_override.xml3
-rw-r--r--board/ambassador/board.c935
-rw-r--r--board/ambassador/board.h289
-rw-r--r--board/ambassador/build.mk15
-rw-r--r--board/ambassador/ec.tasklist17
-rw-r--r--board/ambassador/gpio.inc169
-rw-r--r--board/ambassador/led.c267
-rw-r--r--board/ambassador/usb_pd_policy.c84
-rw-r--r--board/ambassador/vif_override.xml3
-rw-r--r--board/ampton/battery.c122
-rw-r--r--board/ampton/board.c388
-rw-r--r--board/ampton/board.h105
-rw-r--r--board/ampton/build.mk15
-rw-r--r--board/ampton/ec.tasklist23
-rw-r--r--board/ampton/gpio.inc141
-rw-r--r--board/ampton/led.c76
-rw-r--r--board/ampton/vif_override.xml3
-rw-r--r--board/anahera/battery.c94
-rw-r--r--board/anahera/board.c63
-rw-r--r--board/anahera/board.h199
-rw-r--r--board/anahera/build.mk25
l---------board/anahera/charger.c1
-rw-r--r--board/anahera/ec.tasklist28
-rw-r--r--board/anahera/fans.c46
-rw-r--r--board/anahera/fw_config.c55
-rw-r--r--board/anahera/fw_config.h55
-rw-r--r--board/anahera/gpio.inc149
-rw-r--r--board/anahera/i2c.c70
-rw-r--r--board/anahera/keyboard.c75
-rw-r--r--board/anahera/led.c244
-rw-r--r--board/anahera/pwm.c31
-rw-r--r--board/anahera/sensors.c145
-rw-r--r--board/anahera/usbc_config.c299
-rw-r--r--board/anahera/usbc_config.h19
-rw-r--r--board/anahera/vif_override.xml3
-rw-r--r--board/asurada/battery.c47
-rw-r--r--board/asurada/board.c420
-rw-r--r--board/asurada/board.h142
-rw-r--r--board/asurada/build.mk17
-rw-r--r--board/asurada/ec.tasklist22
-rw-r--r--board/asurada/gpio.inc170
-rw-r--r--board/asurada/led.c205
-rw-r--r--board/asurada/led_hayato.c120
-rw-r--r--board/asurada/usbc_config.c28
-rw-r--r--board/asurada/vif_override.xml3
-rw-r--r--board/asurada_scp/board.h33
-rw-r--r--board/asurada_scp/build.mk11
-rw-r--r--board/asurada_scp/ec.tasklist17
-rw-r--r--board/asurada_scp/gpio.inc10
-rw-r--r--board/atlas/battery.c259
-rw-r--r--board/atlas/board.c629
-rw-r--r--board/atlas/board.h269
-rw-r--r--board/atlas/build.mk16
-rw-r--r--board/atlas/ec.tasklist23
-rw-r--r--board/atlas/gpio.inc157
-rw-r--r--board/atlas/led.c93
-rw-r--r--board/atlas/usb_pd_policy.c125
-rw-r--r--board/atlas/vif_override.xml3
-rw-r--r--board/baklava/board.c336
-rw-r--r--board/baklava/board.h98
-rw-r--r--board/baklava/build.mk14
-rw-r--r--board/baklava/dev_key.pem39
-rw-r--r--board/baklava/ec.tasklist16
-rw-r--r--board/baklava/gpio.inc93
-rw-r--r--board/bds/board.c40
-rw-r--r--board/bds/board.h55
-rw-r--r--board/bds/build.mk12
-rw-r--r--board/bds/ec.tasklist12
-rw-r--r--board/bds/gpio.inc25
-rw-r--r--board/beetley/battery.c192
-rw-r--r--board/beetley/board.c527
-rw-r--r--board/beetley/board.h153
-rw-r--r--board/beetley/build.mk15
-rw-r--r--board/beetley/cbi_ssfc.c36
-rw-r--r--board/beetley/cbi_ssfc.h60
-rw-r--r--board/beetley/ec.tasklist22
-rw-r--r--board/beetley/gpio.inc152
-rw-r--r--board/beetley/led.c113
-rw-r--r--board/beetley/usb_pd_policy.c71
-rw-r--r--board/beetley/vif_override.xml3
-rw-r--r--board/berknip/analyzestack.yaml2
-rw-r--r--board/berknip/battery.c94
-rw-r--r--board/berknip/board.c671
-rw-r--r--board/berknip/board.h204
-rw-r--r--board/berknip/build.mk15
-rw-r--r--board/berknip/ec.tasklist25
-rw-r--r--board/berknip/gpio.inc156
-rw-r--r--board/berknip/led.c205
-rw-r--r--board/berknip/vif_override.xml3
l---------board/bland1
-rw-r--r--board/blipper/battery.c192
-rw-r--r--board/blipper/board.c553
-rw-r--r--board/blipper/board.h149
-rw-r--r--board/blipper/build.mk15
-rw-r--r--board/blipper/cbi_ssfc.c36
-rw-r--r--board/blipper/cbi_ssfc.h60
-rw-r--r--board/blipper/ec.tasklist22
-rw-r--r--board/blipper/gpio.inc151
-rw-r--r--board/blipper/led.c113
-rw-r--r--board/blipper/usb_pd_policy.c71
-rw-r--r--board/blipper/vif_override.xml3
-rw-r--r--board/bloog/battery.c327
-rw-r--r--board/bloog/board.c336
-rw-r--r--board/bloog/board.h105
-rw-r--r--board/bloog/build.mk15
-rw-r--r--board/bloog/ec.tasklist25
-rw-r--r--board/bloog/gpio.inc197
-rw-r--r--board/bloog/led.c223
-rw-r--r--board/bloog/vif_override.xml3
l---------board/bloonchipper1
-rw-r--r--board/bobba/battery.c356
-rw-r--r--board/bobba/board.c538
-rw-r--r--board/bobba/board.h143
-rw-r--r--board/bobba/build.mk15
-rw-r--r--board/bobba/ec.tasklist25
-rw-r--r--board/bobba/gpio.inc190
-rw-r--r--board/bobba/led.c74
-rw-r--r--board/bobba/vif_override.xml3
-rw-r--r--board/boldar/battery.c96
-rw-r--r--board/boldar/board.c588
-rw-r--r--board/boldar/board.h204
-rw-r--r--board/boldar/build.mk17
-rw-r--r--board/boldar/ec.tasklist26
-rw-r--r--board/boldar/gpio.inc182
-rw-r--r--board/boldar/led.c104
-rw-r--r--board/boldar/sensors.c226
-rw-r--r--board/boldar/vif_override.xml3
-rw-r--r--board/boten/battery.c121
-rw-r--r--board/boten/board.c509
-rw-r--r--board/boten/board.h143
-rw-r--r--board/boten/build.mk15
-rw-r--r--board/boten/cbi_ssfc.c36
-rw-r--r--board/boten/cbi_ssfc.h60
-rw-r--r--board/boten/ec.tasklist22
-rw-r--r--board/boten/gpio.inc146
-rw-r--r--board/boten/led.c112
-rw-r--r--board/boten/usb_pd_policy.c71
-rw-r--r--board/boten/vif_override.xml3
-rw-r--r--board/brask/board.c41
-rw-r--r--board/brask/board.h199
-rw-r--r--board/brask/build.mk20
-rw-r--r--board/brask/ec.tasklist27
-rw-r--r--board/brask/gpio.inc182
-rw-r--r--board/brask/i2c.c78
-rw-r--r--board/brask/led.c252
-rw-r--r--board/brask/pwm.c45
-rw-r--r--board/brask/sensors.c110
-rw-r--r--board/brask/usbc_config.c389
-rw-r--r--board/brask/usbc_config.h20
-rw-r--r--board/brask/vif_override.xml3
-rw-r--r--board/brya/battery.c98
-rw-r--r--board/brya/board.c165
-rw-r--r--board/brya/board.h278
-rw-r--r--board/brya/build.mk26
l---------board/brya/charger.c1
-rw-r--r--board/brya/ec.tasklist31
-rw-r--r--board/brya/fans.c89
-rw-r--r--board/brya/fw_config.c60
-rw-r--r--board/brya/fw_config.h54
-rw-r--r--board/brya/generated-gpio.inc124
-rw-r--r--board/brya/gpio.inc74
-rw-r--r--board/brya/i2c.c78
-rw-r--r--board/brya/keyboard.c25
-rw-r--r--board/brya/led.c93
-rw-r--r--board/brya/pwm.c71
-rw-r--r--board/brya/sensors.c395
-rw-r--r--board/brya/tune_mp2964.c43
-rw-r--r--board/brya/usbc_config.c465
-rw-r--r--board/brya/usbc_config.h22
-rw-r--r--board/brya/vif_override.xml3
-rw-r--r--board/bugzzy/battery.c108
-rw-r--r--board/bugzzy/board.c759
-rw-r--r--board/bugzzy/board.h205
-rw-r--r--board/bugzzy/build.mk14
-rw-r--r--board/bugzzy/cbi_ssfc.c36
-rw-r--r--board/bugzzy/cbi_ssfc.h60
-rw-r--r--board/bugzzy/ec.tasklist25
-rw-r--r--board/bugzzy/gpio.inc139
-rw-r--r--board/bugzzy/led.c133
-rw-r--r--board/bugzzy/usb_pd_policy.c61
-rw-r--r--board/bugzzy/vif_override.xml3
-rw-r--r--board/burnet/battery.c187
-rw-r--r--board/burnet/board.c591
-rw-r--r--board/burnet/board.h155
-rw-r--r--board/burnet/build.mk15
-rw-r--r--board/burnet/ec.tasklist20
-rw-r--r--board/burnet/gpio.inc120
-rw-r--r--board/burnet/led.c195
-rw-r--r--board/burnet/vif_override.xml3
-rw-r--r--board/c2d2/board.c1095
-rw-r--r--board/c2d2/board.h144
-rw-r--r--board/c2d2/build.mk13
-rw-r--r--board/c2d2/ec.tasklist11
-rw-r--r--board/c2d2/gpio.inc56
-rw-r--r--board/cappy2/battery.c178
-rw-r--r--board/cappy2/board.c363
-rw-r--r--board/cappy2/board.h118
-rw-r--r--board/cappy2/build.mk14
-rw-r--r--board/cappy2/cbi_ssfc.c36
-rw-r--r--board/cappy2/cbi_ssfc.h60
-rw-r--r--board/cappy2/ec.tasklist21
-rw-r--r--board/cappy2/gpio.inc148
-rw-r--r--board/cappy2/led.c131
-rw-r--r--board/cappy2/usb_pd_policy.c56
-rw-r--r--board/cappy2/vif_override.xml3
l---------board/careena/analyzestack.yaml1
-rw-r--r--board/careena/battery.c277
-rw-r--r--board/careena/board.c117
-rw-r--r--board/careena/board.h63
-rw-r--r--board/careena/build.mk15
-rw-r--r--board/careena/ec.tasklist24
-rw-r--r--board/careena/gpio.inc116
-rw-r--r--board/careena/led.c153
-rw-r--r--board/careena/vif_override.xml3
-rw-r--r--board/casta/battery.c171
-rw-r--r--board/casta/board.c196
-rw-r--r--board/casta/board.h95
-rw-r--r--board/casta/build.mk15
-rw-r--r--board/casta/ec.tasklist24
-rw-r--r--board/casta/gpio.inc173
-rw-r--r--board/casta/led.c131
-rw-r--r--board/casta/vif_override.xml3
-rw-r--r--board/cerise/battery.c46
-rw-r--r--board/cerise/board.c474
-rw-r--r--board/cerise/board.h154
-rw-r--r--board/cerise/build.mk15
-rw-r--r--board/cerise/ec.tasklist20
-rw-r--r--board/cerise/gpio.inc117
-rw-r--r--board/cerise/led.c82
-rw-r--r--board/cerise/vif_override.xml3
-rw-r--r--board/cherry/battery.c126
-rw-r--r--board/cherry/board.c174
-rw-r--r--board/cherry/board.h104
-rw-r--r--board/cherry/build.mk14
-rw-r--r--board/cherry/ec.tasklist23
-rw-r--r--board/cherry/gpio.inc160
-rw-r--r--board/cherry/led.c85
-rw-r--r--board/cherry/vif_override.xml3
-rw-r--r--board/cherry_scp/board.h33
-rw-r--r--board/cherry_scp/build.mk11
-rw-r--r--board/cherry_scp/ec.tasklist17
-rw-r--r--board/cherry_scp/gpio.inc10
-rw-r--r--board/chocodile_vpdmcu/board.c69
-rw-r--r--board/chocodile_vpdmcu/board.h154
-rw-r--r--board/chocodile_vpdmcu/build.mk16
-rw-r--r--board/chocodile_vpdmcu/chocodile.html9491
-rw-r--r--board/chocodile_vpdmcu/ec.tasklist12
-rw-r--r--board/chocodile_vpdmcu/gpio.inc80
-rw-r--r--board/chocodile_vpdmcu/usb_pd_config.h163
-rw-r--r--board/chocodile_vpdmcu/vif_override.xml3
-rw-r--r--board/chocodile_vpdmcu/vpd_api.c531
-rw-r--r--board/chocodile_vpdmcu/vpd_api.h276
-rw-r--r--board/chronicler/battery.c100
-rw-r--r--board/chronicler/board.c300
-rw-r--r--board/chronicler/board.h156
-rw-r--r--board/chronicler/build.mk19
-rw-r--r--board/chronicler/cbi.c26
-rw-r--r--board/chronicler/ec.tasklist25
-rw-r--r--board/chronicler/gpio.inc179
-rw-r--r--board/chronicler/keyboard.c26
-rw-r--r--board/chronicler/led.c204
-rw-r--r--board/chronicler/usbc_config.c272
-rw-r--r--board/chronicler/usbc_config.h20
-rw-r--r--board/chronicler/vif_override.xml114
-rw-r--r--board/coachz/base_detect.c230
-rw-r--r--board/coachz/battery.c155
-rw-r--r--board/coachz/board.c742
-rw-r--r--board/coachz/board.h129
-rw-r--r--board/coachz/build.mk14
-rw-r--r--board/coachz/ec.tasklist23
-rw-r--r--board/coachz/gpio.inc199
-rw-r--r--board/coachz/led.c187
-rw-r--r--board/coachz/vif_override.xml3
-rw-r--r--board/coffeecake/board.c316
-rw-r--r--board/coffeecake/board.h143
-rw-r--r--board/coffeecake/build.mk17
-rw-r--r--board/coffeecake/dev_key.pem27
-rw-r--r--board/coffeecake/ec.tasklist13
-rw-r--r--board/coffeecake/gpio.inc52
-rw-r--r--board/coffeecake/usb_pd_config.h145
-rw-r--r--board/coffeecake/usb_pd_policy.c339
-rw-r--r--board/coffeecake/vif_override.xml3
-rw-r--r--board/collis/battery.c66
-rw-r--r--board/collis/board.c438
-rw-r--r--board/collis/board.h187
-rw-r--r--board/collis/build.mk17
-rw-r--r--board/collis/ec.tasklist26
-rw-r--r--board/collis/gpio.inc176
-rw-r--r--board/collis/led.c92
-rw-r--r--board/collis/sensors.c229
-rw-r--r--board/collis/vif_override.xml3
-rw-r--r--board/copano/battery.c66
-rw-r--r--board/copano/board.c428
-rw-r--r--board/copano/board.h192
-rw-r--r--board/copano/build.mk17
-rw-r--r--board/copano/ec.tasklist26
-rw-r--r--board/copano/gpio.inc176
-rw-r--r--board/copano/led.c92
-rw-r--r--board/copano/sensors.c229
-rw-r--r--board/copano/vif_override.xml3
-rw-r--r--board/coral/battery.c702
-rw-r--r--board/coral/board.c1027
-rw-r--r--board/coral/board.h309
-rw-r--r--board/coral/build.mk14
-rw-r--r--board/coral/ec.tasklist26
-rw-r--r--board/coral/gpio.inc167
-rw-r--r--board/coral/led.c325
-rw-r--r--board/coral/sku.h91
-rw-r--r--board/coral/usb_pd_policy.c107
-rw-r--r--board/coral/vif_override.xml3
-rw-r--r--board/corori/battery.c71
-rw-r--r--board/corori/board.c488
-rw-r--r--board/corori/board.h115
-rw-r--r--board/corori/build.mk14
-rw-r--r--board/corori/cbi_ssfc.c36
-rw-r--r--board/corori/cbi_ssfc.h60
-rw-r--r--board/corori/ec.tasklist21
-rw-r--r--board/corori/gpio.inc141
-rw-r--r--board/corori/led.c225
-rw-r--r--board/corori/usb_pd_policy.c56
-rw-r--r--board/corori/vif_override.xml3
l---------board/cozmo1
-rw-r--r--board/cret/battery.c634
-rw-r--r--board/cret/board.c607
-rw-r--r--board/cret/board.h183
-rw-r--r--board/cret/build.mk14
-rw-r--r--board/cret/cbi_ssfc.c36
-rw-r--r--board/cret/cbi_ssfc.h65
-rw-r--r--board/cret/ec.tasklist22
-rw-r--r--board/cret/gpio.inc148
-rw-r--r--board/cret/led.c77
-rw-r--r--board/cret/usb_pd_policy.c61
-rw-r--r--board/cret/vif_override.xml3
-rw-r--r--board/dalboz/analyzestack.yaml2
-rw-r--r--board/dalboz/battery.c124
-rw-r--r--board/dalboz/board.c672
-rw-r--r--board/dalboz/board.h210
-rw-r--r--board/dalboz/build.mk15
-rw-r--r--board/dalboz/ec.tasklist26
-rw-r--r--board/dalboz/gpio.inc141
-rw-r--r--board/dalboz/led.c106
-rw-r--r--board/dalboz/vif_override.xml3
-rw-r--r--board/damu/battery.c46
-rw-r--r--board/damu/board.c455
-rw-r--r--board/damu/board.h146
-rw-r--r--board/damu/build.mk15
-rw-r--r--board/damu/ec.tasklist20
-rw-r--r--board/damu/gpio.inc115
-rw-r--r--board/damu/led.c108
-rw-r--r--board/damu/vif_override.xml3
l---------board/dartmonkey1
-rw-r--r--board/delbin/battery.c64
-rw-r--r--board/delbin/board.c506
-rw-r--r--board/delbin/board.h185
-rw-r--r--board/delbin/build.mk18
-rw-r--r--board/delbin/ec.tasklist26
-rw-r--r--board/delbin/gpio.inc178
-rw-r--r--board/delbin/led.c106
-rw-r--r--board/delbin/sensors.c227
-rw-r--r--board/delbin/vif_override.xml3
-rw-r--r--board/dewatt/battery.c127
-rw-r--r--board/dewatt/board.c536
-rw-r--r--board/dewatt/board.h96
-rw-r--r--board/dewatt/board_fw_config.c42
-rw-r--r--board/dewatt/board_fw_config.h38
-rw-r--r--board/dewatt/build.mk12
-rw-r--r--board/dewatt/ec.tasklist26
-rw-r--r--board/dewatt/gpio.inc28
-rw-r--r--board/dewatt/led.c91
-rw-r--r--board/dewatt/vif_override.xml3
-rw-r--r--board/dingdong/board.c187
-rw-r--r--board/dingdong/board.h110
-rw-r--r--board/dingdong/build.mk14
-rw-r--r--board/dingdong/dev_key.pem27
-rw-r--r--board/dingdong/ec.tasklist12
-rw-r--r--board/dingdong/gpio.inc33
-rw-r--r--board/dingdong/usb_pd_config.h128
-rw-r--r--board/dingdong/usb_pd_policy.c292
-rw-r--r--board/dingdong/vif_override.xml3
-rw-r--r--board/dirinboz/analyzestack.yaml2
-rw-r--r--board/dirinboz/battery.c210
-rw-r--r--board/dirinboz/board.c543
-rw-r--r--board/dirinboz/board.h167
-rw-r--r--board/dirinboz/build.mk15
-rw-r--r--board/dirinboz/ec.tasklist25
-rw-r--r--board/dirinboz/gpio.inc134
-rw-r--r--board/dirinboz/led.c207
-rw-r--r--board/dirinboz/vif_override.xml3
-rw-r--r--board/discovery-stm32f072/board.c209
-rw-r--r--board/discovery-stm32f072/board.h88
-rw-r--r--board/discovery-stm32f072/build.mk13
-rw-r--r--board/discovery-stm32f072/ec.tasklist11
-rw-r--r--board/discovery-stm32f072/gpio.inc33
-rw-r--r--board/discovery-stm32f072/openocd-flash.cfg19
-rw-r--r--board/discovery/board.c71
-rw-r--r--board/discovery/board.h36
-rw-r--r--board/discovery/build.mk13
-rw-r--r--board/discovery/ec.tasklist11
-rw-r--r--board/discovery/gpio.inc23
-rw-r--r--board/discovery/openocd-flash.cfg19
l---------board/don1
-rw-r--r--board/dood/battery.c414
-rw-r--r--board/dood/board.c344
-rw-r--r--board/dood/board.h114
-rw-r--r--board/dood/build.mk15
-rw-r--r--board/dood/ec.tasklist25
-rw-r--r--board/dood/gpio.inc185
-rw-r--r--board/dood/led.c74
-rw-r--r--board/dood/vif_override.xml3
-rw-r--r--board/dooly/board.c1187
-rw-r--r--board/dooly/board.h344
-rw-r--r--board/dooly/build.mk15
-rw-r--r--board/dooly/ec.tasklist20
-rw-r--r--board/dooly/gpio.inc179
-rw-r--r--board/dooly/led.c264
-rw-r--r--board/dooly/usb_pd_policy.c84
-rw-r--r--board/dooly/vif_override.xml3
-rw-r--r--board/dratini/battery.c98
-rw-r--r--board/dratini/board.c539
-rw-r--r--board/dratini/board.h184
-rw-r--r--board/dratini/build.mk15
-rw-r--r--board/dratini/ec.tasklist26
-rw-r--r--board/dratini/gpio.inc147
-rw-r--r--board/dratini/led.c240
-rw-r--r--board/dratini/vif_override.xml3
-rw-r--r--board/drawcia/battery.c349
-rw-r--r--board/drawcia/board.c722
-rw-r--r--board/drawcia/board.h152
-rw-r--r--board/drawcia/build.mk15
-rw-r--r--board/drawcia/cbi_ssfc.c36
-rw-r--r--board/drawcia/cbi_ssfc.h60
-rw-r--r--board/drawcia/ec.tasklist24
-rw-r--r--board/drawcia/gpio.inc148
-rw-r--r--board/drawcia/led.c203
-rw-r--r--board/drawcia/usb_pd_policy.c85
-rw-r--r--board/drawcia/vif_override.xml3
-rw-r--r--board/driblee/battery.c634
-rw-r--r--board/driblee/board.c497
-rw-r--r--board/driblee/board.h150
-rw-r--r--board/driblee/build.mk14
-rw-r--r--board/driblee/cbi_ssfc.c36
-rw-r--r--board/driblee/cbi_ssfc.h60
-rw-r--r--board/driblee/ec.tasklist21
-rw-r--r--board/driblee/gpio.inc141
-rw-r--r--board/driblee/led.c79
-rw-r--r--board/driblee/usb_pd_policy.c61
-rw-r--r--board/driblee/vif_override.xml3
-rw-r--r--board/drobit/battery.c65
-rw-r--r--board/drobit/board.c471
-rw-r--r--board/drobit/board.h169
-rw-r--r--board/drobit/build.mk16
-rw-r--r--board/drobit/ec.tasklist25
-rw-r--r--board/drobit/gpio.inc184
-rw-r--r--board/drobit/led.c92
-rw-r--r--board/drobit/vif_override.xml3
l---------board/drobit_ecmodeentry1
l---------board/eel1
-rw-r--r--board/eldrid/battery.c106
-rw-r--r--board/eldrid/board.c613
-rw-r--r--board/eldrid/board.h183
-rw-r--r--board/eldrid/build.mk19
-rw-r--r--board/eldrid/ec.tasklist26
-rw-r--r--board/eldrid/gpio.inc182
-rw-r--r--board/eldrid/led.c148
-rw-r--r--board/eldrid/sensors.c126
-rw-r--r--board/eldrid/thermal.c210
-rw-r--r--board/eldrid/vif_override.xml3
-rw-r--r--board/elemi/battery.c94
-rw-r--r--board/elemi/board.c453
-rw-r--r--board/elemi/board.h156
-rw-r--r--board/elemi/build.mk16
-rw-r--r--board/elemi/ec.tasklist25
-rw-r--r--board/elemi/gpio.inc169
-rw-r--r--board/elemi/led.c204
-rw-r--r--board/elemi/vif_override.xml3
-rw-r--r--board/elm/battery.c47
-rw-r--r--board/elm/board.c532
-rw-r--r--board/elm/board.h252
-rw-r--r--board/elm/build.mk14
-rw-r--r--board/elm/ec.tasklist20
-rw-r--r--board/elm/gpio.inc113
-rw-r--r--board/elm/led.c199
-rw-r--r--board/elm/usb_pd_policy.c92
-rw-r--r--board/elm/vif_override.xml3
-rw-r--r--board/endeavour/board.c388
-rw-r--r--board/endeavour/board.h152
-rw-r--r--board/endeavour/build.mk14
-rw-r--r--board/endeavour/ec.tasklist16
-rw-r--r--board/endeavour/gpio.inc93
-rw-r--r--board/endeavour/led.c211
-rw-r--r--board/endeavour/pse.c266
-rw-r--r--board/eve/battery.c656
-rw-r--r--board/eve/board.c981
-rw-r--r--board/eve/board.h316
-rw-r--r--board/eve/build.mk14
-rw-r--r--board/eve/ec.tasklist26
-rw-r--r--board/eve/gpio.inc126
-rw-r--r--board/eve/led.c676
-rw-r--r--board/eve/usb_pd_policy.c134
-rw-r--r--board/eve/vif_override.xml3
-rw-r--r--board/ezkinil/analyzestack.yaml2
-rw-r--r--board/ezkinil/battery.c93
-rw-r--r--board/ezkinil/board.c827
-rw-r--r--board/ezkinil/board.h217
-rw-r--r--board/ezkinil/build.mk15
-rw-r--r--board/ezkinil/ec.tasklist26
-rw-r--r--board/ezkinil/gpio.inc137
-rw-r--r--board/ezkinil/led.c71
-rw-r--r--board/ezkinil/vif_override.xml3
-rw-r--r--board/felwinter/battery.c67
-rw-r--r--board/felwinter/board.c114
-rw-r--r--board/felwinter/board.h245
-rw-r--r--board/felwinter/build.mk25
l---------board/felwinter/charger.c1
-rw-r--r--board/felwinter/ec.tasklist29
-rw-r--r--board/felwinter/fans.c88
-rw-r--r--board/felwinter/fw_config.c45
-rw-r--r--board/felwinter/fw_config.h53
-rw-r--r--board/felwinter/gpio.inc151
-rw-r--r--board/felwinter/i2c.c78
-rw-r--r--board/felwinter/keyboard.c25
-rw-r--r--board/felwinter/led.c118
-rw-r--r--board/felwinter/pwm.c38
-rw-r--r--board/felwinter/sensors.c219
-rw-r--r--board/felwinter/usbc_config.c409
-rw-r--r--board/felwinter/usbc_config.h24
-rw-r--r--board/felwinter/vif_override.xml3
-rw-r--r--board/fennel/battery.c104
-rw-r--r--board/fennel/board.c683
-rw-r--r--board/fennel/board.h160
-rw-r--r--board/fennel/build.mk15
-rw-r--r--board/fennel/ec.tasklist20
-rw-r--r--board/fennel/gpio.inc121
-rw-r--r--board/fennel/led.c115
-rw-r--r--board/fennel/vif_override.xml3
-rw-r--r--board/fizz/board.c834
-rw-r--r--board/fizz/board.h263
-rw-r--r--board/fizz/build.mk14
-rw-r--r--board/fizz/dev_key.pem39
-rw-r--r--board/fizz/ec.tasklist19
-rw-r--r--board/fizz/gpio.inc114
-rw-r--r--board/fizz/led.c232
-rw-r--r--board/fizz/usb_pd_policy.c142
-rw-r--r--board/fizz/vif_override.xml3
-rw-r--r--board/fleex/analyzestack.yaml278
-rw-r--r--board/fleex/battery.c320
-rw-r--r--board/fleex/board.c333
-rw-r--r--board/fleex/board.h125
-rw-r--r--board/fleex/build.mk16
-rw-r--r--board/fleex/ec.tasklist25
-rw-r--r--board/fleex/gpio.inc193
-rw-r--r--board/fleex/led.c80
-rw-r--r--board/fleex/usb_pd_policy.c8
-rw-r--r--board/fleex/vif_override.xml3
-rw-r--r--board/fluffy/board.c405
-rw-r--r--board/fluffy/board.h72
-rw-r--r--board/fluffy/build.mk18
-rw-r--r--board/fluffy/ec.tasklist12
-rw-r--r--board/fluffy/gpio.inc60
-rw-r--r--board/foob/battery.c202
-rw-r--r--board/foob/board.c295
-rw-r--r--board/foob/board.h91
-rw-r--r--board/foob/build.mk15
-rw-r--r--board/foob/ec.tasklist25
-rw-r--r--board/foob/gpio.inc199
-rw-r--r--board/foob/led.c113
-rw-r--r--board/foob/vif_override.xml3
-rw-r--r--board/fusb307bgevb/board.c328
-rw-r--r--board/fusb307bgevb/board.h120
-rw-r--r--board/fusb307bgevb/build.mk13
-rw-r--r--board/fusb307bgevb/ec.tasklist13
-rw-r--r--board/fusb307bgevb/gpio.inc31
-rw-r--r--board/fusb307bgevb/lcd.c166
-rw-r--r--board/fusb307bgevb/lcd.h69
-rw-r--r--board/fusb307bgevb/vif_override.xml3
-rw-r--r--board/galtic/battery.c94
-rw-r--r--board/galtic/board.c892
-rw-r--r--board/galtic/board.h150
-rw-r--r--board/galtic/build.mk15
-rw-r--r--board/galtic/cbi_ssfc.c36
-rw-r--r--board/galtic/cbi_ssfc.h60
-rw-r--r--board/galtic/ec.tasklist25
-rw-r--r--board/galtic/gpio.inc145
-rw-r--r--board/galtic/led.c97
-rw-r--r--board/galtic/usb_pd_policy.c62
-rw-r--r--board/galtic/vif_override.xml3
-rw-r--r--board/garg/battery.c124
-rw-r--r--board/garg/board.c366
-rw-r--r--board/garg/board.h105
-rw-r--r--board/garg/build.mk15
-rw-r--r--board/garg/ec.tasklist25
-rw-r--r--board/garg/gpio.inc188
-rw-r--r--board/garg/led.c74
-rw-r--r--board/garg/vif_override.xml3
-rw-r--r--board/genesis/board.c480
-rw-r--r--board/genesis/board.h228
-rw-r--r--board/genesis/build.mk15
-rw-r--r--board/genesis/ec.tasklist15
-rw-r--r--board/genesis/gpio.inc170
-rw-r--r--board/genesis/led.c274
-rw-r--r--board/genesis/pse.c266
-rw-r--r--board/gimble/battery.c94
-rw-r--r--board/gimble/board.c143
-rw-r--r--board/gimble/board.h250
-rw-r--r--board/gimble/build.mk26
l---------board/gimble/charger.c1
-rw-r--r--board/gimble/ec.tasklist29
-rw-r--r--board/gimble/fans.c88
-rw-r--r--board/gimble/fw_config.c60
-rw-r--r--board/gimble/fw_config.h54
-rw-r--r--board/gimble/gpio.inc141
-rw-r--r--board/gimble/i2c.c69
-rw-r--r--board/gimble/keyboard.c51
-rw-r--r--board/gimble/led.c156
-rw-r--r--board/gimble/pwm.c70
-rw-r--r--board/gimble/sensors.c356
-rw-r--r--board/gimble/thermal.c148
-rw-r--r--board/gimble/usbc_config.c291
-rw-r--r--board/gimble/usbc_config.h21
-rw-r--r--board/gimble/vif_override.xml3
-rw-r--r--board/gingerbread/board.c355
-rw-r--r--board/gingerbread/board.h110
-rw-r--r--board/gingerbread/build.mk18
-rw-r--r--board/gingerbread/dev_key.pem39
-rw-r--r--board/gingerbread/ec.tasklist18
-rw-r--r--board/gingerbread/gpio.inc99
-rw-r--r--board/gooey/battery.c121
-rw-r--r--board/gooey/board.c519
-rw-r--r--board/gooey/board.h146
-rw-r--r--board/gooey/build.mk15
-rw-r--r--board/gooey/ec.tasklist22
-rw-r--r--board/gooey/gpio.inc146
-rw-r--r--board/gooey/led.c112
-rw-r--r--board/gooey/usb_pd_policy.c71
-rw-r--r--board/gooey/vif_override.xml3
-rw-r--r--board/goroh/battery.c47
-rw-r--r--board/goroh/board.c251
-rw-r--r--board/goroh/board.h113
-rw-r--r--board/goroh/build.mk14
-rw-r--r--board/goroh/ec.tasklist22
-rw-r--r--board/goroh/gpio.inc154
-rw-r--r--board/goroh/led.c119
-rw-r--r--board/goroh/vif_override.xml3
l---------board/grunt/analyzestack.yaml1
-rw-r--r--board/grunt/battery.c65
-rw-r--r--board/grunt/board.c78
-rw-r--r--board/grunt/board.h85
-rw-r--r--board/grunt/build.mk15
-rw-r--r--board/grunt/ec.tasklist25
-rw-r--r--board/grunt/gpio.inc115
-rw-r--r--board/grunt/led.c69
-rw-r--r--board/grunt/vif_override.xml3
-rw-r--r--board/gumboz/analyzestack.yaml2
-rw-r--r--board/gumboz/battery.c211
-rw-r--r--board/gumboz/board.c651
-rw-r--r--board/gumboz/board.h185
-rw-r--r--board/gumboz/build.mk15
-rw-r--r--board/gumboz/ec.tasklist26
-rw-r--r--board/gumboz/gpio.inc138
-rw-r--r--board/gumboz/led.c235
-rw-r--r--board/gumboz/vif_override.xml3
-rw-r--r--board/guybrush/battery.c127
-rw-r--r--board/guybrush/board.c551
-rw-r--r--board/guybrush/board.h96
-rw-r--r--board/guybrush/board_fw_config.c42
-rw-r--r--board/guybrush/board_fw_config.h38
-rw-r--r--board/guybrush/build.mk12
-rw-r--r--board/guybrush/ec.tasklist26
-rw-r--r--board/guybrush/gpio.inc28
-rw-r--r--board/guybrush/led.c91
-rw-r--r--board/guybrush/vif_override.xml3
-rw-r--r--board/haboki/battery.c349
-rw-r--r--board/haboki/board.c707
-rw-r--r--board/haboki/board.h152
-rw-r--r--board/haboki/build.mk15
-rw-r--r--board/haboki/cbi_ssfc.c36
-rw-r--r--board/haboki/cbi_ssfc.h60
-rw-r--r--board/haboki/ec.tasklist24
-rw-r--r--board/haboki/gpio.inc148
-rw-r--r--board/haboki/led.c203
-rw-r--r--board/haboki/usb_pd_policy.c85
-rw-r--r--board/haboki/vif_override.xml3
-rw-r--r--board/hadoken/board.c12
-rw-r--r--board/hadoken/board.h40
-rw-r--r--board/hadoken/build.mk16
-rw-r--r--board/hadoken/ec.tasklist13
-rw-r--r--board/hadoken/gpio.inc59
-rw-r--r--board/halvor/battery.c69
-rw-r--r--board/halvor/board.c528
-rw-r--r--board/halvor/board.h176
-rw-r--r--board/halvor/build.mk17
-rw-r--r--board/halvor/ec.tasklist29
-rw-r--r--board/halvor/gpio.inc183
-rw-r--r--board/halvor/led.c90
-rw-r--r--board/halvor/sensors.c170
-rw-r--r--board/halvor/vif_override.xml3
-rw-r--r--board/hammer/analyzestack.yaml96
-rw-r--r--board/hammer/battery.c52
-rw-r--r--board/hammer/board.c374
-rw-r--r--board/hammer/board.h365
-rw-r--r--board/hammer/build.mk17
-rw-r--r--board/hammer/dev_key.pem39
-rw-r--r--board/hammer/ec.tasklist39
-rw-r--r--board/hammer/gpio.inc138
-rw-r--r--board/hammer/variants.h184
-rw-r--r--board/hatch/battery.c93
-rw-r--r--board/hatch/board.c500
-rw-r--r--board/hatch/board.h178
-rw-r--r--board/hatch/build.mk15
-rw-r--r--board/hatch/ec.tasklist26
-rw-r--r--board/hatch/gpio.inc134
-rw-r--r--board/hatch/led.c80
-rw-r--r--board/hatch/vif_override.xml3
-rw-r--r--board/hatch_fp/OWNERS1
-rw-r--r--board/hatch_fp/board.c131
-rw-r--r--board/hatch_fp/board.h258
-rw-r--r--board/hatch_fp/board_rw.c60
-rw-r--r--board/hatch_fp/board_rw.h13
-rw-r--r--board/hatch_fp/build.mk53
-rw-r--r--board/hatch_fp/dev_key.pem39
-rw-r--r--board/hatch_fp/ec.tasklist14
-rw-r--r--board/hatch_fp/fpsensor_detect.c29
-rw-r--r--board/hatch_fp/fpsensor_detect_rw.c38
-rw-r--r--board/hatch_fp/gpio.inc45
-rw-r--r--board/hatch_fp/gpio_rw.inc28
l---------board/hayato1
-rw-r--r--board/helios/battery.c91
-rw-r--r--board/helios/board.c509
-rw-r--r--board/helios/board.h158
-rw-r--r--board/helios/build.mk15
-rw-r--r--board/helios/ec.tasklist26
-rw-r--r--board/helios/gpio.inc136
-rw-r--r--board/helios/led.c108
-rw-r--r--board/helios/vif_override.xml3
-rw-r--r--board/herobrine_npcx9/battery.c68
-rw-r--r--board/herobrine_npcx9/board.c273
-rw-r--r--board/herobrine_npcx9/board.h114
-rw-r--r--board/herobrine_npcx9/build.mk18
-rw-r--r--board/herobrine_npcx9/ec.tasklist23
-rw-r--r--board/herobrine_npcx9/gpio.inc177
-rw-r--r--board/herobrine_npcx9/led.c163
-rw-r--r--board/herobrine_npcx9/switchcap.c22
-rw-r--r--board/herobrine_npcx9/usbc_config.c319
-rw-r--r--board/herobrine_npcx9/usbc_config.h19
-rw-r--r--board/herobrine_npcx9/vif_override.xml3
-rw-r--r--board/hoho/board.c248
-rw-r--r--board/hoho/board.h119
-rw-r--r--board/hoho/build.mk14
-rw-r--r--board/hoho/dev_key.pem27
-rw-r--r--board/hoho/ec.tasklist12
-rw-r--r--board/hoho/gpio.inc37
-rw-r--r--board/hoho/usb_pd_config.h128
-rw-r--r--board/hoho/usb_pd_policy.c267
-rw-r--r--board/hoho/vif_override.xml3
-rw-r--r--board/homestar/base_detect.c234
-rw-r--r--board/homestar/battery.c213
-rw-r--r--board/homestar/board.c698
-rw-r--r--board/homestar/board.h119
-rw-r--r--board/homestar/build.mk14
-rw-r--r--board/homestar/ec.tasklist22
-rw-r--r--board/homestar/gpio.inc196
-rw-r--r--board/homestar/led.c164
-rw-r--r--board/homestar/vif_override.xml3
-rw-r--r--board/host/battery.c82
-rw-r--r--board/host/board.c134
-rw-r--r--board/host/board.h97
-rw-r--r--board/host/build.mk15
-rw-r--r--board/host/charger.c175
-rw-r--r--board/host/chipset.c76
-rw-r--r--board/host/ec.tasklist13
-rw-r--r--board/host/fan.c85
-rw-r--r--board/host/gpio.inc38
-rw-r--r--board/host/usb_pd_config.c35
-rw-r--r--board/host/usb_pd_config.h24
-rw-r--r--board/host/usb_pd_policy.c81
-rw-r--r--board/host/vif_override.xml3
-rw-r--r--board/icarus/battery.c189
-rw-r--r--board/icarus/board.c274
-rw-r--r--board/icarus/board.h137
-rw-r--r--board/icarus/build.mk15
-rw-r--r--board/icarus/ec.tasklist17
-rw-r--r--board/icarus/gpio.inc148
-rw-r--r--board/icarus/led.c80
-rw-r--r--board/icarus/vif_override.xml3
-rw-r--r--board/it83xx_evb/board.c79
-rw-r--r--board/it83xx_evb/board.h41
-rw-r--r--board/it83xx_evb/build.mk14
-rw-r--r--board/it83xx_evb/ec.tasklist14
-rw-r--r--board/it83xx_evb/gpio.inc76
-rw-r--r--board/it8xxx2_evb/board.c79
-rw-r--r--board/it8xxx2_evb/board.h38
-rw-r--r--board/it8xxx2_evb/build.mk14
-rw-r--r--board/it8xxx2_evb/ec.tasklist14
-rw-r--r--board/it8xxx2_evb/gpio.inc75
-rw-r--r--board/it8xxx2_pdevb/board.c179
-rw-r--r--board/it8xxx2_pdevb/board.h102
-rw-r--r--board/it8xxx2_pdevb/build.mk14
-rw-r--r--board/it8xxx2_pdevb/ec.tasklist13
-rw-r--r--board/it8xxx2_pdevb/gpio.inc74
-rw-r--r--board/it8xxx2_pdevb/vif_override.xml3
-rw-r--r--board/jacuzzi/battery.c128
-rw-r--r--board/jacuzzi/board.c571
-rw-r--r--board/jacuzzi/board.h172
-rw-r--r--board/jacuzzi/build.mk15
-rw-r--r--board/jacuzzi/ec.tasklist20
-rw-r--r--board/jacuzzi/gpio.inc126
-rw-r--r--board/jacuzzi/led.c81
-rw-r--r--board/jacuzzi/vif_override.xml3
-rw-r--r--board/jinlon/battery.c69
-rw-r--r--board/jinlon/board.c520
-rw-r--r--board/jinlon/board.h188
-rw-r--r--board/jinlon/build.mk15
-rw-r--r--board/jinlon/ec.tasklist26
-rw-r--r--board/jinlon/gpio.inc150
-rw-r--r--board/jinlon/led.c218
-rw-r--r--board/jinlon/thermal.c221
-rw-r--r--board/jinlon/vif_override.xml3
-rw-r--r--board/jslrvp_ite/battery.c78
-rw-r--r--board/jslrvp_ite/board.c174
-rw-r--r--board/jslrvp_ite/board.h99
-rw-r--r--board/jslrvp_ite/build.mk16
-rw-r--r--board/jslrvp_ite/ec.tasklist23
-rw-r--r--board/jslrvp_ite/gpio.inc184
-rw-r--r--board/jslrvp_ite/vif_override.xml3
l---------board/juniper1
-rw-r--r--board/kakadu/analyzestack.yaml3
-rw-r--r--board/kakadu/board.c522
-rw-r--r--board/kakadu/board.h130
-rw-r--r--board/kakadu/build.mk15
-rw-r--r--board/kakadu/ec.tasklist20
-rw-r--r--board/kakadu/gpio.inc107
-rw-r--r--board/kakadu/led.c201
-rw-r--r--board/kakadu/vif_override.xml3
-rw-r--r--board/kano/battery.c98
-rw-r--r--board/kano/board.c101
-rw-r--r--board/kano/board.h249
-rw-r--r--board/kano/build.mk26
-rw-r--r--board/kano/charger.c90
-rw-r--r--board/kano/ec.tasklist29
-rw-r--r--board/kano/fans.c88
-rw-r--r--board/kano/fw_config.c60
-rw-r--r--board/kano/fw_config.h54
-rw-r--r--board/kano/generated-gpio.inc115
-rw-r--r--board/kano/gpio.inc35
-rw-r--r--board/kano/i2c.c78
-rw-r--r--board/kano/keyboard.c25
-rw-r--r--board/kano/led.c83
-rw-r--r--board/kano/pwm.c57
-rw-r--r--board/kano/sensors.c221
-rw-r--r--board/kano/tune_mp2964.c43
-rw-r--r--board/kano/usbc_config.c291
-rw-r--r--board/kano/usbc_config.h21
-rw-r--r--board/kano/vif_override.xml3
-rw-r--r--board/kappa/battery.c75
-rw-r--r--board/kappa/board.c295
-rw-r--r--board/kappa/board.h122
-rw-r--r--board/kappa/build.mk15
-rw-r--r--board/kappa/ec.tasklist19
-rw-r--r--board/kappa/gpio.inc107
-rw-r--r--board/kappa/led.c147
-rw-r--r--board/kappa/vif_override.xml3
-rw-r--r--board/karma/board.c42
-rw-r--r--board/karma/board.h13
-rw-r--r--board/karma/build.mk13
-rw-r--r--board/karma/dev_key.pem39
-rw-r--r--board/karma/ec.tasklist19
-rw-r--r--board/karma/gpio.inc108
-rw-r--r--board/karma/vif_override.xml3
-rw-r--r--board/katsu/board.c424
-rw-r--r--board/katsu/board.h126
-rw-r--r--board/katsu/build.mk15
-rw-r--r--board/katsu/ec.tasklist20
-rw-r--r--board/katsu/gpio.inc107
-rw-r--r--board/katsu/led.c202
-rw-r--r--board/katsu/vif_override.xml3
-rw-r--r--board/kindred/battery.c94
-rw-r--r--board/kindred/board.c661
-rw-r--r--board/kindred/board.h188
-rw-r--r--board/kindred/build.mk15
-rw-r--r--board/kindred/ec.tasklist26
-rw-r--r--board/kindred/gpio.inc146
-rw-r--r--board/kindred/led.c81
-rw-r--r--board/kindred/vif_override.xml3
-rw-r--r--board/kingoftown/battery.c156
-rw-r--r--board/kingoftown/board.c241
-rw-r--r--board/kingoftown/board.h115
-rw-r--r--board/kingoftown/build.mk19
-rw-r--r--board/kingoftown/ec.tasklist23
-rw-r--r--board/kingoftown/gpio.inc187
-rw-r--r--board/kingoftown/hibernate.c18
-rw-r--r--board/kingoftown/led.c163
-rw-r--r--board/kingoftown/switchcap.c22
-rw-r--r--board/kingoftown/usbc_config.c319
-rw-r--r--board/kingoftown/usbc_config.h19
-rw-r--r--board/kingoftown/vif_override.xml3
-rw-r--r--board/kodama/analyzestack.yaml3
-rw-r--r--board/kodama/battery.c125
-rw-r--r--board/kodama/board.c397
-rw-r--r--board/kodama/board.h128
-rw-r--r--board/kodama/build.mk15
-rw-r--r--board/kodama/ec.tasklist20
-rw-r--r--board/kodama/gpio.inc106
-rw-r--r--board/kodama/led.c155
-rw-r--r--board/kodama/vif_override.xml3
-rw-r--r--board/kohaku/battery.c139
-rw-r--r--board/kohaku/board.c485
-rw-r--r--board/kohaku/board.h193
-rw-r--r--board/kohaku/build.mk15
-rw-r--r--board/kohaku/ec.tasklist26
-rw-r--r--board/kohaku/gpio.inc163
-rw-r--r--board/kohaku/led.c129
-rw-r--r--board/kohaku/vif_override.xml3
-rw-r--r--board/kracko/battery.c99
-rw-r--r--board/kracko/board.c765
-rw-r--r--board/kracko/board.h148
-rw-r--r--board/kracko/build.mk15
-rw-r--r--board/kracko/cbi_ssfc.c36
-rw-r--r--board/kracko/cbi_ssfc.h60
-rw-r--r--board/kracko/ec.tasklist24
-rw-r--r--board/kracko/gpio.inc148
-rw-r--r--board/kracko/led.c73
-rw-r--r--board/kracko/usb_pd_policy.c85
-rw-r--r--board/kracko/vif_override.xml3
l---------board/krane1
-rw-r--r--board/kukui/analyzestack.yaml3
-rw-r--r--board/kukui/board.c611
-rw-r--r--board/kukui/board.h164
-rw-r--r--board/kukui/build.mk15
-rw-r--r--board/kukui/ec.tasklist20
-rw-r--r--board/kukui/gpio.inc107
-rw-r--r--board/kukui/led.c163
-rw-r--r--board/kukui/vif_override.xml3
-rw-r--r--board/kukui_scp/board.c21
-rw-r--r--board/kukui_scp/board.h112
-rw-r--r--board/kukui_scp/build.mk23
-rw-r--r--board/kukui_scp/ec.tasklist30
-rw-r--r--board/kukui_scp/fd.c83
-rw-r--r--board/kukui_scp/fd.h35
-rw-r--r--board/kukui_scp/gpio.inc32
-rw-r--r--board/kukui_scp/isp_p1_srv.c83
-rw-r--r--board/kukui_scp/isp_p1_srv.h21
-rwxr-xr-xboard/kukui_scp/isp_p2_srv.c80
-rw-r--r--board/kukui_scp/isp_p2_srv.h21
-rw-r--r--board/kukui_scp/mdp_ipi_message.c81
-rw-r--r--board/kukui_scp/mdp_ipi_message.h19
-rwxr-xr-xboard/kukui_scp/update_scp38
-rw-r--r--board/kukui_scp/vdec.c89
-rw-r--r--board/kukui_scp/vdec.h33
-rw-r--r--board/kukui_scp/venc.c85
-rw-r--r--board/kukui_scp/venc.h30
-rw-r--r--board/lalala/battery.c128
-rw-r--r--board/lalala/board.c851
-rw-r--r--board/lalala/board.h182
-rw-r--r--board/lalala/build.mk14
-rw-r--r--board/lalala/cbi_ssfc.c36
-rw-r--r--board/lalala/cbi_ssfc.h60
-rw-r--r--board/lalala/ec.tasklist25
-rw-r--r--board/lalala/gpio.inc145
-rw-r--r--board/lalala/led.c79
-rw-r--r--board/lalala/usb_pd_policy.c56
-rw-r--r--board/lalala/vif_override.xml3
-rw-r--r--board/lantis/battery.c192
-rw-r--r--board/lantis/board.c739
-rw-r--r--board/lantis/board.h144
-rw-r--r--board/lantis/build.mk15
-rw-r--r--board/lantis/cbi_ssfc.c36
-rw-r--r--board/lantis/cbi_ssfc.h60
-rw-r--r--board/lantis/ec.tasklist24
-rw-r--r--board/lantis/gpio.inc146
-rw-r--r--board/lantis/led.c241
-rw-r--r--board/lantis/usb_pd_policy.c85
-rw-r--r--board/lantis/vif_override.xml3
-rw-r--r--board/lazor/battery.c182
-rw-r--r--board/lazor/board.c431
-rw-r--r--board/lazor/board.h131
-rw-r--r--board/lazor/build.mk20
-rw-r--r--board/lazor/ec.tasklist23
-rw-r--r--board/lazor/gpio.inc188
-rw-r--r--board/lazor/hibernate.c40
-rw-r--r--board/lazor/led.c155
-rw-r--r--board/lazor/sku.c93
-rw-r--r--board/lazor/sku.h17
-rw-r--r--board/lazor/switchcap.c121
-rw-r--r--board/lazor/usbc_config.c355
-rw-r--r--board/lazor/usbc_config.h20
-rw-r--r--board/lazor/vif_override.xml3
l---------board/liara/analyzestack.yaml1
-rw-r--r--board/liara/battery.c167
-rw-r--r--board/liara/board.c72
-rw-r--r--board/liara/board.h68
-rw-r--r--board/liara/build.mk15
-rw-r--r--board/liara/ec.tasklist24
-rw-r--r--board/liara/gpio.inc118
-rw-r--r--board/liara/led.c69
-rw-r--r--board/liara/vif_override.xml3
-rw-r--r--board/lick/battery.c119
-rw-r--r--board/lick/board.c289
-rw-r--r--board/lick/board.h88
-rw-r--r--board/lick/build.mk15
-rw-r--r--board/lick/ec.tasklist25
-rw-r--r--board/lick/gpio.inc199
-rw-r--r--board/lick/led.c113
-rw-r--r--board/lick/vif_override.xml3
-rw-r--r--board/lindar/battery.c136
-rw-r--r--board/lindar/board.c600
-rw-r--r--board/lindar/board.h171
-rw-r--r--board/lindar/build.mk16
-rw-r--r--board/lindar/ec.tasklist26
-rw-r--r--board/lindar/gpio.inc179
-rw-r--r--board/lindar/ktd20xx.h141
-rw-r--r--board/lindar/led.c793
-rw-r--r--board/lindar/vif_override.xml3
-rw-r--r--board/lingcod/battery.c123
-rw-r--r--board/lingcod/board.c542
-rw-r--r--board/lingcod/board.h161
-rw-r--r--board/lingcod/build.mk16
-rw-r--r--board/lingcod/ec.tasklist26
-rw-r--r--board/lingcod/gpio.inc163
-rw-r--r--board/lingcod/led.c111
-rw-r--r--board/lingcod/vif_override.xml3
l---------board/lux1
-rw-r--r--board/madoo/battery.c183
-rw-r--r--board/madoo/board.c625
-rw-r--r--board/madoo/board.h165
-rw-r--r--board/madoo/build.mk14
-rw-r--r--board/madoo/cbi_ssfc.c36
-rw-r--r--board/madoo/cbi_ssfc.h61
-rw-r--r--board/madoo/ec.tasklist25
-rw-r--r--board/madoo/gpio.inc145
-rw-r--r--board/madoo/led.c182
-rw-r--r--board/madoo/usb_pd_policy.c61
-rw-r--r--board/madoo/vif_override.xml3
l---------board/magnemite1
-rw-r--r--board/magolor/battery.c189
-rw-r--r--board/magolor/board.c1100
-rw-r--r--board/magolor/board.h212
-rw-r--r--board/magolor/build.mk20
-rw-r--r--board/magolor/cbi_ssfc.c36
-rw-r--r--board/magolor/cbi_ssfc.h60
-rw-r--r--board/magolor/ec.tasklist25
-rw-r--r--board/magolor/gpio.inc147
-rw-r--r--board/magolor/led.c79
-rw-r--r--board/magolor/usb_pd_policy.c61
-rw-r--r--board/magolor/vif_override.xml3
-rw-r--r--board/makomo/battery.c104
-rw-r--r--board/makomo/board.c577
-rw-r--r--board/makomo/board.h158
-rw-r--r--board/makomo/build.mk15
-rw-r--r--board/makomo/ec.tasklist20
-rw-r--r--board/makomo/gpio.inc121
-rw-r--r--board/makomo/led.c115
-rw-r--r--board/makomo/vif_override.xml3
-rw-r--r--board/malefor/battery.c123
-rw-r--r--board/malefor/board.c595
-rw-r--r--board/malefor/board.h162
-rw-r--r--board/malefor/build.mk16
-rw-r--r--board/malefor/ec.tasklist26
-rw-r--r--board/malefor/gpio.inc163
-rw-r--r--board/malefor/led.c111
-rw-r--r--board/malefor/vif_override.xml3
-rw-r--r--board/marzipan/battery.c97
-rw-r--r--board/marzipan/board.c668
-rw-r--r--board/marzipan/board.h112
-rw-r--r--board/marzipan/build.mk18
-rw-r--r--board/marzipan/ec.tasklist23
-rw-r--r--board/marzipan/gpio.inc185
-rw-r--r--board/marzipan/led.c155
-rw-r--r--board/marzipan/switchcap.c31
-rw-r--r--board/marzipan/usbc_config.c28
-rw-r--r--board/marzipan/usbc_config.h19
-rw-r--r--board/marzipan/vif_override.xml3
l---------board/masterball1
-rw-r--r--board/max32660-eval/board.c24
-rw-r--r--board/max32660-eval/board.h49
-rw-r--r--board/max32660-eval/build.mk12
-rw-r--r--board/max32660-eval/ec.tasklist23
-rw-r--r--board/max32660-eval/gpio.inc19
-rw-r--r--board/mchpevb1/battery.c230
-rw-r--r--board/mchpevb1/board.c984
-rw-r--r--board/mchpevb1/board.h487
-rw-r--r--board/mchpevb1/build.mk19
-rw-r--r--board/mchpevb1/ec.tasklist18
-rw-r--r--board/mchpevb1/gpio.inc450
-rw-r--r--board/mchpevb1/led.c174
-rw-r--r--board/mchpevb1/lfw/vif_override.xml3
-rw-r--r--board/mchpevb1/usb_pd_policy.c61
-rw-r--r--board/meep/battery.c269
-rw-r--r--board/meep/board.c433
-rw-r--r--board/meep/board.h120
-rw-r--r--board/meep/build.mk15
-rw-r--r--board/meep/ec.tasklist25
-rw-r--r--board/meep/gpio.inc197
-rw-r--r--board/meep/led.c127
-rw-r--r--board/meep/vif_override.xml3
-rw-r--r--board/metaknight/battery.c68
-rw-r--r--board/metaknight/board.c906
-rw-r--r--board/metaknight/board.h191
-rw-r--r--board/metaknight/build.mk14
-rw-r--r--board/metaknight/cbi_ssfc.c36
-rw-r--r--board/metaknight/cbi_ssfc.h60
-rw-r--r--board/metaknight/ec.tasklist22
-rw-r--r--board/metaknight/gpio.inc152
-rw-r--r--board/metaknight/led.c81
-rw-r--r--board/metaknight/usb_pd_policy.c61
-rw-r--r--board/metaknight/vif_override.xml3
l---------board/minimuffin1
l---------board/moonball1
-rw-r--r--board/moonbuggy/board.c480
-rw-r--r--board/moonbuggy/board.h229
-rw-r--r--board/moonbuggy/build.mk15
-rw-r--r--board/moonbuggy/ec.tasklist15
-rw-r--r--board/moonbuggy/gpio.inc170
-rw-r--r--board/moonbuggy/led.c274
-rw-r--r--board/moonbuggy/pse.c266
-rw-r--r--board/morphius/analyzestack.yaml2
-rw-r--r--board/morphius/battery.c120
-rw-r--r--board/morphius/board.c890
-rw-r--r--board/morphius/board.h223
-rw-r--r--board/morphius/build.mk15
-rw-r--r--board/morphius/ec.tasklist26
-rw-r--r--board/morphius/gpio.inc175
-rw-r--r--board/morphius/led.c248
-rw-r--r--board/morphius/thermal.c522
-rw-r--r--board/morphius/vif_override.xml3
-rw-r--r--board/mrbland/base_detect.c234
-rw-r--r--board/mrbland/battery.c126
-rw-r--r--board/mrbland/board.c650
-rw-r--r--board/mrbland/board.h123
-rw-r--r--board/mrbland/build.mk14
-rw-r--r--board/mrbland/ec.tasklist19
-rw-r--r--board/mrbland/gpio.inc195
-rw-r--r--board/mrbland/led.c220
-rw-r--r--board/mrbland/vif_override.xml3
-rw-r--r--board/munna/battery.c104
-rw-r--r--board/munna/board.c595
-rw-r--r--board/munna/board.h190
-rw-r--r--board/munna/build.mk15
-rw-r--r--board/munna/ec.tasklist20
-rw-r--r--board/munna/gpio.inc120
-rw-r--r--board/munna/led.c115
-rw-r--r--board/munna/vif_override.xml3
-rw-r--r--board/mushu/battery.c92
-rw-r--r--board/mushu/board.c562
-rw-r--r--board/mushu/board.h226
-rw-r--r--board/mushu/build.mk15
-rw-r--r--board/mushu/ec.tasklist26
-rw-r--r--board/mushu/gpio.inc135
-rw-r--r--board/mushu/led.c80
-rw-r--r--board/mushu/thermal.c64
-rw-r--r--board/mushu/vif_override.xml3
-rw-r--r--board/nami/battery.c424
-rw-r--r--board/nami/board.c1133
-rw-r--r--board/nami/board.h329
-rw-r--r--board/nami/build.mk15
-rw-r--r--board/nami/ec.tasklist25
-rw-r--r--board/nami/gpio.inc120
-rw-r--r--board/nami/led.c613
-rw-r--r--board/nami/usb_pd_policy.c114
-rw-r--r--board/nami/vif_override.xml3
l---------board/nami_fp1
-rw-r--r--board/nautilus/analyzestack.yaml211
-rw-r--r--board/nautilus/battery.c224
-rw-r--r--board/nautilus/board.c781
-rw-r--r--board/nautilus/board.h247
-rw-r--r--board/nautilus/build.mk15
-rw-r--r--board/nautilus/ec.tasklist24
-rw-r--r--board/nautilus/gpio.inc125
-rw-r--r--board/nautilus/led.c136
-rw-r--r--board/nautilus/usb_pd_policy.c145
-rw-r--r--board/nautilus/vif_override.xml3
-rw-r--r--board/nightfury/battery.c136
-rw-r--r--board/nightfury/board.c441
-rw-r--r--board/nightfury/board.h203
-rw-r--r--board/nightfury/build.mk15
-rw-r--r--board/nightfury/ec.tasklist26
-rw-r--r--board/nightfury/gpio.inc162
-rw-r--r--board/nightfury/led.c130
-rw-r--r--board/nightfury/vif_override.xml3
-rw-r--r--board/nipperkin/battery.c92
-rw-r--r--board/nipperkin/board.c339
-rw-r--r--board/nipperkin/board.h71
-rw-r--r--board/nipperkin/board_fw_config.c30
-rw-r--r--board/nipperkin/board_fw_config.h35
-rw-r--r--board/nipperkin/build.mk12
-rw-r--r--board/nipperkin/ec.tasklist25
-rw-r--r--board/nipperkin/gpio.inc29
-rw-r--r--board/nipperkin/led.c204
-rw-r--r--board/nipperkin/vif_override.xml3
-rw-r--r--board/nocturne/base_detect.c393
-rw-r--r--board/nocturne/battery.c151
-rw-r--r--board/nocturne/board.c810
-rw-r--r--board/nocturne/board.h280
-rw-r--r--board/nocturne/build.mk13
-rw-r--r--board/nocturne/ec.tasklist21
-rw-r--r--board/nocturne/gpio.inc121
-rw-r--r--board/nocturne/led.c138
-rw-r--r--board/nocturne/usb_pd_policy.c113
-rw-r--r--board/nocturne/vif_override.xml3
-rw-r--r--board/nocturne_fp/OWNERS1
-rw-r--r--board/nocturne_fp/board.h194
-rw-r--r--board/nocturne_fp/board_ro.c77
-rw-r--r--board/nocturne_fp/board_rw.c134
-rw-r--r--board/nocturne_fp/board_rw.h14
-rw-r--r--board/nocturne_fp/build.mk52
-rw-r--r--board/nocturne_fp/dev_key.pem39
-rw-r--r--board/nocturne_fp/ec.tasklist14
-rw-r--r--board/nocturne_fp/fpsensor_detect.c11
-rw-r--r--board/nocturne_fp/fpsensor_detect_rw.c34
-rw-r--r--board/nocturne_fp/gpio.inc29
-rw-r--r--board/nocturne_fp/gpio_rw.inc45
-rw-r--r--board/nocturne_fp/ro_workarounds.c115
-rw-r--r--board/npcx7_evb/board.c122
-rw-r--r--board/npcx7_evb/board.h147
-rw-r--r--board/npcx7_evb/build.mk24
-rw-r--r--board/npcx7_evb/ec.tasklist14
-rw-r--r--board/npcx7_evb/gpio.inc114
-rw-r--r--board/npcx9_evb/board.c136
-rw-r--r--board/npcx9_evb/board.h125
-rw-r--r--board/npcx9_evb/build.mk18
-rw-r--r--board/npcx9_evb/ec.tasklist14
-rw-r--r--board/npcx9_evb/gpio.inc112
-rw-r--r--board/npcx_evb/board.c139
-rw-r--r--board/npcx_evb/board.h100
-rw-r--r--board/npcx_evb/build.mk15
-rw-r--r--board/npcx_evb/ec.tasklist14
-rw-r--r--board/npcx_evb/gpio.inc99
-rw-r--r--board/npcx_evb_arm/board.c110
-rw-r--r--board/npcx_evb_arm/board.h93
-rw-r--r--board/npcx_evb_arm/build.mk15
-rw-r--r--board/npcx_evb_arm/ec.tasklist13
-rw-r--r--board/npcx_evb_arm/gpio.inc92
-rw-r--r--board/nucleo-dartmonkey/board.c106
-rw-r--r--board/nucleo-dartmonkey/board.h59
-rw-r--r--board/nucleo-dartmonkey/build.mk37
-rw-r--r--board/nucleo-dartmonkey/dev_key.pem39
-rw-r--r--board/nucleo-dartmonkey/ec.tasklist12
-rw-r--r--board/nucleo-dartmonkey/fpsensor_detect.c16
-rw-r--r--board/nucleo-dartmonkey/gpio.inc28
l---------board/nucleo-dartmonkey/openocd-flash.cfg1
l---------board/nucleo-dartmonkey/openocd.cfg1
-rw-r--r--board/nucleo-f072rb/board.c56
-rw-r--r--board/nucleo-f072rb/board.h47
-rw-r--r--board/nucleo-f072rb/build.mk13
-rw-r--r--board/nucleo-f072rb/ec.tasklist11
-rw-r--r--board/nucleo-f072rb/gpio.inc47
-rw-r--r--board/nucleo-f072rb/openocd-flash.cfg19
-rw-r--r--board/nucleo-f411re/board.c124
-rw-r--r--board/nucleo-f411re/board.h78
-rw-r--r--board/nucleo-f411re/build.mk12
-rw-r--r--board/nucleo-f411re/ec.tasklist13
-rw-r--r--board/nucleo-f411re/gpio.inc31
-rw-r--r--board/nucleo-f411re/openocd-flash.cfg19
-rw-r--r--board/nucleo-f412zg/README.md83
-rw-r--r--board/nucleo-f412zg/board.c69
-rw-r--r--board/nucleo-f412zg/board.h31
-rw-r--r--board/nucleo-f412zg/build.mk35
-rw-r--r--board/nucleo-f412zg/dev_key.pem39
-rw-r--r--board/nucleo-f412zg/ec.tasklist13
-rw-r--r--board/nucleo-f412zg/gpio.inc11
l---------board/nucleo-f412zg/openocd-flash.cfg1
l---------board/nucleo-f412zg/openocd.cfg1
-rw-r--r--board/nucleo-g431rb/board.c34
-rw-r--r--board/nucleo-g431rb/board.h72
-rw-r--r--board/nucleo-g431rb/build.mk13
-rw-r--r--board/nucleo-g431rb/ec.tasklist12
-rw-r--r--board/nucleo-g431rb/gpio.inc21
-rw-r--r--board/nucleo-h743zi/README.md83
-rw-r--r--board/nucleo-h743zi/board.c69
-rw-r--r--board/nucleo-h743zi/board.h33
-rw-r--r--board/nucleo-h743zi/build.mk34
-rw-r--r--board/nucleo-h743zi/dev_key.pem39
-rw-r--r--board/nucleo-h743zi/ec.tasklist11
-rw-r--r--board/nucleo-h743zi/gpio.inc18
l---------board/nucleo-h743zi/openocd-flash.cfg1
l---------board/nucleo-h743zi/openocd.cfg1
l---------board/nuwani/analyzestack.yaml1
-rw-r--r--board/nuwani/battery.c209
-rw-r--r--board/nuwani/board.c189
-rw-r--r--board/nuwani/board.h77
-rw-r--r--board/nuwani/build.mk15
-rw-r--r--board/nuwani/ec.tasklist25
-rw-r--r--board/nuwani/gpio.inc119
-rw-r--r--board/nuwani/led.c109
-rw-r--r--board/nuwani/vif_override.xml3
-rw-r--r--board/oak/battery.c72
-rw-r--r--board/oak/board.c732
-rw-r--r--board/oak/board.h263
-rw-r--r--board/oak/board_revs.h26
-rw-r--r--board/oak/build.mk14
-rw-r--r--board/oak/ec.tasklist46
-rw-r--r--board/oak/gpio.inc214
-rw-r--r--board/oak/led.c266
-rw-r--r--board/oak/usb_pd_policy.c106
-rw-r--r--board/oak/vif_override.xml3
-rw-r--r--board/palkia/battery.c65
-rw-r--r--board/palkia/board.c279
-rw-r--r--board/palkia/board.h130
-rw-r--r--board/palkia/build.mk16
-rw-r--r--board/palkia/ec.tasklist22
-rw-r--r--board/palkia/gpio.inc119
-rw-r--r--board/palkia/keyboard_customization.c112
-rw-r--r--board/palkia/keyboard_customization.h73
-rw-r--r--board/palkia/led.c108
-rw-r--r--board/palkia/vif_override.xml3
-rw-r--r--board/pazquel/battery.c43
-rw-r--r--board/pazquel/board.c616
-rw-r--r--board/pazquel/board.h111
-rw-r--r--board/pazquel/build.mk16
-rw-r--r--board/pazquel/ec.tasklist23
-rw-r--r--board/pazquel/gpio.inc187
-rw-r--r--board/pazquel/led.c154
-rw-r--r--board/pazquel/vif_override.xml3
-rw-r--r--board/pdeval-stm32f072/PD_evaluation.md177
-rw-r--r--board/pdeval-stm32f072/board.c80
-rw-r--r--board/pdeval-stm32f072/board.h106
-rw-r--r--board/pdeval-stm32f072/build.mk13
-rw-r--r--board/pdeval-stm32f072/ec.tasklist13
-rw-r--r--board/pdeval-stm32f072/gpio.inc36
-rw-r--r--board/pdeval-stm32f072/openocd-flash.cfg19
-rw-r--r--board/pdeval-stm32f072/usb_pd_policy.c296
-rw-r--r--board/pdeval-stm32f072/vif_override.xml3
-rw-r--r--board/phaser/battery.c146
-rw-r--r--board/phaser/board.c358
-rw-r--r--board/phaser/board.h97
-rw-r--r--board/phaser/build.mk15
-rw-r--r--board/phaser/ec.tasklist25
-rw-r--r--board/phaser/gpio.inc199
-rw-r--r--board/phaser/led.c113
-rw-r--r--board/phaser/vif_override.xml3
-rw-r--r--board/pico/battery.c189
-rw-r--r--board/pico/board.c414
-rw-r--r--board/pico/board.h155
-rw-r--r--board/pico/build.mk15
-rw-r--r--board/pico/ec.tasklist18
-rw-r--r--board/pico/gpio.inc150
-rw-r--r--board/pico/led.c80
-rw-r--r--board/pico/vif_override.xml3
-rw-r--r--board/pirika/battery.c94
-rw-r--r--board/pirika/board.c766
-rw-r--r--board/pirika/board.h144
-rw-r--r--board/pirika/build.mk15
-rw-r--r--board/pirika/cbi_ssfc.c36
-rw-r--r--board/pirika/cbi_ssfc.h60
-rw-r--r--board/pirika/ec.tasklist25
-rw-r--r--board/pirika/gpio.inc145
-rw-r--r--board/pirika/led.c97
-rw-r--r--board/pirika/usb_pd_policy.c62
-rw-r--r--board/pirika/vif_override.xml3
-rw-r--r--board/plankton/board.c798
-rw-r--r--board/plankton/board.h114
-rw-r--r--board/plankton/build.mk14
-rw-r--r--board/plankton/ec.tasklist12
-rw-r--r--board/plankton/gpio.inc78
-rw-r--r--board/plankton/usb_pd_config.h158
-rw-r--r--board/plankton/usb_pd_policy.c291
-rw-r--r--board/plankton/vif_override.xml3
-rw-r--r--board/polyberry/board.c87
-rw-r--r--board/polyberry/board.h91
-rw-r--r--board/polyberry/build.mk12
-rw-r--r--board/polyberry/ec.tasklist11
-rw-r--r--board/polyberry/gpio.inc82
-rw-r--r--board/pompom/battery.c41
-rw-r--r--board/pompom/board.c644
-rw-r--r--board/pompom/board.h108
-rw-r--r--board/pompom/board_revs.h23
-rw-r--r--board/pompom/build.mk14
-rw-r--r--board/pompom/ec.tasklist20
-rw-r--r--board/pompom/gpio.inc183
-rw-r--r--board/pompom/led.c187
-rw-r--r--board/pompom/vif_override.xml3
-rw-r--r--board/poppy/analyzestack.yaml230
-rw-r--r--board/poppy/base_detect_lux.c237
-rw-r--r--board/poppy/base_detect_poppy.c262
-rw-r--r--board/poppy/battery.c226
-rw-r--r--board/poppy/board.c894
-rw-r--r--board/poppy/board.h264
-rw-r--r--board/poppy/build.mk18
-rw-r--r--board/poppy/ec.tasklist22
-rw-r--r--board/poppy/gpio.inc174
-rw-r--r--board/poppy/led.c165
-rw-r--r--board/poppy/usb_pd_policy.c145
-rw-r--r--board/poppy/vif_override.xml3
-rw-r--r--board/primus/battery.c124
-rw-r--r--board/primus/board.c134
-rw-r--r--board/primus/board.h212
-rw-r--r--board/primus/build.mk26
l---------board/primus/charger.c1
-rw-r--r--board/primus/ec.tasklist29
-rw-r--r--board/primus/fans.c88
-rw-r--r--board/primus/fw_config.c60
-rw-r--r--board/primus/fw_config.h54
-rw-r--r--board/primus/gpio.inc138
-rw-r--r--board/primus/i2c.c76
-rw-r--r--board/primus/keyboard.c52
-rw-r--r--board/primus/led.c237
-rw-r--r--board/primus/ps2.c19
-rw-r--r--board/primus/pwm.c72
-rw-r--r--board/primus/sensors.c154
-rw-r--r--board/primus/usbc_config.c290
-rw-r--r--board/primus/usbc_config.h21
-rw-r--r--board/primus/vif_override.xml3
-rw-r--r--board/puff/board.c937
-rw-r--r--board/puff/board.h289
-rw-r--r--board/puff/build.mk15
-rw-r--r--board/puff/ec.tasklist17
-rw-r--r--board/puff/gpio.inc169
-rw-r--r--board/puff/led.c265
-rw-r--r--board/puff/usb_pd_policy.c84
-rw-r--r--board/puff/vif_override.xml3
-rw-r--r--board/quiche/board.c419
-rw-r--r--board/quiche/board.h101
-rw-r--r--board/quiche/build.mk14
-rw-r--r--board/quiche/dev_key.pem39
-rw-r--r--board/quiche/ec.tasklist18
-rw-r--r--board/quiche/gpio.inc100
-rw-r--r--board/rainier/board.c438
-rw-r--r--board/rainier/board.h176
-rw-r--r--board/rainier/build.mk14
-rw-r--r--board/rainier/ec.tasklist17
-rw-r--r--board/rainier/gpio.inc93
-rw-r--r--board/rainier/usb_pd_policy.c66
-rw-r--r--board/rainier/vif_override.xml3
-rw-r--r--board/rammus/battery.c130
-rw-r--r--board/rammus/board.c837
-rw-r--r--board/rammus/board.h282
-rw-r--r--board/rammus/build.mk15
-rw-r--r--board/rammus/cbi_ssfc.c36
-rw-r--r--board/rammus/cbi_ssfc.h56
-rw-r--r--board/rammus/ec.tasklist25
-rw-r--r--board/rammus/gpio.inc125
-rw-r--r--board/rammus/led.c180
-rw-r--r--board/rammus/usb_pd_policy.c115
-rw-r--r--board/rammus/vif_override.xml3
-rw-r--r--board/redrix/battery.c66
-rw-r--r--board/redrix/board.c85
-rw-r--r--board/redrix/board.h254
-rw-r--r--board/redrix/build.mk26
l---------board/redrix/charger.c1
-rw-r--r--board/redrix/ec.tasklist30
-rw-r--r--board/redrix/fans.c67
-rw-r--r--board/redrix/fw_config.c55
-rw-r--r--board/redrix/fw_config.h55
-rw-r--r--board/redrix/gpio.inc152
-rw-r--r--board/redrix/i2c.c78
-rw-r--r--board/redrix/keyboard.c75
-rw-r--r--board/redrix/led.c244
-rw-r--r--board/redrix/pwm.c36
-rw-r--r--board/redrix/sensors.c355
-rw-r--r--board/redrix/thermal.c215
-rw-r--r--board/redrix/usbc_config.c299
-rw-r--r--board/redrix/usbc_config.h19
-rw-r--r--board/redrix/vif_override.xml3
-rw-r--r--board/reef/battery.c692
-rw-r--r--board/reef/board.c932
-rw-r--r--board/reef/board.h313
-rw-r--r--board/reef/build.mk14
-rw-r--r--board/reef/ec.tasklist26
-rw-r--r--board/reef/gpio.inc177
-rw-r--r--board/reef/led.c155
-rw-r--r--board/reef/usb_pd_policy.c107
-rw-r--r--board/reef/vif_override.xml3
-rw-r--r--board/reef_it8320/battery.c692
-rw-r--r--board/reef_it8320/board.c494
-rw-r--r--board/reef_it8320/board.h219
-rw-r--r--board/reef_it8320/build.mk15
-rw-r--r--board/reef_it8320/ec.tasklist22
-rw-r--r--board/reef_it8320/gpio.inc124
-rw-r--r--board/reef_it8320/led.c156
-rw-r--r--board/reef_it8320/usb_pd_policy.c94
-rw-r--r--board/reef_it8320/vif_override.xml3
-rw-r--r--board/reef_mchp/battery.c700
-rw-r--r--board/reef_mchp/board.c1172
-rw-r--r--board/reef_mchp/board.h328
-rw-r--r--board/reef_mchp/build.mk16
-rw-r--r--board/reef_mchp/ec.tasklist34
-rw-r--r--board/reef_mchp/gpio.inc311
-rw-r--r--board/reef_mchp/led.c157
-rw-r--r--board/reef_mchp/lfw/vif_override.xml3
-rw-r--r--board/reef_mchp/usb_pd_policy.c109
-rw-r--r--board/reef_mchp/vif_override.xml3
-rw-r--r--board/sasuke/battery.c172
-rw-r--r--board/sasuke/board.c789
-rw-r--r--board/sasuke/board.h167
-rw-r--r--board/sasuke/build.mk14
-rw-r--r--board/sasuke/cbi_ssfc.c41
-rw-r--r--board/sasuke/cbi_ssfc.h77
-rw-r--r--board/sasuke/ec.tasklist24
-rw-r--r--board/sasuke/gpio.inc142
-rw-r--r--board/sasuke/led.c131
-rw-r--r--board/sasuke/usb_pd_policy.c61
-rw-r--r--board/sasuke/vif_override.xml3
-rw-r--r--board/sasukette/battery.c177
-rw-r--r--board/sasukette/board.c375
-rw-r--r--board/sasukette/board.h95
-rw-r--r--board/sasukette/build.mk15
-rw-r--r--board/sasukette/cbi_ssfc.c36
-rw-r--r--board/sasukette/cbi_ssfc.h60
-rw-r--r--board/sasukette/ec.tasklist21
-rw-r--r--board/sasukette/gpio.inc139
-rw-r--r--board/sasukette/led.c132
-rw-r--r--board/sasukette/usb_pd_policy.c62
-rw-r--r--board/sasukette/vif_override.xml3
-rw-r--r--board/scarlet/battery.c301
-rw-r--r--board/scarlet/board.c459
-rw-r--r--board/scarlet/board.h229
-rw-r--r--board/scarlet/build.mk14
-rw-r--r--board/scarlet/ec.tasklist19
-rw-r--r--board/scarlet/gpio.inc102
-rw-r--r--board/scarlet/led.c144
-rw-r--r--board/scarlet/usb_pd_policy.c71
-rw-r--r--board/scarlet/vif_override.xml3
-rw-r--r--board/scout/board.c556
-rw-r--r--board/scout/board.h233
-rw-r--r--board/scout/build.mk14
-rw-r--r--board/scout/ec.tasklist15
-rw-r--r--board/scout/gpio.inc173
-rw-r--r--board/scout/led.c274
-rw-r--r--board/servo_micro/board.c450
-rw-r--r--board/servo_micro/board.h134
-rw-r--r--board/servo_micro/build.mk13
-rw-r--r--board/servo_micro/ccd.md168
-rw-r--r--board/servo_micro/ec.tasklist11
-rw-r--r--board/servo_micro/gpio.inc75
-rw-r--r--board/servo_micro/servo_micro.pngbin33724 -> 0 bytes
-rw-r--r--board/servo_micro/servo_micro_sch_20180404.pdfbin123116 -> 0 bytes
-rw-r--r--board/servo_v4/board.c576
-rw-r--r--board/servo_v4/board.h277
-rw-r--r--board/servo_v4/build.mk19
-rw-r--r--board/servo_v4/ec.tasklist13
-rw-r--r--board/servo_v4/gpio.inc81
-rw-r--r--board/servo_v4/usb_pd_config.h288
-rw-r--r--board/servo_v4/usb_pd_policy.c1419
-rw-r--r--board/servo_v4/vif_override.xml3
-rw-r--r--board/servo_v4p1/board.c538
-rw-r--r--board/servo_v4p1/board.h372
-rw-r--r--board/servo_v4p1/build.mk32
-rw-r--r--board/servo_v4p1/ccd_measure_sbu.c131
-rw-r--r--board/servo_v4p1/ccd_measure_sbu.h22
-rw-r--r--board/servo_v4p1/chg_control.c80
-rw-r--r--board/servo_v4p1/chg_control.h42
-rw-r--r--board/servo_v4p1/dacs.c140
-rw-r--r--board/servo_v4p1/dacs.h37
-rw-r--r--board/servo_v4p1/ec.tasklist14
-rw-r--r--board/servo_v4p1/fusb302b.c219
-rw-r--r--board/servo_v4p1/fusb302b.h236
-rw-r--r--board/servo_v4p1/gpio.inc127
-rw-r--r--board/servo_v4p1/ina231s.c69
-rw-r--r--board/servo_v4p1/ina231s.h59
-rw-r--r--board/servo_v4p1/ioexpanders.c317
-rw-r--r--board/servo_v4p1/ioexpanders.h318
-rw-r--r--board/servo_v4p1/pathsel.c76
-rw-r--r--board/servo_v4p1/pathsel.h44
-rw-r--r--board/servo_v4p1/pi3usb9201.c34
-rw-r--r--board/servo_v4p1/pi3usb9201.h59
-rw-r--r--board/servo_v4p1/usb_pd_config.h283
-rw-r--r--board/servo_v4p1/usb_pd_policy.c1516
-rw-r--r--board/servo_v4p1/usb_sm.c193
-rw-r--r--board/servo_v4p1/usb_tc_snk_sm.c291
-rw-r--r--board/shuboz/analyzestack.yaml2
-rw-r--r--board/shuboz/battery.c154
-rw-r--r--board/shuboz/board.c629
-rw-r--r--board/shuboz/board.h182
-rw-r--r--board/shuboz/build.mk15
-rw-r--r--board/shuboz/ec.tasklist26
-rw-r--r--board/shuboz/gpio.inc134
-rw-r--r--board/shuboz/led.c94
-rw-r--r--board/shuboz/vif_override.xml3
l---------board/soraka1
-rw-r--r--board/spherion/battery.c111
-rw-r--r--board/spherion/board.c125
-rw-r--r--board/spherion/board.h101
-rw-r--r--board/spherion/build.mk14
-rw-r--r--board/spherion/ec.tasklist21
-rw-r--r--board/spherion/gpio.inc149
-rw-r--r--board/spherion/led.c82
-rw-r--r--board/spherion/vif_override.xml3
l---------board/staff1
l---------board/star1
-rw-r--r--board/stern/battery.c46
-rw-r--r--board/stern/board.c455
-rw-r--r--board/stern/board.h146
-rw-r--r--board/stern/build.mk15
-rw-r--r--board/stern/ec.tasklist20
-rw-r--r--board/stern/gpio.inc115
-rw-r--r--board/stern/led.c107
-rw-r--r--board/stern/vif_override.xml3
-rw-r--r--board/stm32f446e-eval/board.c91
-rw-r--r--board/stm32f446e-eval/board.h88
-rw-r--r--board/stm32f446e-eval/build.mk12
-rw-r--r--board/stm32f446e-eval/ec.tasklist11
-rw-r--r--board/stm32f446e-eval/gpio.inc62
-rw-r--r--board/stm32l476g-eval/board.c39
-rw-r--r--board/stm32l476g-eval/board.h73
-rw-r--r--board/stm32l476g-eval/build.mk12
-rw-r--r--board/stm32l476g-eval/ec.tasklist12
-rw-r--r--board/stm32l476g-eval/gpio.inc43
-rw-r--r--board/stm32l476g-eval/openocd-flash.cfg19
-rw-r--r--board/storo/battery.c68
-rw-r--r--board/storo/board.c897
-rw-r--r--board/storo/board.h147
-rw-r--r--board/storo/build.mk15
-rw-r--r--board/storo/cbi_ssfc.c36
-rw-r--r--board/storo/cbi_ssfc.h60
-rw-r--r--board/storo/ec.tasklist25
-rw-r--r--board/storo/gpio.inc141
-rw-r--r--board/storo/led.c99
-rw-r--r--board/storo/usb_pd_policy.c62
-rw-r--r--board/storo/vif_override.xml3
-rw-r--r--board/stryke/battery.c93
-rw-r--r--board/stryke/board.c416
-rw-r--r--board/stryke/board.h168
-rw-r--r--board/stryke/build.mk15
-rw-r--r--board/stryke/ec.tasklist26
-rw-r--r--board/stryke/gpio.inc144
-rw-r--r--board/stryke/led.c80
-rw-r--r--board/stryke/vif_override.xml3
-rw-r--r--board/sweetberry/board.c126
-rw-r--r--board/sweetberry/board.h109
-rw-r--r--board/sweetberry/build.mk12
-rw-r--r--board/sweetberry/ec.tasklist11
-rw-r--r--board/sweetberry/gpio.inc94
-rw-r--r--board/taeko/battery.c103
-rw-r--r--board/taeko/board.c113
-rw-r--r--board/taeko/board.h234
-rw-r--r--board/taeko/build.mk25
l---------board/taeko/charger.c1
-rw-r--r--board/taeko/ec.tasklist29
-rw-r--r--board/taeko/fans.c88
-rw-r--r--board/taeko/fw_config.c65
-rw-r--r--board/taeko/fw_config.h62
-rw-r--r--board/taeko/gpio.inc141
-rw-r--r--board/taeko/i2c.c70
-rw-r--r--board/taeko/keyboard.c25
-rw-r--r--board/taeko/led.c119
-rw-r--r--board/taeko/pwm.c39
-rw-r--r--board/taeko/sensors.c357
-rw-r--r--board/taeko/usbc_config.c276
-rw-r--r--board/taeko/usbc_config.h22
-rw-r--r--board/taeko/vif_override.xml3
-rw-r--r--board/terrador/battery.c96
-rw-r--r--board/terrador/board.c420
-rw-r--r--board/terrador/board.h187
-rw-r--r--board/terrador/build.mk17
-rw-r--r--board/terrador/ec.tasklist26
-rw-r--r--board/terrador/gpio.inc172
-rw-r--r--board/terrador/led.c79
-rw-r--r--board/terrador/sensors.c226
-rw-r--r--board/terrador/vif_override.xml3
-rw-r--r--board/tglrvp_ish/board.c82
-rw-r--r--board/tglrvp_ish/board.h102
-rw-r--r--board/tglrvp_ish/build.mk13
-rw-r--r--board/tglrvp_ish/ec.tasklist17
-rw-r--r--board/tglrvp_ish/gpio.inc12
-rw-r--r--board/tglrvpu_ite/battery.c77
-rw-r--r--board/tglrvpu_ite/board.c272
-rw-r--r--board/tglrvpu_ite/board.h121
-rw-r--r--board/tglrvpu_ite/build.mk16
-rw-r--r--board/tglrvpu_ite/ec.tasklist24
-rw-r--r--board/tglrvpu_ite/gpio.inc209
-rw-r--r--board/tglrvpu_ite/vif_override.xml3
l---------board/tglrvpu_ite_tcpmv11
l---------board/tglrvpy_ite1
l---------board/tglrvpy_ite_tcpmv11
-rw-r--r--board/tigertail/board.c514
-rw-r--r--board/tigertail/board.h140
-rw-r--r--board/tigertail/build.mk13
-rw-r--r--board/tigertail/ec.tasklist11
-rw-r--r--board/tigertail/gpio.inc65
-rw-r--r--board/todor/battery.c96
-rw-r--r--board/todor/board.c440
-rw-r--r--board/todor/board.h181
-rw-r--r--board/todor/build.mk17
-rw-r--r--board/todor/ec.tasklist26
-rw-r--r--board/todor/gpio.inc170
-rw-r--r--board/todor/led.c77
-rw-r--r--board/todor/sensors.c226
-rw-r--r--board/todor/vif_override.xml3
l---------board/tomato1
l---------board/treeya/analyzestack.yaml1
-rw-r--r--board/treeya/battery.c209
-rw-r--r--board/treeya/board.c189
-rw-r--r--board/treeya/board.h77
-rw-r--r--board/treeya/build.mk15
-rw-r--r--board/treeya/ec.tasklist25
-rw-r--r--board/treeya/gpio.inc119
-rw-r--r--board/treeya/led.c109
-rw-r--r--board/treeya/vif_override.xml3
l---------board/trembyle/analyzestack.yaml1
-rw-r--r--board/trembyle/battery.c65
-rw-r--r--board/trembyle/board.c530
-rw-r--r--board/trembyle/board.h218
-rw-r--r--board/trembyle/build.mk15
-rw-r--r--board/trembyle/ec.tasklist26
-rw-r--r--board/trembyle/gpio.inc141
-rw-r--r--board/trembyle/led.c71
-rw-r--r--board/trembyle/vif_override.xml3
-rw-r--r--board/trogdor/battery.c68
-rw-r--r--board/trogdor/board.c241
-rw-r--r--board/trogdor/board.h112
-rw-r--r--board/trogdor/build.mk19
-rw-r--r--board/trogdor/ec.tasklist23
-rw-r--r--board/trogdor/gpio.inc187
-rw-r--r--board/trogdor/hibernate.c18
-rw-r--r--board/trogdor/led.c163
-rw-r--r--board/trogdor/switchcap.c22
-rw-r--r--board/trogdor/usbc_config.c319
-rw-r--r--board/trogdor/usbc_config.h19
-rw-r--r--board/trogdor/vif_override.xml3
-rw-r--r--board/trondo/battery.c68
-rw-r--r--board/trondo/board.c450
-rw-r--r--board/trondo/board.h180
-rw-r--r--board/trondo/build.mk17
-rw-r--r--board/trondo/ec.tasklist26
-rw-r--r--board/trondo/gpio.inc160
-rw-r--r--board/trondo/led.c103
-rw-r--r--board/trondo/sensors.c229
-rw-r--r--board/trondo/vif_override.xml3
-rw-r--r--board/twinkie/board.c81
-rw-r--r--board/twinkie/board.h149
-rw-r--r--board/twinkie/build.mk14
-rw-r--r--board/twinkie/ec.tasklist13
-rw-r--r--board/twinkie/gpio.inc50
-rw-r--r--board/twinkie/injector.c603
-rw-r--r--board/twinkie/injector.h88
-rw-r--r--board/twinkie/simpletrace.c287
-rw-r--r--board/twinkie/sniffer.c402
-rw-r--r--board/twinkie/usb_pd_config.h180
-rw-r--r--board/twinkie/usb_pd_policy.c91
-rw-r--r--board/twinkie/vif_override.xml3
-rw-r--r--board/vilboz/analyzestack.yaml2
-rw-r--r--board/vilboz/battery.c457
-rw-r--r--board/vilboz/board.c527
-rw-r--r--board/vilboz/board.h168
-rw-r--r--board/vilboz/build.mk15
-rw-r--r--board/vilboz/ec.tasklist23
-rw-r--r--board/vilboz/gpio.inc126
-rw-r--r--board/vilboz/led.c113
-rw-r--r--board/vilboz/vif_override.xml3
-rw-r--r--board/voema/battery.c96
-rw-r--r--board/voema/board.c432
-rw-r--r--board/voema/board.h201
-rw-r--r--board/voema/build.mk24
-rw-r--r--board/voema/ec.tasklist26
-rw-r--r--board/voema/gpio.inc184
-rw-r--r--board/voema/led.c80
-rw-r--r--board/voema/sensors.c319
-rw-r--r--board/voema/vif_override.xml3
l---------board/voema_npcx796fc1
-rw-r--r--board/volet/battery.c125
-rw-r--r--board/volet/board.c497
-rw-r--r--board/volet/board.h197
-rw-r--r--board/volet/build.mk17
-rw-r--r--board/volet/ec.tasklist26
-rw-r--r--board/volet/gpio.inc184
-rw-r--r--board/volet/led.c79
-rw-r--r--board/volet/sensors.c247
-rw-r--r--board/volet/vif_override.xml158
-rw-r--r--board/volteer/battery.c68
-rw-r--r--board/volteer/board.c247
-rw-r--r--board/volteer/board.h210
-rw-r--r--board/volteer/build.mk25
-rw-r--r--board/volteer/cbi.c27
-rw-r--r--board/volteer/ec.tasklist26
-rw-r--r--board/volteer/gpio.inc188
-rw-r--r--board/volteer/led.c114
-rw-r--r--board/volteer/sensors.c225
-rw-r--r--board/volteer/usbc_config.c388
-rw-r--r--board/volteer/usbc_config.h20
-rw-r--r--board/volteer/vif_override.xml114
l---------board/volteer_apmodeentry1
-rw-r--r--board/volteer_ish/board.c77
-rw-r--r--board/volteer_ish/board.h98
-rw-r--r--board/volteer_ish/build.mk13
-rw-r--r--board/volteer_ish/ec.tasklist17
-rw-r--r--board/volteer_ish/gpio.inc12
l---------board/volteer_npcx797fc1
-rw-r--r--board/voxel/battery.c125
-rw-r--r--board/voxel/board.c513
-rw-r--r--board/voxel/board.h200
-rw-r--r--board/voxel/build.mk17
-rw-r--r--board/voxel/ec.tasklist26
-rw-r--r--board/voxel/gpio.inc186
-rw-r--r--board/voxel/led.c79
-rw-r--r--board/voxel/sensors.c247
-rw-r--r--board/voxel/vif_override.xml158
l---------board/voxel_ecmodeentry1
l---------board/voxel_npcx797fc1
-rw-r--r--board/waddledee/battery.c329
-rw-r--r--board/waddledee/board.c585
-rw-r--r--board/waddledee/board.h147
-rw-r--r--board/waddledee/build.mk15
-rw-r--r--board/waddledee/cbi_ssfc.c36
-rw-r--r--board/waddledee/cbi_ssfc.h60
-rw-r--r--board/waddledee/ec.tasklist24
-rw-r--r--board/waddledee/gpio.inc138
-rw-r--r--board/waddledee/led.c82
-rw-r--r--board/waddledee/usb_pd_policy.c85
-rw-r--r--board/waddledee/vif_override.xml3
-rw-r--r--board/waddledoo/battery.c66
-rw-r--r--board/waddledoo/board.c681
-rw-r--r--board/waddledoo/board.h189
-rw-r--r--board/waddledoo/build.mk14
-rw-r--r--board/waddledoo/cbi_ssfc.c36
-rw-r--r--board/waddledoo/cbi_ssfc.h60
-rw-r--r--board/waddledoo/ec.tasklist25
-rw-r--r--board/waddledoo/gpio.inc139
-rw-r--r--board/waddledoo/led.c70
-rw-r--r--board/waddledoo/usb_pd_policy.c61
-rw-r--r--board/waddledoo/vif_override.xml3
-rw-r--r--board/waddledoo2/battery.c128
-rw-r--r--board/waddledoo2/board.c851
-rw-r--r--board/waddledoo2/board.h182
-rw-r--r--board/waddledoo2/build.mk14
-rw-r--r--board/waddledoo2/cbi_ssfc.c36
-rw-r--r--board/waddledoo2/cbi_ssfc.h60
-rw-r--r--board/waddledoo2/ec.tasklist25
-rw-r--r--board/waddledoo2/gpio.inc145
-rw-r--r--board/waddledoo2/led.c79
-rw-r--r--board/waddledoo2/usb_pd_policy.c56
-rw-r--r--board/waddledoo2/vif_override.xml3
l---------board/wand1
-rw-r--r--board/wheelie/battery.c327
-rw-r--r--board/wheelie/board.c487
-rw-r--r--board/wheelie/board.h142
-rw-r--r--board/wheelie/build.mk15
-rw-r--r--board/wheelie/cbi_ssfc.c36
-rw-r--r--board/wheelie/cbi_ssfc.h60
-rw-r--r--board/wheelie/ec.tasklist24
-rw-r--r--board/wheelie/gpio.inc142
-rw-r--r--board/wheelie/led.c82
-rw-r--r--board/wheelie/usb_pd_policy.c74
-rw-r--r--board/wheelie/vif_override.xml3
l---------board/whiskers1
-rw-r--r--board/willow/battery.c239
-rw-r--r--board/willow/board.c446
-rw-r--r--board/willow/board.h157
-rw-r--r--board/willow/build.mk15
-rw-r--r--board/willow/ec.tasklist20
-rw-r--r--board/willow/gpio.inc120
-rw-r--r--board/willow/led.c81
-rw-r--r--board/willow/vif_override.xml3
-rw-r--r--board/woomax/analyzestack.yaml2
-rw-r--r--board/woomax/battery.c65
-rw-r--r--board/woomax/board.c858
-rw-r--r--board/woomax/board.h216
-rw-r--r--board/woomax/build.mk15
-rw-r--r--board/woomax/ec.tasklist26
-rw-r--r--board/woomax/gpio.inc140
-rw-r--r--board/woomax/led.c106
-rw-r--r--board/woomax/thermal.c140
-rw-r--r--board/woomax/vif_override.xml3
-rw-r--r--board/wormdingler/base_detect.c234
-rw-r--r--board/wormdingler/battery.c97
-rw-r--r--board/wormdingler/board.c692
-rw-r--r--board/wormdingler/board.h118
-rw-r--r--board/wormdingler/build.mk14
-rw-r--r--board/wormdingler/ec.tasklist22
-rw-r--r--board/wormdingler/gpio.inc196
-rw-r--r--board/wormdingler/led.c164
-rw-r--r--board/wormdingler/vif_override.xml3
-rw-r--r--board/yorp/battery.c151
-rw-r--r--board/yorp/board.c240
-rw-r--r--board/yorp/board.h87
-rw-r--r--board/yorp/build.mk15
-rw-r--r--board/yorp/ec.tasklist25
-rw-r--r--board/yorp/gpio.inc193
-rw-r--r--board/yorp/led.c76
-rw-r--r--board/yorp/vif_override.xml3
l---------board/zed1
-rw-r--r--board/zinger/board.c106
-rw-r--r--board/zinger/board.h131
-rw-r--r--board/zinger/build.mk13
-rw-r--r--board/zinger/dev_key.pem27
-rw-r--r--board/zinger/ec.irqlist14
-rw-r--r--board/zinger/ec.tasklist9
-rw-r--r--board/zinger/hardware.c480
-rw-r--r--board/zinger/runtime.c293
-rw-r--r--board/zinger/usb_pd_config.h109
-rw-r--r--board/zinger/usb_pd_policy.c565
-rw-r--r--board/zinger/vif_override.xml3
1926 files changed, 0 insertions, 256288 deletions
diff --git a/board/adlrvpm_ite/board.c b/board/adlrvpm_ite/board.c
deleted file mode 120000
index ea1b98c873..0000000000
--- a/board/adlrvpm_ite/board.c
+++ /dev/null
@@ -1 +0,0 @@
-../adlrvpp_ite/board.c \ No newline at end of file
diff --git a/board/adlrvpm_ite/board.h b/board/adlrvpm_ite/board.h
deleted file mode 120000
index 2c75a3883c..0000000000
--- a/board/adlrvpm_ite/board.h
+++ /dev/null
@@ -1 +0,0 @@
-../adlrvpp_ite/board.h \ No newline at end of file
diff --git a/board/adlrvpm_ite/build.mk b/board/adlrvpm_ite/build.mk
deleted file mode 120000
index ceffb75d7e..0000000000
--- a/board/adlrvpm_ite/build.mk
+++ /dev/null
@@ -1 +0,0 @@
-../adlrvpp_ite/build.mk \ No newline at end of file
diff --git a/board/adlrvpm_ite/ec.tasklist b/board/adlrvpm_ite/ec.tasklist
deleted file mode 100644
index d593fbbf5f..0000000000
--- a/board/adlrvpm_ite/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * Intel ADL-M-RVP-ITE board-specific configuration.
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/adlrvpm_ite/gpio.inc b/board/adlrvpm_ite/gpio.inc
deleted file mode 120000
index 23611687c6..0000000000
--- a/board/adlrvpm_ite/gpio.inc
+++ /dev/null
@@ -1 +0,0 @@
-../adlrvpp_ite/gpio.inc \ No newline at end of file
diff --git a/board/adlrvpm_ite/vif_override.xml b/board/adlrvpm_ite/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/adlrvpm_ite/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/adlrvpp_ite/board.c b/board/adlrvpp_ite/board.c
deleted file mode 100644
index 835cdcb986..0000000000
--- a/board/adlrvpp_ite/board.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* 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.
- */
-
-/* Intel ADLRVP-ITE board-specific configuration */
-#include "button.h"
-#include "fan.h"
-#include "fusb302.h"
-#include "gpio.h"
-#include "i2c.h"
-#include "it83xx_pd.h"
-#include "lid_switch.h"
-#include "pca9675.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- [I2C_CHAN_FLASH] = {
- .name = "ec_flash",
- .port = IT83XX_I2C_CH_A,
- .kbps = 100,
- .scl = GPIO_EC_I2C_PROG_SCL,
- .sda = GPIO_EC_I2C_PROG_SDA,
- },
- [I2C_CHAN_BATT_CHG] = {
- .name = "batt_chg",
- .port = IT83XX_I2C_CH_B,
- .kbps = 100,
- .scl = GPIO_SMB_BS_CLK,
- .sda = GPIO_SMB_BS_DATA,
- },
- [I2C_CHAN_TYPEC_0] = {
- .name = "typec_0",
- .port = IT83XX_I2C_CH_C,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P0,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P0,
- },
- [I2C_CHAN_TYPEC_1] = {
- .name = "typec_1",
- .port = IT83XX_I2C_CH_F,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P2,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P2,
- },
-#if defined(HAS_TASK_PD_C2)
- [I2C_CHAN_TYPEC_2] = {
- .name = "typec_2",
- .port = IT83XX_I2C_CH_E,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P1,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P1,
- },
- [I2C_CHAN_TYPEC_3] = {
- .name = "typec_3",
- .port = IT83XX_I2C_CH_D,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P3,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P3,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_CHAN_COUNT);
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* USB-C TCPC Configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [TYPE_C_PORT_0] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so no i2c config needed */
- .drv = &it83xx_tcpm_drv,
- },
-#if defined(HAS_TASK_PD_C1)
- [TYPE_C_PORT_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_1,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-#if defined(HAS_TASK_PD_C2)
- [TYPE_C_PORT_2] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_2,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-#if defined(HAS_TASK_PD_C3)
- [TYPE_C_PORT_3] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_3,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT);
diff --git a/board/adlrvpp_ite/board.h b/board/adlrvpp_ite/board.h
deleted file mode 100644
index a5f5c445ad..0000000000
--- a/board/adlrvpp_ite/board.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* 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.
- */
-
-/* Intel ADL-P-RVP-ITE board-specific configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* ITE EC variant */
-#define VARIANT_INTELRVP_EC_IT8320
-
-#include "adlrvp.h"
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_BC_ACOK_EC
-#define GPIO_EC_INT_L GPIO_EC_PCH_MKBP_INT_ODL_EC
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW_EC
-#define GPIO_LID_OPEN GPIO_SMC_LID
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE_EC
-#define GPIO_PCH_WAKE_L GPIO_PCH_WAKE_N
-#define GPIO_PCH_PWRBTN_L GPIO_PM_PWRBTN_N_EC
-#define GPIO_PCH_RSMRST_L GPIO_PM_RSMRST_EC
-#define GPIO_PCH_SLP_S0_L GPIO_PCH_SLP_S0_N
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_R_L
-#define GPIO_PG_EC_DSW_PWROK GPIO_VCCPDSW_3P3_EC
-#define GPIO_POWER_BUTTON_L GPIO_MECH_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_RSMRST_PWRGD_EC
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_EC
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL_EC
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUME_UP
-#define GPIO_VOLUME_DOWN_L GPIO_VOL_DN_EC_R
-#define GPIO_DC_JACK_PRESENT GPIO_STD_ADP_PRSNT
-#define GPIO_ESPI_RESET_L GPIO_ESPI_RST_R
-#define GPIO_UART1_RX GPIO_UART_SERVO_TX_EC_RX
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_DET_EC
-#define GPIO_BAT_LED_RED_L GPIO_LED_1_L_EC
-#define GPIO_PWR_LED_WHITE_L GPIO_LED_2_L_EC
-#define GPIO_SLP_SUS_L GPIO_PM_SLP_SUS_EC
-#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_PWRGD_EC
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD_EC
-#define GPIO_PCH_DSW_PWROK GPIO_DSW_PWROK_EC
-#define GPIO_EN_PP3300_A GPIO_EC_DS3
-#define GMR_TABLET_MODE_GPIO_L GPIO_SLATE_MODE_INDICATION
-
-/* I2C ports & Configs */
-#define CONFIG_IT83XX_SMCLK2_ON_GPC7
-
-#define I2C_PORT_CHARGER IT83XX_I2C_CH_B
-
-/* Battery */
-#define I2C_PORT_BATTERY IT83XX_I2C_CH_B
-
-/* Board ID */
-#define I2C_PORT_PCA9555_BOARD_ID_GPIO IT83XX_I2C_CH_B
-
-/* Port 80 */
-#define I2C_PORT_PORT80 IT83XX_I2C_CH_B
-
-/* USB-C I2C */
-#define I2C_PORT_TYPEC_0 IT83XX_I2C_CH_C
-#define I2C_PORT_TYPEC_1 IT83XX_I2C_CH_F
-#if defined(HAS_TASK_PD_C2)
-#define I2C_PORT_TYPEC_2 IT83XX_I2C_CH_E
-#define I2C_PORT_TYPEC_3 IT83XX_I2C_CH_D
-#endif
-
-/* TCPC */
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1
-
-/* Config Fan */
-#define GPIO_FAN_POWER_EN GPIO_EC_THRM_SEN_PWRGATE_N
-#define GPIO_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD_EC
-
-/* Increase EC speed */
-#undef PLL_CLOCK
-#define PLL_CLOCK 96000000
-
-#ifndef __ASSEMBLER__
-
-enum adlrvp_i2c_channel {
- I2C_CHAN_FLASH,
- I2C_CHAN_BATT_CHG,
- I2C_CHAN_TYPEC_0,
- I2C_CHAN_TYPEC_1,
-#if defined(HAS_TASK_PD_C2)
- I2C_CHAN_TYPEC_2,
- I2C_CHAN_TYPEC_3,
-#endif
- I2C_CHAN_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/adlrvpp_ite/build.mk b/board/adlrvpp_ite/build.mk
deleted file mode 100644
index fe5f548324..0000000000
--- a/board/adlrvpp_ite/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Intel ADL-P-RVP-ITE board-specific configuration
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=intelrvp
-
-board-y=board.o
diff --git a/board/adlrvpp_ite/ec.tasklist b/board/adlrvpp_ite/ec.tasklist
deleted file mode 100644
index 5cb10b2907..0000000000
--- a/board/adlrvpp_ite/ec.tasklist
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * Intel ADL-P-RVP-ITE board-specific configuration.
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C2, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C3, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C2, pd_interrupt_handler_task, 2, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C3, pd_interrupt_handler_task, 3, ULTRA_TASK_STACK_SIZE)
diff --git a/board/adlrvpp_ite/gpio.inc b/board/adlrvpp_ite/gpio.inc
deleted file mode 100644
index f4db15c4d5..0000000000
--- a/board/adlrvpp_ite/gpio.inc
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Intel ADL-P-RVP-ITE board-specific configuration */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-#include "baseboard/intelrvp/adlrvp_ioex_gpio.inc"
-
-/* Power sequencing interrupts */
-GPIO_INT(ALL_SYS_PWRGD_EC, PIN(F, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_EC, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S0_N, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCPDSW_3P3_EC, PIN(I, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCST_PWRGD, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PM_SLP_SUS_EC, PIN(K, 2), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_R_L, PIN(F, 2), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_R_L, PIN(F, 3), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-
-/* Button interrupts */
-GPIO_INT(VOLUME_UP, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOL_DN_EC_R, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(SMC_LID, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(MECH_PWR_BTN_ODL, PIN(E, 4), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(I, 4), GPIO_INT_BOTH, switch_interrupt)
-
-/* DC Jack presence coming from +VADP_OUT */
-GPIO_INT(STD_ADP_PRSNT, PIN(J, 2), GPIO_INT_BOTH, board_dc_jack_interrupt) /* DC_JACK_PRESENT */
-
-GPIO_INT(BC_ACOK_EC, PIN(K, 3), GPIO_INT_BOTH, extpower_interrupt) /* AC Present */
-
-GPIO_INT(UART_SERVO_TX_EC_RX, PIN(B, 0), GPIO_INT_FALLING, uart_deepsleep_interrupt)
-
-/* USB-C interrupts */
-/* Using embedded TCPC for Port-0 */
-UNIMPLEMENTED(USBC_TCPC_ALRT_P0)
-GPIO(NC_USBC_TCPC_ALRT_P0, PIN(I, 7), GPIO_INPUT)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P0, PIN(J, 5), GPIO_INT_FALLING, ppc_interrupt)
-
-#if defined(HAS_TASK_PD_C1)
-GPIO_INT(USBC_TCPC_ALRT_P1, PIN(G, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P1, PIN(C, 4), GPIO_INT_FALLING, ppc_interrupt)
-#else
-GPIO(USBC_TCPC_ALRT_P1, PIN(G, 0), GPIO_INPUT)
-GPIO(USBC_TCPC_PPC_ALRT_P1, PIN(C, 4), GPIO_INPUT)
-#endif
-
-#if defined(HAS_TASK_PD_C2)
-GPIO_INT(USBC_TCPC_ALRT_P2, PIN(J, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P2, PIN(E, 5), GPIO_INT_FALLING, ppc_interrupt)
-#else
-GPIO(USBC_TCPC_ALRT_P2, PIN(J, 1), GPIO_INPUT)
-GPIO(USBC_TCPC_PPC_ALRT_P2, PIN(E, 5), GPIO_INPUT)
-#endif
-
-#if defined(HAS_TASK_PD_C3)
-GPIO_INT(USBC_TCPC_ALRT_P3, PIN(J, 3), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P3, PIN(E, 6), GPIO_INT_FALLING, ppc_interrupt)
-#else
-GPIO(USBC_TCPC_ALRT_P3, PIN(J, 3), GPIO_INPUT)
-GPIO(USBC_TCPC_PPC_ALRT_P3, PIN(E, 6), GPIO_INPUT)
-#endif
-
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO_INT(ESPI_RST_R, PIN(D, 2), GPIO_INPUT)
-#endif
-
-#ifdef CONFIG_HOSTCMD_ESPI
-/* enable 1.8v input of EC's espi_reset pin, and then this pin takes effect. */
-GPIO_INT(ESPI_RST_R, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt) /* eSPI_reset# */
-#endif
-
-/* Sensor Interrupts */
-GPIO_INT(SLATE_MODE_INDICATION, PIN(K, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, gmr_tablet_switch_isr)
-
-/* Power sequencing GPIOs */
-GPIO(SYS_RST_ODL_EC, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(PROCHOT_EC, PIN(C, 0), GPIO_INPUT)
-GPIO(PM_RSMRST_EC, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(PM_PWRBTN_N_EC, PIN(D, 0), GPIO_ODR_HIGH)
-GPIO(EC_SPI_OE_N, PIN(I, 2), GPIO_OUT_LOW)
-
-GPIO(EC_PCH_MKBP_INT_ODL_EC, PIN(B, 7), GPIO_ODR_HIGH)
-GPIO(EDP_BKLT_EN, PIN(J, 6), GPIO_OUT_HIGH)
-GPIO(EC_DS3, PIN(L, 4), GPIO_OUT_LOW)
-UNIMPLEMENTED(EN_PP5000)
-
-/*
- * PCH_SYS_PWROK is an input, driven by the Silego chip. The common x86
- * power sequencing expects that PCH_SYS_PWROK is an output and will drive
- * this signal if GPIO_PCH_SYS_PWROK is configured. Map this pin as no-connect
- * so that state can be monitored using the console.
- */
-GPIO(PCH_PWROK_EC_R, PIN(K, 4), GPIO_INPUT)
-GPIO(SYS_PWROK_EC, PIN(D, 1), GPIO_OUT_LOW)
-GPIO(DSW_PWROK_EC, PIN(L, 6), GPIO_OUT_LOW)
-
-/* Host communication GPIOs */
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO(PLT_RST_L, PIN(H, 6), GPIO_INPUT | GPIO_PULL_UP) /* PCH_PLTRST_L */
-#endif
-GPIO(PCH_WAKE_N, PIN(J, 0), GPIO_ODR_HIGH)
-
-/* Battery present */
-GPIO(BAT_DET_EC, PIN(K, 0), GPIO_INPUT)
-
-/* LED */
-GPIO(LED_1_L_EC, PIN(A, 6), GPIO_OUT_HIGH) /* BAT_LED_GREEN_L LED_2_L */
-GPIO(LED_2_L_EC, PIN(A, 7), GPIO_OUT_HIGH) /* AC_LED_GREEN_L LED_1_L */
-
-/* H1 pins */
-GPIO(EC_H1_PACKET_MODE_EC, PIN(J, 4), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW_EC, PIN(K, 7), GPIO_OUT_LOW)
-
-/* Case Closed Debug Mode */
-GPIO_INT(CCD_MODE_ODL, PIN(B, 5), GPIO_INT_BOTH, board_connect_c0_sbu)
-
-/* FAN control pins */
-GPIO(EC_THRM_SEN_PWRGATE_N, PIN(K, 6), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configure as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(EC_I2C_PROG_SCL, PIN(B, 3), GPIO_INPUT) /* I2C_A_SCL */
-GPIO(EC_I2C_PROG_SDA, PIN(B, 4), GPIO_INPUT) /* I2C_A_SDA */
-GPIO(SMB_BS_CLK, PIN(C, 1), GPIO_INPUT) /* I2C_B_SCL */
-GPIO(SMB_BS_DATA, PIN(C, 2), GPIO_INPUT) /* I2C_B_SDA */
-
-/* P0 IT83XX_I2C_CH_C */
-GPIO(USBC_TCPC_I2C_CLK_P0, PIN(C, 7), GPIO_INPUT) /* I2C_C_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P0, PIN(F, 7), GPIO_INPUT) /* I2C_C_SDA */
-
-/* P1 IT83XX_I2C_CH_F */
-GPIO(USBC_TCPC_I2C_CLK_P2, PIN(A, 4), GPIO_INPUT) /* I2C_F_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P2, PIN(A, 5), GPIO_INPUT) /* I2C_F_SDA */
-
-/* P2 IT83XX_I2C_CH_E */
-GPIO(USBC_TCPC_I2C_CLK_P1, PIN(E, 0), GPIO_INPUT) /* I2C_E_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P1, PIN(E, 7), GPIO_INPUT) /* I2C_E_SDA */
-
-/* P3 IT83XX_I2C_CH_D */
-GPIO(USBC_TCPC_I2C_CLK_P3, PIN(H, 1), GPIO_INPUT) /* I2C_D_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P3, PIN(H, 2), GPIO_INPUT) /* I2C_D_SDA */
-
-/* Unused 1.8V or 3.3V compatiable pins */
-GPIO(TP_DEVELOPER_MODE_EC, PIN(B, 2), GPIO_INPUT)
-GPIO(ESPI_CS1_N_R, PIN(D, 3), GPIO_INPUT)
-GPIO(SUSWARN, PIN(E, 1), GPIO_INPUT)
-GPIO(CPU_C10_GATE, PIN(G, 1), GPIO_INPUT)
-GPIO(TP_GPIO_G2, PIN(G, 2), GPIO_INPUT)
-GPIO(TP_GPIO_G6, PIN(G, 6), GPIO_INPUT)
-GPIO(BATT_DISABLE_EC, PIN(H, 0), GPIO_INPUT)
-GPIO(ME_G3_TO_M3_EC, PIN(H, 5), GPIO_INPUT)
-GPIO(SLP_S0_CS_EC, PIN(I, 0), GPIO_INPUT)
-GPIO(SMC_SHUTDOWN, PIN(K, 5), GPIO_INPUT)
-GPIO(CPU_CAT_ERR_MECC, PIN(L, 1), GPIO_INPUT)
-GPIO(SMC_ONOFF_N, PIN(L, 3), GPIO_INPUT) /* Power button interrupt without H1 */
-GPIO(STD_ADPT_CNTRL_EC, PIN(L, 5), GPIO_INPUT)
-GPIO(SMB_PCH_ALRT, PIN(L, 7), GPIO_INPUT)
-GPIO(ESPI_ALERT0_R, PIN(M, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Unused 3.3V compatiable pins */
-GPIO(TP_GPIO_A0, PIN(A, 0), GPIO_INPUT)
-GPIO(TP_GPIO_A1, PIN(A, 1), GPIO_INPUT)
-GPIO(TP_GPIO_A3, PIN(A, 3), GPIO_INPUT)
-GPIO(TP_GPC3, PIN(C, 3), GPIO_INPUT)
-GPIO(TP_GPC5, PIN(C, 5), GPIO_INPUT)
-GPIO(TP_GPIO_E3, PIN(E, 3), GPIO_INPUT)
-GPIO(TP_GPIO_H3, PIN(H, 3), GPIO_INPUT)
-GPIO(TP_GPIO_H4, PIN(H, 4), GPIO_INPUT)
-
-/* Alternate pins for I2C */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C F SCL/SDA A4/A5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C A SCL/SDA B3/B4 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C B SCL/SDA C1/C2 */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C E SCL/SDA E0/E7 */
-ALTERNATE(PIN_MASK(C, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SCL C7 */
-ALTERNATE(PIN_MASK(F, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SDA F7 */
-ALTERNATE(PIN_MASK(H, BIT(1) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C D SCL/SDA H1/H2 */
-
-/* Alternate pins for UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), GPIO_ALT_FUNC_DEFAULT, MODULE_UART, GPIO_PULL_UP) /* UART1 B0/B1 */
-
-/* Alternate pins for ADC */
-ALTERNATE(PIN_MASK(I, BIT(1) | BIT(6)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 1,6 -> I1,I6 */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 13,15 -> L0,L2 */
-
-/* Alternate pins for FAN */
-ALTERNATE(PIN_MASK(A, BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* PWM2 A2 */
-ALTERNATE(PIN_MASK(D, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* TACH1A D7 */
diff --git a/board/adlrvpp_ite/vif_override.xml b/board/adlrvpp_ite/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/adlrvpp_ite/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/adlrvpp_mchp1521/board.c b/board/adlrvpp_mchp1521/board.c
deleted file mode 100644
index 3e676a1c6c..0000000000
--- a/board/adlrvpp_mchp1521/board.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Intel ADLRVP-P-DDR4-MEC1521 board-specific configuration */
-
-#include "button.h"
-#include "fan.h"
-#include "fusb302.h"
-#include "gpio.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "pca9675.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- /*
- * Port-80 Display, Charger, Battery, IO-expander, EEPROM,
- * ISH sensor, AUX-rail, power-monitor.
- */
- [I2C_CHAN_BATT_CHG] = {
- .name = "batt_chg",
- .port = I2C_PORT_CHARGER,
- .kbps = 100,
- .scl = GPIO_SMB_BS_CLK,
- .sda = GPIO_SMB_BS_DATA,
- },
- [I2C_CHAN_TCPC_0] = {
- .name = "typec_0",
- .port = I2C_PORT_TYPEC_0,
- .kbps = 400,
- .scl = GPIO_TYPEC_EC_SMBUS1_CLK_EC,
- .sda = GPIO_TYPEC_EC_SMBUS1_DATA_EC,
- },
- [I2C_CHAN_TCPC_1] = {
- .name = "typec_1",
- .port = I2C_PORT_TYPEC_1,
- .kbps = 400,
- .scl = GPIO_TYPEC_EC_SMBUS3_CLK,
- .sda = GPIO_TYPEC_EC_SMBUS3_DATA,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_CHAN_COUNT);
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* USB-C TCPC Configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [TYPE_C_PORT_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_0,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
- [TYPE_C_PORT_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_1,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { QMSPI0_PORT, 4, GPIO_QMSPI_CS0},
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
diff --git a/board/adlrvpp_mchp1521/board.h b/board/adlrvpp_mchp1521/board.h
deleted file mode 100644
index 1d3cb4828f..0000000000
--- a/board/adlrvpp_mchp1521/board.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Intel ADLRVP-P-DDR4-MEC1521 board-specific configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Microchip EC variant */
-#define VARIANT_INTELRVP_EC_MCHP
-
-/* UART for EC console */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-
-#include "adlrvp.h"
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-/* Power sequencing */
-#define GPIO_EC_SPI_OE_N GPIO_EC_PCH_SPI_OE_N
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD
-#define GPIO_RSMRST_L_PGOOD GPIO_RSMRST_PWRGD_EC_N
-#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_PWRGD_EC_N
-#define GPIO_PCH_SLP_S0_L GPIO_PM_SLP_S0_R_N
-#define GPIO_PG_EC_DSW_PWROK GPIO_EC_TRACE_DATA_2
-#define GPIO_VCCST_PWRGD GPIO_EC_TRACE_DATA_3
-#define GPIO_SLP_SUS_L GPIO_PM_SLP_SUS_N
-#define GPIO_SYS_RESET_L GPIO_DG2_PRESENT
-#define GPIO_PCH_RSMRST_L GPIO_PM_RSMRST_R
-#define GPIO_PCH_PWRBTN_L GPIO_PM_PWRBTN_N_R
-#define GPIO_EN_PP3300_A GPIO_EC_DS3_R
-#define GPIO_SYS_PWROK_EC GPIO_SYS_PWROK_EC_R
-#define GPIO_PCH_DSW_PWROK GPIO_EC_TRACE_DATA_1
-
-/* Buttons */
-#define GPIO_LID_OPEN GPIO_SMC_LID
-#define GPIO_VOLUME_UP_L GPIO_VOL_UP_EC
-#define GPIO_VOLUME_DOWN_L GPIO_VOL_DOWN_EC
-#define GPIO_POWER_BUTTON_L GPIO_PWRBTN_EC_IN_N
-
-/* Sensors */
-#define GMR_TABLET_MODE_GPIO_L GPIO_EC_SLATEMODE_HALLOUT_SNSR_R
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_EC_R
-
-/* AC & Battery */
-#define GPIO_DC_JACK_PRESENT GPIO_STD_ADP_PRSNT_EC
-#define GPIO_AC_PRESENT GPIO_BC_ACOK_EC_IN
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BATT_ID_R
-
-/* eSPI/Host communication */
-#define GPIO_ESPI_RESET_L GPIO_ESPI_RST_EC_R_N
-#define GPIO_PCH_WAKE_L GPIO_SMC_WAKE_SCI_N
-#define GPIO_EC_INT_L GPIO_EC_TRACE_DATA_0
-
-/* H1 */
-#define GPIO_WP_L GPIO_EC_WAKE_CLK_R
-#define GPIO_PACKET_MODE_EN GPIO_EC_TRACE_CLK
-#define GPIO_ENTERING_RW GPIO_DNX_FORCE_RELOAD_EC_R
-
-/* FAN */
-#define GPIO_FAN_POWER_EN GPIO_FAN_PWR_DISABLE
-
-/* LEDs */
-#define GPIO_BAT_LED_RED_L GPIO_PM_BAT_STATUS_LED2
-#define GPIO_PWR_LED_WHITE_L GPIO_PM_PWRBTN_LED
-
-/* Uart */
-#define GPIO_UART2_RX GPIO_EC_UART_RX
-
-/* Case Closed Debug Mode interrupt */
-#define GPIO_CCD_MODE_ODL GPIO_KBC_NUMLOCK
-
-/* USB-C interrupts */
-#define GPIO_USBC_TCPC_ALRT_P0 GPIO_TYPEC_EC_SMBUS_ALERT_0_R
-#define GPIO_USBC_TCPC_ALRT_P1 GPIO_TYPEC_EC_SMBUS_ALERT_1_R
-#define GPIO_USBC_TCPC_PPC_ALRT_P0 GPIO_KBC_SCANOUT_15
-#define GPIO_USBC_TCPC_PPC_ALRT_P1 GPIO_KBC_CAPSLOCK
-
-
-/* I2C ports & Configs */
-/* Charger */
-#define I2C_PORT_CHARGER MCHP_I2C_PORT0
-/* Port 80 */
-#define I2C_PORT_PORT80 MCHP_I2C_PORT0
-/* Board ID */
-#define I2C_PORT_PCA9555_BOARD_ID_GPIO MCHP_I2C_PORT0
-/* Battery */
-#define I2C_PORT_BATTERY MCHP_I2C_PORT0
-/* USB-C I2C */
-#define I2C_PORT_TYPEC_0 MCHP_I2C_PORT1
-#define I2C_PORT_TYPEC_1 MCHP_I2C_PORT5
-
-/*
- * MEC1521H loads firmware using QMSPI controller
- * CONFIG_SPI_FLASH_PORT is the index into
- * spi_devices[] in board.c
- */
-#define CONFIG_SPI_FLASH_PORT 0
-#define CONFIG_SPI_FLASH
-
-/*
- * ADLRVP uses 32MB SPI flash- W25R256JVEIQ.But, EC binary to be generated
- * is of size 512KB. This bin is then later appended with 0xFF to become 32MB
- * binary for flashing purpose.
- */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
-#define CONFIG_SPI_FLASH_W25X40 /* TODO: change to W25R256 */
-
-/* ADC channels */
-/*
- * Undefining below and redefining based on ADL RVP schematics,
- * as they are already defined with different channels in mchp_ec.h.
- */
-#undef ADC_TEMP_SNS_AMBIENT_CHANNEL
-#undef ADC_TEMP_SNS_VR_CHANNEL
-#undef ADC_TEMP_SNS_DDR_CHANNEL
-#undef ADC_TEMP_SNS_SKIN_CHANNEL
-
-#define ADC_TEMP_SNS_AMBIENT_CHANNEL CHIP_ADC_CH4
-#define ADC_TEMP_SNS_VR_CHANNEL CHIP_ADC_CH5
-#define ADC_TEMP_SNS_DDR_CHANNEL CHIP_ADC_CH6
-#define ADC_TEMP_SNS_SKIN_CHANNEL CHIP_ADC_CH7
-
-/* To do: Remove once fan register details are added in mchp/fan.c */
-#undef CONFIG_FANS
-
-/* Use internal silicon 32KHz oscillator */
-#undef CONFIG_CLOCK_SRC_EXTERNAL
-
-#ifndef __ASSEMBLER__
-
-enum adlrvp_i2c_channel {
- I2C_CHAN_BATT_CHG,
- I2C_CHAN_TCPC_0,
- I2C_CHAN_TCPC_1,
- I2C_CHAN_COUNT,
-};
-
-/* Map I2C port to controller */
-int board_i2c_p2c(int port);
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/adlrvpp_mchp1521/build.mk b/board/adlrvpp_mchp1521/build.mk
deleted file mode 100644
index b53a3bb479..0000000000
--- a/board/adlrvpp_mchp1521/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Intel ADLRVP-P-DDR4-MEC1521 board-specific configuration
-#
-
-# the IC is Microchip MEC1521 with SRAM of 256KB
-# external SPI is 32MB
-# external clock is crystal
-CHIP:=mchp
-CHIP_FAMILY:=mec152x
-CHIP_VARIANT:=mec1521
-CHIP_SPI_SIZE_KB:=512
-BASEBOARD:=intelrvp
-
-board-y=board.o
diff --git a/board/adlrvpp_mchp1521/ec.tasklist b/board/adlrvpp_mchp1521/ec.tasklist
deleted file mode 100644
index bf4660ce03..0000000000
--- a/board/adlrvpp_mchp1521/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2021 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.
- */
-
-/*
- * Intel ADLRVP-P-DDR4-MEC1521 board-specific configuration.
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/adlrvpp_mchp1521/gpio.inc b/board/adlrvpp_mchp1521/gpio.inc
deleted file mode 100644
index fd20e16568..0000000000
--- a/board/adlrvpp_mchp1521/gpio.inc
+++ /dev/null
@@ -1,314 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Intel ADLRVP-P-DDR4-MEC1521 board-specific configuration. */
-
-/*
- * MEC152X data sheets GPIO numbers are OCTAL.
- */
-
-/*
- * MEC1521H-SZ MECC board SPI flash is connected to MEC1521H-SZ shared SPI port.
- * GPIO055/SHD_CS0# pin is used to determine the boot source (eSPI Flash channel
- * or shared SPI). On RVP, SHD_CS0_N is connected to Flash0 and SHD_CS1_N is
- * connected to Flash1. Based on RVP design, Flash1 is meant for EC & Flash0
- * for Coreboot.But, for MEC, it is mandatory to route CS0 to external Flash
- * for EC to boot load the image. Hence, necessary rework must be taken care to
- * route CS0 to external Flash1.
- */
-/* Include common gpios needed for LFW loader and main process FW */
-#include "chip/mchp/lfw/gpio.inc"
-
-#include "baseboard/intelrvp/adlrvp_ioex_gpio.inc"
-
-/* As all signal names used here are supposed to match the schematic,
- * few pin names may not indicate the real purpose.Refer comments to clarify the pin usage.
- * Such pins are further renamed in board.h.
- */
-
-/* Power sequencing interrupts */
-GPIO_INT(ALL_SYS_PWRGD, PIN(057), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_EC_N, PIN(012), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PM_SLP_S0_R_N, PIN(0243), GPIO_INT_BOTH, power_signal_interrupt)
-/* Below meaningless pin names are to match the schematic.*/
-/* PG_EC_DSW_PWROK signal */
-GPIO_INT(EC_TRACE_DATA_2, PIN(0202), GPIO_INT_BOTH, power_signal_interrupt)
-/* VCCST_PWRGD signal */
-GPIO_INT(EC_TRACE_DATA_3, PIN(0203), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PM_SLP_SUS_N, PIN(000), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Button interrupts */
-GPIO_INT(VOL_UP_EC, PIN(0242), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOL_DOWN_EC, PIN(0246), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(SMC_LID, PIN(033), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-/* Buffered power button input from
- * PMIC-SLG7NT4192VTR / PWRBTN_EC_SILEGO_OUTPUT */
-GPIO_INT(PWRBTN_EC_IN_N, PIN(0163), GPIO_INT_BOTH, power_button_interrupt)
-
-/* DC Jack presence coming from +VADP_OUT */
-/* DC_JACK_PRESENT */
-GPIO_INT(STD_ADP_PRSNT_EC, PIN(052), GPIO_INT_BOTH, board_dc_jack_interrupt)
-/* AC Present */
-GPIO_INT(BC_ACOK_EC_IN, PIN(0172), GPIO_INT_BOTH, extpower_interrupt)
-
-/* H1 */
-/* WP_L interrupt pin */
-GPIO_INT(EC_WAKE_CLK_R, PIN(0241), GPIO_INT_BOTH, switch_interrupt)
-
-/* Case Closed Debug Mode */
-/* CCD_MODE_ODL pin */
-GPIO_INT(KBC_NUMLOCK, PIN(0255), GPIO_INT_BOTH, board_connect_c0_sbu)
-
-/* USB-C interrupts */
-/* Below meaningless pin names are to match the schematic */
-/* TCPC & PPC Alerts */
-/* USBC_TCPC_ALRT_P0 */
-GPIO_INT(TYPEC_EC_SMBUS_ALERT_0_R, PIN(0132), GPIO_INT_BOTH, tcpc_alert_event)
-/* USBC_TCPC_ALRT_P1 */
-GPIO_INT(TYPEC_EC_SMBUS_ALERT_1_R, PIN(0245), GPIO_INT_BOTH, tcpc_alert_event)
-/* USBC_TCPC_PPC_ALRT_P0 */
-GPIO_INT(KBC_SCANOUT_15, PIN(0151), GPIO_INT_BOTH, ppc_interrupt)
-/* USBC_TCPC_PPC_ALRT_P1 */
-GPIO_INT(KBC_CAPSLOCK, PIN(0127), GPIO_INT_BOTH, ppc_interrupt)
-
-/* Sensor Interrupts */
-/* GMR_TABLET_MODE_GPIO_L */
-GPIO_INT(EC_SLATEMODE_HALLOUT_SNSR_R, PIN(064), GPIO_INT_BOTH |
- GPIO_SEL_1P8V, gmr_tablet_switch_isr)
-
-/* UART Interrupt */
-GPIO_INT(EC_UART_RX, PIN(0145), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP,
- uart_deepsleep_interrupt)
-
-/* Power sequencing GPIOs */
-GPIO(PM_RSMRST_R, PIN(054), GPIO_OUT_LOW)
-GPIO(PM_PWRBTN_N_R, PIN(0101), GPIO_ODR_HIGH)
-GPIO(EC_PCH_SPI_OE_N, PIN(024), GPIO_OUT_LOW)
-GPIO(SYS_PWROK_EC_R, PIN(043), GPIO_OUT_LOW)
-/* Below names are meaningless to match schematic */
-/* PCH_DSW_PWROK */
-GPIO(EC_TRACE_DATA_1, PIN(0201), GPIO_OUT_LOW)
-/* SYS_RESET_L */
-GPIO(DG2_PRESENT, PIN(0165), GPIO_ODR_HIGH)
-/* EN_PP3300_A */
-GPIO(EC_DS3_R, PIN(0226), GPIO_OUT_LOW)
-/* PCH_PWROK_EC is an input, as it is driven by the Silego chip on RVP */
-GPIO(EC_PM_PCH_PWROK, PIN(0106), GPIO_INPUT)
-UNIMPLEMENTED(EN_PP5000)
-
-/* Host communication GPIOs */
-/* PCH_WAKE_L pin*/
-GPIO(SMC_WAKE_SCI_N, PIN(0114), GPIO_ODR_HIGH)
-/* EC_INT_L pin */
-GPIO(EC_TRACE_DATA_0, PIN(0200), GPIO_ODR_HIGH)
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO(ESPI_RST_EC_R_N, PIN(061), GPIO_INPUT)
-#endif
-
-/* H1 Pins */
-/* PACKET_MODE_EN */
-GPIO(EC_TRACE_CLK, PIN(0105), GPIO_OUT_LOW)
-/* ENTERING_RW */
-GPIO(DNX_FORCE_RELOAD_EC_R, PIN(0115), GPIO_OUT_LOW)
-
-/* FAN control pins */
-GPIO(FAN_PWR_DISABLE, PIN(060), GPIO_OUT_LOW)
-
-/* EDP */
-GPIO(EC_EDP1_BKLT_EN, PIN(0157), GPIO_OUT_HIGH)
-
-/* LEDs */
-GPIO(PM_BAT_STATUS_LED2, PIN(035), GPIO_OUT_LOW)
-GPIO(PM_PWRBTN_LED, PIN(0254), GPIO_OUT_LOW)
-
-/* Battery present */
-GPIO(BATT_ID_R, PIN(0162), GPIO_INPUT)
-
-/* VTR2 STRAP PIN - GPIO0104_UART0_TX
- * Voltage level strap used to determine,
- * if shared flash interface must be configured
- * for 3.3V or 1.8V.
- * 1 = 3.3V operation
- * 0 = 1.8V operation
- */
-GPIO(EC_VTR2_STRAP, PIN(0104), GPIO_INPUT)
-
-/* Tap Controller select strap - GPIO0170_UART1_TX
- * If any of the JTAG TAP controllers are used, GPIO170 must only
- * be configured as an output to a VTRx powered external function.
- * GPIO170 may only be configured as an input when
- * the JTAG TAP controllers are not needed or when an external driver
- * does not violate the Slave Select Timing.
- */
-GPIO(EC_JTAG_STRAP, PIN(0170), GPIO_ODR_HIGH)
-
-/* I2C pins */
-/* I2C pins should be configure as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(SMB_BS_CLK, PIN(004), GPIO_INPUT)
-GPIO(SMB_BS_DATA, PIN(003), GPIO_INPUT)
-GPIO(TYPEC_EC_SMBUS1_CLK_EC, PIN(0131), GPIO_INPUT)
-GPIO(TYPEC_EC_SMBUS1_DATA_EC, PIN(0130), GPIO_INPUT)
-GPIO(TYPEC_EC_SMBUS3_DATA, PIN(0142), GPIO_INPUT)
-GPIO(TYPEC_EC_SMBUS3_CLK, PIN(0141), GPIO_INPUT)
-
-/* Unused Pins */
-/* These have different meaning on RVP for alternate OS
- * support.Hence, keep them as input.
- */
-GPIO(PROCHOT_EC_R, PIN(0253), GPIO_INPUT)
-GPIO(BC_PROCHOT_EC_N, PIN(034), GPIO_INPUT)
-GPIO(EC_PEG_PLI_N_DG2, PIN(036), GPIO_INPUT)
-GPIO(PEG_PIM_DG2, PIN(0240), GPIO_INPUT)
-GPIO(KBD_BKLT_CTRL, PIN(014), GPIO_INPUT)
-GPIO(STD_ADPT_CNTRL_GPIO_R, PIN(0171), GPIO_INPUT)
-GPIO(SAF_G3_DETECT, PIN(013), GPIO_INPUT)
-GPIO(EC_GPIO015_PWM7, PIN(015), GPIO_INPUT)
-GPIO(EC_GPPC_B14, PIN(0244), GPIO_INPUT)
-GPIO(SX_EXIT_HOLDOFF_N, PIN(0175), GPIO_INPUT)
-GPIO(MIC_PRIVACY_EC, PIN(0100), GPIO_INPUT)
-GPIO(MIC_PRIVACY_SWITCH, PIN(011), GPIO_INPUT)
-GPIO(PECI_MUX_CTRL_ER_INT, PIN(025), GPIO_INPUT)
-GPIO(PEG_RTD3_COLD_MOD_SW_R, PIN(0156), GPIO_INPUT)
-GPIO(H_CATERR_EC_N, PIN(0153), GPIO_INPUT)
-GPIO(PM_BATLOW_N, PIN(0140), GPIO_INPUT)
-GPIO(HOME_BTN_EC_RVP_AEP_ID, PIN(023), GPIO_INPUT)
-GPIO(CPU_C10_GATE_N_R, PIN(022), GPIO_INPUT)
-GPIO(VREF_VTT, PIN(044), GPIO_INPUT)
-GPIO(HB_NVDC_SEL, PIN(0161), GPIO_INPUT)
-GPIO(EC_VCI_OUT_WAKE_R, PIN(0250), GPIO_INPUT)
-GPIO(PM_SLP_S0_CS_N, PIN(0221), GPIO_INPUT)
-GPIO(GPPC_E7_EC_SMI_N_R, PIN(0102), GPIO_INPUT)
-GPIO(TC_RETIMER_FORCE_PWR_BTP_EC_R, PIN(0222), GPIO_INPUT)
-
-/* Alternate functions */
-
-/* Alternate functions GPIO definitions */
-
-/*
- * MCHP has 6 banks/ports each containing 32 GPIO's.
- * Each bank/port is connected to a GIRQ.
- * Port numbering Example:
- * GPIO_015 = 13 decimal. Port/bank = 13/32 = 0, bit = 13 % 32 = 13
- * GPIO_0123 = 83 decimal. Port/bank = 83/32 = 2, bit = 83 % 32 = 19
- * OR port = 0123 >> 5, bit = 0123 & 037(0x1F) = 023 = 19 decimal.
- */
-
-/*
- * Configure I2C as alternate function
- * I2C00_SDA = GPIO_0003(Bank=0, bit=3) Func1
- * I2C00_SCL = GPIO_0004(Bank=0, bit=4) Func1
- * I2C01_SDA = GPIO_0130(Bank=2, bit=24) Func1
- * I2C01_SCL = GPIO_0131(Bank=2, bit=25) Func1
- * I2C04_SDA = GPIO_0143(Bank=3, bit=3) Func1
- * I2C04_SCL = GPIO_0144(Bank=3, bit=4) Func1
- * I2C05_SDA = GPIO_0141(Bank=3, bit=1) Func1
- * I2C05_SDL = GPIO_0142(Bank=3, bit=2) Func1
- */
-ALTERNATE(PIN_MASK(0, 0x00000018), GPIO_ALT_FUNC_1, MODULE_I2C,
- GPIO_ODR_HIGH)
-ALTERNATE(PIN_MASK(2, 0x03000000), GPIO_ALT_FUNC_1, MODULE_I2C,
- GPIO_ODR_HIGH)
-ALTERNATE(PIN_MASK(3, 0x0000001E), GPIO_ALT_FUNC_1, MODULE_I2C,
- GPIO_ODR_HIGH)
-
-/* Alternate pins for ADC */
-/*
- * ADC04 - ADC07
- * GPIO_0204 Func 1 = ADC04 - AMBIET_THERM_IN0
- * GPIO_0205 Func 1 = ADC05 - VR_THERM_IN
- * GPIO_0206 Func 1 = ADC06 - DDR_THERM_IN
- * GPIO_0207 Func 1 = ADC07 - SKIN_THERM_IN1
- * Bank 4 bits[4:5:6:7]
- */
-ALTERNATE(PIN_MASK(4, 0x00000F0), GPIO_ALT_FUNC_1, MODULE_ADC,
- GPIO_ANALOG)
-/*
- * VREF2_ADC_R
- * GPIO_067 Func 1 = VREF2_ADC
- * Bank 1 bit [23]
- */
-ALTERNATE(PIN_MASK(1, 0x0800000), GPIO_ALT_FUNC_1, MODULE_ADC,
- GPIO_ANALOG)
-
-/* Alternate pins for FAN */
-/*
- * GPIO_050 Func 1 = TACH0 - CPU_TACHO_FAN
- * GPIO_053 Func 1 = PWM0 - CPU_PWM_FAN
- * Bank 1 bits[8:11]
- */
-ALTERNATE(PIN_MASK(1, 0x0000900), GPIO_ALT_FUNC_1, MODULE_PWM,
- GPIO_FLAG_NONE)
-
-/* KB pins */
-/*
- * MEC1521H-SZ (144 pin package)
- * KSO00 = GPIO_0040 Func2 bank 1 bit 0
- * KSO01 = GPIO_0045 Func1 bank 1 bit 5
- * KSO02 = GPIO_0046 Func1 bank 1 bit 6
- * KSO03 = GPIO_0047 Func1 bank 1 bit 7
- * KSO04 = GPIO_0107 Func2 bank 2 bit 7
- * KSO05 = GPIO_0112 Func1 bank 2 bit 10
- * KSO06 = GPIO_0113 Func1 bank 2 bit 11
- * KSO07 = GPIO_0120 Func1 bank 2 bit 16
- * KSO08 = GPIO_0121 Func2 bank 2 bit 17
- * KSO09 = GPIO_0122 Func2 bank 2 bit 18
- * KSO10 = GPIO_0123 Func2 bank 2 bit 19
- * KSO11 = GPIO_0124 Func2 bank 2 bit 20
- * KSO12 = GPIO_0125 Func2 bank 2 bit 21
- * For 8x16 test keyboard add KSO13 - KSO15
- * KSO13 = GPIO_0126 Func2 bank 2 bit 22
- * KSO14 = GPIO_0152 Func1 bank 3 bit 10
- * KSO15 = GPIO_0151 Func2 bank 3 bit 9
- *
- * KSI0 = GPIO_0017 Func1 bank 0 bit 15
- * KSI1 = GPIO_0020 Func1 bank 0 bit 16
- * KSI2 = GPIO_0021 Func1 bank 0 bit 17
- * KSI3 = GPIO_0026 Func1 bank 0 bit 22
- * KSI4 = GPIO_0027 Func1 bank 0 bit 23
- * KSI5 = GPIO_0030 Func1 bank 0 bit 24
- * KSI6 = GPIO_0031 Func1 bank 0 bit 25
- * KSI7 = GPIO_0032 Func1 bank 0 bit 26
- */
-/* KSO 0 Bank 1, Func2, bit 0 */
-ALTERNATE(PIN_MASK(1, 0x01), 2, MODULE_KEYBOARD_SCAN,
- GPIO_ODR_HIGH)
-
-#ifdef CONFIG_KEYBOARD_COL2_INVERTED
-/* KSO 1-3 Bank 1, Func1, bits 5-7 */
-ALTERNATE(PIN_MASK(1, 0xA0), 1, MODULE_KEYBOARD_SCAN,
- GPIO_ODR_HIGH)
-GPIO(KBD_KSO2, PIN(046), GPIO_OUT_LOW)
-#else
-/* KSO 1-3 Bank 1, Func1, bits 5-7 */
-ALTERNATE(PIN_MASK(1, 0xE0), 1, MODULE_KEYBOARD_SCAN,
- GPIO_ODR_HIGH)
-#endif
-
-/* KSO 4, 8-12 Bank 2, Func2, bits 7, 17-21 */
-ALTERNATE(PIN_MASK(2, 0x003E0080), 2, MODULE_KEYBOARD_SCAN,
- GPIO_ODR_HIGH)
-/* KSO 5-7, Bank 2, Func1, bits 10-11, 16 */
-ALTERNATE(PIN_MASK(2, 0x00010C00), 1, MODULE_KEYBOARD_SCAN,
- GPIO_ODR_HIGH)
-
-/* KSI 0-7, Bank 0, Func1, bit 15-17, 22-26 */
-ALTERNATE(PIN_MASK(0, 0x07C38000), 1, MODULE_KEYBOARD_SCAN,
- (GPIO_INPUT | GPIO_PULL_UP))
-
-/*
- * ESPI_RST_EC_R_N# - GPIO_0061 Func 1, Bank 1 bit[17]
- * ESPI_ALERT0_EC_R_N# - GPIO_0063 Func 1, Bank 1 bit[19]
- * ESPI_CLK_EC_R - GPIO_0065 Func 1, Bank 1 bit[21]
- * ESPI_CS0_EC_R_N# - GPIO_0066 Func 1, Bank 1 bit[22]
- * ESPI_IO0_EC_R - GPIO_0070 Func 1, Bank 1 bit[24]
- * ESPI_IO1_EC_R - GPIO_0071 Func 1, Bank 1 bit[25]
- * ESPI_IO2_EC_R - GPIO_0072 Func 1, Bank 1 bit[26]
- * ESPI_IO3_EC_R - GPIO_0073 Func 1, Bank 1 bit[27]
- */
-ALTERNATE(PIN_MASK(1, 0x0F6A0000), 1, MODULE_LPC, GPIO_FLAG_NONE)
diff --git a/board/adlrvpp_mchp1521/vif_override.xml b/board/adlrvpp_mchp1521/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/adlrvpp_mchp1521/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/adlrvpp_mchp1727/board.c b/board/adlrvpp_mchp1727/board.c
deleted file mode 100644
index 7e2b777e70..0000000000
--- a/board/adlrvpp_mchp1727/board.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Intel ADL-P-RVP-MCHP1727 board-specific configuration */
-#include "button.h"
-#include "fusb302.h"
-#include "lid_switch.h"
-#include "pca9675.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_pd_tcpm.h"
-#include "spi.h"
-#include "spi_chip.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- [I2C_CHAN_BATT_CHG] = {
- .name = "batt_chg",
- .port = I2C_PORT_CHARGER,
- .kbps = 100,
- .scl = GPIO_SMB_BS_CLK,
- .sda = GPIO_SMB_BS_DATA,
- },
- [I2C_CHAN_TYPEC_0] = {
- .name = "typec_0",
- .port = I2C_PORT_TYPEC_0,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P0,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P0,
- },
- [I2C_CHAN_TYPEC_1] = {
- .name = "typec_1",
- .port = I2C_PORT_TYPEC_1,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P2,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P2,
- },
-#if defined(HAS_TASK_PD_C2)
- [I2C_CHAN_TYPEC_2] = {
- .name = "typec_2",
- .port = I2C_PORT_TYPEC_2,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P1,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P1,
- },
- [I2C_CHAN_TYPEC_3] = {
- .name = "typec_3",
- .port = I2C_PORT_TYPEC_3,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P3,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P3,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_CHAN_COUNT);
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* USB-C TCPC Configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [TYPE_C_PORT_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_0,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#if defined(HAS_TASK_PD_C1)
- [TYPE_C_PORT_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_1,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-#if defined(HAS_TASK_PD_C2)
- [TYPE_C_PORT_2] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_2,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-#if defined(HAS_TASK_PD_C3)
- [TYPE_C_PORT_3] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_3,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { QMSPI0_PORT, 4, GPIO_QMSPI_CS0},
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
diff --git a/board/adlrvpp_mchp1727/board.h b/board/adlrvpp_mchp1727/board.h
deleted file mode 100644
index 50c666ece2..0000000000
--- a/board/adlrvpp_mchp1727/board.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Intel ADL-P-RVP-MCHP1727 board-specific configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* MCHP EC variant */
-#define VARIANT_INTELRVP_EC_MCHP
-
-/* UART for EC console */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 0
-
-#include "adlrvp.h"
-
-/*
- * External parallel crystal between XTAL1 and XTAL2 pins.
- * #define CONFIG_CLOCK_SRC_EXTERNAL
- * #define CONFIG_CLOCK_CRYSTAL
- * External single ended 32KHz 50% duty cycle input clock.
- * #define CONFIG_CLOCK_SRC_EXTERNAL
- * #undef CONFIG_CLOCK_CRYSTAL
- * Use internal silicon 32KHz oscillator
- * #undef CONFIG_CLOCK_SRC_EXTERNAL
- * CONFIG_CLOCK_CRYSTAL is a don't care
- */
-#undef CONFIG_CLOCK_SRC_EXTERNAL
-
-/* MEC1727 integrated SPI chip 512KB SST25PF040C */
-#define CONFIG_SPI_FLASH_W25X40
-
-/*
- * Enable extra SPI flash and generic SPI
- * commands via EC UART
- */
-#define CONFIG_CMD_SPI_FLASH
-#define CONFIG_CMD_SPI_XFER
-
-/* MEC172x does not apply GP-SPI controllers */
-#undef CONFIG_MCHP_GPSPI
-
-/* ADC channels */
-#undef ADC_TEMP_SNS_AMBIENT_CHANNEL
-#undef ADC_TEMP_SNS_DDR_CHANNEL
-#undef ADC_TEMP_SNS_SKIN_CHANNEL
-#undef ADC_TEMP_SNS_VR_CHANNEL
-#define ADC_TEMP_SNS_AMBIENT_CHANNEL CHIP_ADC_CH3
-#define ADC_TEMP_SNS_DDR_CHANNEL CHIP_ADC_CH5
-#define ADC_TEMP_SNS_SKIN_CHANNEL CHIP_ADC_CH4
-#define ADC_TEMP_SNS_VR_CHANNEL CHIP_ADC_CH0
-
-/*
- * ADC maximum voltage is a board level configuration.
- * MEC172x ADC can use an external 3.0 or 3.3V reference with
- * maximum values up to the reference voltage.
- * The ADC maximum voltage depends upon the external reference
- * voltage connected to MEC172x.
- */
-#undef ADC_MAX_MVOLT
-#define ADC_MAX_MVOLT 3300
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-/* Power sequencing */
-#define GPIO_EC_SPI_OE_N GPIO_EC_SPI_OE_MECC
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD
-#define GPIO_RSMRST_L_PGOOD GPIO_RSMRST_PWRGD
-#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_PWRGD
-#define GPIO_PCH_SLP_S0_L GPIO_PCH_SLP_S0_N
-#define GPIO_PG_EC_DSW_PWROK GPIO_VCCPDSW_3P3
-#define GPIO_SLP_SUS_L GPIO_PM_SLP_SUS_EC_N
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_PM_RSMRST_N
-#define GPIO_PCH_PWRBTN_L GPIO_PM_PWRBTN_N
-#define GPIO_EN_PP3300_A GPIO_EC_DS3
-#define GPIO_SYS_PWROK_EC GPIO_SYS_PWROK
-#define GPIO_PCH_DSW_PWROK GPIO_EC_DSW_PWROK
-
-/* Sensors */
-#define GMR_TABLET_MODE_GPIO_L GPIO_SLATE_MODE_INDICATION
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_EC_N
-
-/* Buttons */
-#define GPIO_LID_OPEN GPIO_SMC_LID
-#define GPIO_VOLUME_UP_L GPIO_VOLUME_UP
-#define GPIO_VOLUME_DOWN_L GPIO_VOL_DN_EC
-#define GPIO_POWER_BUTTON_L GPIO_MECH_PWR_BTN_ODL
-
-/* H1 */
-#define GPIO_WP_L GPIO_EC_FLASH_WP_ODL
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-
-/* AC & Battery */
-#define GPIO_DC_JACK_PRESENT GPIO_STD_ADP_PRSNT
-#define GPIO_AC_PRESENT GPIO_BC_ACOK
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_DET
-
-/* eSPI/Host communication */
-#define GPIO_ESPI_RESET_L GPIO_LPC_ESPI_RST_N
-#define GPIO_PCH_WAKE_L GPIO_SMC_WAKE_SCI_N_MECC
-#define GPIO_EC_INT_L GPIO_EC_PCH_MKBP_INT_ODL
-
-/* LED */
-#define GPIO_BAT_LED_RED_L GPIO_LED_1_L
-#define GPIO_PWR_LED_WHITE_L GPIO_LED_2_L
-
-/* FAN */
-#define GPIO_FAN_POWER_EN GPIO_THERM_SEN_MECC
-
-/* Charger */
-#define I2C_PORT_CHARGER MCHP_I2C_PORT0
-
-/* Battery */
-#define I2C_PORT_BATTERY MCHP_I2C_PORT0
-
-/* Board ID */
-#define I2C_PORT_PCA9555_BOARD_ID_GPIO MCHP_I2C_PORT0
-
-/* Port 80 */
-#define I2C_PORT_PORT80 MCHP_I2C_PORT0
-
-/* USB-C I2C */
-#define I2C_PORT_TYPEC_0 MCHP_I2C_PORT6
-/*
- * Note: I2C for Type-C Port-1 is swapped with Type-C Port-2
- * on the RVP to reduce BOM stuffing options.
- */
-#define I2C_PORT_TYPEC_1 MCHP_I2C_PORT3
-#if defined(HAS_TASK_PD_C2)
-#define I2C_PORT_TYPEC_2 MCHP_I2C_PORT7
-#define I2C_PORT_TYPEC_3 MCHP_I2C_PORT2
-#endif
-
-#ifndef __ASSEMBLER__
-
-enum adlrvp_i2c_channel {
- I2C_CHAN_BATT_CHG,
- I2C_CHAN_TYPEC_0,
- I2C_CHAN_TYPEC_1,
-#if defined(HAS_TASK_PD_C2)
- I2C_CHAN_TYPEC_2,
- I2C_CHAN_TYPEC_3,
-#endif
- I2C_CHAN_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/adlrvpp_mchp1727/build.mk b/board/adlrvpp_mchp1727/build.mk
deleted file mode 100644
index 2a056943d4..0000000000
--- a/board/adlrvpp_mchp1727/build.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Intel ADL-P-RVP-MCHP1727 board-specific configuration
-#
-
-# the IC is Microchip MEC172x 416 KB total SRAM
-# MEC1723SZ variant is 144 pin, loads from external SPI flash
-# MEC1727SZ variant is 144 pin, loads from 512KB internal SPI flash
-# external SPI is 512KB
-# clock is Internal ROSC
-CHIP:=mchp
-CHIP_FAMILY:=mec172x
-CHIP_VARIANT:=mec1727sz
-CHIP_SPI_SIZE_KB:=512
-BASEBOARD:=intelrvp
-
-board-y=board.o
diff --git a/board/adlrvpp_mchp1727/ec.tasklist b/board/adlrvpp_mchp1727/ec.tasklist
deleted file mode 100644
index d640149caa..0000000000
--- a/board/adlrvpp_mchp1727/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2021 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.
- */
-
-/*
- * Intel ADL-P-RVP-MCHP1727 board-specific configuration.
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/adlrvpp_mchp1727/gpio.inc b/board/adlrvpp_mchp1727/gpio.inc
deleted file mode 100644
index 1eea86462c..0000000000
--- a/board/adlrvpp_mchp1727/gpio.inc
+++ /dev/null
@@ -1,262 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Intel ADL-P-RVP-MCHP1727 board-specific configuration */
-
-#include "baseboard/intelrvp/adlrvp_ioex_gpio.inc"
-/* include common gpio.inc under chip/mchp/lfw/... */
-#include "chip/mchp/lfw/gpio.inc"
-
-/* Power sequencing interrupts */
-GPIO_INT(ALL_SYS_PWRGD, PIN(057), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD, PIN(0221), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S0_N, PIN(0243), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCPDSW_3P3, PIN(0201), GPIO_INT_BOTH, power_signal_interrupt)
-/* TODO: GPIO_INT(VCCST_PWRGD_MECC, PIN(0207), GPIO_INT_BOTH, power_signal_interrupt) */
-GPIO_INT(PM_SLP_SUS_EC_N, PIN(0227), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(PM_SLP_S3_N, PIN(0161), GPIO_INT_BOTH, power_signal_interrupt)
-#else
-GPIO(PM_SLP_S3_N, PIN(0161), GPIO_INPUT)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(PM_SLP_S4_N, PIN(0162), GPIO_INT_BOTH, power_signal_interrupt)
-#else
-GPIO(PM_SLP_S4_N, PIN(0162), GPIO_INPUT)
-#endif
-
-/* Button interrupts */
-GPIO_INT(VOLUME_UP, PIN(036), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOL_DN_EC, PIN(0254), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(SMC_LID, PIN(0226), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(MECH_PWR_BTN_ODL, PIN(0115), GPIO_INT_BOTH, power_button_interrupt)
-
-/* DC / AC interrupts, DC Jack presence coming from +VADP_OUT */
-GPIO_INT(STD_ADP_PRSNT, PIN(043), GPIO_INT_BOTH, board_dc_jack_interrupt) /* DC_JACK_PRESENT */
-GPIO_INT(BC_ACOK, PIN(0156), GPIO_INT_BOTH, extpower_interrupt) /* AC Present */
-
-/* Sensor interrupt */
-GPIO_INT(SLATE_MODE_INDICATION, PIN(0222), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* Flash WP interrupt */
-GPIO_INT(EC_FLASH_WP_ODL, PIN(014), GPIO_INT_BOTH, switch_interrupt)
-
-/* Case Closed Debug Mode interrupt */
-GPIO_INT(CCD_MODE_ODL, PIN(0175), GPIO_INT_BOTH, board_connect_c0_sbu)
-
-/* UART0 RX interrupt, RX input wake event */
-GPIO_INT(UART0_RX, PIN(0105), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP, uart_deepsleep_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USBC_TCPC_ALRT_P0, PIN(0143), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P0, PIN(0240), GPIO_INT_BOTH, ppc_interrupt)
-
-#if defined(HAS_TASK_PD_C1)
-GPIO_INT(USBC_TCPC_ALRT_P1, PIN(0241), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P1, PIN(0101), GPIO_INT_BOTH, ppc_interrupt)
-#else
-GPIO(USBC_TCPC_ALRT_P1, PIN(0241), GPIO_INPUT)
-GPIO(USBC_TCPC_PPC_ALRT_P1, PIN(0101), GPIO_INPUT)
-#endif
-
-#if defined(HAS_TASK_PD_C2)
-/* w/o rework: USBC_TCPC_ALRT_P2 -> VCI_OVRD_IN */
-GPIO_INT(USBC_TCPC_ALRT_P2, PIN(0130), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P2, PIN(0144), GPIO_INT_BOTH, ppc_interrupt)
-#else
-GPIO(USBC_TCPC_ALRT_P2, PIN(0130), GPIO_INPUT)
-GPIO(USBC_TCPC_PPC_ALRT_P2, PIN(0144), GPIO_INPUT)
-#endif
-
-#if defined(HAS_TASK_PD_C3)
-GPIO_INT(USBC_TCPC_ALRT_P3, PIN(0242), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P3, PIN(0142), GPIO_INT_BOTH, ppc_interrupt)
-#else
-GPIO(USBC_TCPC_ALRT_P3, PIN(0242), GPIO_INPUT)
-GPIO(USBC_TCPC_PPC_ALRT_P3, PIN(0142), GPIO_INPUT)
-#endif
-
-/* Host communication GPIOs */
-GPIO(SMC_WAKE_SCI_N_MECC, PIN(051), GPIO_ODR_HIGH)
-GPIO(EC_PCH_MKBP_INT_ODL, PIN(0127), GPIO_ODR_HIGH)
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO(LPC_ESPI_RST_N, PIN(061), GPIO_INPUT)
-GPIO(PLT_RST_L, PIN(052), GPIO_INPUT) /* PCH_PLTRST_L */
-#endif
-
-/* Prochot GPIO */
-GPIO(PROCHOT_EC_N, PIN(002), GPIO_INPUT)
-
-/* Power sequencing GPIOs */
-GPIO(SYS_RST_ODL, PIN(060), GPIO_ODR_HIGH)
-GPIO(PM_RSMRST_N, PIN(054), GPIO_OUT_LOW)
-GPIO(PM_PWRBTN_N, PIN(016), GPIO_ODR_HIGH)
-/* w/o rework: EC_SPI_OE_MECC -> BGPO0 */
-GPIO(EC_SPI_OE_MECC, PIN(042), GPIO_OUT_LOW)
-/* w/o rework: EC_DS3 -> VCI_OUT2 */
-GPIO(EC_DS3, PIN(025), GPIO_OUT_LOW)
-UNIMPLEMENTED(EN_PP5000)
-
-/* PCH_PWROK_EC is an input, as it's driven by the Silego chip on RVP */
-GPIO(PCH_PWROK_EC, PIN(0106), GPIO_INPUT)
-GPIO(SYS_PWROK, PIN(0202), GPIO_OUT_LOW)
-GPIO(EC_DSW_PWROK, PIN(034), GPIO_OUT_LOW)
-
-/* H1 GPIOs */
-GPIO(EC_H1_PACKET_MODE, PIN(035), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW, PIN(0102), GPIO_OUT_LOW)
-
-/* Battery present */
-GPIO(BAT_DET, PIN(0206), GPIO_INPUT)
-
-/* EDP */
-GPIO(EDP_BKLT_EN_MECC, PIN(022), GPIO_OUT_HIGH)
-
-/* LED */
-GPIO(LED_1_L, PIN(0157), GPIO_OUT_HIGH)
-GPIO(LED_2_L, PIN(0153), GPIO_OUT_HIGH)
-
-/* FAN control pins */
-GPIO(THERM_SEN_MECC, PIN(0141), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configure as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(SMB_BS_CLK, PIN(004), GPIO_INPUT) /* I2C00_SCL */
-GPIO(SMB_BS_DATA, PIN(003), GPIO_INPUT) /* I2C00_SDA */
-GPIO(USBC_TCPC_I2C_CLK_P0, PIN(0140), GPIO_INPUT) /* I2C06_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P0, PIN(0132), GPIO_INPUT) /* I2C06_SDA */
-GPIO(USBC_TCPC_I2C_CLK_P1, PIN(013), GPIO_INPUT) /* I2C07_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P1, PIN(012), GPIO_INPUT) /* I2C07_SDA */
-GPIO(USBC_TCPC_I2C_CLK_P2, PIN(010), GPIO_INPUT) /* I2C03_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P2, PIN(007), GPIO_INPUT) /* I2C03_SDA */
-GPIO(USBC_TCPC_I2C_CLK_P3, PIN(0155), GPIO_INPUT) /* I2C02_SCL */
-GPIO(USBC_TCPC_I2C_DATA_P3, PIN(0154), GPIO_INPUT) /* I2C02_SDA */
-
-/* Unused pins */
-GPIO(SML1_CLK_MECC, PIN(0131), GPIO_INPUT)
-GPIO(CPU_CAT_ERR_MECC, PIN(000), GPIO_INPUT)
-GPIO(ESPI_ALERT0_N, PIN(063), GPIO_INPUT)
-GPIO(BATT_DISABLE_EC, PIN(067), GPIO_INPUT)
-/* Unused: GPIO(SLP_S0_CS_N, PIN(nVCI_IN0), GPIO_INPUT) */
-GPIO(CPU_C10_GATE_MECC, PIN(023), GPIO_INPUT)
-GPIO(SMC_SDOWN_MECC, PIN(0255), GPIO_INPUT)
-GPIO(STD_ADPT_CNTRL_GPIO, PIN(0244), GPIO_INPUT)
-GPIO(SMC_ONOFF_N, PIN(0114), GPIO_INPUT) /* Power button interrupt without H1 */
-GPIO(SUSWARN, PIN(024), GPIO_INPUT)
-GPIO(ME_G3_TO_M3_EC, PIN(033), GPIO_INPUT)
-
-/* Alternate pins for I2C */
-/* I2C pins alternate functions for ports 0, 2-3, 6-7
- * Configure I2C ports as I2C alternate function.
- * If board does not use external pull-ups then change GPIO flags
- * to enable internal pull-ups.
- * I2C00_SDA = GPIO_0003(Bank=0, bit=3) Func1
- * I2C00_SCL = GPIO_0004(Bank=0, bit=4) Func1
- * I2C02_SDA = GPIO_0154(Bank=3, bit=12) Func1
- * I2C02_SCL = GPIO_0155(Bank=3, bit=13) Func1
- * I2C03_SDA = GPIO_0007(Bank=0, bit=7) Func1
- * I2C03_SDL = GPIO_0010(Bank=0, bit=8) Func1
- * I2C06_SDA = GPIO_0132(Bank=2, bit=26) Func1
- * I2C06_SCL = GPIO_0140(Bank=3, bit=0) Func1
- * I2C07_SDA = GPIO_0012(Bank=0, bit=10) Func1
- * I2C07_SDL = GPIO_0013(Bank=0, bit=11) Func1
- */
-ALTERNATE(PIN_MASK(0, 0x00000D98), 1, MODULE_I2C, GPIO_ODR_HIGH)
-ALTERNATE(PIN_MASK(2, 0x04000000), 1, MODULE_I2C, GPIO_ODR_HIGH)
-ALTERNATE(PIN_MASK(3, 0x00003001), 1, MODULE_I2C, GPIO_ODR_HIGH)
-
-/* Alternate pins for ADC */
-/* VR_TMP/V_1P05 - GPIO44, SKIN_THERM_IN_EC - GPIO43, AMBIENT_TEMP - GPIO42, DDR_TEMP/EC_5V - GPIO41 */
-/* ADC pins
- * GPIO200/ADC00 = VR_TMP/V_1P05
- * GPIO203/ADC03 = AMBIENT_TEMP
- * GPIO204/ADC04 = SKIN_THERM_IN_EC
- * GPIO205/ADC05 = DDR_TEMP/EC_5V
- * ADC00 = GPIO_0200(Bank=4, bit=0) Func1
- * ADC03 = GPIO_0203(Bank=4, bit=3) Func1
- * ADC04 = GPIO_0204(Bank=4, bit=4) Func1
- * ADC05 = GPIO_0205(Bank=4, bit=5) Func1
- */
-ALTERNATE(PIN_MASK(4, 0x0039), 1, MODULE_ADC, GPIO_ANALOG)
-
-/*
- * Alternate pins for RPM-FAN control
- *
- * GPIO050/GTACH0 = CPU_TACHO_FAN
- * GPIO053/GPWM0 = CPU_PWM_FAN
- * GTACH0 = GPIO_050(Bank=1, bit=8) Func2
- * GPWM0 = GPIO_053(Bank=1, bit=11) Func3
- */
-ALTERNATE(PIN_MASK(1, 0x0100), 2, MODULE_PWM, GPIO_FLAG_NONE)
-ALTERNATE(PIN_MASK(1, 0x0800), 3, MODULE_PWM, GPIO_FLAG_NONE)
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-/*
- * MEC172xH-SZ (144 pin package)
- * KSO00 = GPIO_0040 Func2 bank 1 bit 0
- * KSO01 = GPIO_0045 Func1 bank 1 bit 5
- * KSO02 = GPIO_0046 Func1 bank 1 bit 6
- * KSO03 = GPIO_0047 Func1 bank 1 bit 7
- * KSO04 = GPIO_0107 Func2 bank 2 bit 7
- * KSO05 = GPIO_0112 Func1 bank 2 bit 10
- * KSO06 = GPIO_0113 Func1 bank 2 bit 11
- * KSO07 = GPIO_0120 Func1 bank 2 bit 16
- * KSO08 = GPIO_0121 Func2 bank 2 bit 17
- * KSO09 = GPIO_0122 Func2 bank 2 bit 18
- * KSO10 = GPIO_0123 Func2 bank 2 bit 19
- * KSO11 = GPIO_0124 Func2 bank 2 bit 20
- * KSO12 = GPIO_0125 Func2 bank 2 bit 21
- * For 8x16 keyboard add KSO13 - KSO15
- * KSO13 = GPIO_0126 Func2 bank 2 bit 22
- * KSO14 = GPIO_0152 Func1 bank 3 bit 10
- * KSO15 = GPIO_0151 Func2 bank 3 bit 9
- *
- * KSI0 = GPIO_0017 Func1 bank 0 bit 15
- * KSI1 = GPIO_0020 Func1 bank 0 bit 16
- * KSI2 = GPIO_0021 Func1 bank 0 bit 17
- * KSI3 = GPIO_0026 Func1 bank 0 bit 22
- * KSI4 = GPIO_0027 Func1 bank 0 bit 23
- * KSI5 = GPIO_0030 Func1 bank 0 bit 24
- * KSI6 = GPIO_0031 Func1 bank 0 bit 25
- * KSI7 = GPIO_0032 Func1 bank 0 bit 26
- */
-/* KSO 0 Bank 1, Func2, bit 0 */
-ALTERNATE(PIN_MASK(1, 0x01), 2, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-
-#ifdef CONFIG_KEYBOARD_COL2_INVERTED
-/* KSO 1-3 Bank 1, Func1, bits 5-7 */
-ALTERNATE(PIN_MASK(1, 0xA0), 1, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-GPIO(KBD_KSO2, PIN(046), GPIO_KB_OUTPUT_COL2)
-#else
-/* KSO 1-3 Bank 1, Func1, bits 5-7 */
-ALTERNATE(PIN_MASK(1, 0xE0), 1, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-#endif
-
-/* KSO 4, 8-12 Bank 2, Func2, bits 7, 17-21 */
-ALTERNATE(PIN_MASK(2, 0x003E0080), 2, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-/* KSO 5-7, Bank 2, Func1, bits 10-11, 16 */
-ALTERNATE(PIN_MASK(2, 0x00010C00), 1, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-
-/* KSI 0-7, Bank 0, Func1, bit 15-17, 22-26 */
-ALTERNATE(PIN_MASK(0, 0x07C38000), 1, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-
-/*
- * ESPI_RESET# - GPIO_0061 Func 1, Bank 1 bit[17]
- * ESPI_ALERT# - GPIO_0063 Func 1, Bank 1 bit[19]
- * ESPI_CLK - GPIO_0065 Func 1, Bank 1 bit[21]
- * ESPI_CS# - GPIO_0066 Func 1, Bank 1 bit[22]
- * ESPI_IO0 - GPIO_0070 Func 1, Bank 1 bit[24]
- * ESPI_IO1 - GPIO_0071 Func 1, Bank 1 bit[25]
- * ESPI_IO2 - GPIO_0072 Func 1, Bank 1 bit[26]
- * ESPI_IO3 - GPIO_0073 Func 1, Bank 1 bit[27]
- */
-ALTERNATE(PIN_MASK(1, 0x0F6A0000), 1, MODULE_LPC, 0)
diff --git a/board/adlrvpp_mchp1727/vif_override.xml b/board/adlrvpp_mchp1727/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/adlrvpp_mchp1727/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/adlrvpp_npcx/board.c b/board/adlrvpp_npcx/board.c
deleted file mode 100644
index d4221696f1..0000000000
--- a/board/adlrvpp_npcx/board.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Intel ADLRVP-NPCX board-specific configuration */
-#include "button.h"
-#include "fusb302.h"
-#include "lid_switch.h"
-#include "pca9675.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_pd_tcpm.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- [I2C_CHAN_BATT_CHG] = {
- .name = "batt_chg",
- .port = I2C_PORT_CHARGER,
- .kbps = 100,
- .scl = GPIO_SMB_BS_CLK,
- .sda = GPIO_SMB_BS_DATA,
- },
- [I2C_CHAN_TYPEC_0] = {
- .name = "typec_0",
- .port = I2C_PORT_TYPEC_0,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P0,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P0,
- },
- [I2C_CHAN_TYPEC_1] = {
- .name = "typec_1",
- .port = I2C_PORT_TYPEC_1,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P2,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P2,
- },
-#if defined(HAS_TASK_PD_C2)
- [I2C_CHAN_TYPEC_2] = {
- .name = "typec_2",
- .port = I2C_PORT_TYPEC_2,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P1,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P1,
- },
-#endif
-#if defined(HAS_TASK_PD_C3)
- [I2C_CHAN_TYPEC_3] = {
- .name = "typec_3",
- .port = I2C_PORT_TYPEC_3,
- .kbps = 400,
- .scl = GPIO_USBC_TCPC_I2C_CLK_P3,
- .sda = GPIO_USBC_TCPC_I2C_DATA_P3,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_CHAN_COUNT);
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* USB-C TCPC Configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [TYPE_C_PORT_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_0,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
- [TYPE_C_PORT_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_1,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#if defined(HAS_TASK_PD_C2)
- [TYPE_C_PORT_2] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_2,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-#if defined(HAS_TASK_PD_C3)
- [TYPE_C_PORT_3] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TYPEC_3,
- .addr_flags = I2C_ADDR_FUSB302_TCPC_AIC,
- },
- .drv = &fusb302_tcpm_drv,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT);
diff --git a/board/adlrvpp_npcx/board.h b/board/adlrvpp_npcx/board.h
deleted file mode 100644
index 8cf70b81a8..0000000000
--- a/board/adlrvpp_npcx/board.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Intel ADL-P-RVP-NPCX board-specific configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* ITE EC variant */
-#define VARIANT_INTELRVP_EC_NPCX
-
-#include "adlrvp.h"
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-/* Power sequencing */
-#define GPIO_EC_SPI_OE_N GPIO_EC_SPI_OE_MECC
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD
-#define GPIO_RSMRST_L_PGOOD GPIO_RSMRST_PWRGD
-#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_PWRGD
-#define GPIO_PCH_SLP_S0_L GPIO_PCH_SLP_S0_N
-#define GPIO_PG_EC_DSW_PWROK GPIO_VCCPDSW_3P3
-#define GPIO_SLP_SUS_L GPIO_PM_SLP_SUS_EC_N
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_PM_RSMRST_N
-#define GPIO_PCH_PWRBTN_L GPIO_PM_PWRBTN_N
-#define GPIO_EN_PP3300_A GPIO_EC_DS3
-#define GPIO_SYS_PWROK_EC GPIO_SYS_PWROK
-#define GPIO_PCH_DSW_PWROK GPIO_EC_DSW_PWROK
-
-/* Sensors */
-#define GMR_TABLET_MODE_GPIO_L GPIO_SLATE_MODE_INDICATION
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_EC_N
-
-/* Buttons */
-#define GPIO_LID_OPEN GPIO_SMC_LID
-#define GPIO_VOLUME_UP_L GPIO_VOLUME_UP
-#define GPIO_VOLUME_DOWN_L GPIO_VOL_DN_EC
-#define GPIO_POWER_BUTTON_L GPIO_MECH_PWR_BTN_ODL
-
-/* H1 */
-#define GPIO_WP_L GPIO_EC_FLASH_WP_ODL
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-
-/* AC & Battery */
-#define GPIO_DC_JACK_PRESENT GPIO_STD_ADP_PRSNT
-#define GPIO_AC_PRESENT GPIO_BC_ACOK
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_DET
-
-/* eSPI/Host communication */
-#define GPIO_ESPI_RESET_L GPIO_LPC_ESPI_RST_N
-#define GPIO_PCH_WAKE_L GPIO_SMC_WAKE_SCI_N_MECC
-#define GPIO_EC_INT_L GPIO_EC_PCH_MKBP_INT_ODL
-
-/* LED */
-#define GPIO_BAT_LED_RED_L GPIO_LED_1_L
-#define GPIO_PWR_LED_WHITE_L GPIO_LED_2_L
-
-/* FAN */
-#define GPIO_FAN_POWER_EN GPIO_THERM_SEN_MECC
-
-/* I2C ports & Configs */
-/* Charger */
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-
-/* Battery */
-#define I2C_PORT_BATTERY NPCX_I2C_PORT7_0
-
-/* Board ID */
-#define I2C_PORT_PCA9555_BOARD_ID_GPIO NPCX_I2C_PORT7_0
-
-/* Port 80 */
-#define I2C_PORT_PORT80 NPCX_I2C_PORT7_0
-
-/* USB-C I2C */
-#define I2C_PORT_TYPEC_0 NPCX_I2C_PORT0_0
-/*
- * Note: I2C for Type-C Port-1 is swapped with Type-C Port-2
- * on the RVP to reduce BOM stuffing options.
- */
-#define I2C_PORT_TYPEC_1 NPCX_I2C_PORT2_0
-#if defined(HAS_TASK_PD_C2)
-#define I2C_PORT_TYPEC_2 NPCX_I2C_PORT1_0
-#endif
-#if defined(HAS_TASK_PD_C3)
-#define I2C_PORT_TYPEC_3 NPCX_I2C_PORT3_0
-#endif
-
-#ifndef __ASSEMBLER__
-
-enum adlrvp_i2c_channel {
- I2C_CHAN_BATT_CHG,
- I2C_CHAN_TYPEC_0,
- I2C_CHAN_TYPEC_1,
-#if defined(HAS_TASK_PD_C2)
- I2C_CHAN_TYPEC_2,
-#endif
-#if defined(HAS_TASK_PD_C3)
- I2C_CHAN_TYPEC_3,
-#endif
- I2C_CHAN_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/adlrvpp_npcx/build.mk b/board/adlrvpp_npcx/build.mk
deleted file mode 100644
index ec3450ee7e..0000000000
--- a/board/adlrvpp_npcx/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Intel ADL-P-RVP-NPCX board-specific configuration
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=intelrvp
-
-board-y=board.o
diff --git a/board/adlrvpp_npcx/ec.tasklist b/board/adlrvpp_npcx/ec.tasklist
deleted file mode 100644
index 6dddaa994c..0000000000
--- a/board/adlrvpp_npcx/ec.tasklist
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2021 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.
- */
-
-/*
- * Intel ADL-P-RVP-NPCX board-specific configuration.
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C2, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C3, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C2, pd_interrupt_handler_task, 2, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C3, pd_interrupt_handler_task, 3, ULTRA_TASK_STACK_SIZE)
diff --git a/board/adlrvpp_npcx/gpio.inc b/board/adlrvpp_npcx/gpio.inc
deleted file mode 100644
index a059b1c6b6..0000000000
--- a/board/adlrvpp_npcx/gpio.inc
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Intel ADL-P-RVP-NPCX board-specific configuration */
-
-#include "baseboard/intelrvp/adlrvp_ioex_gpio.inc"
-
-/* Power sequencing interrupts */
-GPIO_INT(ALL_SYS_PWRGD, PIN(7, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S0_N, PIN(A, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCPDSW_3P3, PIN(4, 5), GPIO_INT_BOTH, power_signal_interrupt)
-/* TODO: GPIO_INT(VCCST_PWRGD_MECC, PIN(7, 1), GPIO_INT_BOTH, power_signal_interrupt) */
-GPIO_INT(PM_SLP_SUS_EC_N, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(PM_SLP_S3_N, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-#else
-GPIO(PM_SLP_S3_N, PIN(B, 0), GPIO_INPUT)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(PM_SLP_S4_N, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#else
-GPIO(PM_SLP_S4_N, PIN(A, 5), GPIO_INPUT)
-#endif
-
-/* Button interrupts */
-GPIO_INT(VOLUME_UP, PIN(6, 1), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOL_DN_EC, PIN(0, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(SMC_LID, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(MECH_PWR_BTN_ODL, PIN(0, 0), GPIO_INT_BOTH, power_button_interrupt)
-
-/* DC Jack presence coming from +VADP_OUT */
-GPIO_INT(STD_ADP_PRSNT, PIN(0, 2), GPIO_INT_BOTH, board_dc_jack_interrupt) /* DC_JACK_PRESENT */
-
-GPIO_INT(BC_ACOK, PIN(C, 6), GPIO_INT_BOTH, extpower_interrupt) /* AC Present */
-
-/* USB-C interrupts */
-GPIO_INT(USBC_TCPC_ALRT_P0, PIN(4, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_ALRT_P1, PIN(6, 2), GPIO_INT_BOTH, tcpc_alert_event)
-#if defined(HAS_TASK_PD_C2)
-GPIO_INT(USBC_TCPC_ALRT_P2, PIN(6, 3), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USBC_TCPC_ALRT_P3, PIN(6, 7), GPIO_INT_BOTH, tcpc_alert_event)
-#else
-GPIO(USBC_TCPC_ALRT_P2, PIN(6, 3), GPIO_INPUT)
-GPIO(USBC_TCPC_ALRT_P3, PIN(6, 7), GPIO_INPUT)
-#endif
-
-GPIO_INT(USBC_TCPC_PPC_ALRT_P0, PIN(F, 0), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P1, PIN(F, 1), GPIO_INT_BOTH, ppc_interrupt)
-#if defined(HAS_TASK_PD_C2)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P2, PIN(F, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USBC_TCPC_PPC_ALRT_P3, PIN(F, 3), GPIO_INT_BOTH, ppc_interrupt)
-#else
-GPIO(USBC_TCPC_PPC_ALRT_P2, PIN(F, 2), GPIO_INPUT)
-GPIO(USBC_TCPC_PPC_ALRT_P3, PIN(F, 3), GPIO_INPUT)
-#endif
-
-/* Host communication GPIOs */
-GPIO(SMC_WAKE_SCI_N_MECC, PIN(A, 4), GPIO_ODR_HIGH)
-GPIO(EC_PCH_MKBP_INT_ODL, PIN(F, 5), GPIO_ODR_HIGH)
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO(LPC_ESPI_RST_N, PIN(5, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(PLT_RST_L, PIN(A, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PLTRST_L */
-#endif
-
-/* Sensor Interrupts */
-GPIO_INT(SLATE_MODE_INDICATION, PIN(E, 5), GPIO_INT_BOTH | GPIO_SEL_1P8V, gmr_tablet_switch_isr)
-GPIO(PROCHOT_EC_N, PIN(A, 7), GPIO_INPUT)
-
-/* Power sequencing GPIOs */
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-/* GPIOD3 (Rework: CPU_TACHO_FAN is swapped with PM_RSMRST_N) */
-GPIO(PM_RSMRST_N, PIN(D, 3), GPIO_OUT_LOW)
-GPIO(PM_PWRBTN_N, PIN(9, 7), GPIO_ODR_HIGH)
-GPIO(EC_SPI_OE_MECC, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EC_DS3, PIN(C, 4), GPIO_OUT_LOW)
-UNIMPLEMENTED(EN_PP5000)
-
-/* PCH_PWROK_EC is an input, as it's driven by the Silego chip on RVP */
-GPIO(PCH_PWROK_EC, PIN(A, 0), GPIO_INPUT)
-GPIO(SYS_PWROK, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(EC_DSW_PWROK, PIN(9, 5), GPIO_OUT_LOW)
-
-/* H1 pins */
-GPIO_INT(EC_FLASH_WP_ODL, PIN(9, 4), GPIO_INT_BOTH, switch_interrupt)
-GPIO(EC_H1_PACKET_MODE, PIN(E, 2), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW, PIN(D, 4), GPIO_OUT_LOW)
-
-/* Case Closed Debug Mode */
-GPIO_INT(CCD_MODE_ODL, PIN(F, 4), GPIO_INT_BOTH, board_connect_c0_sbu)
-
-/* Battery present */
-GPIO(BAT_DET, PIN(7, 6), GPIO_INPUT)
-
-/* EDP */
-GPIO(EDP_BKLT_EN_MECC, PIN(E, 1), GPIO_OUT_HIGH)
-
-/* LED */
-GPIO(LED_1_L, PIN(B, 6), GPIO_OUT_HIGH)
-GPIO(LED_2_L, PIN(B, 7), GPIO_OUT_HIGH)
-
-/* FAN control pins */
-GPIO(THERM_SEN_MECC, PIN(C, 0), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configure as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(SMB_BS_CLK, PIN(B, 3), GPIO_INPUT) /* I2C7_SCL0 */
-GPIO(SMB_BS_DATA, PIN(B, 2), GPIO_INPUT) /* I2C7_SDA0 */
-GPIO(USBC_TCPC_I2C_CLK_P0, PIN(B, 5), GPIO_INPUT) /* I2C0_SCL0 */
-GPIO(USBC_TCPC_I2C_DATA_P0, PIN(B, 4), GPIO_INPUT) /* I2C0_SDA0 */
-GPIO(USBC_TCPC_I2C_CLK_P2, PIN(9, 2), GPIO_INPUT) /* I2C2_SCL0 */
-GPIO(USBC_TCPC_I2C_DATA_P2, PIN(9, 1), GPIO_INPUT) /* I2C2_SDA0 */
-GPIO(USBC_TCPC_I2C_CLK_P1, PIN(9, 0), GPIO_INPUT) /* I2C1_SCL0 */
-GPIO(USBC_TCPC_I2C_DATA_P1, PIN(8, 7), GPIO_INPUT) /* I2C1_SCL0 */
-GPIO(USBC_TCPC_I2C_CLK_P3, PIN(D, 1), GPIO_INPUT) /* I2C3_SCL0 */
-GPIO(USBC_TCPC_I2C_DATA_P3, PIN(D, 0), GPIO_INPUT) /* I2C3_SCL0 */
-
-/* Unused pins */
-GPIO(SML1_CLK_MECC, PIN(3, 3), GPIO_INPUT)
-GPIO(SML1_DATA_MECC, PIN(3, 6), GPIO_INPUT)
-GPIO(SMB_PCH_CLK, PIN(C, 2), GPIO_INPUT)
-GPIO(SMB_PCH_DATA, PIN(C, 1), GPIO_INPUT)
-GPIO(I3C_0_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(I3C_0_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(CPU_CAT_ERR_MECC, PIN(3, 4), GPIO_INPUT)
-GPIO(TP29, PIN(5, 0), GPIO_INPUT)
-GPIO(TP28, PIN(5, 6), GPIO_INPUT)
-GPIO(ESPI_ALERT0_N, PIN(5, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(BATT_DISABLE_EC, PIN(6, 6), GPIO_INPUT)
-GPIO(TP33, PIN(7, 2), GPIO_INPUT)
-GPIO(TP26, PIN(7, 3), GPIO_INPUT)
-GPIO(SLP_S0_CS_N, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PECI, PIN(8, 1), GPIO_INPUT)
-GPIO(CPU_C10_GATE_MECC, PIN(9, 6), GPIO_INPUT)
-GPIO(SMB_PCH_ALRT, PIN(A, 3), GPIO_INPUT)
-GPIO(SMC_SDOWN_MECC, PIN(B, 1), GPIO_INPUT)
-GPIO(STD_ADPT_CNTRL_GPIO, PIN(C, 3), GPIO_INPUT)
-GPIO(SML1_ALERT, PIN(C, 7), GPIO_INPUT)
-GPIO(SMC_ONOFF_N, PIN(D, 2), GPIO_INPUT) /* Power button interrupt without H1 */
-GPIO(SUSWARN, PIN(D, 5), GPIO_INPUT)
-GPIO(TP_GPIOD6_EC, PIN(D, 6), GPIO_INPUT)
-GPIO(TP_GPIOD7_EC, PIN(D, 7), GPIO_INPUT)
-GPIO(ME_G3_TO_M3_EC, PIN(E, 0), GPIO_INPUT)
-
-/* Alternate pins for I2C */
-ALTERNATE(PIN_MASK(8, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE)
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE)
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3) | BIT(4) | BIT(5)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE)
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE)
-
-/* Alternate pins for UART */
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), GPIO_ALT_FUNC_DEFAULT, MODULE_UART, GPIO_PULL_UP)
-
-/* Alternate pins for ADC */
-/* VR_TMP/V_1P05 - GPIO44, SKIN_THERM_IN_EC - GPIO43, AMBIENT_TEMP - GPIO42, DDR_TEMP/EC_5V - GPIO41 */
-ALTERNATE(PIN_MASK(4, BIT(1) | BIT(2) | BIT(3) | BIT(4)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE)
-
-/* Alternate pins for FAN */
-ALTERNATE(PIN_MASK(8, BIT(0)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* CPU_FAN_MECC GPIO80/PWM3_LED3 */
-/* GPIOA6 (Rework: CPU_TACHO_FAN is swapped with PM_RSMRST_N) */
-ALTERNATE(PIN_MASK(A, BIT(6)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0xFF), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_02-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x0C), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14-15 */
diff --git a/board/adlrvpp_npcx/vif_override.xml b/board/adlrvpp_npcx/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/adlrvpp_npcx/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/akemi/battery.c b/board/akemi/battery.c
deleted file mode 100644
index 238716b116..0000000000
--- a/board/akemi/battery.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Hatch battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 333, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 332, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC;
diff --git a/board/akemi/board.c b/board/akemi/board.c
deleted file mode 100644
index 5b88f82fb5..0000000000
--- a/board/akemi/board.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/g753.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-#include "battery_smart.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Temp1",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Temp2",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Temp3",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = g753_get_val,
- .idx = 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-/* Hatch Temperature sensors */
-/*
- * TODO(b/124316213): These setting need to be reviewed and set appropriately
- * for Hatch. They matter when the EC is controlling the fan as opposed to DPTF
- * control.
- */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(50),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_a;
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- uint8_t sku = get_board_sku();
- /*
- * Check if the current sku id does not support keyboard backlight
- * and return the feature flag without EC_FEATURE_PWM_KEYB
- * sku_id = 1/2 - without keyboard backlight
- * sku_id = 3/4 - with keyboard backlight
- */
- if (sku == 1 || sku == 2)
- return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
- else
- return flags0;
-}
-
-/* Battery functions */
-#define SB_OPTIONALMFG_FUNCTION2 0x26
-#define QUICK_CHARGE_SUPPORT 0x01
-#define QUICK_CHARGE_ENABLE 0x02
-
-#define SB_QUICK_CHARGE_ENABLE 1
-#define SB_QUICK_CHARGE_DISABLE 0
-
-static void sb_quick_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_OPTIONALMFG_FUNCTION2, &val);
- if (rv)
- return;
-
- if (val & QUICK_CHARGE_SUPPORT) {
- if (enable)
- val |= QUICK_CHARGE_ENABLE;
- else
- val &= ~QUICK_CHARGE_ENABLE;
-
- sb_write(SB_OPTIONALMFG_FUNCTION2, val);
- }
-}
-
-/* Called on AP S5 -> S0 transition */
-static void board_chipset_startup(void)
-{
- /* Normal charge current */
- sb_quick_charge_mode(SB_QUICK_CHARGE_DISABLE);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_INIT_I2C+1);
-
-/* Called on AP S0 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Quick charge current */
- sb_quick_charge_mode(SB_QUICK_CHARGE_ENABLE);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255) || (sku == 1) || (sku == 2) || (sku == 3) ||
- (sku == 4);
-}
diff --git a/board/akemi/board.h b/board/akemi/board.h
deleted file mode 100644
index de542a5f0e..0000000000
--- a/board/akemi/board.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-/* LSM6DS3TR-C Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_LSM6DSM
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-/* LIS2DWL Lid accel */
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL))
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A_LOW_PWR_OD
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set based on the battery's discharge current limit and what was tested to
- * prevent the AP rebooting with low charge level batteries.
- *
- * TODO(b/133447140): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
-
-/* TI gauge IC 500ms WDT timeout setting under battery sleep mode
- * induced battery cut-off, under the following conditions:
- * 1. SMBus communication on FC is once per minute which allows
- * battery entering sleep mode;
- * 2. System load < 10mA and accumulate 5 hours will trigger battery
- * simulation and result in a 500ms WDT timeout. So change charge
- * max sleep time from once/minute to once/10 seconds to prevent
- * battery entering sleep mode. See b/133375756 and b/148822924.
- */
-#define CHARGE_MAX_SLEEP_USEC (10 * SECOND)
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_TEMP_SENSOR_G753
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_SMP,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/akemi/build.mk b/board/akemi/build.mk
deleted file mode 100644
index 733912454f..0000000000
--- a/board/akemi/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/akemi/ec.tasklist b/board/akemi/ec.tasklist
deleted file mode 100644
index 4a1024a091..0000000000
--- a/board/akemi/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/akemi/gpio.inc b/board/akemi/gpio.inc
deleted file mode 100644
index 1ea8cca58a..0000000000
--- a/board/akemi/gpio.inc
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, lsm6dsm_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_LOW)
-GPIO(EN_USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_USB_C3_PD_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_USB_C3_PD_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/akemi/led.c b/board/akemi/led.c
deleted file mode 100644
index ef31d2dead..0000000000
--- a/board/akemi/led.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Akemi
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/akemi/vif_override.xml b/board/akemi/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/akemi/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/aleena/analyzestack.yaml b/board/aleena/analyzestack.yaml
deleted file mode 120000
index 9873122a08..0000000000
--- a/board/aleena/analyzestack.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/grunt/analyzestack.yaml \ No newline at end of file
diff --git a/board/aleena/battery.c b/board/aleena/battery.c
deleted file mode 100644
index b3abae7f73..0000000000
--- a/board/aleena/battery.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Aleena battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Panasonic AP15O5L Battery Information */
- [BATTERY_PANASONIC] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_4012] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Murata AP18K4K Battery Information */
- [BATTERY_MURATA_4013] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304013",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC;
diff --git a/board/aleena/board.c b/board/aleena/board.c
deleted file mode 100644
index 0343a399c5..0000000000
--- a/board/aleena/board.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Aleena board-specific configuration */
-
-#include "button.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "console.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/led/lm3630a.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-
-#include "gpio_list.h"
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
- GPIO_EC_RST_ODL,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* I2C port map. */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", I2C_PORT_THERMAL_AP, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"kblight", I2C_PORT_KBLIGHT, 100, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 5,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Motion sensors */
-static struct mutex icm426xx_mutex;
-
-static struct icm_drv_data_t g_icm426xx_data;
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_ICM426XX = 2,
-};
-
-const mat33_fp_t base_standard_ref_icm426xx = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &icm426xx_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref_icm426xx,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &icm426xx_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm426xx,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-static enum base_accelgyro_type base_accelgyro_config;
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_accelgyro_config) {
- case BASE_GYRO_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case BASE_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-static void board_detect_motionsensor(void)
-{
- int ret;
- int val;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (base_accelgyro_config != BASE_GYRO_NONE)
- return;
-
- if (board_is_convertible()) {
- /* Check base accelgyro chip */
- ret = icm_read8(&icm426xx_base_accel,
- ICM426XX_REG_WHO_AM_I, &val);
- if (ret)
- ccprints("Get ICM fail.");
- if (val == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- }
- base_accelgyro_config = (val == ICM426XX_CHIP_ICM40608)
- ? BASE_GYRO_ICM426XX : BASE_GYRO_BMI160;
- ccprints("Base Accelgyro: %s", (val == ICM426XX_CHIP_ICM40608)
- ? "ICM40608" : "BMI160");
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_INIT_ADC + 2);
-
-void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void board_kblight_init(void)
-{
- /*
- * Enable keyboard backlight. This needs to be done here because
- * the chip doesn't have power until PP3300_S0 comes up.
- */
- gpio_set_level(GPIO_KB_BL_EN, 1);
- lm3630a_poweron();
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_kblight_init, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 30 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
diff --git a/board/aleena/board.h b/board/aleena/board.h
deleted file mode 100644
index 9ad2a8b94b..0000000000
--- a/board/aleena/board.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Aleena board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_GRUNT_TCPC_0_ANX3429
-
-#include "baseboard.h"
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Power and battery LEDs */
-#define CONFIG_LED_COMMON
-#define CONFIG_CMD_LEDTEST
-
-#define CONFIG_LED_ONOFF_STATES
-
-#define I2C_PORT_KBLIGHT NPCX_I2C_PORT5_0
-
-/* KB backlight driver */
-#define CONFIG_LED_DRIVER_LM3630A
-
-#define CONFIG_MKBP_USE_GPIO
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source*/
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-/*
- * Slew rate on the PP1800_SENSOR load switch requires a short delay on startup.
- */
-#undef CONFIG_MOTION_SENSE_RESUME_DELAY_US
-#define CONFIG_MOTION_SENSE_RESUME_DELAY_US (10 * MSEC)
-
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-#ifndef __ASSEMBLER__
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_PANASONIC,
- BATTERY_MURATA_4012,
- BATTERY_MURATA_4013,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/aleena/build.mk b/board/aleena/build.mk
deleted file mode 100644
index c808e65aed..0000000000
--- a/board/aleena/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6f
-BASEBOARD:=grunt
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/aleena/ec.tasklist b/board/aleena/ec.tasklist
deleted file mode 100644
index dc898c4502..0000000000
--- a/board/aleena/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/aleena/gpio.inc b/board/aleena/gpio.inc
deleted file mode 100644
index 6fefcf88f1..0000000000
--- a/board/aleena/gpio.inc
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(A, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S5_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S5_PGOOD, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(USB_C0_CABLE_DET, PIN(3, 7), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(8, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_LOCKED)
-
-GPIO(EN_PWR_A, PIN(E, 2), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EN_PP1800_SENSOR, PIN(6, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(ENABLE_BACKLIGHT_L, PIN(D, 3), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(SYS_RESET_L, PIN(E, 4), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT | GPIO_PULL_UP) /* Battery Present */
-GPIO(PCH_SYS_PWROK, PIN(D, 6), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(CPU_PROCHOT, PIN(3, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* PROCHOT to SOC */
-GPIO(APU_ALERT_L, PIN(A, 2), GPIO_INPUT) /* Alert to SOC */
-GPIO(3AXIS_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* 3 Axis Accel */
-GPIO(KB_BL_EN, PIN(F, 2), GPIO_OUT_LOW) /* Enable KB Backlight */
-GPIO(EC_INT_L, PIN(A, 4), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SIC */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SID */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL and
- EC_I2C_KB_BL_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_EEPROM_SDA and
- EC_I2C_KB_BL_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SDA */
-
-/*
- * The NPCX LPC driver configures and controls SCI and SMI,
- * so PCH_SCI_ODL [PIN(7, 6)] and PCH_SMI_ODL [PIN(C, 6)] are
- * not defined here as GPIOs.
- */
-
-GPIO(EN_USB_A0_5V, PIN(6, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(C, 0), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_C0_TCPC_PWR, PIN(6, 0), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(USB_C0_OC_L, PIN(7, 3), GPIO_OUT_HIGH) /* C0 Over Current */
-GPIO(USB_C1_OC_L, PIN(7, 2), GPIO_OUT_HIGH) /* C1 Over Current */
-GPIO(USB_C0_PD_RST_L, PIN(3, 2), GPIO_OUT_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(D, 5), GPIO_OUT_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON_L, PIN(4, 0), GPIO_ODR_HIGH) /* C0 BC1.2 Power */
-GPIO(USB_C1_BC12_VBUS_ON_L, PIN(B, 1), GPIO_ODR_HIGH | GPIO_PULL_UP) /* C1 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET, PIN(6, 2), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C1_BC12_CHG_DET, PIN(8, 3), GPIO_INPUT | GPIO_PULL_DOWN) /* C1 BC1.2 Detect */
-GPIO(USB_C0_DP_HPD, PIN(9, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(9, 6), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 7), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(9, 3), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(8, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(4, 1), GPIO_INPUT)
-
-/* LED */
-GPIO(BAT_LED_1_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(BAT_LED_2_L, PIN(C, 4), GPIO_OUT_HIGH)
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x02), 0, MODULE_ADC, 0) /* ADC8 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* KB Backlight */
-
-/* Keyboard Pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = AC_PRESENT,
- GPIO01 = POWER_BUTTON_L,
- GPIO02 = EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
diff --git a/board/aleena/led.c b/board/aleena/led.c
deleted file mode 100644
index 4774a39045..0000000000
--- a/board/aleena/led.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "console.h"
-
-#define CPRINTS(format, args...) cprints(CC_HOOK, format, ## args)
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/*
- * board_id others 5, 6
- * led1 Amber Blue
- * led2 Blue Amber
- */
-static enum gpio_signal led_amber = GPIO_BAT_LED_1_L;
-static enum gpio_signal led_blue = GPIO_BAT_LED_2_L;
-
-/* Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-static void board_led_init(void)
-{
- int board_id =
- (gpio_get_level(GPIO_BOARD_VERSION3) << 2) |
- (gpio_get_level(GPIO_BOARD_VERSION2) << 1) |
- (gpio_get_level(GPIO_BOARD_VERSION1) << 0);
-
- CPRINTS("board_id=%d", board_id);
-
- if ((board_id == 5) || (board_id == 6)) {
- led_amber = GPIO_BAT_LED_2_L;
- led_blue = GPIO_BAT_LED_1_L;
- CPRINTS("LED: switch LED");
- }
-
-}
-DECLARE_HOOK(HOOK_INIT, board_led_init, HOOK_PRIO_DEFAULT);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_BLUE:
- gpio_set_level(led_blue, LED_ON_LVL);
- gpio_set_level(led_amber, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(led_blue, LED_OFF_LVL);
- gpio_set_level(led_amber, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(led_blue, LED_OFF_LVL);
- gpio_set_level(led_amber, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
diff --git a/board/aleena/vif_override.xml b/board/aleena/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/aleena/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/ambassador/board.c b/board/ambassador/board.c
deleted file mode 100644
index f8dc910070..0000000000
--- a/board/ambassador/board.c
+++ /dev/null
@@ -1,935 +0,0 @@
-/* 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.
- */
-
-/* Puff board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "chipset.h"
-#include "common.h"
-#include "core/cortex-m/cpu.h"
-#include "cros_board_info.h"
-#include "driver/ina3221.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/cometlake-discrete.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_common.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void power_monitor(void);
-DECLARE_DEFERRED(power_monitor);
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- if (signal == GPIO_USB_C0_TCPPC_INT_ODL)
- sn5s330_interrupt(0);
-}
-
-int ppc_get_alert_status(int port)
-{
- return gpio_get_level(GPIO_USB_C0_TCPPC_INT_ODL) == 0;
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- if (signal == GPIO_USB_C0_TCPC_INT_ODL)
- schedule_deferred_pd_interrupt(0);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int level;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- level = !!(tcpc_config[USB_PD_PORT_TCPC_0].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST) != level)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- return status;
-}
-
-/* Called when the charge manager has switched to a new port. */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Blink alert if insufficient power per system_can_boot_ap(). */
- int insufficient_power =
- (charge_ma * charge_mv) <
- (CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON * 1000);
- led_alert(insufficient_power);
-}
-
-static uint8_t usbc_overcurrent;
-static int32_t base_5v_power;
-
-/*
- * Power usage for each port as measured or estimated.
- * Units are milliwatts (5v x ma current)
- */
-#define PWR_BASE_LOAD (5*1335)
-#define PWR_FRONT_HIGH (5*1603)
-#define PWR_FRONT_LOW (5*963)
-#define PWR_REAR (5*1075)
-#define PWR_HDMI (5*562)
-#define PWR_C_HIGH (5*3740)
-#define PWR_C_LOW (5*2090)
-#define PWR_MAX (5*10000)
-
-/*
- * Update the 5V power usage, assuming no throttling,
- * and invoke the power monitoring.
- */
-static void update_5v_usage(void)
-{
- int front_ports = 0;
- /*
- * Recalculate the 5V load, assuming no throttling.
- */
- base_5v_power = PWR_BASE_LOAD;
- if (!gpio_get_level(GPIO_USB_A0_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- if (!gpio_get_level(GPIO_USB_A1_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- /*
- * Only 1 front port can run higher power at a time.
- */
- if (front_ports > 0)
- base_5v_power += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!gpio_get_level(GPIO_USB_A2_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_USB_A3_OC_ODL))
- base_5v_power += PWR_REAR;
- if (ec_config_get_usb4_present() && !gpio_get_level(GPIO_USB_A4_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_HDMI_CONN0_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (!gpio_get_level(GPIO_HDMI_CONN1_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (usbc_overcurrent)
- base_5v_power += PWR_C_HIGH;
- /*
- * Invoke the power handler immediately.
- */
- hook_call_deferred(&power_monitor_data, 0);
-}
-DECLARE_DEFERRED(update_5v_usage);
-/*
- * Start power monitoring after ADCs have been initialised.
- */
-DECLARE_HOOK(HOOK_INIT, update_5v_usage, HOOK_PRIO_INIT_ADC + 1);
-
-static void port_ocp_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&update_5v_usage_data, 0);
-}
-
-/******************************************************************************/
-/*
- * Barrel jack power supply handling
- *
- * EN_PPVAR_BJ_ADP_L must default active to ensure we can power on when the
- * barrel jack is connected, and the USB-C port can bring the EC up fine in
- * dead-battery mode. Both the USB-C and barrel jack switches do reverse
- * protection, so we're safe to turn one on then the other off- but we should
- * only do that if the system is off since it might still brown out.
- */
-
-/*
- * Barrel-jack power adapter ratings.
- */
-static const struct {
- int voltage;
- int current;
-} bj_power[] = {
- { /* 0 - 65W (also default) */
- .voltage = 19000,
- .current = 3420
- },
- { /* 1 - 90W */
- .voltage = 19000,
- .current = 4740
- },
-};
-
-#define ADP_DEBOUNCE_MS 1000 /* Debounce time for BJ plug/unplug */
-/* Debounced connection state of the barrel jack */
-static int8_t adp_connected = -1;
-static void adp_connect_deferred(void)
-{
- struct charge_port_info pi = { 0 };
- int connected = !gpio_get_level(GPIO_BJ_ADP_PRESENT_L);
-
- /* Debounce */
- if (connected == adp_connected)
- return;
- if (connected) {
- unsigned int bj = ec_config_get_bj_power();
-
- pi.voltage = bj_power[bj].voltage;
- pi.current = bj_power[bj].current;
- }
- charge_manager_update_charge(CHARGE_SUPPLIER_DEDICATED,
- DEDICATED_CHARGE_PORT, &pi);
- adp_connected = connected;
-}
-DECLARE_DEFERRED(adp_connect_deferred);
-
-/* IRQ for BJ plug/unplug. It shouldn't be called if BJ is the power source. */
-void adp_connect_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&adp_connect_deferred_data, ADP_DEBOUNCE_MS * MSEC);
-}
-
-static void adp_state_init(void)
-{
- /*
- * Initialize all charge suppliers to 0. The charge manager waits until
- * all ports have reported in before doing anything.
- */
- for (int i = 0; i < CHARGE_PORT_COUNT; i++) {
- for (int j = 0; j < CHARGE_SUPPLIER_COUNT; j++)
- charge_manager_update_charge(j, i, NULL);
- }
-
- /* Report charge state from the barrel jack. */
- adp_connect_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, adp_state_init, HOOK_PRIO_CHARGE_MANAGER_INIT + 1);
-
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_LED_RED] = { .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
- [PWM_CH_LED_WHITE] = { .channel = 2,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
-};
-
-/******************************************************************************/
-/* USB-C TCPC Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
-};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
-};
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {"ina", I2C_PORT_INA, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"ppc0", I2C_PORT_PPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"power", I2C_PORT_POWER, 400, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct adc_t adc_channels[] = {
- [ADC_SNS_PP3300] = {
- /*
- * 4700/5631 voltage divider: can take the value out of range
- * for 32-bit signed integers, so truncate to 470/563 yielding
- * <0.1% error and a maximum intermediate value of 1623457792,
- * which comfortably fits in int32.
- */
- .name = "SNS_PP3300",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT * 563,
- .factor_div = (ADC_READ_MAX + 1) * 470,
- },
- [ADC_SNS_PP1050] = {
- .name = "SNS_PP1050",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_VBUS] = { /* 5/39 voltage divider */
- .name = "VBUS",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT * 39,
- .factor_div = (ADC_READ_MAX + 1) * 5,
- },
- [ADC_PPVAR_IMON] = { /* 500 mV/A */
- .name = "PPVAR_IMON",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT * 2, /* Milliamps */
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR_1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CORE] = {
- .name = "Core",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* Wake up pins */
-const enum gpio_signal hibernate_wake_pins[] = {
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2500,
- .rpm_start = 2500,
- .rpm_max = 5200,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* Thermal control; drive fan based on temperature sensors. */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(84),
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_CORE] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Power sensors */
-const struct ina3221_t ina3221[] = {
- { I2C_PORT_INA, 0x40, { "PP3300_G", "PP5000_A", "PP3300_WLAN" } },
- { I2C_PORT_INA, 0x42, { "PP3300_A", "PP3300_SSD", "PP3300_LAN" } },
- { I2C_PORT_INA, 0x43, { NULL, "PP1200_U", "PP2500_DRAM" } }
-};
-const unsigned int ina3221_count = ARRAY_SIZE(ina3221);
-
-static uint16_t board_version;
-static uint32_t sku_id;
-static uint32_t fw_config;
-
-static void cbi_init(void)
-{
- /*
- * Load board info from CBI to control per-device configuration.
- *
- * If unset it's safe to treat the board as a proto, just C10 gating
- * won't be enabled.
- */
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- if (cbi_get_fw_config(&val) == EC_SUCCESS)
- fw_config = val;
- CPRINTS("Board Version: %d, SKU ID: 0x%08x, F/W config: 0x%08x",
- board_version, sku_id, fw_config);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_init(void)
-{
- uint8_t *memmap_batt_flags;
-
- /* Override some GPIO interrupt priorities.
- *
- * These interrupts are timing-critical for AP power sequencing, so we
- * increase their NVIC priority from the default of 3. This affects
- * whole MIWU groups of 8 GPIOs since they share an IRQ.
- *
- * Latency at the default priority level can be hundreds of
- * microseconds while other equal-priority IRQs are serviced, so GPIOs
- * requiring faster response must be higher priority.
- */
- /* CPU_C10_GATE_L on GPIO6.7: must be ~instant for ~60us response. */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTH_1, 1);
- /*
- * slp_s3_interrupt (GPIOA.5 on WKINTC_0) must respond within 200us
- * (tPLT18); less critical than the C10 gate.
- */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTC_0, 2);
-
- gpio_enable_interrupt(GPIO_BJ_ADP_PRESENT_L);
-
- /* Always claim AC is online, because we don't have a battery. */
- memmap_batt_flags = host_get_memmap(EC_MEMMAP_BATT_FLAG);
- *memmap_batt_flags |= EC_BATT_FLAG_AC_PRESENT;
- /*
- * For board version < 2, the directly connected recovery
- * button is not available.
- */
- if (board_version < 2)
- button_disable_gpio(GPIO_EC_RECOVERY_BTN_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_startup(void)
-{
- /*
- * Workaround to restore VBUS on PPC.
- * PP1 is sourced from PP5000_A, and when the CPU shuts down and
- * this rail drops, the PPC will internally turn off PP1_EN.
- * When the CPU starts again, and the rail is restored, the PPC
- * does not turn PP1_EN on again, causing VBUS to stay turned off.
- * The workaround is to check whether the PPC is sourcing VBUS, and
- * if so, make sure it is enabled.
- */
- if (ppc_is_sourcing_vbus(0))
- ppc_vbus_source_enable(0, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
- HOOK_PRIO_DEFAULT);
-/******************************************************************************/
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USB-A port control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USB_VBUS,
-};
-
-/* Power Delivery and charging functions */
-static void board_tcpc_init(void)
-{
- /*
- * Reset TCPC if we have had a system reset.
- * With EFSv2, it is possible to be in RW without
- * having reset the TCPC.
- */
- if (system_get_reset_flags() & EC_RESET_FLAG_POWER_ON)
- board_reset_pd_mcu();
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- /* Enable other overcurrent interrupts */
- gpio_enable_interrupt(GPIO_HDMI_CONN0_OC_ODL);
- gpio_enable_interrupt(GPIO_HDMI_CONN1_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A1_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A2_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A3_OC_ODL);
- if (ec_config_get_usb4_present()) {
- /*
- * By default configured as output low.
- */
- gpio_set_flags(GPIO_USB_A4_OC_ODL,
- GPIO_INPUT | GPIO_INT_BOTH);
- gpio_enable_interrupt(GPIO_USB_A4_OC_ODL);
- } else {
- /* Ensure no interrupts from pin */
- gpio_disable_interrupt(GPIO_USB_A4_OC_ODL);
- }
-
-}
-/* Make sure this is called after fw_config is initialised */
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 2);
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-void board_reset_pd_mcu(void)
-{
- int level = !!(tcpc_config[USB_PD_PORT_TCPC_0].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST, level);
- msleep(BOARD_TCPC_C0_RESET_HOLD_DELAY);
- gpio_set_level(GPIO_USB_C0_TCPC_RST, !level);
- if (BOARD_TCPC_C0_RESET_POST_DELAY)
- msleep(BOARD_TCPC_C0_RESET_POST_DELAY);
-}
-
-int board_set_active_charge_port(int port)
-{
- CPRINTS("Requested charge port change to %d", port);
-
- /*
- * The charge manager may ask us to switch to no charger if we're
- * running off USB-C only but upstream doesn't support PD. It requires
- * that we accept this switch otherwise it triggers an assert and EC
- * reset; it's not possible to boot the AP anyway, but we want to avoid
- * resetting the EC so we can continue to do the "low power" LED blink.
- */
- if (port == CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- if (port < 0 || CHARGE_PORT_COUNT <= port)
- return EC_ERROR_INVAL;
-
- if (port == charge_manager_get_active_charge_port())
- return EC_SUCCESS;
-
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(port))
- return EC_ERROR_INVAL;
-
- if (!chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- int bj_active, bj_requested;
-
- if (charge_manager_get_active_charge_port() != CHARGE_PORT_NONE)
- /* Change is only permitted while the system is off */
- return EC_ERROR_INVAL;
-
- /*
- * Current setting is no charge port but the AP is on, so the
- * charge manager is out of sync (probably because we're
- * reinitializing after sysjump). Reject requests that aren't
- * in sync with our outputs.
- */
- bj_active = !gpio_get_level(GPIO_EN_PPVAR_BJ_ADP_L);
- bj_requested = port == CHARGE_PORT_BARRELJACK;
- if (bj_active != bj_requested)
- return EC_ERROR_INVAL;
- }
-
- CPRINTS("New charger p%d", port);
-
- switch (port) {
- case CHARGE_PORT_TYPEC0:
- /* TODO(b/143975429) need to touch the PD controller? */
- gpio_set_level(GPIO_EN_PPVAR_BJ_ADP_L, 1);
- break;
- case CHARGE_PORT_BARRELJACK:
- /* Make sure BJ adapter is sourcing power */
- if (gpio_get_level(GPIO_BJ_ADP_PRESENT_L))
- return EC_ERROR_INVAL;
- /* TODO(b/143975429) need to touch the PD controller? */
- gpio_set_level(GPIO_EN_PPVAR_BJ_ADP_L, 0);
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
- usbc_overcurrent = is_overcurrented;
- update_5v_usage();
-}
-
-int extpower_is_present(void)
-{
- return adp_connected;
-}
-
-int board_is_c10_gate_enabled(void)
-{
- /*
- * Puff proto drives EN_PP5000_HDMI from EN_S0_RAILS so we cannot gate
- * core rails while in S0 because HDMI should remain powered.
- * EN_PP5000_HDMI is a separate EC output on all other boards.
- */
- return board_version != 0;
-}
-
-void board_enable_s0_rails(int enable)
-{
- /* This output isn't connected on protos; safe to set anyway. */
- gpio_set_level(GPIO_EN_PP5000_HDMI, enable);
-}
-
-unsigned int ec_config_get_bj_power(void)
-{
- unsigned int bj =
- (fw_config & EC_CFG_BJ_POWER_MASK) >> EC_CFG_BJ_POWER_L;
- /* Out of range value defaults to 0 */
- if (bj >= ARRAY_SIZE(bj_power))
- bj = 0;
- return bj;
-}
-
-int ec_config_get_usb4_present(void)
-{
- return !(fw_config & EC_CFG_NO_USB4_MASK);
-}
-
-unsigned int ec_config_get_thermal_solution(void)
-{
- return (fw_config & EC_CFG_THERMAL_MASK) >> EC_CFG_THERMAL_L;
-}
-
-static void setup_thermal(void)
-{
- unsigned int table = ec_config_get_thermal_solution();
- /* Configure Fan */
- switch (table) {
- /* Default and table0 use single fan */
- case 0:
- default:
- thermal_params[TEMP_SENSOR_CORE] = thermal_a;
- break;
- /* Table1 is fanless */
- case 1:
- fan_set_count(0);
- thermal_params[TEMP_SENSOR_CORE] = thermal_b;
- break;
- }
-}
-/* fan_set_count should be called before HOOK_INIT/HOOK_PRIO_DEFAULT */
-DECLARE_HOOK(HOOK_INIT, setup_thermal, HOOK_PRIO_DEFAULT - 1);
-
-/*
- * Power monitoring and management.
- *
- * The overall goal is to gracefully manage the power demand so that
- * the power budgets are met without letting the system fall into
- * power deficit (perhaps causing a brownout).
- *
- * There are 2 power budgets that need to be managed:
- * - overall system power as measured on the main power supply rail.
- * - 5V power delivered to the USB and HDMI ports.
- *
- * The actual system power demand is calculated from the VBUS voltage and
- * the input current (read from a shunt), averaged over 5 readings.
- * The power budget limit is from the charge manager.
- *
- * The 5V power cannot be read directly. Instead, we rely on overcurrent
- * inputs from the USB and HDMI ports to indicate that the port is in use
- * (and drawing maximum power).
- *
- * There are 3 throttles that can be applied (in priority order):
- *
- * - Type A BC1.2 front port restriction (3W)
- * - Type C PD (throttle to 1.5A if sourcing)
- * - Turn on PROCHOT, which immediately throttles the CPU.
- *
- * The first 2 throttles affect both the system power and the 5V rails.
- * The third is a last resort to force an immediate CPU throttle to
- * reduce the overall power use.
- *
- * The strategy is to determine what the state of the throttles should be,
- * and to then turn throttles off or on as needed to match this.
- *
- * This function runs on demand, or every 2 ms when the CPU is up,
- * and continually monitors the power usage, applying the
- * throttles when necessary.
- *
- * All measurements are in milliwatts.
- */
-#define THROT_TYPE_A BIT(0)
-#define THROT_TYPE_C BIT(1)
-#define THROT_PROCHOT BIT(2)
-
-/*
- * Power gain if front USB A ports are limited.
- */
-#define POWER_GAIN_TYPE_A 3200
-/*
- * Power gain if Type C port is limited.
- */
-#define POWER_GAIN_TYPE_C 8800
-/*
- * Power is averaged over 10 ms, with a reading every 2 ms.
- */
-#define POWER_DELAY_MS 2
-#define POWER_READINGS (10/POWER_DELAY_MS)
-
-static void power_monitor(void)
-{
- static uint32_t current_state;
- static uint32_t history[POWER_READINGS];
- static uint8_t index;
- int32_t delay;
- uint32_t new_state = 0, diff;
- int32_t headroom_5v = PWR_MAX - base_5v_power;
-
- /*
- * If CPU is off or suspended, no need to throttle
- * or restrict power.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
- CHIPSET_STATE_SUSPEND)) {
- /*
- * Slow down monitoring, assume no throttling required.
- */
- delay = 20 * MSEC;
- /*
- * Clear the first entry of the power table so that
- * it is re-initilalised when the CPU starts.
- */
- history[0] = 0;
- } else {
- int32_t charger_mw;
-
- delay = POWER_DELAY_MS * MSEC;
- /*
- * Get current charger limit (in mw).
- * If not configured yet, skip.
- */
- charger_mw = charge_manager_get_power_limit_uw() / 1000;
- if (charger_mw != 0) {
- int32_t gap, total, max, power;
- int i;
-
- /*
- * Read power usage.
- */
- power = (adc_read_channel(ADC_VBUS) *
- adc_read_channel(ADC_PPVAR_IMON)) /
- 1000;
- /* Init power table */
- if (history[0] == 0) {
- for (i = 0; i < POWER_READINGS; i++)
- history[i] = power;
- }
- /*
- * Update the power readings and
- * calculate the average and max.
- */
- history[index] = power;
- index = (index + 1) % POWER_READINGS;
- total = 0;
- max = history[0];
- for (i = 0; i < POWER_READINGS; i++) {
- total += history[i];
- if (history[i] > max)
- max = history[i];
- }
- /*
- * For Type-C power supplies, there is
- * less tolerance for exceeding the rating,
- * so use the max power that has been measured
- * over the measuring period.
- * For barrel-jack supplies, the rating can be
- * exceeded briefly, so use the average.
- */
- if (charge_manager_get_supplier() ==
- CHARGE_SUPPLIER_PD)
- power = max;
- else
- power = total / POWER_READINGS;
- /*
- * Calculate gap, and if negative, power
- * demand is exceeding configured power budget, so
- * throttling is required to reduce the demand.
- */
- gap = charger_mw - power;
- /*
- * Limiting type-A power.
- */
- if (gap <= 0) {
- new_state |= THROT_TYPE_A;
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!(current_state & THROT_TYPE_A))
- gap += POWER_GAIN_TYPE_A;
- }
- /*
- * If the type-C port is sourcing power,
- * check whether it should be throttled.
- */
- if (ppc_is_sourcing_vbus(0) && gap <= 0) {
- new_state |= THROT_TYPE_C;
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- if (!(current_state & THROT_TYPE_C))
- gap += POWER_GAIN_TYPE_C;
- }
- /*
- * As a last resort, turn on PROCHOT to
- * throttle the CPU.
- */
- if (gap <= 0)
- new_state |= THROT_PROCHOT;
- }
- }
- /*
- * Check the 5v power usage and if necessary,
- * adjust the throttles in priority order.
- *
- * Either throttle may have already been activated by
- * the overall power control.
- *
- * We rely on the overcurrent detection to inform us
- * if the port is in use.
- *
- * - If type C not already throttled:
- * * If not overcurrent, prefer to limit type C [1].
- * * If in overcurrentuse:
- * - limit type A first [2]
- * - If necessary, limit type C [3].
- * - If type A not throttled, if necessary limit it [2].
- */
- if (headroom_5v < 0) {
- /*
- * Check whether type C is not throttled,
- * and is not overcurrent.
- */
- if (!((new_state & THROT_TYPE_C) || usbc_overcurrent)) {
- /*
- * [1] Type C not in overcurrent, throttle it.
- */
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- new_state |= THROT_TYPE_C;
- }
- /*
- * [2] If type A not already throttled, and power still
- * needed, limit type A.
- */
- if (!(new_state & THROT_TYPE_A) && headroom_5v < 0) {
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- new_state |= THROT_TYPE_A;
- }
- /*
- * [3] If still under-budget, limit type C.
- * No need to check if it is already throttled or not.
- */
- if (headroom_5v < 0)
- new_state |= THROT_TYPE_C;
- }
- /*
- * Turn the throttles on or off if they have changed.
- */
- diff = new_state ^ current_state;
- current_state = new_state;
- if (diff & THROT_PROCHOT) {
- int prochot = (new_state & THROT_PROCHOT) ? 0 : 1;
-
- gpio_set_level(GPIO_EC_PROCHOT_ODL, prochot);
- }
- if (diff & THROT_TYPE_C) {
- enum tcpc_rp_value rp = (new_state & THROT_TYPE_C)
- ? TYPEC_RP_1A5 : TYPEC_RP_3A0;
-
- ppc_set_vbus_source_current_limit(0, rp);
- tcpm_select_rp_value(0, rp);
- pd_update_contract(0);
- }
- if (diff & THROT_TYPE_A) {
- int typea_bc = (new_state & THROT_TYPE_A) ? 1 : 0;
-
- gpio_set_level(GPIO_USB_A_LOW_PWR_OD, typea_bc);
- }
- hook_call_deferred(&power_monitor_data, delay);
-}
diff --git a/board/ambassador/board.h b/board/ambassador/board.h
deleted file mode 100644
index de918b35ac..0000000000
--- a/board/ambassador/board.h
+++ /dev/null
@@ -1,289 +0,0 @@
-/* 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.
- */
-
-/* Puff board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* NPCX7 config */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-#define NPCX_UART_MODULE2 1 /* GPIO64/65 are used as UART pins. */
-
-/* Internal SPI flash on NPCX796FC is 512 kB */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-/* EC Defines */
-#define CONFIG_ADC
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_DEDICATED_RECOVERY_BUTTON_2
-#define CONFIG_BUTTONS_RUNTIME_CONFIG
-#define CONFIG_BOARD_RESET_AFTER_POWER_ON
-/* TODO: (b/143496253) re-enable CEC */
-/* #define CONFIG_CEC */
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_KEYBOARD_BOOT_KEYS
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#undef CONFIG_KEYBOARD_RUNTIME_KEYS
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_LED_COMMON
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LTO
-#define CONFIG_PWM
-#define CONFIG_VBOOT_EFS2
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_SHA256
-
-/* EC Commands */
-#define CONFIG_CMD_BUTTON
-/* Include CLI command needed to support CCD testing. */
-#define CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_KEYBOARD
-#define CONFIG_HOSTCMD_PD_CONTROL
-#undef CONFIG_CMD_PWR_AVG
-#define CONFIG_CMD_PPC_DUMP
-#define CONFIG_CMD_TCPC_DUMP
-#ifdef SECTION_IS_RO
-/* Reduce RO size by removing less-relevant commands. */
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_HCDEBUG
-#undef CONFIG_CMD_MMAPINFO
-#endif
-
-#undef CONFIG_CONSOLE_CMDHELP
-
-/* Don't generate host command debug by default */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Enable AP Reset command for TPM with old firmware version to detect it. */
-#define CONFIG_CMD_AP_RESET_LOG
-#define CONFIG_HOSTCMD_AP_RESET
-
-/* Chipset config */
-#define CONFIG_CHIPSET_COMETLAKE_DISCRETE
-/* check */
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-
-/* Dedicated barreljack charger port */
-#undef CONFIG_DEDICATED_CHARGE_PORT_COUNT
-#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 1
-#define DEDICATED_CHARGE_PORT 1
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_BUTTON_X86
-/* Check: */
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-#define CONFIG_POWER_PP5000_CONTROL
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_SLEEP_FAILURE_DETECTION
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_INA3221
-
-/* b/143501304 */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 4000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 2000 /* us */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 8000 /* us */
-
-#define PD_OPERATING_POWER_MW CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define PD_MAX_POWER_MW 100000
-#define PD_MAX_CURRENT_MA 5000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Fan and temp. */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 0
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_ROA_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-#define CONFIG_THROTTLE_AP
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-/* Less than this much blocks AP power-on. */
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 30000
-#undef CONFIG_CHARGE_MANAGER_SAFE_MODE
-
-/* USB type C */
-#define CONFIG_USB_PD_TCPMV2 /* Use TCPMv2 */
-#define CONFIG_USB_PD_REV30 /* Enable PD 3.0 functionality */
-#define CONFIG_USB_PD_DECODE_SOP
-#undef CONFIG_USB_CHARGER
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PID 0x5040
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DISCHARGE_PPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_VBUS_DETECT_PPC
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USBC_PPC_DEDICATED_INT
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-#define USB_PD_PORT_TCPC_0 0
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_DUMB
-/* There are five ports, but power enable is ganged across all of them. */
-#define USB_PORT_COUNT 1
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_INA NPCX_I2C_PORT0_0
-#define I2C_PORT_PPC0 NPCX_I2C_PORT1_0
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define PP5000_PGOOD_POWER_SIGNAL_MASK POWER_SIGNAL_MASK(PP5000_A_PGOOD)
-
-/* Include math_util for bitmask_uint64 used in pd_timers */
-#define CONFIG_MATH_UTIL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum charge_port {
- CHARGE_PORT_TYPEC0,
- CHARGE_PORT_BARRELJACK,
-};
-
-enum adc_channel {
- ADC_SNS_PP3300, /* ADC2 */
- ADC_SNS_PP1050, /* ADC7 */
- ADC_VBUS, /* ADC4 */
- ADC_PPVAR_IMON, /* ADC9 */
- ADC_TEMP_SENSOR_1, /* ADC0 */
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_LED_RED,
- PWM_CH_LED_WHITE,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CORE,
- TEMP_SENSOR_COUNT
-};
-
-
-/* Board specific handlers */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-void led_alert(int enable);
-void show_critical_error(void);
-
-/*
- * firmware config fields
- */
-/*
- * Barrel-jack power (4 bits).
- */
-#define EC_CFG_BJ_POWER_L 0
-#define EC_CFG_BJ_POWER_H 3
-#define EC_CFG_BJ_POWER_MASK GENMASK(EC_CFG_BJ_POWER_H, EC_CFG_BJ_POWER_L)
-/*
- * USB Connector 4 not present (1 bit).
- */
-#define EC_CFG_NO_USB4_L 4
-#define EC_CFG_NO_USB4_H 4
-#define EC_CFG_NO_USB4_MASK GENMASK(EC_CFG_NO_USB4_H, EC_CFG_NO_USB4_L)
-/*
- * Thermal solution config (3 bits).
- */
-#define EC_CFG_THERMAL_L 5
-#define EC_CFG_THERMAL_H 7
-#define EC_CFG_THERMAL_MASK GENMASK(EC_CFG_THERMAL_H, EC_CFG_THERMAL_L)
-
-unsigned int ec_config_get_bj_power(void);
-int ec_config_get_usb4_present(void);
-unsigned int ec_config_get_thermal_solution(void);
-
-#endif /* !__ASSEMBLER__ */
-
-/* Pin renaming */
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PP5000_A_PG_OD GPIO_PG_PP5000_A_OD
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_RECOVERY_L GPIO_EC_RECOVERY_BTN_ODL
-#define GPIO_RECOVERY_L_2 GPIO_H1_EC_RECOVERY_BTN_ODL
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_AC_PRESENT GPIO_BJ_ADP_PRESENT_L
-
-/*
- * There is no RSMRST input, so alias it to the output. This short-circuits
- * common_intel_x86_handle_rsmrst.
- */
-#define GPIO_RSMRST_L_PGOOD GPIO_PCH_RSMRST_L
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/ambassador/build.mk b/board/ambassador/build.mk
deleted file mode 100644
index 0f55c45f77..0000000000
--- a/board/ambassador/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
-board-y+=led.o
diff --git a/board/ambassador/ec.tasklist b/board/ambassador/ec.tasklist
deleted file mode 100644
index f820cf903c..0000000000
--- a/board/ambassador/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE)
diff --git a/board/ambassador/gpio.inc b/board/ambassador/gpio.inc
deleted file mode 100644
index 9d718bb110..0000000000
--- a/board/ambassador/gpio.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Pin names follow the schematic, and are aliased to other names if necessary.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Latency on this interrupt is extremely critical, so it comes first to ensure
- * it gets placed first in gpio_wui_table so gpio_interrupt() needs to do
- * minimal scanning. */
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, c10_gate_interrupt)
-
-/* Wake Source interrupts */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_PP5000_A_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1800_A_OD, PIN(3, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VPRIM_CORE_A_OD, PIN(2, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1050_A_OD, PIN(2, 2), GPIO_INT_BOTH, power_signal_interrupt)
-/* EC output, but also interrupt so this can be polled as a power signal */
-GPIO_INT(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUTPUT | GPIO_INT_F_RISING | GPIO_INT_F_FALLING, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_PP2500_DRAM_U_OD, PIN(2, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1200_U_OD, PIN(2, 1), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, slp_s3_interrupt)
-#endif
-GPIO_INT(PG_PP950_VCCIO_OD, PIN(1, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(IMVP8_VRRDY_OD, PIN(1, 6), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Other interrupts */
-GPIO_INT(USB_C0_TCPPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-/*
- * Directly connected recovery button (not available on some boards).
- */
-GPIO_INT(EC_RECOVERY_BTN_ODL, PIN(F, 1), GPIO_INT_BOTH, button_interrupt)
-/*
- * Recovery button input from H1.
- */
-GPIO_INT(H1_EC_RECOVERY_BTN_ODL, PIN(2, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(BJ_ADP_PRESENT_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, adp_connect_interrupt)
-
-/* Port power control interrupts */
-GPIO_INT(HDMI_CONN0_OC_ODL, PIN(0, 7), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(HDMI_CONN1_OC_ODL, PIN(0, 6), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A0_OC_ODL, PIN(E, 4), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A1_OC_ODL, PIN(A, 2), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A2_OC_ODL, PIN(F, 5), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A3_OC_ODL, PIN(0, 3), GPIO_INT_BOTH, port_ocp_interrupt)
-/* May be reconfigured as input */
-GPIO_INT(USB_A4_OC_ODL, PIN(B, 0), GPIO_OUT_LOW | GPIO_INT_BOTH, port_ocp_interrupt)
-
-/* PCH/CPU signals */
-GPIO(EC_PCH_PWROK, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_ODR_HIGH)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Power control outputs */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_INA_H1_EC_ODL, PIN(5, 7), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_A, PIN(1, 5), GPIO_OUT_LOW)
-GPIO(VCCST_PG_OD, PIN(1, 4), GPIO_ODR_LOW)
-GPIO(EN_S0_RAILS, PIN(1, 1), GPIO_OUT_LOW)
-GPIO(EN_ROA_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP950_VCCIO, PIN(1, 0), GPIO_OUT_LOW)
-GPIO(EC_IMVP8_PE, PIN(A, 7), GPIO_OUT_LOW)
-GPIO(EN_IMVP8_VR, PIN(F, 4), GPIO_OUT_LOW)
-
-/* Barreljack */
-GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 4), GPIO_OUT_LOW)
-
-/* USB type A */
-GPIO(EN_PP5000_USB_VBUS, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(USB_A2_STATUS_L, PIN(6, 1), GPIO_INPUT)
-GPIO(USB_A3_STATUS_L, PIN(C, 7), GPIO_INPUT)
-
-/* USB type C */
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-
-/* Misc. */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-GPIO(EN_PP_MST_OD, PIN(9, 6), GPIO_ODR_HIGH)
-GPIO(PACKET_MODE_EN, PIN(7, 5), GPIO_OUT_LOW)
-
-/* HDMI/CEC */
-GPIO(EN_PP5000_HDMI, PIN(5, 0), GPIO_OUT_LOW)
-GPIO(HDMI_CONN0_CEC_OUT, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN0_CEC_IN, PIN(4, 0), GPIO_INPUT)
-GPIO(HDMI_CONN1_CEC_OUT, PIN(9, 5), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN1_CEC_IN, PIN(D, 3), GPIO_INPUT)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_INA_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_INA_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_IMVP8_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_IMVP8_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x08), 0, MODULE_PWM, 0) /* PWM0 - Red Led */
-ALTERNATE(PIN_MASK(C, 0x10), 0, MODULE_PWM, 0) /* PWM2 - White Led */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - Fan 1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x2A), 0, MODULE_ADC, 0) /* ADC0, ADC2, ADC4 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* ADC7 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Unused pins */
-UNUSED(PIN(1, 3)) /* EC_GP_SEL1_ODL */
-UNUSED(PIN(F, 2)) /* EC_I2C_RFU_SDA */
-UNUSED(PIN(F, 3)) /* EC_I2C_RFU_SCL */
-UNUSED(PIN(C, 0)) /* FAN_PWM_2 */
-UNUSED(PIN(8, 0)) /* LED_BLUE_L */
-UNUSED(PIN(4, 4)) /* ADC1/TEMP_SENSOR_2 */
-UNUSED(PIN(4, 2)) /* ADC3/TEMP_SENSOR_3 */
-UNUSED(PIN(C, 2)) /* A12 NC */
-UNUSED(PIN(9, 2)) /* K8 NC */
-UNUSED(PIN(9, 1)) /* L8 NC */
-UNUSED(PIN(1, 2)) /* C6 NC */
-UNUSED(PIN(6, 6)) /* H4 NC */
-UNUSED(PIN(8, 1)) /* L6 NC */
-UNUSED(PIN(C, 6)) /* B11 NC */
-UNUSED(PIN(E, 2)) /* B8 NC */
-UNUSED(PIN(8, 5)) /* L7 NC */
-UNUSED(PIN(0, 0)) /* D11 NC */
-UNUSED(PIN(3, 2)) /* E5 NC */
-UNUSED(PIN(D, 6)) /* F6 NC */
-UNUSED(PIN(3, 5)) /* F5 NC */
-UNUSED(PIN(5, 6)) /* M2 NC */
-UNUSED(PIN(D, 2)) /* C11 NC */
-UNUSED(PIN(8, 6)) /* J8 NC */
-UNUSED(PIN(9, 3)) /* M11 NC */
-UNUSED(PIN(7, 2)) /* H6 NC */
diff --git a/board/ambassador/led.c b/board/ambassador/led.c
deleted file mode 100644
index 659a63a483..0000000000
--- a/board/ambassador/led.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/* 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.
- *
- * Power LED control for Puff.
- * Solid green - active power
- * Green flashing - suspended
- * Red flashing - alert
- * Solid red - critical
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
-
-/*
- * Due to the CSME-Lite processing, upon startup the CPU transitions through
- * S0->S3->S5->S3->S0, causing the LED to turn on/off/on, so
- * delay turning off the LED during suspend/shutdown.
- */
-#define LED_CPU_DELAY_MS (2000 * MSEC)
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_WHITE,
- LED_AMBER,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int white = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_WHITE:
- white = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- case LED_AMBER:
- red = 1;
- white = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (white)
- pwm_set_duty(PWM_CH_LED_WHITE, duty);
- else
- pwm_set_duty(PWM_CH_LED_WHITE, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec.
- */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIG_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIG_TICK(LED_PULSE_TICK_US, LED_WHITE);
- led_tick();
-}
-DECLARE_DEFERRED(led_suspend);
-
-static void led_shutdown(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_DEFERRED(led_shutdown);
-
-static void led_shutdown_hook(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown_hook, HOOK_PRIO_DEFAULT);
-
-static void led_suspend_hook(void)
-{
- hook_call_deferred(&led_shutdown_data, -1);
- hook_call_deferred(&led_suspend_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend_hook, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task.
- */
- hook_call_deferred(&led_tick_data, -1);
- /*
- * Avoid invoking the suspend/shutdown delayed hooks.
- */
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_WHITE, 1);
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_INIT_PWM + 1);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend_hook();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown_hook();
- }
-}
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "white")) {
- set_color(id, LED_WHITE, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|white|amber|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_WHITE])
- return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]);
- else if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/ambassador/usb_pd_policy.c b/board/ambassador/usb_pd_policy.c
deleted file mode 100644
index 5bc754453a..0000000000
--- a/board/ambassador/usb_pd_policy.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* 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.
- */
-
-/* Shared USB-C policy for Puff boards */
-
-#include "charge_manager.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "system.h"
-#include "tcpm/tcpci.h"
-#include "tcpm/tcpm.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-
-int pd_check_vconn_swap(int port)
-{
- /* Only allow vconn swap if pp5000_A rail is enabled */
- return gpio_get_level(GPIO_EN_PP5000_A);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = ppc_is_sourcing_vbus(port);
-
- /* Disable VBUS. */
- ppc_vbus_source_enable(port, 0);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- /* Disable charging. */
- rv = ppc_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- pd_set_vbus_discharge(port, 0);
-
- /* Provide Vbus. */
- rv = ppc_vbus_source_enable(port, 1);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-#ifdef CONFIG_USB_PD_VBUS_DETECT_PPC
-int pd_snk_is_vbus_provided(int port)
-{
- return ppc_is_vbus_present(port);
-}
-#endif
-
-int board_vbus_source_enabled(int port)
-{
- /* Ignore non-PD ports (the barrel jack). */
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return 0;
- return ppc_is_sourcing_vbus(port);
-}
diff --git a/board/ambassador/vif_override.xml b/board/ambassador/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/ambassador/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/ampton/battery.c b/board/ampton/battery.c
deleted file mode 100644
index ee9b9b96e9..0000000000
--- a/board/ampton/battery.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "common.h"
-#include "hooks.h"
-#include "usb_pd.h"
-
-/*
- * Battery info for all ampton/apel battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C214] = {
- .fuel_gauge = {
- .manuf_name = "AS1GUXd3KB",
- .device_name = "C214-43",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_C204EE] = {
- .fuel_gauge = {
- .manuf_name = "AS1GVCD3KB",
- .device_name = "C204-35",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_C424] = {
- .fuel_gauge = {
- .manuf_name = "AS2GVID3jB",
- .device_name = "C424-35",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C214;
diff --git a/board/ampton/board.c b/board/ampton/board.c
deleted file mode 100644
index 1634f02991..0000000000
--- a/board/ampton/board.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Ampton/Apel board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_state.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/sync.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/usb_mux/it5205.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-static uint8_t sku_id;
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- if (signal == GPIO_USB_C0_PD_INT_ODL)
- sn5s330_interrupt(0);
- else if (signal == GPIO_USB_C1_PD_INT_ODL)
- sn5s330_interrupt(1);
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == 0)
- return gpio_get_level(GPIO_USB_C0_PD_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PD_INT_ODL) == 0;
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* USB-C MUX Configuration */
-
-#define USB_PD_PORT_ITE_0 0
-#define USB_PD_PORT_ITE_1 1
-
-static int tune_mux(const struct usb_mux *me);
-
-const struct usb_mux ampton_usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ITE_0] = {
- /* Use PS8751 as mux only */
- .usb_port = USB_PD_PORT_ITE_0,
- .i2c_port = I2C_PORT_USBC0,
- .i2c_addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .flags = USB_MUX_FLAG_NOT_TCPC,
- .driver = &ps8xxx_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .board_init = &tune_mux,
- },
- [USB_PD_PORT_ITE_1] = {
- /* Use PS8751 as mux only */
- .usb_port = USB_PD_PORT_ITE_1,
- .i2c_port = I2C_PORT_USBC1,
- .i2c_addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .flags = USB_MUX_FLAG_NOT_TCPC,
- .driver = &ps8xxx_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .board_init = &tune_mux,
- }
-};
-
-/* Some external monitors can't display content normally (eg. ViewSonic VX2880).
- * We need to turn the mux for monitors to function normally.
- */
-static int tune_mux(const struct usb_mux *me)
-{
- /* Auto EQ disabled, compensate for channel lost up to 3.6dB */
- RETURN_ERROR(mux_write(me, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98));
- /* DP output swing adjustment +15% */
- RETURN_ERROR(mux_write(me, PS8XXX_REG_MUX_DP_OUTPUT_CONFIGURATION,
- 0xc0));
-
- return EC_SUCCESS;
-}
-/******************************************************************************/
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Vbus C0 sensing (10x voltage divider). PPVAR_USB_C0_VBUS */
- [ADC_VBUS_C0] = {.name = "VBUS_C0",
- .factor_mul = 10 * ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13},
- /* Vbus C1 sensing (10x voltage divider). SUB_EC_ADC */
- [ADC_VBUS_C1] = {.name = "VBUS_C1",
- .factor_mul = 10 * ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH14},
- /* Convert to raw mV for thermistor table lookup */
- [ADC_TEMP_SENSOR_AMB] = {.name = "TEMP_AMB",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3},
- /* Convert to raw mV for thermistor table lookup */
- [ADC_TEMP_SENSOR_CHARGER] = {.name = "TEMP_CHARGER",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH5},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t gyro_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-static const struct motion_sensor_t motion_sensor_bma253 = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR2_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &gyro_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [VSYNC] = {
- .name = "Camera VSYNC",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static int board_is_convertible(void)
-{
- /* SKU IDs of Ampton & unprovisioned: 1, 2, 3, 4, 255 */
- return sku_id == 1 || sku_id == 2 || sku_id == 3 || sku_id == 4
- || sku_id == 255;
- }
-
-static int board_with_sensor_bma253(void)
-{
- /* SKU ID 3 and 4 of Ampton with BMA253 */
- return sku_id == 3 || sku_id == 4;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
- if (board_with_sensor_bma253())
- motion_sensors[LID_ACCEL] = motion_sensor_bma253;
-
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
-
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void board_customize_usbc_mux(uint32_t board_version)
-{
- if (board_version > 0) {
- /* not proto, override the mux setting */
- memcpy(usb_muxes, ampton_usb_muxes, sizeof(ampton_usb_muxes));
- }
-}
-
-/* Read CBI from i2c eeprom and initialize variables for board variants */
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) != EC_SUCCESS)
- return;
- sku_id = val;
- ccprints("SKU: %d", sku_id);
-
- board_update_sensor_config_from_sku();
-
- if (cbi_get_board_version(&val) != EC_SUCCESS)
- return;
- ccprints("Board version: %d", val);
- board_customize_usbc_mux(val);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_hibernate_late(void)
-{
- /*
- * Set KSO/KSI pins to GPIO input function to disable keyboard scan
- * while hibernating. This also prevent leakage current caused
- * by internal pullup of keyboard scan module.
- */
- gpio_set_flags_by_mask(GPIO_KSO_H, 0xff, GPIO_INPUT);
- gpio_set_flags_by_mask(GPIO_KSO_L, 0xff, GPIO_INPUT);
- gpio_set_flags_by_mask(GPIO_KSI, 0xff, GPIO_INPUT);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/78344554): pass this signal upstream once hardware reworked */
- cprints(CC_USBPD, "p%d: overcurrent!", port);
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
diff --git a/board/ampton/board.h b/board/ampton/board.h
deleted file mode 100644
index c72378d625..0000000000
--- a/board/ampton/board.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Ampton/Apel board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_ITE8320
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-/* I2C bus configuraiton */
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_LED_COMMON
-
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 5000
-
-/* Sensors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_PP3300
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_SYNC /* Camera VSYNC */
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-
-/* Keyboard backlight is unimplemented in hardware */
-#undef CONFIG_PWM
-#undef CONFIG_PWM_KBLIGHT
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS_C0,
- ADC_VBUS_C1,
- ADC_TEMP_SENSOR_AMB,
- ADC_TEMP_SENSOR_CHARGER,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- VSYNC,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_C214,
- BATTERY_C204EE,
- BATTERY_C424,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/ampton/build.mk b/board/ampton/build.mk
deleted file mode 100644
index cc6b73093e..0000000000
--- a/board/ampton/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/ampton/ec.tasklist b/board/ampton/ec.tasklist
deleted file mode 100644
index 2703dd0b5c..0000000000
--- a/board/ampton/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE)
diff --git a/board/ampton/gpio.inc b/board/ampton/gpio.inc
deleted file mode 100644
index 724d9a98d9..0000000000
--- a/board/ampton/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(WP_L, PIN(I, 4), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_SERVO_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(H, 6), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(H, 5), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(G, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(F, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(F, 2), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 0), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-GPIO_INT(AC_PRESENT, PIN(A, 7), GPIO_INT_BOTH, extpower_interrupt) /* ACOK_OD */
-
-#ifdef CONFIG_HOSTCMD_ESPI
-/* enable 1.8v input of EC's espi_reset pin, and then this pin takes effect. */
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt) /* eSPI_reset# */
-#endif
-
-/* Other interrupts */
-GPIO_INT(TABLET_MODE_L, PIN(H, 4), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(D, 6), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(D, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(J, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-
-GPIO(PCH_PLTRST_L, PIN(E, 3), GPIO_INPUT) /* PLT_RST_L: Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(B, 6), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(K, 7), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(D, 1), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(D, 0), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(K, 2), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(K, 3), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(K, 5), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(K, 1), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(D, 7), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 6), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(K, 4), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(B, 5), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(A, 2), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(C, 0), GPIO_INPUT)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(C, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_POWER_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_POWER_3V3_SDA */
-GPIO(I2C1_SCL, PIN(C, 1), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C1_SDA, PIN(C, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-GPIO(I2C2_SCL, PIN(F, 6), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C2_SDA, PIN(F, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C4_SCL, PIN(E, 0), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C4_SDA, PIN(E, 7), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C5_SCL, PIN(A, 4), GPIO_INPUT) /* EC_I2C_PROG_SCL */
-GPIO(I2C5_SDA, PIN(A, 5), GPIO_INPUT) /* EC_I2C_PROG_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(B, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(H, 3), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(K, 0), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(K, 6), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(J, 0), GPIO_INPUT |
- GPIO_SEL_1P8V) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(J, 1), GPIO_INPUT |
- GPIO_SEL_1P8V) /* C1 DP Hotplug Detect */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(A, 0), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(I, 0), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(J, 4), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(J, 5), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C0_PD_RST_ODL, PIN(L, 6), GPIO_ODR_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_ODL, PIN(L, 7), GPIO_ODR_HIGH) /* C1 PD Reset */
-
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-
-/* LED */
-GPIO(BAT_LED_AMBER, PIN(A, 6), GPIO_OUT_LOW) /* LED_1_EC */
-GPIO(BAT_LED_WHITE, PIN(A, 3), GPIO_OUT_LOW) /* LED_2_EC */
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH)
-
-GPIO(WFCAM_VSYNC, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-
-UNIMPLEMENTED(KB_BL_PWR_EN)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOB2_NC, PIN(B, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG0_NC, PIN(G, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG1_NC, PIN(G, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH0_NC, PIN(H, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL2_NC, PIN(L, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOD3_NC, PIN(D, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOI1_NC, PIN(I, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO12_NC, PIN(I, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(B, 0x03), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x18), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, 0x06), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C1 - 1.8V */
-ALTERNATE(PIN_MASK(F, 0xC0), 0, MODULE_I2C, 0) /* I2C2 */
-ALTERNATE(PIN_MASK(E, 0x81), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, 0x30), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(L, 0x03), 0, MODULE_ADC, 0) /* ADC13 & ADC14: ADC_USB_C0_VBUS & ADC_USB_C1_VBUS */
-ALTERNATE(PIN_MASK(I, 0x28), 0, MODULE_ADC, 0) /* ADC3 & ADC5: TEMP_SENSOR_AMB & TEMP_SENSOR_CHARGER */
diff --git a/board/ampton/led.c b/board/ampton/led.c
deleted file mode 100644
index e8c2c35d11..0000000000
--- a/board/ampton/led.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Ampton
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 0
-#define LED_ON_LVL 1
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 94;
-
-/* Ampton: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_BAT_LED_WHITE, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_WHITE, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_WHITE, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/ampton/vif_override.xml b/board/ampton/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/ampton/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/anahera/battery.c b/board/anahera/battery.c
deleted file mode 100644
index 95ca9be206..0000000000
--- a/board/anahera/battery.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "compile_time_macros.h"
-
-/*
- * Battery info for all Anahera battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* 996QA193H Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* B00C407792D0001 CosMX Battery Information */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_HIGHPOWER;
diff --git a/board/anahera/board.c b/board/anahera/board.c
deleted file mode 100644
index c1de2df6ac..0000000000
--- a/board/anahera/board.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "fw_config.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "peripheral_charger.h"
-#include "power_button.h"
-#include "power.h"
-#include "registers.h"
-#include "switch.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/anahera/board.h b/board/anahera/board.h
deleted file mode 100644
index c2a2c09796..0000000000
--- a/board/anahera/board.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Anahera board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-/* Sensors */
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_TABLET_MODE_SWITCH
-#undef CONFIG_GMR_TABLET_MODE
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_NCT38XX
-#define CONFIG_IO_EXPANDER_PORT_COUNT 2
-
-#define CONFIG_USBC_RETIMER_INTEL_BB
-
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_NX20P3483
-
-/* TODO: b/193452481 - measure and check these values on redrix */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* I2C Bus Configuration */
-#define I2C_PORT_USB_C0_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C0_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_MUX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1
-
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-/*
- * see b/174768555#comment22
- */
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x56
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x58
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-/* Retimer */
-#define CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* Fan features */
-#define CONFIG_FANS FAN_CH_COUNT
-
-/* Charger defines */
-#define CONFIG_CHARGER_BQ25720
-#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR,
- ADC_TEMP_SENSOR_2_SOC,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_TEMP_SENSOR_4_REGULATOR,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR,
- TEMP_SENSOR_2_SOC,
- TEMP_SENSOR_3_CHARGER,
- TEMP_SENSOR_4_REGULATOR,
- TEMP_SENSOR_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT38XX = 0,
- IOEX_C1_NCT38XX,
- IOEX_PORT_COUNT
-};
-
-enum battery_type {
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/anahera/build.mk b/board/anahera/build.mk
deleted file mode 100644
index ebfbe57fdc..0000000000
--- a/board/anahera/build.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Anahera board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=usbc_config.o
diff --git a/board/anahera/charger.c b/board/anahera/charger.c
deleted file mode 120000
index 476ce97df2..0000000000
--- a/board/anahera/charger.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/brya/charger_bq25720.c \ No newline at end of file
diff --git a/board/anahera/ec.tasklist b/board/anahera/ec.tasklist
deleted file mode 100644
index 5cf454d4c2..0000000000
--- a/board/anahera/ec.tasklist
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(LED, led_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/anahera/fans.c b/board/anahera/fans.c
deleted file mode 100644
index c177df5578..0000000000
--- a/board/anahera/fans.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* TOOD(b/193487913): need to update for real fan */
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 7200,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
diff --git a/board/anahera/fw_config.c b/board/anahera/fw_config.c
deleted file mode 100644
index e59688b17d..0000000000
--- a/board/anahera/fw_config.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union redrix_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for redrix if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union redrix_cbi_fw_config fw_config_defaults = {
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Redrix FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-
- if (get_board_id() == 0) {
- /*
- * Early boards have a zero'd out FW_CONFIG, so replace
- * it with a sensible default value.
- */
- if (fw_config.raw_value == 0) {
- CPRINTS("CBI: FW_CONFIG is zero, using board defaults");
- fw_config = fw_config_defaults;
- }
- }
-}
-
-union redrix_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-bool ec_cfg_has_eps(void)
-{
- return (fw_config.eps == EPS_ENABLED);
-}
diff --git a/board/anahera/fw_config.h b/board/anahera/fw_config.h
deleted file mode 100644
index 6480f07b35..0000000000
--- a/board/anahera/fw_config.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_BRYA_FW_CONFIG_H_
-#define __BOARD_BRYA_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for Redrix board.
- *
- * Source of truth is the project/brya/redrix/config.star configuration file.
- */
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-enum ec_cfg_eps_type {
- EPS_DISABLED = 0,
- EPS_ENABLED = 1
-};
-
-union redrix_cbi_fw_config {
- struct {
- uint32_t sd_db : 2;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t lte_db : 2;
- uint32_t ufc : 2;
- enum ec_cfg_eps_type eps : 1;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union redrix_cbi_fw_config get_fw_config(void);
-
-/**
- * Check if the FW_CONFIG has enabled privacy screen.
- *
- * @return true if board supports privacy screen, false if the board
- * doesn't support it.
- */
-bool ec_cfg_has_eps(void);
-
-#endif /* __BOARD_BRYA_FW_CONFIG_H_ */
diff --git a/board/anahera/gpio.inc b/board/anahera/gpio.inc
deleted file mode 100644
index ceb5087bd4..0000000000
--- a/board/anahera/gpio.inc
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_RT_INT_ODL, PIN(B, 1), GPIO_INT_FALLING, retimer_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(8, 3), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(7, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_RT_INT_ODL, PIN(4, 1), GPIO_INT_FALLING, retimer_interrupt)
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(4, 3), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(A, 0), GPIO_ODR_LOW)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-
-/* LED */
-GPIO(C0_CHARGE_LED_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH) /* Amber C0 port */
-GPIO(C0_CHARGE_LED_WHITE_L, PIN(C, 3), GPIO_OUT_HIGH) /* White C0 port */
-GPIO(C1_CHARGE_LED_AMBER_L, PIN(5, 7), GPIO_OUT_HIGH) /* Amber C1 port */
-GPIO(C1_CHARGE_LED_WHITE_L, PIN(9, 4), GPIO_OUT_HIGH) /* White C1 port */
-GPIO(PWR_LED_WHITE_L, PIN(C, 2), GPIO_OUT_HIGH) /* Power LED */
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* GPIO73/TA2 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(6, 6)) /* GPO66/ARM_L_x86 */
-UNUSED(PIN(0, 2)) /* GPIO02/PSL_IN4 */
-UNUSED(PIN(5, 0)) /* GPIO50 */
-UNUSED(PIN(5, 6)) /* GPIO56/CLKRUN_L */
-UNUSED(PIN(6, 0)) /* GPIO60/PWM7 */
-UNUSED(PIN(7, 3)) /* GPIO73/TA2 */
-UNUSED(PIN(8, 1)) /* GPIO81/PECI_DATA */
-UNUSED(PIN(9, 5)) /* GPIO95/SPIP_MISO */
-UNUSED(PIN(B, 4)) /* GPIOB4/I2C0_SDA0 */
-UNUSED(PIN(B, 5)) /* GPIOB5/I2C0_SCL0 */
-UNUSED(PIN(D, 4)) /* GPIOD4/CR_SIN3 */
-UNUSED(PIN(F, 5)) /* GPIOF5/I2C5_SCL1 */
-
-/* Pre-configured PSL balls: J8 K6 */
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-
-IOEX(USB_C0_OC_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C0_FRS_EN, EXPIN(IOEX_C0_NCT38XX, 0, 6), GPIO_LOW)
-IOEX(USB_C0_RT_RST_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 7), GPIO_ODR_LOW)
-
-IOEX(USB_C1_OC_ODL, EXPIN(IOEX_C1_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C1_FRS_EN, EXPIN(IOEX_C1_NCT38XX, 0, 6), GPIO_LOW)
-IOEX(USB_C1_RT_RST_ODL, EXPIN(IOEX_C1_NCT38XX, 0, 7), GPIO_ODR_LOW)
diff --git a/board/anahera/i2c.c b/board/anahera/i2c.c
deleted file mode 100644
index 74208f4575..0000000000
--- a/board/anahera/i2c.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C1 */
- .name = "tcpc0",
- .port = I2C_PORT_USB_C0_TCPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0",
- .port = I2C_PORT_USB_C0_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_PPC_BC_SDA,
- },
- {
- /* I2C3 */
- .name = "retimer0",
- .port = I2C_PORT_USB_C0_MUX,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_RT_SCL,
- .sda = GPIO_EC_I2C_USB_C0_RT_SDA,
- },
- {
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C6 */
- .name = "ppc1,retimer1",
- .port = I2C_PORT_USB_C1_PPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_C1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/anahera/keyboard.c b/board/anahera/keyboard.c
deleted file mode 100644
index 90506163d9..0000000000
--- a/board/anahera/keyboard.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config keybd1 = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_KBD_BKLIGHT_TOGGLE, /* T8 */
- TK_PLAY_PAUSE, /* T9 */
- TK_MICMUTE, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config keybd2 = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_PRIVACY_SCRN_TOGGLE, /* T8 */
- TK_KBD_BKLIGHT_TOGGLE, /* T9 */
- TK_MICMUTE, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config *
-board_vivaldi_keybd_config(void)
-{
- if (ec_cfg_has_eps() == 0)
- return &keybd1;
- else
- return &keybd2;
-}
diff --git a/board/anahera/led.c b/board/anahera/led.c
deleted file mode 100644
index bd088bfe97..0000000000
--- a/board/anahera/led.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Redrix
- */
-
-#include <stdint.h>
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "task.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICK_INTERVAL_MS (500 * MSEC)
-#define LED_CYCLE_TIME_MS (2000 * MSEC)
-#define LED_TICKS_PER_CYCLE (LED_CYCLE_TIME_MS / LED_TICK_INTERVAL_MS)
-#define LED_ON_TIME_MS (1000 * MSEC)
-#define LED_ON_TICKS (LED_ON_TIME_MS / LED_TICK_INTERVAL_MS)
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- LEFT_PORT = 0,
- RIGHT_PORT
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == RIGHT_PORT ? GPIO_C1_CHARGE_LED_AMBER_L :
- GPIO_C0_CHARGE_LED_AMBER_L);
- white_led = (port == RIGHT_PORT ? GPIO_C1_CHARGE_LED_WHITE_L :
- GPIO_C0_CHARGE_LED_WHITE_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- break;
- case EC_LED_ID_POWER_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(LED_WHITE);
- else
- led_set_color_power(LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static unsigned int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x1) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static unsigned int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_set_color_power((power_tick %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-void led_task(void *u)
-{
- uint32_t start_time;
- uint32_t task_duration;
-
- while (1) {
- start_time = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- led_set_battery();
-
- /* Compute time for this iteration */
- task_duration = get_time().le.lo - start_time;
- /*
- * Compute wait time required to for next desired LED tick. If
- * the duration exceeds the tick time, then don't sleep.
- */
- if (task_duration < LED_TICK_INTERVAL_MS)
- usleep(LED_TICK_INTERVAL_MS - task_duration);
- }
-}
diff --git a/board/anahera/pwm.c b/board/anahera/pwm.c
deleted file mode 100644
index 54d0d05afb..0000000000
--- a/board/anahera/pwm.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
diff --git a/board/anahera/sensors.c b/board/anahera/sensors.c
deleted file mode 100644
index 43fc7ef045..0000000000
--- a/board/anahera/sensors.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "adc_chip.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR] = {
- .name = "TEMP_DDR",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_SOC] = {
- .name = "TEMP_SOC",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_4_REGULATOR] = {
- .name = "TEMP_REGULATOR",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR] = {
- .name = "DDR",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR
- },
- [TEMP_SENSOR_2_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_SOC
- },
- [TEMP_SENSOR_3_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3_CHARGER
- },
- [TEMP_SENSOR_4_REGULATOR] = {
- .name = "Regulator",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4_REGULATOR
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- */
-static const struct ec_thermal_config thermal_ddr = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to SOC, so we need to use the lower
- * SOC temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- */
-static const struct ec_thermal_config thermal_charger = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- */
-static const struct ec_thermal_config thermal_regulator = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/* this should really be "const" */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR] = thermal_ddr,
- [TEMP_SENSOR_2_SOC] = thermal_cpu,
- [TEMP_SENSOR_3_CHARGER] = thermal_charger,
- [TEMP_SENSOR_4_REGULATOR] = thermal_regulator,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/anahera/usbc_config.c b/board/anahera/usbc_config.c
deleted file mode 100644
index 73a7b402cc..0000000000
--- a/board/anahera/usbc_config.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_4_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = SYV682X_ADDR2_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-static const struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-static const struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_MUX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc0_tcss_usb_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C1_MUX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc1_tcss_usb_mux,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_1_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/*
- * USB C0 and C1 uses burnside bridge chips and have their reset
- * controlled by their respective TCPC chips acting as GPIO expanders.
- *
- * ioex_init() is normally called before we take the TCPCs out of
- * reset, so we need to start in disabled mode, then explicitly
- * call ioex_init().
- */
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_C1_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C1_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_4_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- enum ioex_signal rst_signal;
-
- if (me->usb_port == USBC_PORT_C0) {
- rst_signal = IOEX_USB_C0_RT_RST_ODL;
- } else if (me->usb_port == USBC_PORT_C1) {
- rst_signal = IOEX_USB_C1_RT_RST_ODL;
- } else {
- return EC_ERROR_INVAL;
- }
-
- /*
- * We do not have a load switch for the burnside bridge chips,
- * so we only need to sequence reset.
- */
-
- if (enable) {
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- ioex_set_level(rst_signal, 1);
- /*
- * Allow 1ms time for the retimer to power up lc_domain
- * which powers I2C controller within retimer
- */
- msleep(1);
- } else {
- ioex_set_level(rst_signal, 0);
- msleep(1);
- }
- return EC_SUCCESS;
-}
-
-void board_reset_pd_mcu(void)
-{
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 0);
- gpio_set_level(GPIO_USB_C1_TCPC_RST_ODL, 0);
-
- /*
- * delay for power-on to reset-off and min. assertion time
- */
- msleep(NCT38XX_RESET_HOLD_DELAY_MS);
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 1);
- gpio_set_level(GPIO_USB_C1_TCPC_RST_ODL, 1);
-
- nct38xx_reset_notify(USBC_PORT_C0);
- nct38xx_reset_notify(USBC_PORT_C1);
-
- /* wait for chips to come up */
- if (NCT3807_RESET_POST_DELAY_MS != 0)
- msleep(NCT3807_RESET_POST_DELAY_MS);
-}
-
-static void board_tcpc_init(void)
-{
- int i;
-
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
-
- for (i = 0; i < CONFIG_IO_EXPANDER_PORT_COUNT; ++i) {
- ioex_config[i].flags &= ~IOEX_FLAGS_DISABLED;
- ioex_init(i);
- }
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
diff --git a/board/anahera/usbc_config.h b/board/anahera/usbc_config.h
deleted file mode 100644
index c314466f77..0000000000
--- a/board/anahera/usbc_config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Anahera board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/anahera/vif_override.xml b/board/anahera/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/anahera/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/asurada/battery.c b/board/asurada/battery.c
deleted file mode 100644
index 6237a5058c..0000000000
--- a/board/asurada/battery.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "chipset.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "system.h"
-#include "usb_pd.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C235] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWRc3KA",
- .device_name = "C235-41",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x0c,
- .disconnect_val = 0x0c,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C235;
diff --git a/board/asurada/board.c b/board/asurada/board.c
deleted file mode 100644
index b57d327015..0000000000
--- a/board/asurada/board.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/* 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.
- */
-/* Asurada board configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/als_tcs3400.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "regulator.h"
-#include "spi.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable motion sensor interrupt */
- gpio_enable_interrupt(GPIO_BASE_IMU_INT_L);
- gpio_enable_interrupt(GPIO_LID_ACCEL_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Sensor */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct stprivate_data g_lis2dwl_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_ICM426XX = 2,
-};
-
-static enum base_accelgyro_type base_accelgyro_config;
-
-#ifdef BOARD_ASURADA_REV0
-/* Matrix to rotate accelerometer into standard reference frame */
-/* for rev 0 */
-static const mat33_fp_t base_standard_ref_rev0 = {
- {FLOAT_TO_FP(-1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(-1)},
-};
-
-static void update_rotation_matrix(void)
-{
- motion_sensors[BASE_ACCEL].rot_standard_ref =
- &base_standard_ref_rev0;
- motion_sensors[BASE_GYRO].rot_standard_ref =
- &base_standard_ref_rev0;
-}
-DECLARE_HOOK(HOOK_INIT, update_rotation_matrix, HOOK_PRIO_INIT_ADC + 2);
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- /*
- * TODO: calculate the actual coefficients and scaling factors
- */
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.1),
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-#endif /* BOARD_ASURADA_REV0 */
-
-#ifdef BOARD_HAYATO
-/* Matrix to rotate accelerometer into standard reference frame */
-/* for Hayato */
-static const mat33_fp_t base_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(-1), 0 , 0},
- {0, 0, FLOAT_TO_FP(1)},
-};
-
-static void update_rotation_matrix(void)
-{
- if (base_accelgyro_config == BASE_GYRO_ICM426XX)
- return;
-
- if (board_get_version() >= 2) {
- motion_sensors[BASE_ACCEL].rot_standard_ref =
- &base_standard_ref;
- motion_sensors[BASE_GYRO].rot_standard_ref =
- &base_standard_ref;
- }
-}
-DECLARE_HOOK(HOOK_INIT, update_rotation_matrix, HOOK_PRIO_INIT_ADC + 2);
-
-#endif
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs. */
- .rot_standard_ref = NULL,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = NULL, /* identity matrix */
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = NULL, /* identity matrix */
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .int_signal = GPIO_LID_ACCEL_INT_L,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .rot_standard_ref = NULL, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-#ifdef BOARD_ASURADA_REV0
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
- [RGB_ALS] = {
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- /* freq = 0 indicates we should not use sensor directly */
- .min_frequency = 0,
- .max_frequency = 0,
- },
-#endif /* BOARD_ASURADA_REV0 */
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (base_accelgyro_config == BASE_GYRO_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-static void board_detect_motionsense(void)
-{
- int val;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (base_accelgyro_config != BASE_GYRO_NONE)
- return;
-
- icm_read8(&icm426xx_base_accel, ICM426XX_REG_WHO_AM_I, &val);
- if (val == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- base_accelgyro_config = BASE_GYRO_ICM426XX;
- ccprints("Base Accelgyro: ICM426XX");
- } else {
- base_accelgyro_config = BASE_GYRO_BMI160;
- ccprints("Base Accelgyro: BMI160");
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsense,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsense, HOOK_PRIO_DEFAULT);
-
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- /* Convert to mV (3000mV/1024). */
- {"VBUS_C0", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0, CHIP_ADC_CH0},
- {"BOARD_ID_0", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH1},
- {"BOARD_ID_1", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH2},
- /* AMON/BMON gain = 17.97 */
- {"CHARGER_AMON_R", ADC_MAX_MVOLT * 1000 / 17.97, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH3},
- {"VBUS_C1", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0, CHIP_ADC_CH5},
- {"CHARGER_PMON", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH6},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* PWM */
-
-/*
- * PWM channels. Must be in the exactly same order as in enum pwm_channel.
- * There total three 16 bits clock prescaler registers for all pwm channels,
- * so use the same frequency and prescaler register setting is required if
- * number of pwm channel greater than three.
- */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 324, /* maximum supported frequency */
- .pcfsr_sel = PWM_PRESCALER_C4
- },
- [PWM_CH_LED2] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 324, /* maximum supported frequency */
- .pcfsr_sel = PWM_PRESCALER_C4
- },
- [PWM_CH_LED3] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 324, /* maximum supported frequency */
- .pcfsr_sel = PWM_PRESCALER_C4
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-int board_accel_force_mode_mask(void)
-{
- int version = board_get_version();
-
- if (version == -1 || version >= 2)
- return 0;
- return BIT(LID_ACCEL);
-}
-
-static void board_suspend(void)
-{
- if (board_get_version() >= 3)
- gpio_set_level(GPIO_EN_5V_USM, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- if (board_get_version() >= 3)
- gpio_set_level(GPIO_EN_5V_USM, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
diff --git a/board/asurada/board.h b/board/asurada/board.h
deleted file mode 100644
index d8ee03c9f4..0000000000
--- a/board/asurada/board.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* 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.
- */
-/* Asurada board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* Chipset config */
-
-/* Optional features */
-#define CONFIG_LTO
-
-/*
- * TODO: Remove this option once the VBAT no longer keeps high when
- * system's power isn't presented.
- */
-#define CONFIG_IT83XX_RESET_PD_CONTRACT_IN_BRAM
-
-/* BC12 */
-/* TODO(b/159583342): remove after rev0 deprecated */
-#define CONFIG_MT6360_BC12_GPIO
-
-/* LED */
-#ifdef BOARD_HAYATO
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-#endif
-
-/* PD / USB-C / PPC */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define PD_MAX_CURRENT_MA 3000
-#define PD_OPERATING_POWER_MW 15000
-#ifdef BOARD_HAYATO
-#define PD_MAX_VOLTAGE_MV 15000
-#define PD_MAX_POWER_MW 45000
-#else
-#define PD_MAX_VOLTAGE_MV 20000
-#define PD_MAX_POWER_MW 60000
-#endif
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* Optional console commands */
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_STACKOVERFLOW
-
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 9000
-
-/* Sensor */
-#define CONFIG_GMR_TABLET_MODE
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel */
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_LIS2DW_AS_BASE
-#define CONFIG_ACCEL_LIS2DW12_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#ifdef BOARD_ASURADA_REV0
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-#define CONFIG_ALS_TCS3400_EMULATED_IRQ_EVENT
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-#else
-/* TODO(b/171931139): remove this after rev1 board deprecated */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (board_accel_force_mode_mask())
-#endif
-
-/* SPI / Host Command */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* USB-A */
-#define USBA_PORT_COUNT 1
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_C235,
- BATTERY_TYPE_COUNT,
-};
-
-enum sensor_id {
- BASE_ACCEL = 0,
- BASE_GYRO,
- LID_ACCEL,
-#ifdef BOARD_ASURADA_REV0
- CLEAR_ALS,
- RGB_ALS,
-#endif
- SENSOR_COUNT,
-};
-
-enum adc_channel {
- ADC_VBUS_C0, /* ADC 0 */
- ADC_BOARD_ID_0, /* ADC 1 */
- ADC_BOARD_ID_1, /* ADC 2 */
- ADC_CHARGER_AMON_R, /* ADC 3 */
- ADC_VBUS_C1, /* ADC 5 */
- ADC_CHARGER_PMON, /* ADC 6 */
-
- /* Number of ADC channels */
- ADC_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1,
- PWM_CH_LED2,
- PWM_CH_LED3,
- PWM_CH_COUNT,
-};
-
-int board_accel_force_mode_mask(void);
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/asurada/build.mk b/board/asurada/build.mk
deleted file mode 100644
index d6866f8568..0000000000
--- a/board/asurada/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-
-# the IC is ITE IT8xxx2
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202bx_1024
-BASEBOARD:=asurada
-
-board-$(BOARD_HAYATO)=led_hayato.o
-board-$(BOARD_ASURADA)=led.o
-board-y+=battery.o board.o
-board-y+=usbc_config.o
diff --git a/board/asurada/ec.tasklist b/board/asurada/ec.tasklist
deleted file mode 100644
index ff47718bae..0000000000
--- a/board/asurada/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(PDCMD, pd_command_task, NULL, 1024) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, 1280) \
-
diff --git a/board/asurada/gpio.inc b/board/asurada/gpio.inc
deleted file mode 100644
index 75d1fbafa5..0000000000
--- a/board/asurada/gpio.inc
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH | GPIO_PULL_UP |
- GPIO_HIB_WAKE_HIGH, power_button_interrupt) /* H1_EC_PWR_BTN_ODL */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(J, 7), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Chipset interrupts */
-GPIO_INT(AP_EC_WARM_RST_REQ, PIN(D, 3), GPIO_INT_RISING | GPIO_SEL_1P8V,
- chipset_reset_request_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- chipset_watchdog_interrupt)
-GPIO_INT(AP_IN_SLEEP_L, PIN(F, 2),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PMIC_EC_PWRGD, PIN(F, 3),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_IMU_INT_L, PIN(J, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- motion_interrupt)
-GPIO_INT(LID_ACCEL_INT_L, PIN(J, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- lis2dw12_interrupt)
-#ifdef BOARD_ASURADA_REV0
-GPIO_INT(ALS_RGB_INT_ODL, PIN(F, 0), GPIO_INT_FALLING,
- tcs3400_interrupt)
-#else
-GPIO(ALS_RGB_INT_ODL, PIN(F, 0), GPIO_INPUT)
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(D, 1), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL,PIN(J, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(J, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* Volume button interrupts */
-/* Note that netnames are reversed in asurada rev 0/1 */
-GPIO_INT(VOLUME_DOWN_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(VOLUME_UP_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-
-/* Other interrupts */
-GPIO_INT(AP_XHCI_INIT_DONE, PIN(D, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- usb_a0_interrupt)
-#ifdef BOARD_ASURADA_REV0
-GPIO_INT(AC_PRESENT, PIN(M, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- extpower_interrupt) /* AC_OK / AC_PRESENT in rev0 */
-#else /* HAYATO */
-GPIO_INT(AC_PRESENT, PIN(E, 5), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- extpower_interrupt) /* AC_OK / AC_PRESENT in rev1+ */
-#endif
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING,
- uart_deepsleep_interrupt) /* UART_DEBUG_TX_EC_RX */
-GPIO_INT(WP, PIN(I, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- switch_interrupt) /* EC_FLASH_WP_OD */
-GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING,
- spi_event) /* SPI slave Chip Select -- AP_SPI_EC_CS_L */
-GPIO_INT(X_EC_GPIO2, PIN(B, 2), GPIO_ODR_HIGH, x_ec_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EC_PMIC_EN_ODL, PIN(D, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_PMIC_WATCHDOG_L, PIN(H, 0), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_HIGH)
-GPIO(PG_MT6315_PROC_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(PG_MT6360_ODL, PIN(F, 1), GPIO_INPUT)
-GPIO(PG_PP5000_A_ODL, PIN(A, 6), GPIO_INPUT)
-GPIO(EN_SLP_Z, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(B, 6), GPIO_ODR_LOW)
-GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_INT_ODL */
-
-/* USB and USBC Signals */
-GPIO(DP_AUX_PATH_SEL, PIN(G, 0), GPIO_OUT_HIGH)
-GPIO(EC_DPBRDG_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_USB_A0_VBUS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS_EN, PIN(H, 3), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT)
-GPIO(BC12_DET_EN, PIN(J, 5), GPIO_OUT_LOW) /* EN_USB_C0_BC12_DET */
-GPIO(EN_EC_ID_ODL, PIN(H, 5), GPIO_ODR_LOW)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(EN_5V_USM, PIN(D, 7), GPIO_OUT_LOW)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT) /* I2C_CHG_BATT_SCL */
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT) /* I2C_CHG_BATT_SDA */
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SCL */
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SDA */
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT) /* I2C_USB_C1_SCL */
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT) /* I2C_USB_C1_SDA */
-
-/* SPI pins - Alternate function below configures SPI module on these pins */
-
-/* NC / TP */
-
-/* Keyboard pins */
-
-/* Subboards HDMI/TYPEC */
-GPIO(EC_X_GPIO1, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EC_X_GPIO3, PIN(J, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C B */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C */
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, 0x07), 1, MODULE_PWM, 0) /* PWM 0~2 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(I, 0x6F), 0, MODULE_ADC, 0) /* ADC 0,1,2,3,5,6 */
-
-/* SPI */
-ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI */
-
-/* Unimplemented Pins */
-GPIO(SET_VMC_VOLT_AT_1V8, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-GPIO(PACKET_MODE_EN, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-/* b/160218054: behavior not defined */
-/* *_ODL pin has external pullup so don't pull it down. */
-GPIO(USB_A0_FAULT_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(CHARGER_PROCHOT_ODL, PIN(C, 3), GPIO_INPUT)
-GPIO(PG_MT6315_GPU_ODL, PIN(H, 6), GPIO_INPUT)
-GPIO(EN_PP3000_SD_U, PIN(G, 1), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-/* reserved for future use */
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-/*
- * ADC pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPI7, PIN(I, 7), GPIO_OUT_LOW)
-/* NC pins, enable internal pull-up/down to avoid floating state. */
-#ifdef BOARD_ASURADA_REV0
-GPIO(NC_GPE5, PIN(E, 5), GPIO_INPUT | GPIO_PULL_UP)
-#else /* HAYATO */
-GPIO(NC_GPM2, PIN(M, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-#endif
-GPIO(NC_GPM3, PIN(M, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPM6, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(SPI_CLK_GPG6, PIN(G, 6), GPIO_INPUT | GPIO_PULL_UP)
-/*
- * These 4 pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPG3, PIN(G, 3), GPIO_OUT_LOW)
-GPIO(SPI_MOSI_GPG4, PIN(G, 4), GPIO_OUT_LOW)
-GPIO(SPI_MISO_GPG5, PIN(G, 5), GPIO_OUT_LOW)
-GPIO(SPI_CS_GPG7, PIN(G, 7), GPIO_OUT_LOW)
diff --git a/board/asurada/led.c b/board/asurada/led.c
deleted file mode 100644
index 166ece92e9..0000000000
--- a/board/asurada/led.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Asurada
- */
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "driver/bc12/mt6360.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "stdbool.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_PWM, format, ## args)
-
-#define LED_OFF EC_LED_COLOR_COUNT
-
-const enum ec_led_id supported_led_ids[] = {
- /* Main LED */
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-
- /* Not used, give them some random name for testing */
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-static void led_set_color_left(enum ec_led_colors color, int duty)
-{
- mt6360_led_set_brightness(MT6360_LED_RGB2, duty);
- mt6360_led_set_brightness(MT6360_LED_RGB3, duty);
-
- switch (color) {
- case EC_LED_COLOR_AMBER:
- mt6360_led_enable(MT6360_LED_RGB2, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 1);
- break;
- case EC_LED_COLOR_WHITE:
- mt6360_led_enable(MT6360_LED_RGB2, 1);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- default: /* LED_OFF and other unsupported colors */
- mt6360_led_enable(MT6360_LED_RGB2, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- }
-}
-
-static void led_set_color_right(enum ec_led_colors color, int duty)
-{
- pwm_set_duty(PWM_CH_LED2, duty);
- pwm_set_duty(PWM_CH_LED3, duty);
-
- switch (color) {
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED2, 0);
- pwm_enable(PWM_CH_LED3, 1);
- break;
- case EC_LED_COLOR_WHITE:
- pwm_enable(PWM_CH_LED2, 1);
- pwm_enable(PWM_CH_LED3, 0);
- break;
- default: /* LED_OFF and other unsupported colors */
- pwm_enable(PWM_CH_LED2, 0);
- pwm_enable(PWM_CH_LED3, 0);
- break;
- }
-}
-
-static void led_set_color_power(enum ec_led_colors color, int duty)
-{
- pwm_set_duty(PWM_CH_LED1, duty);
- pwm_enable(PWM_CH_LED1, color == EC_LED_COLOR_WHITE);
-}
-
-static void led_set_color_battery(enum ec_led_colors color, int duty)
-{
- mt6360_led_set_brightness(MT6360_LED_RGB1, duty);
- mt6360_led_enable(MT6360_LED_RGB1, color == EC_LED_COLOR_WHITE);
-}
-
-static enum ec_error_list set_color(enum ec_led_id led_id,
- enum ec_led_colors color,
- int duty)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- led_set_color_left(color, duty);
- return EC_SUCCESS;
- case EC_LED_ID_RIGHT_LED:
- led_set_color_right(color, duty);
- return EC_SUCCESS;
- case EC_LED_ID_POWER_LED:
- led_set_color_power(color, duty);
- return EC_SUCCESS;
- case EC_LED_ID_BATTERY_LED:
- led_set_color_battery(color, duty);
- return EC_SUCCESS;
- default:
- return EC_ERROR_INVAL;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_AMBER] =
- MT6360_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_WHITE] =
- MT6360_LED_BRIGHTNESS_MAX;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- break;
- case EC_LED_ID_BATTERY_LED:
- brightness_range[EC_LED_COLOR_WHITE] =
- MT6360_LED_BRIGHTNESS_MAX;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_AMBER])
- return set_color(led_id, EC_LED_COLOR_AMBER,
- brightness[EC_LED_COLOR_AMBER]);
- if (brightness[EC_LED_COLOR_WHITE])
- return set_color(led_id, EC_LED_COLOR_WHITE,
- brightness[EC_LED_COLOR_WHITE]);
-
- return set_color(led_id, LED_OFF, 0);
-}
-
-static void update_led(enum ec_led_id led_id, bool is_active_charge_port,
- int duty, int tick)
-{
- enum charge_state power_state = charge_get_state();
-
- if (power_state == PWR_STATE_IDLE) {
- /* Factory mode: blinking white (2sec on + 2sec off) */
- set_color(led_id, (tick % 8 < 4) ? EC_LED_COLOR_WHITE : LED_OFF,
- duty);
- } else if (power_state == PWR_STATE_ERROR) {
- /* Battery error: blinking amber (1sec on + 1sec off) */
- set_color(led_id, (tick % 4 < 2) ? EC_LED_COLOR_AMBER : LED_OFF,
- duty);
- } else if (is_active_charge_port) {
- /*
- * Active charge port: amber when charging, white if fully
- * charged.
- */
- if (power_state == PWR_STATE_CHARGE)
- set_color(led_id, EC_LED_COLOR_AMBER, duty);
- else
- set_color(led_id, EC_LED_COLOR_WHITE, duty);
- } else {
- /*
- * Non-active port:
- * Solid white in S0, blinking amber (3sec on + 1sec off) in S3,
- * and LED off in S5
- */
- if (chipset_in_state(CHIPSET_STATE_ON))
- set_color(led_id, EC_LED_COLOR_WHITE, duty);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- set_color(
- led_id,
- (tick % 8 < 6) ? EC_LED_COLOR_AMBER : LED_OFF,
- duty);
- else
- set_color(led_id, LED_OFF, 0);
-
- }
-}
-
-static void led_tick(void)
-{
- static int tick;
- int port = charge_manager_get_active_charge_port();
-
- ++tick;
- /* Pick duty 1 and 50 respectively to have same brightness */
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- update_led(EC_LED_ID_LEFT_LED, port == 0, 1, tick);
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- update_led(EC_LED_ID_RIGHT_LED, port == 1, 50, tick);
- /* Turn off unused LEDs */
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- set_color(EC_LED_ID_BATTERY_LED, LED_OFF, 0);
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/asurada/led_hayato.c b/board/asurada/led_hayato.c
deleted file mode 100644
index 1d3108c47b..0000000000
--- a/board/asurada/led_hayato.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-#include "driver/bc12/mt6360.h"
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- mt6360_led_set_brightness(MT6360_LED_RGB2, 50);
- mt6360_led_set_brightness(MT6360_LED_RGB3, 50);
-
- switch (color) {
- case EC_LED_COLOR_AMBER:
- mt6360_led_enable(MT6360_LED_RGB2, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 1);
- break;
- case EC_LED_COLOR_WHITE:
- mt6360_led_enable(MT6360_LED_RGB2, 1);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- default: /* LED_OFF and other unsupported colors */
- mt6360_led_enable(MT6360_LED_RGB2, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- mt6360_led_set_brightness(MT6360_LED_RGB1, 1);
- mt6360_led_enable(MT6360_LED_RGB1, color == EC_LED_COLOR_WHITE);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] =
- MT6360_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_WHITE] =
- MT6360_LED_BRIGHTNESS_MAX;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] =
- MT6360_LED_BRIGHTNESS_MAX;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/asurada/usbc_config.c b/board/asurada/usbc_config.c
deleted file mode 100644
index 2f35816abb..0000000000
--- a/board/asurada/usbc_config.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Asurada board-specific USB-C configuration */
-
-#include "driver/ppc/syv682x.h"
-#include "driver/usb_mux/ps8743.h"
-#include "hooks.h"
-
-__override int syv682x_board_is_syv682c(int port)
-{
- return board_get_version() > 2;
-}
-
-void board_usb_mux_init(void)
-{
- if (board_get_sub_board() == SUB_BOARD_TYPEC) {
- ps8743_tune_usb_eq(&usb_muxes[1],
- PS8743_USB_EQ_TX_12_8_DB,
- PS8743_USB_EQ_RX_12_8_DB);
- ps8743_write(&usb_muxes[1],
- PS8743_REG_HS_DET_THRESHOLD,
- PS8743_USB_HS_THRESH_NEG_10);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_usb_mux_init, HOOK_PRIO_INIT_I2C + 1);
diff --git a/board/asurada/vif_override.xml b/board/asurada/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/asurada/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/asurada_scp/board.h b/board/asurada_scp/board.h
deleted file mode 100644
index e25a26dec0..0000000000
--- a/board/asurada_scp/board.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* 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.
- */
-
-/* Asurada SCP configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/*
- * RW only, no flash
- * +-------------------- 0x0
- * | ROM vectortable, .text, .rodata, .data LMA
- * +-------------------- 0x58000
- * | RAM .bss, .data
- * +-------------------- 0x0ffc00
- * | Reserved (padding for 1k-alignment)
- * +-------------------- 0x0ffdb0
- * | IPI shared buffer with AP (288 + 8) * 2
- * +-------------------- 0x100000
- */
-#define CONFIG_ROM_BASE 0x0
-#define CONFIG_RAM_BASE 0x58000
-#define CONFIG_ROM_SIZE (CONFIG_RAM_BASE - CONFIG_ROM_BASE)
-#define CONFIG_RAM_SIZE ((CONFIG_IPC_SHARED_OBJ_ADDR & (~(0x400 - 1))) - \
- CONFIG_RAM_BASE)
-
-#define SCP_FW_END 0x100000
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/asurada_scp/build.mk b/board/asurada_scp/build.mk
deleted file mode 100644
index f3c4a82a10..0000000000
--- a/board/asurada_scp/build.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=mt_scp
-CHIP_VARIANT:=mt8192
-BASEBOARD:=mtscp-rv32i
diff --git a/board/asurada_scp/ec.tasklist b/board/asurada_scp/ec.tasklist
deleted file mode 100644
index 6e2f613c6d..0000000000
--- a/board/asurada_scp/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(VDEC_SERVICE, vdec_service_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(VDEC_CORE_SERVICE, vdec_core_service_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(VENC_SERVICE, venc_service_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MDP_SERVICE, mdp_service_task, NULL, TRENTA_TASK_STACK_SIZE)
diff --git a/board/asurada_scp/gpio.inc b/board/asurada_scp/gpio.inc
deleted file mode 100644
index 3222a34e08..0000000000
--- a/board/asurada_scp/gpio.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
diff --git a/board/atlas/battery.c b/board/atlas/battery.c
deleted file mode 100644
index fb2fba18be..0000000000
--- a/board/atlas/battery.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Copyright 2018 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.
- *
- * Placeholder values for temporary battery pack.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "bd9995x.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define SB_SHUTDOWN_DATA 0x0010
-
-enum battery_type {
- BATTERY_LG,
- BATTERY_LISHEN,
- BATTERY_SIMPLO,
- BATTERY_TYPE_COUNT,
-};
-
-struct board_batt_params {
- const char *manuf_name;
- const struct battery_info *batt_info;
-};
-
-/*
- * Set LISHEN as default since the LG precharge current level could cause the
- * LISHEN battery to not accept charge when it's recovering from a fully
- * discharged state.
- */
-#define DEFAULT_BATTERY_TYPE BATTERY_LISHEN
-static enum battery_type board_battery_type = BATTERY_TYPE_COUNT;
-
-/* Battery may delay reporting battery present */
-static int battery_report_present = 1;
-
-/*
- * Battery info for LG A50. Note that the fields start_charging_min/max and
- * charging_min/max are not used for the Eve charger. The effective temperature
- * limits are given by discharging_min/max_c.
- */
-static const struct battery_info batt_info_lg = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5), /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6100, /* Add 100mV for charger accuracy */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 10,
- .charging_max_c = 50,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-/*
- * Battery info for LISHEN. Note that the fields start_charging_min/max and
- * charging_min/max are not used for the Eve charger. The effective temperature
- * limits are given by discharging_min/max_c.
- */
-static const struct battery_info batt_info_lishen = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5), /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6100, /* Add 100mV for charger accuracy */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 10,
- .charging_max_c = 50,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static const struct board_batt_params info[] = {
- [BATTERY_LG] = {
- .manuf_name = "LG A50",
- .batt_info = &batt_info_lg,
- },
-
- [BATTERY_LISHEN] = {
- .manuf_name = "Lishen A50",
- .batt_info = &batt_info_lishen,
- },
-
- [BATTERY_SIMPLO] = {
- .manuf_name = "Simplo A50",
- .batt_info = &batt_info_lishen,
- },
-
-};
-BUILD_ASSERT(ARRAY_SIZE(info) == BATTERY_TYPE_COUNT);
-
-/* Get type of the battery connected on the board */
-static int board_get_battery_type(void)
-{
- char name[3];
- int i;
-
- if (!battery_manufacturer_name(name, sizeof(name))) {
- for (i = 0; i < BATTERY_TYPE_COUNT; i++) {
- if (!strncasecmp(name, info[i].manuf_name,
- ARRAY_SIZE(name)-1)) {
- board_battery_type = i;
- break;
- }
- }
- }
-
- return board_battery_type;
-}
-
-/*
- * Initialize the battery type for the board.
- *
- * Very first battery info is called by the charger driver to initialize
- * the charger parameters hence initialize the battery type for the board
- * as soon as the I2C is initialized.
- */
-static void board_init_battery_type(void)
-{
- if (board_get_battery_type() != BATTERY_TYPE_COUNT)
- CPRINTS("found batt: %s", info[board_battery_type].manuf_name);
- else
- CPRINTS("battery not found");
-}
-DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1);
-
-const struct battery_info *battery_get_info(void)
-{
- return info[board_battery_type == BATTERY_TYPE_COUNT ?
- DEFAULT_BATTERY_TYPE : board_battery_type].batt_info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA);
- if (rv != EC_SUCCESS)
- return EC_RES_ERROR;
-
- rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA);
- return rv ? EC_RES_ERROR : EC_RES_SUCCESS;
-}
-
-static int charger_should_discharge_on_ac(struct charge_state_data *curr)
-{
- /* Can not discharge on AC without battery */
- if (curr->batt.is_present != BP_YES)
- return 0;
- if (curr->batt.flags & BATT_FLAG_BAD_STATUS)
- return 0;
-
- /* Do not discharge on AC if the battery is still waking up */
- if (!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- !(curr->batt.status & STATUS_FULLY_CHARGED))
- return 0;
-
- /*
- * In light load (<450mA being withdrawn from VSYS) the DCDC of the
- * charger operates intermittently i.e. DCDC switches continuously
- * and then stops to regulate the output voltage and current, and
- * sometimes to prevent reverse current from flowing to the input.
- * This causes a slight voltage ripple on VSYS that falls in the
- * audible noise frequency (single digit kHz range). This small
- * ripple generates audible noise in the output ceramic capacitors
- * (caps on VSYS and any input of DCDC under VSYS).
- *
- * To overcome this issue enable the battery learning operation
- * and suspend USB charging and DC/DC converter.
- */
- if (!battery_is_cut_off() &&
- !(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- (curr->batt.status & STATUS_FULLY_CHARGED))
- return 1;
-
- return 0;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- const struct battery_info *batt_info;
- /* battery temp in 0.1 deg C */
- int bat_temp_c;
- int disch_on_ac = charger_should_discharge_on_ac(curr);
-
- charger_discharge_on_ac(disch_on_ac);
- if (disch_on_ac) {
- curr->state = ST_DISCHARGE;
- return 0;
- }
-
- if (curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE)
- return 0;
-
- bat_temp_c = curr->batt.temperature - 2731;
- batt_info = battery_get_info();
- /* Don't charge if outside of allowable temperature range */
- if (bat_temp_c >= batt_info->charging_max_c * 10 ||
- bat_temp_c < batt_info->charging_min_c * 10) {
- curr->requested_current = 0;
- curr->requested_voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- curr->state = ST_IDLE;
- }
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_BATTERY_PRESENT_L) ? BP_NO : BP_YES;
-}
-
-/* Allow booting now that the battery has woke up */
-static void battery_now_present(void)
-{
- CPRINTS("battery will now report present");
- battery_report_present = 1;
-}
-DECLARE_DEFERRED(battery_now_present);
-
-/*
- * Physical detection of battery.
- */
-enum battery_present battery_is_present(void)
-{
- if (battery_hw_present() == BP_NO || battery_is_cut_off())
- return BP_NO;
-
- return BP_YES;
-}
diff --git a/board/atlas/board.c b/board/atlas/board.c
deleted file mode 100644
index 4881ed6898..0000000000
--- a/board/atlas/board.c
+++ /dev/null
@@ -1,629 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Atlas board-specific configuration */
-
-#include "adc_chip.h"
-#include "bd99992gw.h"
-#include "board_config.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/als_opt3001.h"
-#include "driver/pmic_bd99992gw.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "espi.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_8042_sharedlib.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power_button.h"
-#include "power.h"
-#include "pwm_chip.h"
-#include "pwm.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "system_chip.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-#include "gpio_list.h"
-
-/* Keyboard scan. Increase output_settle_us to 80us from default 50us. */
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x3c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { 3, 0, 10000 },
- [PWM_CH_DB0_LED_BLUE] = {
- 0, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, 2400 },
- [PWM_CH_DB0_LED_RED] = {
- 2, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, 2400 },
- [PWM_CH_DB0_LED_GREEN] = {
- 6, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, 2400 },
- [PWM_CH_DB1_LED_BLUE] = {
- 1, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, 2400 },
- [PWM_CH_DB1_LED_RED] = {
- 7, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, 2400 },
- [PWM_CH_DB1_LED_GREEN] = {
- 5, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, 2400 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Hibernate wake configuration */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_ROP_EC_ACOK,
- GPIO_LID_OPEN,
- GPIO_MECH_PWR_BTN_ODL,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-const struct adc_t adc_channels[] = {
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT*1000/18,
- ADC_READ_MAX+1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 12.4K resistor, to read
- * 0.8V @ 45 W, i.e. 56250 uW/mV. Using ADC_MAX_VOLT*56250 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT*56250*2/(ADC_READ_MAX+1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100,
- GPIO_EC_I2C0_POWER_SCL, GPIO_EC_I2C0_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000,
- GPIO_EC_I2C1_USB_C0_SCL, GPIO_EC_I2C1_USB_C0_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000,
- GPIO_EC_I2C2_USB_C1_SCL, GPIO_EC_I2C2_USB_C1_SDA},
- {"sensor", I2C_PORT_SENSOR, 100,
- GPIO_EC_I2C3_SENSOR_3V3_SCL, GPIO_EC_I2C3_SENSOR_3V3_SDA},
- {"battery", I2C_PORT_BATTERY, 100,
- GPIO_EC_I2C4_BATTERY_SCL, GPIO_EC_I2C4_BATTERY_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Charger Chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- /* left port */
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = I2C_ADDR_TCPC_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
- {
- /* right port */
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = I2C_ADDR_TCPC_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-void board_reset_pd_mcu(void)
-{
- gpio_set_level(GPIO_USB_PD_RST_L, 0);
- msleep(PS8XXX_RST_L_RST_H_DELAY_MS);
- gpio_set_level(GPIO_USB_PD_RST_L, 1);
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0},
- /* BD99992GW temp sensors are only readable in S0 */
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM0},
- {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM1},
- {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM2},
- {"eMMC", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Check if PMIC fault registers indicate VR fault. If yes, print out fault
- * register info to console. Additionally, set panic reason so that the OS can
- * check for fault register info by looking at offset 0x14(PWRSTAT1) and
- * 0x15(PWRSTAT2) in cros ec panicinfo.
- */
-static void board_report_pmic_fault(const char *str)
-{
- int vrfault, pwrstat1 = 0, pwrstat2 = 0;
- uint32_t info;
-
- /* RESETIRQ1 -- Bit 4: VRFAULT */
- if (i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_RESETIRQ1, &vrfault) != EC_SUCCESS)
- return;
-
- if (!(vrfault & BIT(4)))
- return;
-
- /* VRFAULT has occurred, print VRFAULT status bits. */
-
- /* PWRSTAT1 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_PWRSTAT1, &pwrstat1);
-
- /* PWRSTAT2 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_PWRSTAT2, &pwrstat2);
-
- CPRINTS("PMIC VRFAULT: %s", str);
- CPRINTS("PMIC VRFAULT: PWRSTAT1=0x%02x PWRSTAT2=0x%02x", pwrstat1,
- pwrstat2);
-
- /* Clear all faults -- Write 1 to clear. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_RESETIRQ1, BIT(4));
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_PWRSTAT1, pwrstat1);
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_PWRSTAT2, pwrstat2);
-
- /*
- * Status of the fault registers can be checked in the OS by looking at
- * offset 0x14(PWRSTAT1) and 0x15(PWRSTAT2) in cros ec panicinfo.
- */
- info = ((pwrstat2 & 0xFF) << 8) | (pwrstat1 & 0xFF);
- panic_set_reason(PANIC_SW_PMIC_FAULT, info, 0);
-}
-
-static void board_pmic_disable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (0) - Disable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_VCCIOCNT, 0x3a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_V18ACNT, 0x2a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage 0.85V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_V085ACNT, 0x2a);
-}
-
-static void board_pmic_enable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (1) - Enable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_VCCIOCNT, 0x7a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_V18ACNT, 0x6a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage 0.85V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_V085ACNT, 0x6a);
-}
-
-__override void power_board_handle_host_sleep_event(
- enum host_sleep_event state)
-{
- if (state == HOST_SLEEP_EVENT_S0IX_SUSPEND)
- board_pmic_enable_slp_s0_vr_decay();
- else if (state == HOST_SLEEP_EVENT_S0IX_RESUME)
- board_pmic_disable_slp_s0_vr_decay();
-}
-
-static void board_pmic_init(void)
-{
- board_report_pmic_fault("SYSJUMP");
-
- /* Clear power source events */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_PWRSRCINT, 0xff);
-
- /* Disable power button shutdown timer */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_PBCONFIG, 0x00);
-
- if (system_jumped_late())
- return;
-
- /* DISCHGCNT1 - enable 100 ohm discharge on VCCIO */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_DISCHGCNT1, 0x01);
-
- /*
- * DISCHGCNT2 - enable 100 ohm discharge on
- * V5.0A, V3.3DSW, V3.3A and V1.8A
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_DISCHGCNT2, 0x55);
-
- /*
- * DISCHGCNT3 - enable 500 ohm discharge on
- * V1.8U_2.5U
- * DISCHGCNT3 - enable 100 ohm discharge on
- * V12U, V1.00A, V0.85A
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_DISCHGCNT3, 0xd5);
-
- /* DISCHGCNT4 - enable 100 ohm discharge on V33S, V18S, V100S */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_DISCHGCNT4, 0x15);
-
- /* VRMODECTRL - disable low-power mode for all rails */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_VRMODECTRL, 0x1f);
-
- /* V5ADS3CNT - boost V5A_DS3 by 2% */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_V5ADS3CNT, 0x1a);
-
- board_pmic_disable_slp_s0_vr_decay();
-}
-DECLARE_HOOK(HOOK_INIT, board_pmic_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- int p;
-
- /* Configure PSL pins */
- for (p = 0; p < hibernate_wake_pins_used; p++)
- system_config_psl_mode(hibernate_wake_pins[p]);
-
- /*
- * Enter PSL mode. Note that on Atlas, simply enabling PSL mode does
- * not cut the EC's power. Therefore, we'll need to cut off power via
- * the ROP PMIC afterwards.
- */
- system_enter_psl_mode();
-
- /* Cut off DSW power via the ROP PMIC. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- BD99992GW_REG_SDWNCTRL, BD99992GW_SDWNCTRL_SWDN);
-
- /* Wait for power to be cut. */
- while (1)
- ;
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- if (system_get_board_version() < ATLAS_REV_FIXED_EC_WP) {
- int dflags;
-
- CPRINTS("Applying EC_WP_L workaround");
- dflags = gpio_get_default_flags(GPIO_EC_WP_L);
- gpio_set_flags(GPIO_EC_WP_L, dflags | GPIO_PULL_UP);
- }
-
- /* Provide AC status to the PCH */
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_extpower(void)
-{
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are sourcing VBUS on the port */
- int is_source = gpio_get_level(charge_port == 0 ?
- GPIO_USB_C0_5V_EN : GPIO_USB_C1_5V_EN);
-
- if (is_real_port && is_source) {
- CPRINTS("No charging from p%d", charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTS("New chg p%d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable both ports */
- gpio_set_level(GPIO_EN_USB_C0_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_USB_C1_CHARGE_L, 1);
- } else {
- /* Make sure non-charging port is disabled */
- gpio_set_level(charge_port ? GPIO_EN_USB_C0_CHARGE_L :
- GPIO_EN_USB_C1_CHARGE_L, 1);
- /* Enable charging port */
- gpio_set_level(charge_port ? GPIO_EN_USB_C1_CHARGE_L :
- GPIO_EN_USB_C0_CHARGE_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Limit the input current to 95% negotiated limit,
- * to account for the charger chip margin.
- */
-
-static int charger_derate(int current)
-{
- return current * 95 / 100;
-}
-
-static void board_charger_init(void)
-{
- charger_set_input_current_limit(CHARGER_SOLO,
- charger_derate(PD_MAX_CURRENT_MA));
-}
-DECLARE_HOOK(HOOK_INIT, board_charger_init, HOOK_PRIO_DEFAULT);
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = charger_derate(charge_ma);
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_KBD_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_KBD_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_reset(void)
-{
- board_report_pmic_fault("CHIPSET RESET");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESET, board_chipset_reset, HOOK_PRIO_DEFAULT);
-
-int board_get_version(void)
-{
- static int ver;
-
- if (!ver) {
- /*
- * Read the board EC ID on the tristate strappings
- * using ternary encoding: 0 = 0, 1 = 1, Hi-Z = 2
- */
- uint8_t id0, id1, id2;
-
- id0 = gpio_get_ternary(GPIO_BOARD_VERSION1);
- id1 = gpio_get_ternary(GPIO_BOARD_VERSION2);
- id2 = gpio_get_ternary(GPIO_BOARD_VERSION3);
-
- ver = (id2 * 9) + (id1 * 3) + id0;
- CPRINTS("Board ID = %d", ver);
- }
-
- return ver;
-}
-
-static struct opt3001_drv_data_t g_opt3001_data = {
- .scale = 1,
- .uscale = 0,
- .offset = 0,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ALS] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_OPT3001,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &opt3001_drv,
- .drv_data = &g_opt3001_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = OPT3001_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x2b11a1, /* from nocturne */
- .min_frequency = OPT3001_LIGHT_MIN_FREQ,
- .max_frequency = OPT3001_LIGHT_MAX_FREQ,
- .config = {
- /* Sensor on in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[LID_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
diff --git a/board/atlas/board.h b/board/atlas/board.h
deleted file mode 100644
index 56685f1856..0000000000
--- a/board/atlas/board.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Atlas board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BOARD_FORCE_RESET_PIN
-#define CONFIG_DPTF
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_SHA256_UNROLLED
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* It's really 1MB. */
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_WATCHDOG_HELP
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BATT_MFG_ACCESS
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_HOSTCMD_PD_CONTROL
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Battery */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 95
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-/* battery briefly requests V=0, A=0 when woken up */
-#define CONFIG_BATTERY_REQUESTS_NIL_WHEN_DEAD
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_ISL9238
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_PSYS
-#define CONFIG_CHARGER_PSYS_READ
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#define CONFIG_EXTPOWER_GPIO
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_PWR_STATE_DISCHARGE_FULL
-
-/* LEDs */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_PWM_ACTIVE_CHARGE_PORT_ONLY
-#define CONFIG_LED_PWM_COUNT 2
-#undef CONFIG_LED_PWM_NEAR_FULL_COLOR
-#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_WHITE
-
-/* Temperature Sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_BD99992GW
-#define CONFIG_THERMISTOR_NCP15WB
-
-/* Sensor */
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ALS
-#define CONFIG_ALS_OPT3001
-#define ALS_COUNT 1
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is a power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 1024
-/* Depends on how fast the AP boots and typical ODRs. */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-#define CONFIG_ACCEL_INTERRUPTS
-
-/* USB */
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_DISCHARGE
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#undef CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC
-#define CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC 2
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY /* FIXME: b/77151299 */
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-#define CONFIG_HIBERNATE_PSL /* Enable PSL pins for wakeup */
-
-/* I2C ports */
-#define I2C_PORT_POWER NPCX_I2C_PORT0_0 /* pmic/charger */
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT1_0
-#define I2C_PORT_TCPC1 NPCX_I2C_PORT2_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT3_0 /* als */
-#define I2C_PORT_BATTERY NPCX_I2C_PORT4_1
-#define I2C_PORT_GYRO NPCX_I2C_PORT5_0 /* accel/gyro */
-
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-#define I2C_PORT_CHARGER I2C_PORT_POWER
-#define I2C_PORT_PMIC I2C_PORT_POWER
-#define I2C_PORT_THERMAL I2C_PORT_POWER
-
-/* I2C addresses */
-#define I2C_ADDR_TCPC_FLAGS 0x0B
-#define I2C_ADDR_MP2949_FLAGS 0x20
-#define I2C_ADDR_BD99992_FLAGS 0x30
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY, /* BD99956GW TSENSE */
- TEMP_SENSOR_SYSTHERM0, /* BD99992GW SYSTHERM0 */
- TEMP_SENSOR_SYSTHERM1, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_SYSTHERM2, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_SYSTHERM3, /* BD99992GW SYSTHERM3 */
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_DB0_LED_BLUE,
- PWM_CH_DB0_LED_RED,
- PWM_CH_DB0_LED_GREEN,
- PWM_CH_DB1_LED_BLUE,
- PWM_CH_DB1_LED_RED,
- PWM_CH_DB1_LED_GREEN,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ALS,
- SENSOR_COUNT,
-};
-
-/* LID_ALS needs to be polled */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ALS)
-
-enum adc_channel {
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Board specific handlers */
-int board_get_version(void);
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-/*
- * these are mappings from signal names used in the atlas schematics
- * vs. names hard-coded in various parts of the EC codebase.
- */
-
-#define GPIO_AC_PRESENT GPIO_ROP_EC_ACOK
-#define GPIO_BATTERY_PRESENT_L GPIO_EC_BATT_PRES_L
-#define GPIO_BOARD_VERSION1 GPIO_EC_BRD_ID1
-#define GPIO_BOARD_VERSION2 GPIO_EC_BRD_ID2
-#define GPIO_BOARD_VERSION3 GPIO_EC_BRD_ID3
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KB_ROW02_INV
-#define GPIO_PCH_ACOK GPIO_EC_PCH_ACPRESENT
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_RSMRST_L
-#define GPIO_PCH_SLP_SUS_L GPIO_SLP_SUS_L_PCH
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_L
-#define GPIO_PMIC_DPWROK GPIO_ROP_DSW_PWROK_EC
-#define GPIO_PMIC_SLP_SUS_L GPIO_SLP_SUS_L_PMIC
-#define GPIO_POWER_BUTTON_L GPIO_MECH_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_ROP_EC_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_USB_C0_5V_EN GPIO_EN_USB_C0_5V_OUT
-#define GPIO_USB_C0_PD_RST_L GPIO_USB_PD_RST_L
-#define GPIO_USB_C1_5V_EN GPIO_EN_USB_C1_5V_OUT
-#define GPIO_USB_C1_PD_RST_L GPIO_USB_PD_RST_L
-#define GPIO_WP_L GPIO_EC_WP_L
-
-/* ps8751 requires 1ms reset down assertion */
-#define PS8XXX_RST_L_RST_H_DELAY_MS 1
-
-#define ATLAS_REV_FIXED_EC_WP 4
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/atlas/build.mk b/board/atlas/build.mk
deleted file mode 100644
index f1619f73cd..0000000000
--- a/board/atlas/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-
-board-y=board.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_LED_COMMON)+=led.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/atlas/ec.tasklist b/board/atlas/ec.tasklist
deleted file mode 100644
index 33e3cccb16..0000000000
--- a/board/atlas/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/atlas/gpio.inc b/board/atlas/gpio.inc
deleted file mode 100644
index 4ce44cc130..0000000000
--- a/board/atlas/gpio.inc
+++ /dev/null
@@ -1,157 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB PD interrupt handler section */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-
-/* power seq interrupt handler section */
-GPIO_INT(ROP_DSW_PWROK_EC, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ROP_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(MECH_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L_PCH, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ROP_EC_ACOK, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* misc interrupt handler section */
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-
-/* SoC section */
-GPIO(RSMRST_L, PIN(3, 7), GPIO_OUT_LOW) /* SOC Resume Reset */
-GPIO(EC_PCH_PWR_BTN_L, PIN(C, 1), GPIO_OUT_HIGH) /* Power button to SOC */
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* RTC Reset (broken) */
-GPIO(EC_PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* PCH wake */
-GPIO(EC_PROCHOT_ODL, PIN(3, 4), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* SOC PROCHOT# */
-GPIO(SYS_RESET_L, PIN(0, 2), GPIO_ODR_HIGH) /* SOC reset */
-GPIO(USB_C0_DP_HPD, PIN(C, 5), GPIO_INPUT) /* C0 Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(C, 6), GPIO_INPUT) /* C1 Hotplug Detect */
-
-/* power seq section */
-GPIO(EC_PCH_ACPRESENT, PIN(7, 3), GPIO_ODR_LOW) /* ACOK to SOC */
-/* note: SLP_SUS_L_PMIC is an input in the schematics */
-GPIO(SLP_SUS_L_PMIC, PIN(E, 4), GPIO_OUT_LOW) /* SOC SLP_SUS# */
-GPIO(SLP_S4_L, PIN(A, 3), GPIO_INPUT) /* SOC SLP_S4# */
-GPIO(SLP_S3_L, PIN(A, 6), GPIO_INPUT) /* SOC SLP_S3# */
-GPIO(ROP_INT_L, PIN(D, 5), GPIO_INPUT | GPIO_PULL_UP) /* PMIC IRQ (Unused) */
-
-/* USB PD section */
-GPIO(EN_USB_C0_5V_OUT, PIN(6, 7), GPIO_OUT_LOW) /* C0 5V Enable */
-GPIO(EN_USB_C0_CHARGE_L, PIN(0, 3), GPIO_OUT_LOW) /* alt fn */
-GPIO(EN_USB_C0_3A, PIN(6, 2), GPIO_OUT_LOW) /* 1.5/3.0 C0 current limit selection */
-GPIO(EN_USB_C1_5V_OUT, PIN(7, 0), GPIO_OUT_LOW) /* C1 5V Enable */
-GPIO(EN_USB_C1_CHARGE_L, PIN(0, 4), GPIO_OUT_LOW) /* alt fn */
-GPIO(EN_USB_C1_3A, PIN(8, 3), GPIO_OUT_LOW) /* alt fn 1.5/3.0 C1 current limit selection */
-
-GPIO(USB2_VBUSSENSE, PIN(A, 2), GPIO_OUT_LOW) /* USB OTG ID */
-GPIO(USB2_ID, PIN(A, 0), GPIO_OUT_LOW) /* USB OTG VBUS Sense */
-
-GPIO(USB_PD_RST_L, PIN(F, 1), GPIO_OUT_LOW) /* C0,C1 PD Reset */
-
-/* misc section */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(EC_BL_DISABLE_L, PIN(D, 3), GPIO_INPUT) /* Enable Backlight */
-GPIO(EC_BRD_ID1, PIN(9, 6), GPIO_INPUT) /* Board ID bit0 */
-GPIO(EC_BRD_ID2, PIN(9, 3), GPIO_INPUT) /* Board ID bit1 */
-GPIO(EC_BRD_ID3, PIN(F, 0), GPIO_INPUT) /* Board ID bit2 */
-GPIO(KBD_BL_EN, PIN(7, 5), GPIO_OUT_LOW) /* KB backlight enable */
-GPIO(EC_PLATFORM_RST, PIN(8, 6), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT) /* alt fn I2C1_SCL */
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT) /* alt fn I2C1_SDA */
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT) /* alt fn I2C2_SCL */
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT) /* alt fn I2C2_SDA */
-GPIO(EC_I2C5_GYRO_SCL, PIN(3, 3), GPIO_INPUT) /* alt fn I2C5_SCL */
-GPIO(EC_I2C5_GYRO_SDA, PIN(3, 6), GPIO_INPUT) /* alt fn I2C5_SDA */
-GPIO(EC_I2C3_SENSOR_3V3_SCL, PIN(D, 1), GPIO_INPUT) /* alt fn I2C3_SCL */
-GPIO(EC_I2C3_SENSOR_3V3_SDA, PIN(D, 0), GPIO_INPUT) /* alt fn I2C3_SDA */
-GPIO(EC_I2C0_POWER_SCL, PIN(B, 5), GPIO_INPUT) /* alt fn I2C0_SCL */
-GPIO(EC_I2C0_POWER_SDA, PIN(B, 4), GPIO_INPUT) /* alt fn I2C0_SDA */
-GPIO(EC_I2C4_BATTERY_SCL, PIN(F, 3), GPIO_INPUT) /* alt fn I2C4_SCL */
-GPIO(EC_I2C4_BATTERY_SDA, PIN(F, 2), GPIO_INPUT) /* alt fn I2C4_SDA */
-
-/* Not connected */
-GPIO(NC_GPIO32, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO35, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO40, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO44, PIN(4, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO45, PIN(4, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO50, PIN(5, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO63, PIN(6, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO66, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO82, PIN(8, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO95, PIN(9, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOB1, PIN(B, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOB2, PIN(B, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOB3, PIN(B, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOB6, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOC7, PIN(C, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOD6, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOD7, PIN(D, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOE0, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(ACCELGYRO3_INT_L, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* WoV is unused */
-GPIO(NC_GPIO94, PIN(9, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIO97, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOA5, PIN(A, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOA7, PIN(A, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC_GPIOB0, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x03), 0, MODULE_PMU, 0) /* PSL3&GPI01, PSL2&GPI00 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 */
-
-/* gpio alternate functions */
-ALTERNATE(PIN_MASK(0, 0x18), 0, MODULE_GPIO, 0) /* GPIO03,4 */
-
-ALTERNATE(PIN_MASK(8, 0x08), 0, MODULE_GPIO, 0) /* GPIO83 */
-
-/* GPIOA3,1 are enabled by default even though they are ALT functions */
-
-/* PWM channels */
-ALTERNATE(PIN_MASK(6, 0x01), 0, MODULE_PWM, 0) /* GPIO60 PWM7 CHARGE_LED5 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80 PWM3 KBD_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7 PWM5 CHARGE_LED6 */
-ALTERNATE(PIN_MASK(C, 0x1d), 0, MODULE_PWM, 0) /* GPIOC4,3,2,0 PWM2,0,1,6 CHARGE_LED2,1,4,3 */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0_SCL0|I2C0_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C1_SCL0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x06), 0, MODULE_I2C, 0) /* I2C2_SCL0|I2C2_SDA0 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3_SCL0|I2C3_SDA0 */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* I2C4_SCL1|I2C4_SDA1 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5_SDA0|I2C5_SCL0 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(4, 0x0c), 0, MODULE_ADC, 0) /* ADC2-3 */
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xe0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-GPIO(EC_KB_ROW02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2)
diff --git a/board/atlas/led.c b/board/atlas/led.c
deleted file mode 100644
index 9cb4dabfd3..0000000000
--- a/board/atlas/led.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Atlas specific PWM LED settings. */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 70, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 35, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- [EC_LED_COLOR_YELLOW] = { 55, 15, 0 },
- [EC_LED_COLOR_WHITE] = { 62, 100, 31 },
- [EC_LED_COLOR_AMBER] = { 100, 31, 0 },
-};
-
-/*
- * Two tri-color LEDs with red, green, and blue channels.
- *
- * Note: This order must match tcpc_config[]
- */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- [PWM_LED0] = {
- /* left port LEDs */
- .ch0 = PWM_CH_DB1_LED_RED,
- .ch1 = PWM_CH_DB1_LED_GREEN,
- .ch2 = PWM_CH_DB1_LED_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
- [PWM_LED1] = {
- /* right port LEDs */
- .ch0 = PWM_CH_DB0_LED_RED,
- .ch1 = PWM_CH_DB0_LED_GREEN,
- .ch2 = PWM_CH_DB0_LED_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
- brightness_range[EC_LED_COLOR_YELLOW] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_BLUE] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_LEFT_LED)
- pwm_id = PWM_LED0;
- else if (led_id == EC_LED_ID_RIGHT_LED)
- pwm_id = PWM_LED1;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/atlas/usb_pd_policy.c b/board/atlas/usb_pd_policy.c
deleted file mode 100644
index 77a4941a9a..0000000000
--- a/board/atlas/usb_pd_policy.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio_5v_en = port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN;
- enum gpio_signal gpio_3a_en = port ? GPIO_EN_USB_C1_3A :
- GPIO_EN_USB_C0_3A;
-
- /*
- * 1.5 vs 3.0 A limit is controlled by a dedicated gpio where
- * high = 3.0A and low = 1.5A. VBUS on/off is controlled by
- * GPIO_USB_C0/1_5V_EN.
- */
- gpio_set_level(gpio_3a_en, vbus_rp[port] == TYPEC_RP_3A0 ? 1 : 0);
- gpio_set_level(gpio_5v_en, vbus_en[port]);
-}
-
-void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return tcpci_tcpm_check_vbus_level(port, VBUS_PRESENT);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(port ? GPIO_EN_USB_C1_CHARGE_L :
- GPIO_EN_USB_C0_CHARGE_L, 1);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_PMIC_SLP_SUS_L);
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Only port 0 supports device mode. */
- if (port != 0)
- return;
-
- gpio_set_level(GPIO_USB2_ID,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
- gpio_set_level(GPIO_USB2_VBUSSENSE,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
-}
diff --git a/board/atlas/vif_override.xml b/board/atlas/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/atlas/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/baklava/board.c b/board/baklava/board.c
deleted file mode 100644
index 35a27d0c21..0000000000
--- a/board/baklava/board.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Baklava board-specific configuration */
-
-#include "common.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/stm32gx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/ps8822.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "uart.h"
-#include "usb_descriptor.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "usb_pd_dp_ufp.h"
-#include "usb_pe_sm.h"
-#include "usb_prl_sm.h"
-#include "usb_tc_sm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-#define QUICHE_PD_DEBUG_LVL 1
-
-#ifdef SECTION_IS_RW
-#define CROS_EC_SECTION "RW"
-#else
-#define CROS_EC_SECTION "RO"
-#endif
-
-#ifdef SECTION_IS_RW
-static int pd_dual_role_init[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- PD_DRP_TOGGLE_ON,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_HOST_USBC_PPC_INT_ODL:
- sn5s330_interrupt(USB_PD_PORT_HOST);
- break;
- default:
- break;
- }
-}
-
-void hpd_interrupt(enum gpio_signal signal)
-{
- usb_pd_hpd_edge_event(signal);
-}
-
-static void board_uf_manage_vbus_interrupt(enum gpio_signal signal)
-{
- baseboard_usb3_check_state();
-}
-
-static void board_pwr_btn_interrupt(enum gpio_signal signal)
-{
- baseboard_power_button_evt(gpio_get_level(signal));
-}
-
-static void board_usbc_usb3_interrupt(enum gpio_signal signal)
-{
- baseboard_usbc_usb3_irq();
-}
-#endif /* SECTION_IS_RW */
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/*
- * Table GPIO signals control both power rails and reset lines to various chips
- * on the board. The order the signals are changed and the delay between GPIO
- * signals is driven by USB/MST hub power sequencing requirements.
- */
-const struct power_seq board_power_seq[] = {
- {GPIO_EN_AC_JACK, 1, 20},
- {GPIO_EC_DFU_MUX_CTRL, 0, 0},
- {GPIO_EN_PP5000_A, 1, 31},
- {GPIO_MST_LP_CTL_L, 1, 0},
- {GPIO_EN_PP3300_B, 1, 1},
- {GPIO_EN_PP1100_A, 1, 100+30},
- {GPIO_EN_BB, 1, 30},
- {GPIO_EN_PP1050_A, 1, 30},
- {GPIO_EN_PP1200_A, 1, 20},
- {GPIO_EN_PP5000_C, 1, 20},
- {GPIO_EN_PP5000_HSPORT, 1, 31},
- {GPIO_EN_DP_SINK, 1, 80},
- {GPIO_MST_RST_L, 1, 61},
- {GPIO_EC_HUB2_RESET_L, 1, 41},
- {GPIO_EC_HUB3_RESET_L, 1, 33},
- {GPIO_DP_SINK_RESET, 1, 100},
- {GPIO_USBC_UF_RESET_L, 1, 33},
- {GPIO_DEMUX_DP_HDMI_PD_N, 1, 10},
- {GPIO_DEMUX_DP_HDMI_MODE, 1, 5},
-};
-const size_t board_power_seq_count = ARRAY_SIZE(board_power_seq);
-
-/*
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Acer"),
- [USB_STR_PRODUCT] = USB_STRING_DESC("D501"),
- [USB_STR_SERIALNO] = 0,
- [USB_STR_VERSION] =
- USB_STRING_DESC(CROS_EC_SECTION ":" CROS_EC_VERSION32),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-#ifndef SECTION_IS_RW
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[] = {
- [USB_PD_PORT_HOST] = {
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- },
-};
-#endif
-
-#ifdef SECTION_IS_RW
-/*
- * PS8802 set mux board tuning.
- * Adds in board specific gain and DP lane count configuration
- */
-static int board_ps8822_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- /* DP specific config */
- if (mux_state & USB_PD_MUX_DP_ENABLED)
- rv = ps8822_set_dp_rx_eq(me, PS8822_DPEQ_LEVEL_UP_20DB);
-
- return rv;
-}
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &stm32gx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .usb_port = USB_PD_PORT_HOST,
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = PS8822_I2C_ADDR3_FLAG,
- .driver = &ps8822_usb_mux_driver,
- .board_set = &board_ps8822_mux_set,
- },
-};
-
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- [USB_PD_PORT_USB3] = {
- .i2c_port = I2C_PORT_I2C3,
- .i2c_addr_flags = SN5S330_ADDR1_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-const struct hpd_to_pd_config_t hpd_config = {
- .port = USB_PD_PORT_HOST,
- .signal = GPIO_DDI_MST_IN_HPD,
-};
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_SYSTEM, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USBC_UF_RESET_L, 0);
- msleep(PS8805_FW_INIT_DELAY_MS);
- gpio_set_level(GPIO_USBC_UF_RESET_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-void board_enable_usbc_interrupts(void)
-{
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
- /* Enable HPD interrupt */
- gpio_enable_interrupt(GPIO_DDI_MST_IN_HPD);
- /* Enable VBUS control interrupt for C1 */
- gpio_enable_interrupt(GPIO_USBC_UF_MUX_VBUS_EN);
-}
-
-void board_disable_usbc_interrupts(void)
-{
- /* Disable PPC interrupts. */
- gpio_disable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
- /* Disable HPD interrupt */
- gpio_disable_interrupt(GPIO_DDI_MST_IN_HPD);
- /* Disable VBUS control interrupt for C1 */
- gpio_disable_interrupt(GPIO_USBC_UF_MUX_VBUS_EN);
-}
-
-void board_tcpc_init(void)
-{
- board_reset_pd_mcu();
-
- /* Enable board usbc interrupts */
- board_enable_usbc_interrupts();
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 2);
-
-enum pd_dual_role_states board_tc_get_initial_drp_mode(int port)
-{
- return pd_dual_role_init[port];
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- /*
- * CONFIG_USB_PD_PORT_MAX_COUNT must be defined to account for C0
- * and C1, but TCPMv2 only knows about C0, as C1 is a type-c only
- * port that is managed directly by the PS8803 TCPC.
- */
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USB_PD_PORT_HOST)
- return gpio_get_level(GPIO_HOST_USBC_PPC_INT_ODL) == 0;
-
- return 0;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- return 0;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/174825406): check correct operation for honeybuns */
-}
-
-int dock_get_mf_preference(void)
-{
- return MF_ON;
-}
-#endif /* SECTION_IS_RW */
-
-static void board_init(void)
-{
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_debug_gpio_1_pulse(void)
-{
- gpio_set_level(GPIO_TRIGGER_1, 0);
-}
-DECLARE_DEFERRED(board_debug_gpio_1_pulse);
-
-static void board_debug_gpio_2_pulse(void)
-{
- gpio_set_level(GPIO_TRIGGER_2, 0);
-}
-DECLARE_DEFERRED(board_debug_gpio_2_pulse);
-
-void board_debug_gpio(enum debug_gpio trigger, int level, int pulse_usec)
-{
- switch (trigger) {
- case TRIGGER_1:
- gpio_set_level(GPIO_TRIGGER_1, level);
- if (pulse_usec)
- hook_call_deferred(&board_debug_gpio_1_pulse_data,
- pulse_usec);
- break;
- case TRIGGER_2:
- gpio_set_level(GPIO_TRIGGER_2, level);
- if (pulse_usec)
- hook_call_deferred(&board_debug_gpio_2_pulse_data,
- pulse_usec);
- break;
- default:
- CPRINTS("bad debug gpio selection");
- break;
- }
-}
-
-static int command_dplane(int argc, char **argv)
-{
- char *e;
- int lane;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- lane = strtoi(argv[1], &e, 10);
-
- if ((lane != 2) && (lane != 4))
- return EC_ERROR_PARAM1;
-
- /* put MST into reset */
- gpio_set_level(GPIO_MST_RST_L, 0);
- msleep(1);
- /* Set lane control to requested level */
- gpio_set_level(GPIO_MST_HUB_LANE_SWITCH, lane == 2 ? 1 : 0);
- msleep(1);
- /* Take MST out of reset */
- gpio_set_level(GPIO_MST_RST_L, 1);
-
- ccprintf("MST lane set: %s, lane_ctrl = %d\n",
- lane == 2 ? "2 lane" : "4 lane",
- gpio_get_level(GPIO_MST_HUB_LANE_SWITCH));
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(dplane, command_dplane,
- "<2 | 4>",
- "MST lane control.");
diff --git a/board/baklava/board.h b/board/baklava/board.h
deleted file mode 100644
index e061d2342d..0000000000
--- a/board/baklava/board.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Baklava board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-/*
- * For MP release, CONFIG_SYSTEM_UNLOCKED must be undefined, and
- * CONFIG_FLASH_PSTATE_LOCKED must be defined in order to enable write protect
- * using option bytes WRP registers.
- */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-#undef CONFIG_FLASH_PSTATE_LOCKED
-
-/* USB Type C and USB PD defines */
-#define USB_PD_PORT_HOST 0
-#define USB_PD_PORT_USB3 1
-
-/*
- * Only the host and display usbc ports are usb-pd capable. There is a 2nd usbc
- * port, but this is type-c capable only. Only the PPC for this port needs to be
- * controlled by FW.
- */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_MUX_PS8822
-
-#undef CONFIG_USB_VID
-#define CONFIG_USB_VID 0x502
-#define CONFIG_USB_PID 0x1195
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-
-/* I2C port names */
-#define I2C_PORT_I2C1 0
-#define I2C_PORT_I2C2 1
-#define I2C_PORT_I2C3 2
-
-/* Required symbolic I2C port names */
-#define I2C_PORT_MP4245 I2C_PORT_I2C3
-#define I2C_PORT_EEPROM I2C_PORT_I2C3
-#define MP4245_I2C_ADDR_FLAGS MP4245_I2C_ADDR_0_FLAGS
-
-/* Include math_util for bitmask_uint64 used in pd_timers */
-#define CONFIG_MATH_UTIL
-
-#ifndef __ASSEMBLER__
-
-#include "registers.h"
-
-#define GPIO_DP_HPD GPIO_DDI_MST_IN_HPD
-#define GPIO_USBC_UF_ATTACHED_SRC GPIO_USBC_UF_MUX_VBUS_EN
-#define GPIO_BPWR_DET GPIO_HUB_BPWRDET
-#define GPIO_USB_HUB_OCP_NOTIFY GPIO_USBC_DATA_OCP_NOTIFY
-#define GPIO_UFP_PLUG_DET GPIO_MST_UFP_PLUG_DET
-
-#define BUTTON_PRESSED_LEVEL 1
-#define BUTTON_RELEASED_LEVEL 0
-
-#define GPIO_TRIGGER_1 GPIO_USB3_A5_CDP_EN
-#define GPIO_TRIGGER_2 GPIO_USB3_A6_CDP_EN
-
-enum debug_gpio {
- TRIGGER_1 = 0,
- TRIGGER_2,
-};
-
-/*
- * Function used to control GPIO signals as a timing marker. This is intended to
- * be used for development/debugging purposes.
- *
- * @param trigger GPIO debug signal selection
- * @param level desired level of the debug gpio signal
- * @param pulse_usec pulse width if non-zero
- */
-void board_debug_gpio(enum debug_gpio trigger, int level, int pulse_usec);
-
-/*
- * Function called in power on case to enable usbc related interrupts
- */
-void board_enable_usbc_interrupts(void);
-
-/*
- * Function called in power off case to disable usbc related interrupts
- */
-void board_disable_usbc_interrupts(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/baklava/build.mk b/board/baklava/build.mk
deleted file mode 100644
index 7e3e1240fd..0000000000
--- a/board/baklava/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=stm32
-CHIP_FAMILY:=stm32g4
-CHIP_VARIANT:=stm32g473xc
-BASEBOARD:=honeybuns
-
-board-y=board.o
diff --git a/board/baklava/dev_key.pem b/board/baklava/dev_key.pem
deleted file mode 100644
index 4897ceb44e..0000000000
--- a/board/baklava/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4wIBAAKCAYEAyiT9PsD2wW3mhfuxMtihnLDKC+PY9l6j+j405G5Wd3BBtLLl
-2uEoSD8cFQfnVTeFH7wggVf+SMAP3Y2aTnXIfdTX3N0skAdq/kYNUlQAK0xsa3Z7
-bRZ8puvzu+XNqsSS/tvsdYbNE5WC5sXtt7Wkm3mKn7PAti7oQrKbW1beFD0FgdAq
-JoweIdpkuOwDYtFBcF92LWWGziDcEXlc2v5Xj3qvixMLnhy+Ny1Byr2ApVaYZ56H
-JfjHKxbirNj4IrgmhdzfBIKxDf4mGibG0K1aC1io+SixtRV1cS6JRB0D+GS4QIcq
-y9bCMkBeVQLHhSo1UYZqbB7Qef0blQ2sxsXklo8Q5EIQOd6yiXiTelApOWDn3zTi
-uTkUo+99SPDLw/S3sR3uESxt+OYO2Yt6BWe2JSYBhHWB0Xc0PGItq7DUpm2cEWke
-vS91I/lBfqhOxQOvnEx5NM97/RBQMa3jJ5Jv/72X5oU6OcGmaliBJy3Tv0CSiI06
-qgRgWxMym/XA0ui/AgEDAoIBgQCGw1N/K08rnpmup8t3OxZoddwH7TtO6cKm1CNC
-9Dmk9YEjIe6R63AwKhK4r++OJQNqfWsA5VQwgAqTs7w0ToWpOI/ok3MKr5yphAjh
-jVVyMvLyTvzzZFMZ8qJ9Q95x2GH/PUhOWd4NDldEg/PPzm28+7G/zSskH0WBzGeS
-Oeli01kBNXFvCBQWkZh7SAJB4NZK6k7I7lnewJK2UOiR/uUKUcpct10UEyl6Hivc
-flXDjxBFFFoZUITHZJcd5frB0Bh+EiqJ3CnkSIjD4sTnZs/TP8CKhmYriabfBHdH
-j6ffcr5y8VhqDJK/ISSmWQO1c/rSziJLhx/ZrWvWp1FAbRg+kdh+RmV8hYIdEOq8
-PYOiERihd+eHVhtzsc74+cRGxPbaFJ2rpuJt+xk1Zp7IfGyyPWDmvXFKZgX+vo2s
-vJL6q9pPR57uUHL0xsxDrMH3HFxkl1ta5PsiBGXs+zG0EUzNKGtoRTCi176xUWyo
-NG+eWiL9ddeZVBzWeKfJGfwQ53sCgcEA+JE2E5kjvVCasSqERfDfIkSeOKoqWdZ2
-sAvTHibq6+vMBkRubNA0glHcUrMEBblDg3ds2z1A9YvwjwEUq9UFpVH3qfX9vaTX
-lLYFRZjcA3PkCJvFAt5eIlVXp+vgaEo6OcodLjDiqkYKzbMC13k5uM1wsEEwo2vI
-38vhHQlH1PHVTd8pt2Y7mOpDgxOOJLrvwuew7Lj9QSBRZ0EJxqv+1QA4EQ1cPr1H
-hGqggtL0ChLRV7KBHiLz9ggS5vHTEkFNAoHBANAwaSIfTnpAvkMoGy+iQyw0afC0
-7hnwhHKcAzqenT1Mzo3Yt7/zsZE8ywjKPe9C+ZHZyh+W373tCUQRnjpNOpNiVHzi
-ekFxl8kpLhpbB8LTXuRlQmtZjVQPbyuORPGDCzA05GGBN6mnXju+iQEz2WD8f3oY
-Jz5yYl54eAuMsFl5/0yehqBQjRvky5YRna2eNUKBvz+/BgjpZeb0DtLMffcAvrkQ
-FQbAwNvzvagMOEemjLSp9iXjQSNWJAdc86dMOwKBwQCltiQNEMJ+Nbx2HFguoJTB
-gxQlxsbmjvnKsoy+xJydR91ZgvRIis2sNpLhzK1ZJi0CT53nfitOXUsKALhyjgPD
-i/pxTqkpGI+4eVjZEJKs9+1bEoNXPulsOOUanUBFhtF73BN0IJccLrHed1c6UNEl
-3ksgK3XCR9s/3UC+Bi/jS+OJP3Ek7tJl8YJXYl7DJ0qB78tIe1OAwDZE1gaEcqnj
-VXq2COgp04UC8cBXN01cDIuPzFYUF01OsAyZ9oy21jMCgcEAisrwwWo0UYB+13AS
-H8GCHXhGoHieu/Wtob1XfGm+KN3fCTslKqJ2YNMyBdwpSiymYTvcFQ8/0/NbgrZp
-fDN8YkGNqJb8K6EP23DJZudageI/Qu4sR5EI4rT0x7Qt9ldcys3tllYlG8TpfSmw
-q3fmQKhU/BAaKaGW6aWlXQh1kPv/iGmvFYsIvUMyZAu+c77OLFZ/f9SusJuZRKK0
-jIhT+gB/Jgq4rysrPU0pGrLQL8RdzcakGUIrbOQYBOiib4gnAoHAVrvbmZGxyeeA
-oDE2QlXXmd1higPaQe3u+7vmh6itVpJ71n9wmu9xei7IiTOtGDYjHLXa8Qg0y37/
-FVCUiFxhOz05hpnB1ts70tuIWUJbWttMnhZPTpKa1dzZFB6qrlk2o/ONaSfNzpOZ
-FgKxBURFVzNMTlIh7QOZGoOeRg5BkFG5z21g8egYQ/1cY61BhaxJTz93HGKb0jYn
-QnC0WfVF9amWNGwocKATkwjoSVC7rQRsB2FMbY/WCqgE92lXsU9W
------END RSA PRIVATE KEY-----
diff --git a/board/baklava/ec.tasklist b/board/baklava/ec.tasklist
deleted file mode 100644
index 14c2c31393..0000000000
--- a/board/baklava/ec.tasklist
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(POWER_BUTTON, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(UCPD, ucpd_task, 0, LARGER_TASK_STACK_SIZE)
diff --git a/board/baklava/gpio.inc b/board/baklava/gpio.inc
deleted file mode 100644
index 144a5e3f8c..0000000000
--- a/board/baklava/gpio.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-#ifdef SECTION_IS_RW
-GPIO_INT(HOST_USBC_PPC_INT_ODL, PIN(D, 9), GPIO_INT_FALLING | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(DDI_MST_IN_HPD, PIN(C, 14), GPIO_INT_BOTH, hpd_interrupt)
-GPIO_INT(USBC_UF_MUX_VBUS_EN, PIN(C, 12), GPIO_INT_BOTH, board_uf_manage_vbus_interrupt)
-GPIO_INT(PWR_BTN, PIN(A, 0), GPIO_INT_BOTH, board_pwr_btn_interrupt)
-GPIO_INT(USBC_UF_PPC_INT_ODL, PIN(B, 5), GPIO_INT_FALLING | GPIO_PULL_UP, board_usbc_usb3_interrupt)
-#endif
-
-/* Power sequencing signals */
-GPIO(EN_AC_JACK, PIN(A, 1), GPIO_OUT_LOW)
-GPIO(EN_BB, PIN(A, 8), GPIO_OUT_LOW)
-GPIO(EN_PP3300_B, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(EN_PP1200_A, PIN(E, 8), GPIO_OUT_LOW)
-GPIO(EN_PP1100_A, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EN_PP1050_A, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(EN_PP5000_C, PIN(D, 1), GPIO_OUT_LOW)
-GPIO(EN_PP5000_HSPORT, PIN(D, 0), GPIO_OUT_LOW)
-
-/* MST Hub signals */
-GPIO(MST_LP_CTL_L, PIN(D, 10), GPIO_ODR_LOW)
-GPIO(MST_RST_L, PIN(E, 14), GPIO_ODR_LOW)
-GPIO(MST_HUB_LANE_SWITCH, PIN(C, 15), GPIO_OUT_HIGH)
-GPIO(MST_UFP_PLUG_DET, PIN(B, 12), GPIO_OUT_HIGH)
-
-/* Display Demux signals */
-GPIO(DEMUX_DP_HDMI_MODE, PIN(E, 15), GPIO_OUT_LOW)
-GPIO(DEMUX_DP_HDMI_PD_N, PIN(B, 13), GPIO_ODR_LOW)
-
-/* USBC Mux and Demux Signals */
-GPIO(EN_DP_SINK, PIN(B, 14), GPIO_OUT_LOW)
-GPIO(DP_SINK_RESET, PIN(B, 15), GPIO_OUT_LOW)
-GPIO(USBC_UF_RESET_L, PIN(D, 2), GPIO_ODR_LOW)
-
-/* USB Hubs signals */
-GPIO(EC_HUB2_RESET_L, PIN(C, 5), GPIO_ODR_LOW)
-GPIO(EC_HUB3_RESET_L, PIN(B, 10), GPIO_ODR_LOW)
-GPIO(USBC_DATA_OCP_NOTIFY, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(HUB_BPWRDET, PIN(C, 1), GPIO_OUT_LOW)
-
-/* USB-A Current limit switches, set default to 1.5A */
-GPIO(GBE_RESET_EC, PIN(C, 0), GPIO_OUT_LOW)
-GPIO(EC_DFU_MUX_CTRL, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(USB3_A5_CDP_EN, PIN(B, 9), GPIO_OUT_LOW)
-GPIO(USB3_A6_CDP_EN, PIN(C, 13), GPIO_OUT_LOW)
-
-
-/* Write protect */
-GPIO(EC_FLASH_WP_ODL, PIN(A, 3), GPIO_ODR_HIGH)
-GPIO(EC_WP_L, PIN(E, 11), GPIO_INT_BOTH)
-
-/* UART Bus */
-GPIO(EC_UART_TX, PIN(C, 10), GPIO_INT_BOTH)
-GPIO(EC_UART_RX, PIN(C, 11), GPIO_INT_BOTH)
-
-/*
- * I2C SCL/SDA pins. These will normally be under control of the peripheral from
- * alt fucntion setting below. But if a port gets wedged, the unwedge code uses
- * these signals as regular GPIOs.
- */
-GPIO(EC_I2C1_SCL, PIN(A, 15), GPIO_ODR_HIGH)
-GPIO(EC_I2C1_SDA, PIN(B, 7), GPIO_ODR_HIGH)
-GPIO(EC_I2C3_SCL, PIN(C, 8), GPIO_ODR_HIGH)
-GPIO(EC_I2C3_SDA, PIN(C, 9), GPIO_ODR_HIGH)
-
-/* misc signals */
-GPIO(BOOT0, PIN(B, 8), GPIO_INPUT)
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-
-/* USART3_TX/RX GPIOC 10-11*/
-ALTERNATE(PIN_MASK(C, 0x0C00), 7, MODULE_UART, GPIO_PULL_UP)
-/* I2C Ports
- * I2C1: SDA/SCL -> PB7/PA15
- * I2C2: SDA/SCL -> PA8/PA9
- * I2C3: SDA/SCL -> PC8/PC9
- */
-ALTERNATE(PIN_MASK(B, 0x0080), 4, MODULE_I2C, GPIO_OPEN_DRAIN)
-ALTERNATE(PIN_MASK(A, 0X8000), 4, MODULE_I2C, GPIO_OPEN_DRAIN)
-ALTERNATE(PIN_MASK(C, 0x0300), 8, MODULE_I2C, GPIO_OPEN_DRAIN)
-/* GPIOA4-7: SPI Signals */
-ALTERNATE(PIN_MASK(A, 0x00F0), 5, MODULE_SPI, 0)
diff --git a/board/bds/board.c b/board/bds/board.c
deleted file mode 100644
index 91da893a52..0000000000
--- a/board/bds/board.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2012 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.
- */
-/* Stellaris EKB-LM4F-EAC board-specific configuration */
-
-#include "adc.h"
-#include "gpio.h"
-#include "i2c.h"
-#include "registers.h"
-#include "util.h"
-
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- /* EC internal temperature is calculated by
- * 273 + (295 - 450 * ADC_VALUE / ADC_READ_MAX) / 2
- * = -225 * ADC_VALUE / ADC_READ_MAX + 420.5
- */
- {"ECTemp", LM4_ADC_SEQ0, -225, ADC_READ_MAX, 420,
- LM4_AIN_NONE, 0x0e /* TS0 | IE0 | END0 */, 0, 0},
-
- /* Charger current is mapped from 0~4000mA to 0~1.6V.
- * And ADC maps 0~3.3V to ADC_READ_MAX.
- *
- * Note that on BDS, this is really just the turn pot on the Badger
- * board, but that's good enough for debugging the ADC.
- */
- {"BDSPot", LM4_ADC_SEQ1, 33 * 4000, ADC_READ_MAX * 16, 0,
- LM4_AIN(0), 0x06 /* IE0 | END0 */, LM4_GPIO_E, (1<<3)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"lightbar", 5, 400},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#include "gpio_list.h"
diff --git a/board/bds/board.h b/board/bds/board.h
deleted file mode 100644
index c859089f04..0000000000
--- a/board/bds/board.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/* Stellaris EKB-LM4F-EAC board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-/* LM4 modules we don't use on link but still want to keep compiling */
-#define CONFIG_EEPROM
-#define CONFIG_PSTORE
-
-/* Modules we want to exclude */
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_HOSTCMD_LPC
-#undef CONFIG_PECI
-#undef CONFIG_SWITCH
-
-/* Write protect is active high */
-#define CONFIG_WP_ACTIVE_HIGH
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_CH_EC_TEMP = 0, /* EC internal die temperature in degrees K. */
- ADC_CH_BDS_POT, /* BDS pot input. */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_COUNT
-};
-
-/* I2C ports */
-#define I2C_PORT_LIGHTBAR 5 /* Port 5 / PA6:7 on link, but PG6:7 on badger */
-
-/* Second UART port */
-#define CONFIG_UART_HOST 1
-
-#include "gpio_signal.h"
-
-/* EEPROM blocks */
-#define EEPROM_BLOCK_START_PSTORE 16 /* Host persistent storage */
-#define EEPROM_BLOCK_COUNT_PSTORE 16
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/bds/build.mk b/board/bds/build.mk
deleted file mode 100644
index e3e91f0bb2..0000000000
--- a/board/bds/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2012 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.
-#
-# Board specific files build
-#
-
-# the IC is TI Stellaris LM4
-CHIP:=lm4
-
-board-y=board.o
diff --git a/board/bds/ec.tasklist b/board/bds/ec.tasklist
deleted file mode 100644
index 7329da7d2d..0000000000
--- a/board/bds/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2012 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(LIGHTBAR, lightbar_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/bds/gpio.inc b/board/bds/gpio.inc
deleted file mode 100644
index 374894f932..0000000000
--- a/board/bds/gpio.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Recovery signal from DOWN button */
-GPIO(RECOVERY_L, PIN(D, 1), GPIO_PULL_UP)
-GPIO(DEBUG_LED, PIN(A, 7), GPIO_OUT_LOW)
-
-/*
- * Signals which aren't implemented on BDS but we'll emulate anyway, to
- * make it more convenient to debug other code.
- */
-UNIMPLEMENTED(WP) /* Write protect input */
-UNIMPLEMENTED(ENTERING_RW) /* EC entering RW code */
-
-ALTERNATE(PIN_MASK(A, 0x03), 1, MODULE_UART, 0) /* UART0 */
-ALTERNATE(PIN_MASK(G, 0x40), 3, MODULE_I2C, 0) /* I2C5 SCL */
-ALTERNATE(PIN_MASK(G, 0x80), 3, GPIO_OPEN_DRAIN, 0) /* I2C5 SDA */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* UART1 */
diff --git a/board/beetley/battery.c b/board/beetley/battery.c
deleted file mode 100644
index 94f5dbb630..0000000000
--- a/board/beetley/battery.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all beetley battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP L20M3PG0 Battery Information */
- [BATTERY_SMP1] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP L20M3PG3 Battery Information */
- [BATTERY_SMP2] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG3",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC L20L3PG0 Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L20L3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* Sunwoda L20D3PG0 Battery Information */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L20D3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 205, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* Celxert L20C3PG0 Battery Information */
- [BATTERY_CELXPERT] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L20C3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP1;
diff --git a/board/beetley/board.c b/board/beetley/board.c
deleted file mode 100644
index 08c9ba5066..0000000000
--- a/board/beetley/board.c
+++ /dev/null
@@ -1,527 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Beetley board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cros_board_info.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define INT_RECHECK_US 5000
-
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 80,
- .debounce_down_us = 30 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void hdmi_hpd_interrupt(enum gpio_signal s)
-{
- gpio_set_level(GPIO_USB_C1_DP_HPD, !gpio_get_level(s));
-}
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
-};
-
-static const struct ec_response_keybd_config beetley_keybd = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &beetley_keybd;
-}
-
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS
-};
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t base_lsm6dsm_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DS3,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_lsm6dsm_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DS3,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_lsm6dsm_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- gpio_enable_interrupt(GPIO_HDMI_HPD_SUB_ODL);
-
- /* Set LEDs luminance */
- pwm_set_duty(PWM_CH_LED_RED, 70);
- pwm_set_duty(PWM_CH_LED_GREEN, 70);
- pwm_set_duty(PWM_CH_LED_WHITE, 70);
-
- /*Enable Base Accel interrupt*/
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
-
- /* Setting scan mask KSO11, KSO12, KSO13 and KSO14 */
- keyscan_config.actual_key_mask[11] = 0xfe;
- keyscan_config.actual_key_mask[12] = 0xff;
- keyscan_config.actual_key_mask[13] = 0xff;
- keyscan_config.actual_key_mask[14] = 0xff;
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Charger IC need to be put into their "low power mode" before
- * entering the Z-state.
- *
- * b:186717219: In order to solve the power consumption problem of
- * hibernate,HW solution is adopted after board id 3 to solve the
- * problem that AC cannot wake up hibernate mode.
- */
- raa489000_hibernate(0, true);
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- if (port != 0 && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- CPRINTUSB("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(0, false);
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTUSB("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTUSB("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_GREEN] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_WHITE] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charge",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "5V_Inductor",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/beetley/board.h b/board/beetley/board.h
deleted file mode 100644
index bac25d4d67..0000000000
--- a/board/beetley/board.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Beetley board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSYCMD_BATTERY_V2
-
-/* Sysetem unlocked in early development */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* DAC for PSYS */
-#define CONFIG_DAC
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-
-/*SENSOR*/
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* PWM */
-#define CONFIG_PWM
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux */
-#define CONFIG_USB_MUX_IT5205
-
-/* KeyBoard */
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_KEYBOARD_KEYPAD
-#define CONFIG_KEYBOARD_STRICT_DEBOUNCE
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum pwm_channel {
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_LED_WHITE,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP1,
- BATTERY_SMP2,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_CELXPERT,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/beetley/build.mk b/board/beetley/build.mk
deleted file mode 100644
index 8167ca9966..0000000000
--- a/board/beetley/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/beetley/cbi_ssfc.c b/board/beetley/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/beetley/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/beetley/cbi_ssfc.h b/board/beetley/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/beetley/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/beetley/ec.tasklist b/board/beetley/ec.tasklist
deleted file mode 100644
index bdcbcdf074..0000000000
--- a/board/beetley/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/beetley/gpio.inc b/board/beetley/gpio.inc
deleted file mode 100644
index bbb793ee44..0000000000
--- a/board/beetley/gpio.inc
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(HDMI_HPD_SUB_ODL, PIN(E, 7), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Used by baseboard z-state enable, but not present on beetley */
-UNIMPLEMENTED(USB_C1_INT_ODL)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_A1_VBUS, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/*TP*/
-GPIO(TP, PIN(C, 3), GPIO_INPUT | GPIO_HIGH)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOA0_NC, PIN(A, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOB5_NC, PIN(B, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF1_NC, PIN(F, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH2_NC, PIN(H, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ1_NC, PIN(J, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ3_NC, PIN(J, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V SENSOR */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(2)), 0, MODULE_ADC, 0) /* ADC15: TEMP_SENSOR_3 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* DAC */
-ALTERNATE(PIN_MASK(J, BIT(2)), 0, MODULE_DAC, 0) /* DAC2: EC_AP_PSYS */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM, 0) /* RED led, GREEN led, WHITE led */
diff --git a/board/beetley/led.c b/board/beetley/led.c
deleted file mode 100644
index bf64b33dcf..0000000000
--- a/board/beetley/led.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 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.
- *
- * Beetley specific PWM LED settings.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-#include "pwm.h"
-
-#define LED_OFF_LVL 0
-#define LED_ON_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- pwm_enable(PWM_CH_LED_WHITE, LED_ON_LVL);
- else
- pwm_enable(PWM_CH_LED_WHITE, LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/beetley/usb_pd_policy.c b/board/beetley/usb_pd_policy.c
deleted file mode 100644
index b7c0ca21df..0000000000
--- a/board/beetley/usb_pd_policy.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- if (port != 0)
- return;
-
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port != 0)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
diff --git a/board/beetley/vif_override.xml b/board/beetley/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/beetley/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/berknip/analyzestack.yaml b/board/berknip/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/berknip/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/berknip/battery.c b/board/berknip/battery.c
deleted file mode 100644
index 526375c0db..0000000000
--- a/board/berknip/battery.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Berknip battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 996QA193H Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-/* Cosmx CA407792G Battery Information */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_HIGHPOWER;
diff --git a/board/berknip/board.c b/board/berknip/board.c
deleted file mode 100644
index a119007de6..0000000000
--- a/board/berknip/board.c
+++ /dev/null
@@ -1,671 +0,0 @@
-/* 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.
- */
-
-/* Berknip board configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charger.h"
-#include "cbi_ec_fw_config.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/retimer/pi3hdx1204.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal);
-
-#include "gpio_list.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
- [PWM_CH_FAN] = {
- .channel = 2,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-const int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB,
-};
-
-const struct pi3hdx1204_tuning pi3hdx1204_tuning = {
- .eq_ch0_ch1_offset = PI3HDX1204_EQ_DB710,
- .eq_ch2_ch3_offset = PI3HDX1204_EQ_DB710,
- .vod_offset = PI3HDX1204_VOD_115_ALL_CHANNELS,
- .de_offset = PI3HDX1204_DE_DB_MINUS5,
-};
-
-static int check_hdmi_hpd_status(void)
-{
- return gpio_get_level(GPIO_DP1_HPD_EC_IN);
-}
-
-/*****************************************************************************
- * Board suspend / resume
- */
-
-static void board_chipset_resume(void)
-{
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 1);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 1);
- msleep(PI3HDX1204_POWER_ON_DELAY_MS);
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- check_hdmi_hpd_status());
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_suspend(void)
-{
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 0);
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 0);
- }
-
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*
- * USB C0 port SBU mux use standalone PI3USB221
- * chip and it need a board specific driver.
- * Overall, it will use chained mux framework.
- */
-static int pi3usb221_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
- if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 0);
- else
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
- return EC_SUCCESS;
-}
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-const struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = pi3usb221_set_mux,
-};
-/*
- * Since PI3USB221 is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-const struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
-
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration
- */
-static void setup_mux(void)
-{
- if (ec_config_has_usbc1_retimer_tusb544()) {
- ccprints("C1 TUSB544 detected");
- /*
- * Main MUX is FP5, secondary MUX is TUSB544
- *
- * Replace usb_muxes[USBC_PORT_C1] with the AMD FP5
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_amd_fp5_usb_mux,
- sizeof(struct usb_mux));
- /* Set the TUSB544 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_tusb544;
- } else if (ec_config_has_usbc1_retimer_ps8743()) {
- ccprints("C1 PS8743 detected");
- /*
- * Main MUX is PS8743, secondary MUX is modified FP5
- *
- * Replace usb_muxes[USBC_PORT_C1] with the PS8743
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_ps8743,
- sizeof(struct usb_mux));
- /* Set the AMD FP5 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_amd_fp5_usb_mux;
- /* Don't have the AMD FP5 flip */
- usbc1_amd_fp5_usb_mux.flags = USB_MUX_FLAG_SET_WITHOUT_FLIP;
- }
-}
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
- },
- [USBC_PORT_C1] = {
- /* Filled in dynamically at startup */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static int board_tusb544_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
-
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_USB3_1_1,
- TUSB544_EQ_RX_MASK,
- TUSB544_EQ_RX_DFP_04_UFP_MINUS15);
- if (rv)
- return rv;
-
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_USB3_1_1,
- TUSB544_EQ_TX_MASK,
- TUSB544_EQ_TX_DFP_MINUS14_UFP_MINUS33);
- if (rv)
- return rv;
-
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_USB3_1_2,
- TUSB544_EQ_RX_MASK,
- TUSB544_EQ_RX_DFP_04_UFP_MINUS15);
- if (rv)
- return rv;
-
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_USB3_1_2,
- TUSB544_EQ_TX_MASK,
- TUSB544_EQ_TX_DFP_MINUS14_UFP_MINUS33);
- if (rv)
- return rv;
- }
-
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_DISPLAYPORT_1,
- TUSB544_EQ_RX_MASK,
- TUSB544_EQ_RX_DFP_61_UFP_43);
- if (rv)
- return rv;
-
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_DISPLAYPORT_1,
- TUSB544_EQ_TX_MASK,
- TUSB544_EQ_TX_DFP_61_UFP_43);
- if (rv)
- return rv;
-
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_DISPLAYPORT_2,
- TUSB544_EQ_RX_MASK,
- TUSB544_EQ_RX_DFP_61_UFP_43);
- if (rv)
- return rv;
-
- rv = tusb544_i2c_field_update8(me,
- TUSB544_REG_DISPLAYPORT_2,
- TUSB544_EQ_TX_MASK,
- TUSB544_EQ_TX_DFP_61_UFP_43);
- if (rv)
- return rv;
-
- /* Enable IN_HPD on the DB */
- gpio_or_ioex_set_level(board_usbc1_retimer_inhpd, 1);
- } else {
- /* Disable IN_HPD on the DB */
- gpio_or_ioex_set_level(board_usbc1_retimer_inhpd, 0);
- }
- return EC_SUCCESS;
-}
-
-const struct usb_mux usbc1_tusb544 = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS1,
- .driver = &tusb544_drv,
- .board_set = &board_tusb544_mux_set,
-};
-const struct usb_mux usbc1_ps8743 = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PS8743_I2C_ADDR1_FLAG,
- .driver = &ps8743_usb_mux_driver,
-};
-
-/*****************************************************************************
- * Use FW_CONFIG to set correct configuration.
- */
-enum gpio_signal GPIO_S0_PGOOD = GPIO_S0_PWROK_OD_V0;
-static uint32_t board_ver;
-int board_usbc1_retimer_inhpd = GPIO_USB_C1_HPD_IN_DB_V1;
-
-static void board_version_check(void)
-{
- cbi_get_board_version(&board_ver);
-
- if (board_ver <= 2)
- chg_chips[0].i2c_port = I2C_PORT_CHARGER_V0;
-
- if (board_ver == 2) {
- power_signal_list[X86_S0_PGOOD].gpio = GPIO_S0_PWROK_OD_V1;
- GPIO_S0_PGOOD = GPIO_S0_PWROK_OD_V1;
- }
-}
-/*
- * Use HOOK_PRIO_INIT_I2C so we re-map before charger_chips_init()
- * talks to the charger.
- */
-DECLARE_HOOK(HOOK_INIT, board_version_check, HOOK_PRIO_INIT_I2C);
-
-static void board_remap_gpio(void)
-{
- if (board_ver >= 3) {
- /*
- * TODO: remove code when older version_2
- * hardware is retired and no longer needed
- */
- gpio_set_flags(GPIO_USB_C1_HPD_IN_DB_V1, GPIO_OUT_LOW);
- board_usbc1_retimer_inhpd = GPIO_USB_C1_HPD_IN_DB_V1;
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204())
- gpio_enable_interrupt(GPIO_DP1_HPD_EC_IN);
-
- } else
- board_usbc1_retimer_inhpd = IOEX_USB_C1_HPD_IN_DB;
-}
-
-static void setup_fw_config(void)
-{
- setup_mux();
-
- board_remap_gpio();
-}
-/* Use HOOK_PRIO_INIT_I2C + 2 to be after ioex_init(). */
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-static void hdmi_hpd_handler(void)
-{
- /* Pass HPD through DB OPT1 HDMI connector to AP's DP1 */
- int hpd = check_hdmi_hpd_status();
-
- gpio_set_level(GPIO_EC_DP1_HPD, hpd);
- ccprints("HDMI HPD %d", hpd);
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- chipset_in_or_transitioning_to_state(CHIPSET_STATE_ON)
- && hpd);
-}
-DECLARE_DEFERRED(hdmi_hpd_handler);
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- /* Debounce for 2 msec */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
-
-/*****************************************************************************
- * Fan
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3000,
- .rpm_start = 3500,
- .rpm_max = 6200,
-};
-const struct fan_t fans[] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-int board_get_temp(int idx, int *temp_k)
-{
- int mv;
- int temp_c;
- enum adc_channel channel;
-
- /* idx is the sensor index set in board temp_sensors[] */
- switch (idx) {
- case TEMP_SENSOR_CHARGER:
- channel = ADC_TEMP_SENSOR_CHARGER;
- break;
- case TEMP_SENSOR_SOC:
- /* thermistor is not powered in G3 */
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* adc power not ready when transition to S5 */
- if (chipset_in_or_transitioning_to_state(
- CHIPSET_STATE_SOFT_OFF))
- return EC_ERROR_NOT_POWERED;
-
- channel = ADC_TEMP_SENSOR_SOC;
- break;
- case TEMP_SENSOR_5V_REGULATOR:
- /* thermistor is not powered in G3 */
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* adc power not ready when transition to S5 */
- if (chipset_in_or_transitioning_to_state(
- CHIPSET_STATE_SOFT_OFF))
- return EC_ERROR_NOT_POWERED;
-
- channel = ADC_TEMP_SENSOR_5V_REGULATOR;
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- mv = adc_read_channel(channel);
- if (mv < 0)
- return EC_ERROR_INVAL;
-
- temp_c = thermistor_linear_interpolate(mv, &thermistor_info);
- *temp_k = C_TO_K(temp_c);
- return EC_SUCCESS;
-}
-
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_5V_REGULATOR] = {
- .name = "5V_REGULATOR",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_SOC,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
- [TEMP_SENSOR_5V_REGULATOR] = {
- .name = "5V_REGULATOR",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_5V_REGULATOR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_thermistor_soc = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(62),
- [EC_TEMP_THRESH_HALT] = C_TO_K(66),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(57),
- },
- .temp_fan_off = C_TO_K(39),
- .temp_fan_max = C_TO_K(60),
-};
-
-const static struct ec_thermal_config thermal_thermistor_charger = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(99),
- [EC_TEMP_THRESH_HALT] = C_TO_K(99),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(98),
- },
- .temp_fan_off = C_TO_K(98),
- .temp_fan_max = C_TO_K(99),
-};
-
-const static struct ec_thermal_config thermal_thermistor_5v = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(60),
- [EC_TEMP_THRESH_HALT] = C_TO_K(99),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(50),
- },
- .temp_fan_off = C_TO_K(98),
- .temp_fan_max = C_TO_K(99),
-};
-
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(99),
- },
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-struct fan_step {
- int on;
- int off;
- int rpm;
-};
-
-static const struct fan_step fan_table0[] = {
- {.on = 0, .off = 5, .rpm = 0},
- {.on = 29, .off = 5, .rpm = 3700},
- {.on = 38, .off = 19, .rpm = 4000},
- {.on = 48, .off = 33, .rpm = 4500},
- {.on = 62, .off = 43, .rpm = 4800},
- {.on = 76, .off = 52, .rpm = 5200},
- {.on = 100, .off = 67, .rpm = 6200},
-};
-/* All fan tables must have the same number of levels */
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_table0)
-
-static const struct fan_step *fan_table = fan_table0;
-
-int fan_percent_to_rpm(int fan, int pct)
-{
- static int current_level;
- static int previous_pct;
- int i;
-
- /*
- * Compare the pct and previous pct, we have the three paths :
- * 1. decreasing path. (check the off point)
- * 2. increasing path. (check the on point)
- * 3. invariant path. (return the current RPM)
- */
- if (pct < previous_pct) {
- for (i = current_level; i >= 0; i--) {
- if (pct <= fan_table[i].off)
- current_level = i - 1;
- else
- break;
- }
- } else if (pct > previous_pct) {
- for (i = current_level + 1; i < NUM_FAN_LEVELS; i++) {
- if (pct >= fan_table[i].on)
- current_level = i;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- previous_pct = pct;
-
- if (fan_table[current_level].rpm !=
- fan_get_rpm_target(FAN_CH(fan)))
- cprints(CC_THERMAL, "Setting fan RPM to %d",
- fan_table[current_level].rpm);
-
- return fan_table[current_level].rpm;
-}
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_CHARGER] = thermal_thermistor_charger;
- thermal_params[TEMP_SENSOR_SOC] = thermal_thermistor_soc;
- thermal_params[TEMP_SENSOR_CPU] = thermal_cpu;
- thermal_params[TEMP_SENSOR_5V_REGULATOR] = thermal_thermistor_5v;
-}
-DECLARE_HOOK(HOOK_INIT, setup_fans, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {0, 5}, {1, 1}, {1, 0}, {0, 6}, {0, 7},
- {1, 4}, {1, 3}, {1, 6}, {1, 7}, {3, 1},
- {2, 0}, {1, 5}, {2, 6}, {2, 7}, {2, 1},
- {2, 4}, {2, 5}, {1, 2}, {2, 3}, {2, 2},
- {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-/*****************************************************************************
- * Power signals
- */
-
-struct power_signal_info power_signal_list[] = {
- [X86_SLP_S3_N] = {
- .gpio = GPIO_PCH_SLP_S3_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S3_DEASSERTED",
- },
- [X86_SLP_S5_N] = {
- .gpio = GPIO_PCH_SLP_S5_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S5_DEASSERTED",
- },
- [X86_S0_PGOOD] = {
- .gpio = GPIO_S0_PWROK_OD_V0,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S0_PGOOD",
- },
- [X86_S5_PGOOD] = {
- .gpio = GPIO_S5_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S5_PGOOD",
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-enum gpio_signal board_usbc_port_to_hpd_gpio(int port)
-{
- /* USB-C0 always uses USB_C0_HPD (= DP3_HPD). */
- if (port == 0)
- return GPIO_USB_C0_HPD;
-
- /*
- * USB-C1 OPT3 DB
- * version_2 uses GPIO_NO_HPD
- * version_3 uses USB_C1_HPD_IN_DB_V1 via RTD2141B MST hub
- * to drive AP HPD, EC drives MST hub HPD input
- * from USB-PD messages..
- */
- else if (ec_config_has_mst_hub_rtd2141b())
- return (board_ver >= 3)
- ? GPIO_USB_C1_HPD_IN_DB_V1
- : GPIO_NO_HPD;
-
- /* USB-C1 OPT1 DB uses DP2_HPD. */
- return GPIO_DP2_HPD;
-}
diff --git a/board/berknip/board.h b/board/berknip/board.h
deleted file mode 100644
index 5ef9e33f0c..0000000000
--- a/board/berknip/board.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* 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.
- */
-
-/* Berknip board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_TREMBYLE
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define RPM_DEVIATION 1
-#define CONFIG_FAN_RPM_CUSTOM
-
-#undef CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_COMMON
-
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* Type C mux/retimer */
-#define CONFIG_USB_MUX_PS8743
-#define CONFIG_USBC_RETIMER_TUSB544
-#define TUSB544_I2C_ADDR_FLAGS1 0x0F
-#define CONFIG_TUSB544_EQ_BY_REGISTER
-
-#define CONFIG_POWER_SIGNAL_RUNTIME_CONFIG
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-#ifndef __ASSEMBLER__
-
-/* This GPIOs moved. Temporarily detect and support the V0 HW. */
-extern enum gpio_signal GPIO_S0_PGOOD;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_5V_REGULATOR,
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_5V_REGULATOR,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * BERKNIP_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: none
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- BERKNIP_MB_USBAC = 0,
-};
-
-/**
- * BERKNIP_DB_T_OPT1_USBAC_HMDI
- * USB-A1 Speed: 5 Gbps
- * Retimer: PS8719
- * USB-C1 Speed: 5 Gbps
- * Retimer: TUSB544
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: PI3HDX1204
- * MST Hub: none
- *
- *
- * BERKNIP_DB_T_OPT3_USBAC_HDMI_MSTHUB
- * USB-A1 Speed: 5 Gbps
- * Retimer: PS8719
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8743
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: none
- * MST Hub: RTD2141B
- */
-enum ec_cfg_usb_db_type {
- BERKNIP_DB_T_OPT1_USBAC_HMDI = 0,
- BERKNIP_DB_T_OPT3_USBAC_HDMI_MSTHUB = 1,
-};
-
-#include "cbi_ec_fw_config.h"
-
-#define HAS_USBC1_RETIMER_PS8743 \
- (BIT(BERKNIP_DB_T_OPT3_USBAC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_usbc1_retimer_ps8743(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8743);
-}
-
-#define HAS_USBC1_RETIMER_TUSB544 \
- (BIT(BERKNIP_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_usbc1_retimer_tusb544(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_TUSB544);
-}
-
-#define HAS_HDMI_RETIMER_PI3HDX1204 \
- (BIT(BERKNIP_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_RETIMER_PI3HDX1204);
-}
-
-#define HAS_MST_HUB_RTD2141B \
- (BIT(BERKNIP_DB_T_OPT3_USBAC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_mst_hub_rtd2141b(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_MST_HUB_RTD2141B);
-}
-
-#define HAS_HDMI_CONN_HPD \
- (BIT(BERKNIP_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_hdmi_conn_hpd(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_CONN_HPD);
-}
-
-enum gpio_signal board_usbc_port_to_hpd_gpio(int port);
-#define PORT_TO_HPD(port) board_usbc_port_to_hpd_gpio(port)
-
-extern const struct usb_mux usbc1_tusb544;
-extern const struct usb_mux usbc1_ps8743;
-extern struct usb_mux usbc1_amd_fp5_usb_mux;
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/berknip/build.mk b/board/berknip/build.mk
deleted file mode 100644
index 1c0cbc4f63..0000000000
--- a/board/berknip/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/berknip/ec.tasklist b/board/berknip/ec.tasklist
deleted file mode 100644
index 3a08ebc972..0000000000
--- a/board/berknip/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/berknip/gpio.inc b/board/berknip/gpio.inc
deleted file mode 100644
index 860cbba284..0000000000
--- a/board/berknip/gpio.inc
+++ /dev/null
@@ -1,156 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD_V0, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-
-/*
- * TODO(dbrockus@): remove code when older version_2 of hardware is
- * retired and no longer needed
- */
-#if 0
-GPIO(USB_C1_HPD_IN_DB_V1, PIN(B, 1), GPIO_OUT_LOW) /* C1 HPD V1 */
-#else
-#define GPIO_USB_C1_HPD_IN_DB_V1 GPIO_S0_PWROK_OD_V1
-GPIO_INT(S0_PWROK_OD_V1, PIN(B, 1), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(DP1_HPD_EC_IN, PIN(7, 5), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 2), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(D, 3), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB_C0_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C0_IN_HPD, PIN(7, 3), GPIO_OUT_LOW) /* C0 IN Hotplug Detect */
-GPIO(EC_DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(DP2_HPD, PIN(C, 1), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-UNIMPLEMENTED(NO_HPD)
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-GPIO(C1_CHARGE_LED_WHITE_DB_L, PIN(7, 0), GPIO_OUT_HIGH)
-GPIO(C1_CHARGE_LED_AMBER_DB_L, PIN(6, 7), GPIO_OUT_HIGH)
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(USBC_PORT_C1, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_A0_RETIMER_EN, EXPIN(USBC_PORT_C0, 0, 0), GPIO_OUT_LOW) /* A0 Retimer Enable */
-IOEX(USB_A0_RETIMER_RST, EXPIN(USBC_PORT_C0, 0, 1), GPIO_OUT_LOW) /* A0 Retimer Reset */
-IOEX(USB_C0_FAULT_ODL, EXPIN(USBC_PORT_C0, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C0, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(USBC_PORT_C0, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(USBC_PORT_C0, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(USB_C0_DATA_EN, EXPIN(USBC_PORT_C0, 1, 4), GPIO_OUT_LOW) /* C0 Data Enable */
-IOEX(EN_USB_A0_5V, EXPIN(USBC_PORT_C0, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(USBC_PORT_C0, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-IOEX(USB_C0_SBU_FLIP, EXPIN(USBC_PORT_C0, 1, 7), GPIO_OUT_LOW) /* C0 SBU Flip */
-
-IOEX(USB_A1_RETIMER_EN, EXPIN(USBC_PORT_C1, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(USB_A1_RETIMER_RST_DB, EXPIN(USBC_PORT_C1, 0, 1), GPIO_OUT_LOW) /* A1 Retimer Reset */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(USBC_PORT_C1, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-IOEX(HDMI_POWER_EN_DB, EXPIN(USBC_PORT_C1, 0, 3), GPIO_OUT_LOW) /* HDMI retimer power enable */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C1, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_MUX_RST_DB, EXPIN(USBC_PORT_C1, 1, 1), GPIO_OUT_LOW) /* C1 Mux Reset */
-IOEX(USB_C1_PPC_EN_L, EXPIN(USBC_PORT_C1, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(HDMI_DATA_EN_DB, EXPIN(USBC_PORT_C1, 1, 4), GPIO_OUT_LOW) /* HDMI Retimer Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(USBC_PORT_C1, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB, EXPIN(USBC_PORT_C1, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L, EXPIN(USBC_PORT_C1, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC_POWER_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID_POWER_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(FCH_I2C_AUDIO_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_AUDIO_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0, ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(C, BIT(3)), 0, MODULE_PWM, 0) /* PWM0 LED */
-ALTERNATE(PIN_MASK(C, BIT(4)), 0, MODULE_PWM, 0) /* PWM2 - EC_FAN_PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* TA1 - EC_FAN_SPEED */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/berknip/led.c b/board/berknip/led.c
deleted file mode 100644
index 79d691ffac..0000000000
--- a/board/berknip/led.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICKS_PER_CYCLE 10
-#define LED_TICKS_PER_CYCLE_S3 35
-#define LED_ON_TICKS 5
-#define POWER_LED_ON_S3_TICKS 5
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- RIGHT_PORT = 0,
- LEFT_PORT
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == RIGHT_PORT ? GPIO_LED_CHRG_L :
- GPIO_C1_CHARGE_LED_AMBER_DB_L);
- white_led = (port == RIGHT_PORT ? GPIO_LED_FULL_L :
- GPIO_C1_CHARGE_LED_WHITE_DB_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LEDs for Berknip, Berknip is non-power LED
- * design, blinking both two side battery white LEDs to indicate
- * system suspend with non-charging state.
- */
- if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
-
- power_ticks++;
-
- led_set_color_battery(RIGHT_PORT, power_ticks
- % LED_TICKS_PER_CYCLE_S3 < POWER_LED_ON_S3_TICKS
- ? LED_WHITE : LED_OFF);
- led_set_color_battery(LEFT_PORT, power_ticks
- % LED_TICKS_PER_CYCLE_S3 < POWER_LED_ON_S3_TICKS
- ? LED_WHITE : LED_OFF);
- return;
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/berknip/vif_override.xml b/board/berknip/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/berknip/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/bland b/board/bland
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/bland
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/blipper/battery.c b/board/blipper/battery.c
deleted file mode 100644
index 114cfbc313..0000000000
--- a/board/blipper/battery.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all blipper battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP L20M3PG0 Battery Information */
- [BATTERY_SMP1] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP L20M3PG3 Battery Information */
- [BATTERY_SMP2] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG3",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC L20L3PG0 Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L20L3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* Sunwoda L20D3PG0 Battery Information */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L20D3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 205, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* Celxert L20C3PG0 Battery Information */
- [BATTERY_CELXPERT] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L20C3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0008,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP1;
diff --git a/board/blipper/board.c b/board/blipper/board.c
deleted file mode 100644
index 2ca56a1b51..0000000000
--- a/board/blipper/board.c
+++ /dev/null
@@ -1,553 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Blipper board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cros_board_info.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define INT_RECHECK_US 5000
-
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 80,
- .debounce_down_us = 30 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void hdmi_hpd_interrupt(enum gpio_signal s)
-{
- gpio_set_level(GPIO_USB_C1_DP_HPD, !gpio_get_level(s));
-}
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
-};
-
-static const struct ec_response_keybd_config blipper_keybd = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &blipper_keybd;
-}
-
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS
-};
-
-static uint32_t board_id;
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_lis2dwl_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_lis2dwl_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DS3,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = NULL, /* identity matrix */
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DS3,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = NULL, /* identity matrix */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- gpio_enable_interrupt(GPIO_HDMI_HPD_SUB_ODL);
-
- /* Set LEDs luminance */
- pwm_set_duty(PWM_CH_LED_RED, 70);
- pwm_set_duty(PWM_CH_LED_GREEN, 70);
- pwm_set_duty(PWM_CH_LED_WHITE, 70);
-
- /* Enable Base Accel interrupt for Beetley */
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_PRESENT)
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
-
- /* Setting scan mask KSO11, KSO12, KSO13 and KSO14 */
- keyscan_config.actual_key_mask[11] = 0xfe;
- keyscan_config.actual_key_mask[12] = 0xff;
- keyscan_config.actual_key_mask[13] = 0xff;
- keyscan_config.actual_key_mask[14] = 0xff;
-
- cbi_get_board_version(&board_id);
-
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /*
- * Base accel is not stuffed, don't allow
- * line to float.
- */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- gpio_set_flags(GPIO_VOLDN_BTN_ODL,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- gpio_set_flags(GPIO_VOLUP_BTN_ODL,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- }
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Charger IC need to be put into their "low power mode" before
- * entering the Z-state.
- *
- * b:186717219: In order to solve the power consumption problem of
- * hibernate,HW solution is adopted after board id 3 to solve the
- * problem that AC cannot wake up hibernate mode.
- */
- if (board_id > 2)
- raa489000_hibernate(0, true);
- else
- raa489000_hibernate(0, false);
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- if (port != 0 && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- CPRINTUSB("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(0, false);
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTUSB("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTUSB("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_GREEN] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_WHITE] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charge",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "5V_Inductor",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/blipper/board.h b/board/blipper/board.h
deleted file mode 100644
index fdee05e800..0000000000
--- a/board/blipper/board.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Blipper board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* DAC for PSYS */
-#define CONFIG_DAC
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-
-/*SENSOR*/
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* PWM */
-#define CONFIG_PWM
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux */
-#define CONFIG_USB_MUX_IT5205
-
-/* KeyBoard */
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_KEYBOARD_KEYPAD
-#define CONFIG_KEYBOARD_STRICT_DEBOUNCE
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum pwm_channel {
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_LED_WHITE,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP1,
- BATTERY_SMP2,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_CELXPERT,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/blipper/build.mk b/board/blipper/build.mk
deleted file mode 100644
index 8167ca9966..0000000000
--- a/board/blipper/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/blipper/cbi_ssfc.c b/board/blipper/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/blipper/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/blipper/cbi_ssfc.h b/board/blipper/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/blipper/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/blipper/ec.tasklist b/board/blipper/ec.tasklist
deleted file mode 100644
index bdcbcdf074..0000000000
--- a/board/blipper/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/blipper/gpio.inc b/board/blipper/gpio.inc
deleted file mode 100644
index f072f1c832..0000000000
--- a/board/blipper/gpio.inc
+++ /dev/null
@@ -1,151 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(HDMI_HPD_SUB_ODL, PIN(E, 7), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Used by baseboard z-state enable, but not present on blipper */
-UNIMPLEMENTED(USB_C1_INT_ODL)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_A1_VBUS, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/*TP*/
-GPIO(TP, PIN(C, 3), GPIO_INPUT | GPIO_HIGH)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOA0_NC, PIN(A, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOB5_NC, PIN(B, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF1_NC, PIN(F, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH2_NC, PIN(H, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ1_NC, PIN(J, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ3_NC, PIN(J, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V SENSOR */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(2)), 0, MODULE_ADC, 0) /* ADC15: TEMP_SENSOR_3 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* DAC */
-ALTERNATE(PIN_MASK(J, BIT(2)), 0, MODULE_DAC, 0) /* DAC2: EC_AP_PSYS */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM, 0) /* RED led, GREEN led, WHITE led */
diff --git a/board/blipper/led.c b/board/blipper/led.c
deleted file mode 100644
index 7ba065fa5e..0000000000
--- a/board/blipper/led.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 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.
- *
- * Blipper specific PWM LED settings.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-#include "pwm.h"
-
-#define LED_OFF_LVL 0
-#define LED_ON_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- pwm_enable(PWM_CH_LED_WHITE, LED_ON_LVL);
- else
- pwm_enable(PWM_CH_LED_WHITE, LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/blipper/usb_pd_policy.c b/board/blipper/usb_pd_policy.c
deleted file mode 100644
index b7c0ca21df..0000000000
--- a/board/blipper/usb_pd_policy.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- if (port != 0)
- return;
-
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port != 0)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
diff --git a/board/blipper/vif_override.xml b/board/blipper/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/blipper/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/bloog/battery.c b/board/bloog/battery.c
deleted file mode 100644
index f67b21d3b5..0000000000
--- a/board/bloog/battery.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all bloog battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack Coslight BDAK126150-W0P0703HT attery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL DynaPack DAK126150-W0G0703HT Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack SDI DAK126150-W020703HT Battery Information */
- [BATTERY_DYNAPACK_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-24-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Samsung SDI P21GGH-03-N02 Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo Coslight 996QA149H Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo ATL 996QA150H Battery Information */
- [BATTERY_SIMPLO_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-17-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER 996QA168H Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC MPPHPPMD021C Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "333-42-33-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Coslight B00C368598D0001 Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-33-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX B00C4473A9D0002 Battery Information */
- [BATTERY_COS_2] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/bloog/board.c b/board/bloog/board.c
deleted file mode 100644
index dfad4ab281..0000000000
--- a/board/bloog/board.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Bloog/Blooguard board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus C0 sensing (10x voltage divider). PPVAR_USB_C0_VBUS */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- /* Vbus C1 sensing (10x voltage divider). PPVAR_USB_C1_VBUS */
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t lid_a_cover_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t lid_b_cover_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data kx022_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_a_cover_ref,
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/*
- * Returns 1 for boards that are convertible into tablet mode, and zero for
- * clamshells.
- */
-int board_is_convertible(void)
-{
- /*
- * Bloog: 33, 34, 35, 36
- * Blooguard: 49, 50, 51, 52
- * Bipship: 53, 54, 55, 56
- * Unprovisioned: 255
- */
- return sku_id == 33 || sku_id == 34 || sku_id == 35 || sku_id == 36
- || sku_id == 49 || sku_id == 50 || sku_id == 51 || sku_id == 52
- || sku_id == 53 || sku_id == 54 || sku_id == 55 || sku_id == 56
- || sku_id == 255;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Override sensor marix for Bipship. */
- if (sku_id == 53 || sku_id == 54 || sku_id == 55
- || sku_id == 56)
- motion_sensors[LID_ACCEL].rot_standard_ref =
- &lid_b_cover_ref;
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- ccprints("SKU: 0x%04x", sku_id);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_hibernate_late(void)
-{
- int i;
-
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs before going to hibernate */
- {GPIO_LED_WHITE_C0_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_LED_AMBER_C0_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_LED_WHITE_C1_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_LED_AMBER_C1_L, GPIO_INPUT | GPIO_PULL_UP},
- };
-
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {1, 4}, {1, 3}, {1, 6}, {1, 7},
- {3, 1}, {2, 0}, {1, 5}, {2, 6}, {2, 7},
- {2, 1}, {2, 4}, {2, 5}, {1, 2}, {2, 3},
- {2, 2}, {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- /*
- * Remove keyboard backlight feature for devices that don't support it.
- */
- if (sku_id == 33 || sku_id == 36 || sku_id == 51 ||
- sku_id == 52 || sku_id == 53 || sku_id == 55 ||
- sku_id == 66 || sku_id == 68)
- return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
- else
- return flags0;
-}
diff --git a/board/bloog/board.h b/board/bloog/board.h
deleted file mode 100644
index 466c38aede..0000000000
--- a/board/bloog/board.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Bloog/Blooguard board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#undef CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_COMMON
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (1 << LID_ACCEL)
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_SDI,
- BATTERY_SAMSUNG_SDI,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_ATL,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_LGC,
- BATTERY_COS,
- BATTERY_COS_2,
- BATTERY_TYPE_COUNT,
-};
-
-int board_is_convertible(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/bloog/build.mk b/board/bloog/build.mk
deleted file mode 100644
index 137e208b53..0000000000
--- a/board/bloog/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/bloog/ec.tasklist b/board/bloog/ec.tasklist
deleted file mode 100644
index 6eac78a042..0000000000
--- a/board/bloog/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/bloog/gpio.inc b/board/bloog/gpio.inc
deleted file mode 100644
index 3ee2f88eb1..0000000000
--- a/board/bloog/gpio.inc
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-/*
- * High-to-low transition on POWER_BUTTON_L is treated as a wake event from
- * hibernate. Absence of GPIO_HIB_WAKE_HIGH flag is treated as wake on
- * high-to-low edge.
- */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH) /* EN_PP3300_TRACKPAD_ODL */
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(LED_AMBER_C0_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(LED_WHITE_C0_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(LED_AMBER_C1_L, PIN(0, 3), GPIO_OUT_HIGH) /* LED_4_L */
-GPIO(LED_WHITE_C1_L, PIN(9, 7), GPIO_OUT_HIGH) /* LED_5_L */
-GPIO(PWR_LED_WHITE_L, PIN(D, 7), GPIO_OUT_HIGH) /* LED_3_L */
-
-/* Keyboard Backlight */
-GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP) /* GPO66_ARM_L_X86 */
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP) /* EC_GP_SEL_ODL */
-
-/* Misc */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT)
-
-/* Unused pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* EC_KSO_02_INV */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* 1.8V I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/bloog/led.c b/board/bloog/led.c
deleted file mode 100644
index ba1a865890..0000000000
--- a/board/bloog/led.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Bloog/Blooguard
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICKS_PER_CYCLE 10
-#define LED_ON_TICKS 5
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- gpio_set_level(port ? GPIO_LED_AMBER_C1_L : GPIO_LED_AMBER_C0_L,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(port ? GPIO_LED_WHITE_C1_L : GPIO_LED_WHITE_C0_L,
- (color == LED_WHITE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(0, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(0, LED_AMBER);
- else
- led_set_color_battery(0, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(1, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(1, LED_AMBER);
- else
- led_set_color_battery(1, LED_OFF);
- break;
- case EC_LED_ID_POWER_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(0, (port == 0) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(1, (port == 1) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LEDs for Blooglet, Blooglet is non-power LED
- * design, blinking both two side battery white LEDs to indicate
- * system suspend with non-charging state.
- */
- if (!board_is_convertible()) {
- if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
-
- power_ticks++;
-
- led_set_color_battery(0, power_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- led_set_color_battery(1, power_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- return;
- }
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(1, (battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_battery(1, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(0, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY))
- led_set_color_power((power_tick %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/bloog/vif_override.xml b/board/bloog/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/bloog/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/bloonchipper b/board/bloonchipper
deleted file mode 120000
index cf1a7f228d..0000000000
--- a/board/bloonchipper
+++ /dev/null
@@ -1 +0,0 @@
-./hatch_fp \ No newline at end of file
diff --git a/board/bobba/battery.c b/board/bobba/battery.c
deleted file mode 100644
index e53e839a68..0000000000
--- a/board/bobba/battery.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all bobba battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AC15A8J Battery Information */
- [BATTERY_LGC15] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "AC15A8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC_AP15O5L] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP15O5L",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SANYO AC15A3J Battery Information */
- [BATTERY_SANYO] = {
- .fuel_gauge = {
- .manuf_name = "SANYO",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Sony Ap13J4K Battery Information */
- [BATTERY_SONY] = {
- .fuel_gauge = {
- .manuf_name = "SONYCorp",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x8000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo AP13J7K Battery Information */
- [BATTERY_SMP_AP13J7K] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "AP13J7K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AC15A3J Battery Information */
- [BATTERY_PANASONIC_AC15A3J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AC15A3J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP19A8K Battery Information */
- [BATTERY_LGC_AP19A8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KTxxxxGxxx",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC KT0030G023 Battery Information */
- [BATTERY_LGC_G023] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G023",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Panasonic AP19A5K Battery Information */
- [BATTERY_PANASONIC_AP19A5K] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00305012",
- .device_name = "AP19A5K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC15A3J;
diff --git a/board/bobba/board.c b/board/bobba/board.c
deleted file mode 100644
index 1ab1dad660..0000000000
--- a/board/bobba/board.c
+++ /dev/null
@@ -1,538 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Bobba board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "button.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_config.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/* Check PPC ID Pin and Board ver to decide which one ppc is used. */
-static bool support_syv_ppc(void)
-{
- uint32_t board_version = 0;
-
- if (cbi_get_board_version(&board_version) != EC_SUCCESS)
- CPRINTSUSB("Get board version failed.");
-
- if ((board_version == 5) && (gpio_get_level(GPIO_PPC_ID)))
- return true;
-
- return false;
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- if (support_syv_ppc())
- syv682x_interrupt(0);
- else
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- if (support_syv_ppc())
- syv682x_interrupt(1);
- else
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/*
- * Sparky360 SKU ID 26 has AR Cam, and move base accel/gryo to AR Cam board.
- * AR Cam board has about 16° bias with motherboard through Y axis.
- * Rotation matrix with 16° through Y axis:
- * | cos(16°) 0 sin(16°)| | 0.96126 0 0.27564|
- * R = | 0 1 0 | = | 0 1 0 |
- * |-sin(16°) 0 cos(16°)| |-0.27564 0 0.96126|
- *
- * |0 -0.96126 0.27564|
- * base_ar_cam_ref = R * base_standard_ref = |1 0 0 |
- * |0 0.27564 0.96126|
- */
-const mat33_fp_t base_ar_cam_ref = {
- { 0, FLOAT_TO_FP(-0.96126), FLOAT_TO_FP(0.27564)},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(0.27564), FLOAT_TO_FP(0.96126)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [VSYNC] = {
- .name = "Camera VSYNC",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_icm_ref,
- .default_range = 4, /* g */
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-static int board_is_convertible(void)
-{
- /*
- * SKU ID of Bobba360, Sparky360, & unprovisioned: 9, 10, 11, 12,
- * 25, 26, 27, 255
- */
- return sku_id == 9 || sku_id == 10 || sku_id == 11 || sku_id == 12
- || sku_id == 25 || sku_id == 26 || sku_id == 27
- || sku_id == 255;
-}
-
-static int board_with_ar_cam(void)
-{
- /* SKU ID of Sparky360 with AR Cam: 26 */
- return sku_id == 26;
-}
-static int base_gyro_config;
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- base_gyro_config = get_cbi_ssfc_sensor();
- if (base_gyro_config == SSFC_SENSOR_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else
- ccprints("BASE GYRO is BMI160");
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /* Sparky360 with AR Cam: base accel/gyro sensor is on AR Cam board. */
- if (board_with_ar_cam()) {
- /* Enable interrupt from camera */
- gpio_enable_interrupt(GPIO_WFCAM_VSYNC);
-
- motion_sensors[BASE_ACCEL].rot_standard_ref = &base_ar_cam_ref;
- motion_sensors[BASE_GYRO].rot_standard_ref = &base_ar_cam_ref;
- } else {
- /* Camera isn't stuffed, don't allow line to float */
- gpio_set_flags(GPIO_WFCAM_VSYNC, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_gyro_config) {
- case SSFC_SENSOR_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case SSFC_SENSOR_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-static int board_has_keypad(void)
-{
- return sku_id == 41 || sku_id == 42 || sku_id == 43 || sku_id == 44;
-}
-
-static void board_update_no_keypad_config_from_sku(void)
-{
- if (!board_has_keypad()) {
-#ifndef TEST_BUILD
- /* Disable scanning KSO13 & 14 if keypad isn't present. */
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
- keyscan_config.actual_key_mask[11] = 0xfa;
- keyscan_config.actual_key_mask[12] = 0xca;
-
- /* Search key is moved back to col=1,row=0 */
- keyscan_config.actual_key_mask[0] = 0x14;
- keyscan_config.actual_key_mask[1] = 0xff;
-#endif
- }
-}
-
-static void board_usb_charge_mode_init(void)
-{
- int i;
-
- /*
- * Only overriding the USB_DISALLOW_SUSPEND_CHARGE in RO is enough because
- * USB_SYSJUMP_TAG preserves the settings to RW. And we should honor to it.
- */
- if (system_jumped_late())
- return;
-
- /* Currently only blorb and droid support this feature. */
- if ((sku_id < 32 || sku_id > 39) && (sku_id < 40 || sku_id > 47))
- return;
-
- /*
- * By default, turn the charging off when system suspends.
- * If system power on with connecting a USB device,
- * the OS must send an event to EC to clear the
- * inhibit_charging_in_suspend.
- */
- for (i = 0; i < CONFIG_USB_PORT_POWER_SMART_PORT_COUNT; i++)
- usb_charge_set_mode(i, CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE,
- USB_DISALLOW_SUSPEND_CHARGE);
-}
-/*
- * usb_charge_init() is hooked in HOOK_PRIO_DEFAULT and set inhibit_charge to
- * USB_ALLOW_SUSPEND_CHARGE. As a result, in order to override this default
- * setting to USB_DISALLOW_SUSPEND_CHARGE this function should be hooked after
- * calling usb_charge_init().
- */
-DECLARE_HOOK(HOOK_INIT, board_usb_charge_mode_init, HOOK_PRIO_DEFAULT + 1);
-
-/* Read CBI from i2c eeprom and initialize variables for board variants */
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) != EC_SUCCESS || val > UINT8_MAX)
- return;
- sku_id = val;
- CPRINTSUSB("SKU: %d", sku_id);
-
- board_update_sensor_config_from_sku();
- board_update_no_keypad_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- /*
- * Remove keyboard backlight feature for devices that don't support it.
- */
- if (sku_id == 33 || sku_id == 34 || sku_id == 41 || sku_id == 42)
- return flags0;
- else
- return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
-}
-
-static const struct ppc_config_t ppc_syv682x_port0 = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-static const struct ppc_config_t ppc_syv682x_port1 = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-static void board_setup_ppc(void)
-{
- if (!support_syv_ppc())
- return;
-
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_0],
- &ppc_syv682x_port0,
- sizeof(struct ppc_config_t));
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_1],
- &ppc_syv682x_port1,
- sizeof(struct ppc_config_t));
-
- gpio_set_flags(GPIO_USB_PD_C0_INT_ODL, GPIO_INT_BOTH);
- gpio_set_flags(GPIO_USB_PD_C1_INT_ODL, GPIO_INT_BOTH);
-}
-DECLARE_HOOK(HOOK_INIT, board_setup_ppc, HOOK_PRIO_INIT_I2C + 2);
-
-void board_hibernate_late(void) {
-
- int i;
-
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs before going to hibernate */
- {GPIO_BAT_LED_BLUE_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_ORANGE_L, GPIO_INPUT | GPIO_PULL_UP},
- };
-
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-
-int ppc_get_alert_status(int port)
-{
- if (port == 0)
- return gpio_get_level(GPIO_USB_PD_C0_INT_ODL) == 0;
-
- return gpio_get_level(GPIO_USB_PD_C1_INT_ODL) == 0;
-}
diff --git a/board/bobba/board.h b/board/bobba/board.h
deleted file mode 100644
index 129f84b1a8..0000000000
--- a/board/bobba/board.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Bobba board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-/* I2C bus configuraiton */
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-/* EC console commands */
-#define CONFIG_CMD_ACCEL_INFO
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_MFALLOW
-
-/* Reduce flash space usage */
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-
-#define CONFIG_LED_COMMON
-
-/*
- * Some bad battery which can report battery level correctly
- * but D-FET is disabled and can't be revived, so define reset
- * level to eable CL:1980406 function.
- */
-#define CONFIG_USB_PD_RESET_MIN_BATT_SOC 2
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel main source*/
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source*/
-#define CONFIG_SYNC /* Camera VSYNC */
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-/* Motion Sense Task Events */
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* Keyboard backliht */
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-
-/* keypad */
-#define CONFIG_KEYBOARD_KEYPAD
-
-/* Additional PPC second source */
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_DEDICATED_INT
-#undef CONFIG_SYV682X_HV_ILIM
-#define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_5_50
-/* SYV682 isn't connected to CC, so TCPC must provide VCONN */
-#define CONFIG_USBC_PPC_SYV682X_NO_CC
-
-#ifndef __ASSEMBLER__
-
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- VSYNC,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_LGC15,
- BATTERY_PANASONIC_AP15O5L,
- BATTERY_SANYO,
- BATTERY_SONY,
- BATTERY_SMP_AP13J7K,
- BATTERY_PANASONIC_AC15A3J,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_LGC_AP19A8K,
- BATTERY_LGC_G023,
- BATTERY_PANASONIC_AP19A5K,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/bobba/build.mk b/board/bobba/build.mk
deleted file mode 100644
index 3d04b75731..0000000000
--- a/board/bobba/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/bobba/ec.tasklist b/board/bobba/ec.tasklist
deleted file mode 100644
index d98db145e7..0000000000
--- a/board/bobba/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/bobba/gpio.inc b/board/bobba/gpio.inc
deleted file mode 100644
index edb76d05f6..0000000000
--- a/board/bobba/gpio.inc
+++ /dev/null
@@ -1,190 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(WFCAM_VSYNC, PIN(0, 3), GPIO_INT_RISING , sync_interrupt)
-
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_ORANGE_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_BLUE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(LED_3_L, PIN(D, 7), GPIO_OUT_HIGH)
-
-/* Keyboard Backlight */
-GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Misc. */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(PPC_ID, PIN(9, 7), GPIO_INPUT | GPIO_PULL_DOWN) /* PPC ID pin */
-
-/* Unused Pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* 1.8V I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/bobba/led.c b/board/bobba/led.c
deleted file mode 100644
index d833554ab4..0000000000
--- a/board/bobba/led.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Bobba
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Bobba: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/bobba/vif_override.xml b/board/bobba/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/bobba/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/boldar/battery.c b/board/boldar/battery.c
deleted file mode 100644
index 48f7fcda84..0000000000
--- a/board/boldar/battery.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC\011 L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC011;
diff --git a/board/boldar/board.c b/board/boldar/board.c
deleted file mode 100644
index 49a3a79831..0000000000
--- a/board/boldar/board.c
+++ /dev/null
@@ -1,588 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Volteer if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB4_GEN2,
-};
-
-static void board_init(void)
-{
- /* Illuminate motherboard and daughter board LEDs equally to start. */
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3000,
- .rpm_start = 3000,
- .rpm_max = 10000,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(15),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(15),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_BATTERY_SCL,
- .sda = GPIO_EC_I2C5_BATTERY_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_PWR_SCL_R,
- .sda = GPIO_EC_I2C7_EEPROM_PWR_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1_BLUE] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED2_GREEN] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED3_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /*
- * If using the side select to run both LEDs at the same time,
- * the frequency should be 1/2 of the color channel PWM
- * frequency to drive each LED equally.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* Volteer specific USB daughter-board configuration */
-
-/* USBC TCPC configuration for USB3 daughter board */
-static const struct tcpc_config_t tcpc_config_p1_usb3 = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 | TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
-};
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set to the
- * virtual_usb_mux_driver so the AP gets notified of mux changes and updates
- * the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-static const struct usb_mux mux_config_p1_usb3_active = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
-};
-
-static const struct usb_mux mux_config_p1_usb3_passive = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- /* No reset available for TCPC on port 0 */
- /* Daughterboard specific reset for port 1 */
- if (usb_db == DB_USB3_ACTIVE) {
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
- }
-}
-
-/*
- * Set up support for the USB3 daughterboard:
- * Parade PS8815 TCPC (integrated retimer)
- * Diodes PI3USB9201 BC 1.2 chip (same as USB4 board)
- * Silergy SYV682A PPC (same as USB4 board)
- * Virtual mux with stacked retimer
- */
-static void config_db_usb3_active(void)
-{
- tcpc_config[USBC_PORT_C1] = tcpc_config_p1_usb3;
- usb_muxes[USBC_PORT_C1] = mux_config_p1_usb3_active;
-}
-
-/*
- * Set up support for the passive USB3 daughterboard:
- * TUSB422 TCPC (already the default)
- * PI3USB9201 BC 1.2 chip (already the default)
- * Silergy SYV682A PPC (already the default)
- * Virtual mux without stacked retimer
- */
-
-static void config_db_usb3_passive(void)
-{
- usb_muxes[USBC_PORT_C1] = mux_config_p1_usb3_passive;
-}
-
-static void config_port_discrete_tcpc(int port)
-{
- /*
- * Support 2 Pin-to-Pin compatible parts: TUSB422 and RT1715, for
- * simplicity allow either and decide at runtime which we are using.
- * Default to TUSB422, and switch to RT1715 if it is on the I2C bus and
- * the VID matches.
- */
-
- int regval;
-
- if (i2c_read16(port ? I2C_PORT_USB_C1 : I2C_PORT_USB_C0,
- RT1715_I2C_ADDR_FLAGS, TCPC_REG_VENDOR_ID,
- &regval) == EC_SUCCESS) {
- if (regval == RT1715_VENDOR_ID) {
- CPRINTS("C%d: RT1715 detected", port);
- tcpc_config[port].i2c_info.addr_flags =
- RT1715_I2C_ADDR_FLAGS;
- tcpc_config[port].drv = &rt1715_tcpm_drv;
- return;
- }
- }
- CPRINTS("C%d: Default to TUSB422", port);
-}
-
-static const char *db_type_prefix = "USB DB type: ";
-__override void board_cbi_init(void)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- config_port_discrete_tcpc(0);
- switch (usb_db) {
- case DB_USB_ABSENT:
- CPRINTS("%sNone", db_type_prefix);
- break;
- case DB_USB4_GEN2:
- config_port_discrete_tcpc(1);
- CPRINTS("%sUSB4 Gen1/2", db_type_prefix);
- break;
- case DB_USB4_GEN3:
- config_port_discrete_tcpc(1);
- CPRINTS("%sUSB4 Gen3", db_type_prefix);
- break;
- case DB_USB3_ACTIVE:
- config_db_usb3_active();
- CPRINTS("%sUSB3 Active", db_type_prefix);
- break;
- case DB_USB3_PASSIVE:
- config_db_usb3_passive();
- config_port_discrete_tcpc(1);
- CPRINTS("%sUSB3 Passive", db_type_prefix);
- break;
- default:
- CPRINTS("%sID %d not supported", db_type_prefix, usb_db);
- }
-
- if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad()) ||
- get_board_id() <= 2)
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .next_mux = &usbc0_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- .usb_ls_en_gpio = GPIO_USB_C0_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL,
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/boldar/board.h b/board/boldar/board.h
deleted file mode 100644
index 96289e71b7..0000000000
--- a/board/boldar/board.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#define CONFIG_HOSTCMD_ESPI_RESET_SLP_SX_VW_ON_ESPI_RST
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_PWM
-/* Although there are 2 LEDs, they are both controlled by the same lines. */
-#define CONFIG_LED_PWM_COUNT 1
-
-/* Keyboard features */
-
-/* Sensors */
-/* LIS2DH12 Lid accel */
-#define CONFIG_ACCEL_LIS2DH
-
-/* BMI260 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* TCS3400 ALS/RGB */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-/*
- * USB ID
- * This is allocated specifically for Volteer
- * http://google3/hardware/standards/usb/
- */
-#define CONFIG_USB_PID 0x503E
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* TODO: b/144165680 - measure and check these values on Volteer */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x37
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_LGC011,
- BATTERY_LGC_AP18C8K,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1_BLUE = 0,
- PWM_CH_LED2_GREEN,
- PWM_CH_LED3_RED,
- PWM_CH_LED4_SIDESEL,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/boldar/build.mk b/board/boldar/build.mk
deleted file mode 100644
index 838d6a16ce..0000000000
--- a/board/boldar/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/boldar/ec.tasklist b/board/boldar/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/boldar/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/boldar/gpio.inc b/board/boldar/gpio.inc
deleted file mode 100644
index f41d198df5..0000000000
--- a/board/boldar/gpio.inc
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi260_interrupt)
-GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-/*
- * Lid g-sensor interrupt unused on Volteer, configure as regular input for
- * power saving.
- */
-GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-GPIO(USB_C0_RT_RST_ODL, PIN(4, 1), GPIO_ODR_LOW) /* RST to Burnside bridge */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C0_RT_INT_ODL, PIN(F, 2), GPIO_INPUT)
-GPIO(USB_C1_RT_INT_ODL, PIN(F, 3), GPIO_INPUT)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- * TODO(b/138954381): Change these names when they change on the schematic.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-GPIO(CATERR_L, PIN(3, 4), GPIO_INPUT) /* Catastrophic error */
-GPIO(EC_ESPI_ALERT_L, PIN(5, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* Unused signals */
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SDA_R, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(6, BIT(0)), 0, MODULE_PWM, 0) /* LED_SIDESEL_4_L */
-ALTERNATE(PIN_MASK(C, BIT(2) | BIT(3) | BIT(4)), 0, MODULE_PWM, 0) /* LED_{3,2,1}_L */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/boldar/led.c b/board/boldar/led.c
deleted file mode 100644
index 6ee71bbe19..0000000000
--- a/board/boldar/led.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Volteer
- */
-
-#include "charge_manager.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_pwm.h"
-#include "pwm.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-struct pwm_led_color_map led_color_map[] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 100, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- /* The green LED seems to be brighter than the others, so turn down
- * green from its natural level for these secondary colors.
- */
- [EC_LED_COLOR_YELLOW] = { 100, 70, 0 },
- [EC_LED_COLOR_WHITE] = { 100, 70, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 20, 0 },
-};
-
-struct pwm_led pwm_leds[] = {
- /* 2 RGB diffusers controlled by 1 set of 3 channels. */
- [PWM_LED0] = {
- .ch0 = PWM_CH_LED3_RED,
- .ch1 = PWM_CH_LED2_GREEN,
- .ch2 = PWM_CH_LED1_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 255;
- brightness_range[EC_LED_COLOR_GREEN] = 255;
- brightness_range[EC_LED_COLOR_BLUE] = 255;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
-
-/* Illuminates the LED on the side of the active charging port. If not charging,
- * illuminates both LEDs.
- */
-static void led_set_charge_port_tick(void)
-{
- int port;
- int side_select_duty;
-
- port = charge_manager_get_active_charge_port();
- switch (port) {
- case 0:
- side_select_duty = 100;
- break;
- case 1:
- side_select_duty = 0;
- break;
- default:
- side_select_duty = 50;
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pwm_set_duty(PWM_CH_LED4_SIDESEL, side_select_duty);
-}
-DECLARE_HOOK(HOOK_TICK, led_set_charge_port_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/boldar/sensors.c b/board/boldar/sensors.c
deleted file mode 100644
index 25fab11549..0000000000
--- a/board/boldar/sensors.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* Lid accel private data */
-static struct stprivate_data g_lis2dh_data;
-
-/* BMI260 private data */
-static struct bmi_drv_data_t g_bmi260_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/146166425 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DH,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Note - BMA253 interrupt unused by EC */
-
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L);
- /* Enable interrupt for the BMI260 accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/boldar/vif_override.xml b/board/boldar/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/boldar/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/boten/battery.c b/board/boten/battery.c
deleted file mode 100644
index 0f4c8ffeb9..0000000000
--- a/board/boten/battery.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all boten battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP L18D3PG1 Battery Information */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC L17L3PB0 Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* Sunwoda L17M3PB0 Battery Information */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
diff --git a/board/boten/board.c b/board/boten/board.c
deleted file mode 100644
index b6301834bf..0000000000
--- a/board/boten/board.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/* 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.
- */
-
-/* Boten board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void hdmi_hpd_interrupt(enum gpio_signal s)
-{
- gpio_set_level(GPIO_USB_C1_DP_HPD, !gpio_get_level(s));
-}
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/**
- * Deferred function to handle pen detect change
- */
-static void pendetect_deferred(void)
-{
- static int debounced_pen_detect;
- int pen_detect = !gpio_get_level(GPIO_PEN_DET_ODL);
-
- if (pen_detect == debounced_pen_detect)
- return;
-
- debounced_pen_detect = pen_detect;
-
- gpio_set_level(GPIO_EN_PP5000_PEN, debounced_pen_detect);
- gpio_set_level(GPIO_PEN_DET_PCH, !debounced_pen_detect);
-}
-DECLARE_DEFERRED(pendetect_deferred);
-
-void pen_detect_interrupt(enum gpio_signal s)
-{
- /* Trigger deferred notification of pen detect change */
- hook_call_deferred(&pendetect_deferred_data,
- 500 * MSEC);
-}
-
-void board_hibernate(void)
-{
- /*
- * Charger IC need to be put into their "low power mode" before
- * entering the Z-state.
- */
- raa489000_hibernate(0, false);
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
-};
-
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
-};
-
-void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- gpio_enable_interrupt(GPIO_HDMI_HPD_SUB_ODL);
- /* Enable gpio interrupt for pen detect */
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Make sure pen detection is triggered or not at sysjump */
- if (!gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_EN_PP5000_PEN, 1);
-
- if (gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_PEN_DET_PCH, 1);
-
- /* Set LEDs luminance */
- pwm_set_duty(PWM_CH_LED_RED, 70);
- pwm_set_duty(PWM_CH_LED_GREEN, 70);
- pwm_set_duty(PWM_CH_LED_WHITE, 70);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- if (port != 0 && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- CPRINTUSB("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(0, false);
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTUSB("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTUSB("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- },
-
- [PWM_CH_LED_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_GREEN] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_WHITE] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- }
-
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* Sensor Data */
-static struct stprivate_data g_lis2dwl_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/boten/board.h b/board/boten/board.h
deleted file mode 100644
index 0e2a72015c..0000000000
--- a/board/boten/board.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* 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.
- */
-
-/* Boten board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* DAC for PSYS */
-#define CONFIG_DAC
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux */
-#define CONFIG_USB_MUX_IT5205
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_LED_WHITE,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-void pen_detect_interrupt(enum gpio_signal s);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/boten/build.mk b/board/boten/build.mk
deleted file mode 100644
index 806168ea0d..0000000000
--- a/board/boten/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/boten/cbi_ssfc.c b/board/boten/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/boten/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/boten/cbi_ssfc.h b/board/boten/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/boten/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/boten/ec.tasklist b/board/boten/ec.tasklist
deleted file mode 100644
index be1f92aff2..0000000000
--- a/board/boten/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/boten/gpio.inc b/board/boten/gpio.inc
deleted file mode 100644
index 4e8290c277..0000000000
--- a/board/boten/gpio.inc
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(HDMI_HPD_SUB_ODL, PIN(E, 7), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Used by baseboard z-state enable, but not present on boten */
-UNIMPLEMENTED(USB_C1_INT_ODL)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_A1_VBUS, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO_INT(PEN_DET_ODL, PIN(J, 1), GPIO_INT_BOTH | GPIO_PULL_UP, pen_detect_interrupt)
-GPIO(EN_PP5000_PEN, PIN(B, 5), GPIO_OUT_LOW)
-GPIO(PEN_DET_PCH, PIN(F, 1), GPIO_OUT_LOW)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL2_NC, PIN(L, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* DAC */
-ALTERNATE(PIN_MASK(J, BIT(2)), 0, MODULE_DAC, 0) /* DAC2: EC_AP_PSYS */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0) | BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM, 0) /* KB_BL_PWM, LED_[R,G,B]_ODL */
diff --git a/board/boten/led.c b/board/boten/led.c
deleted file mode 100644
index 93675966b3..0000000000
--- a/board/boten/led.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* 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.
- *
- * Boten specific PWM LED settings.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-#include "pwm.h"
-
-#define LED_OFF_LVL 0
-#define LED_ON_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- pwm_enable(PWM_CH_LED_WHITE, LED_ON_LVL);
- else
- pwm_enable(PWM_CH_LED_WHITE, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/boten/usb_pd_policy.c b/board/boten/usb_pd_policy.c
deleted file mode 100644
index 65ee678263..0000000000
--- a/board/boten/usb_pd_policy.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- if (port != 0)
- return;
-
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port != 0)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
diff --git a/board/boten/vif_override.xml b/board/boten/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/boten/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/brask/board.c b/board/brask/board.c
deleted file mode 100644
index a9c6b57ec5..0000000000
--- a/board/brask/board.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "power_button.h"
-#include "power.h"
-#include "switch.h"
-#include "throttle_ap.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-int board_set_active_charge_port(int port)
-{
- /* TODO(b/197514362): set either barreljack or typec port */
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
-}
diff --git a/board/brask/board.h b/board/brask/board.h
deleted file mode 100644
index 0d92b2c07f..0000000000
--- a/board/brask/board.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brask board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_MP2964
-
-/* Barrel Jack */
-#define DEDICATED_CHARGE_PORT 3
-
-/* HDMI CEC */
-#define CONFIG_CEC
-#define CEC_GPIO_OUT GPIO_HDMI_CEC_OUT
-#define CEC_GPIO_IN GPIO_HDMI_CEC_IN
-#define CEC_GPIO_PULL_UP GPIO_HDMI_CEC_PULL_UP
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 4
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_NCT38XX
-#define CONFIG_IO_EXPANDER_PORT_COUNT 2
-
-#define CONFIG_USB_PD_PPC
-#define CONFIG_USB_PD_TCPM_RT1715
-#define CONFIG_USBC_RETIMER_INTEL_BB
-/* TODO(b/197505149): need to fix the build error and clarify
- * how to set the usb_ls_en_gpio and retimer_rst_gpio
- * in the same array.
- */
-/* #define CONFIG_USBC_RETIMER_KB800X */
-#define CONFIG_USBC_PPC_SYV682X
-
-/* TODO: b/177608416 - measure and check these values on brya */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/* The design should support up to 100W. */
-/* TODO(b/197702356): Set the max PD to 60W now and change it
- * to 100W after we verify it.
- */
-#define PD_OPERATING_POWER_MW CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define PD_MAX_POWER_MW 100000
-#define PD_MAX_CURRENT_MA 5000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_RECOVERY_L GPIO_EC_RECOVERY_BTN_OD
-#define GPIO_RECOVERY_L_2 GPIO_GSC_EC_RECOVERY_BTN_OD
-
-/* I2C Bus Configuration */
-
-#define I2C_PORT_DP_REDRIVER NPCX_I2C_PORT0_0
-
-#define I2C_PORT_USB_C0_C2_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C0_C2_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_C2_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_C2_MUX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1
-
-#define I2C_PORT_QI NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define I2C_ADDR_MP2964_FLAGS 0x20
-
-/*
- * see b/174768555#comment22
- */
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x56
-#define USBC_PORT_C2_BB_RETIMER_I2C_ADDR 0x57
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-/* Retimer */
-#define CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* ADC */
-#define CONFIG_ADC
-
-/*
- * TODO(b/197478860): Enable the fan control. We need
- * to check the sensor value and adjust the fan speed.
- */
-/* #define CONFIG_FANS FAN_CH_COUNT */
-
-/* Include math_util for bitmask_uint64 used in pd_timers */
-#define CONFIG_MATH_UTIL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_CPU,
- ADC_TEMP_SENSOR_2_CPU_VR,
- ADC_TEMP_SENSOR_3_WIFI,
- ADC_TEMP_SENSOR_4_DIMM,
- ADC_VBUS,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_CPU,
- TEMP_SENSOR_2_CPU_VR,
- TEMP_SENSOR_3_WIFI,
- TEMP_SENSOR_4_DIMM,
- TEMP_SENSOR_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT38XX = 0,
- IOEX_C2_NCT38XX,
- IOEX_PORT_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED_GREEN, /* PWM0 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_LED_RED, /* PWM2 */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/brask/build.mk b/board/brask/build.mk
deleted file mode 100644
index 442a708d78..0000000000
--- a/board/brask/build.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Brask board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brask
-
-board-y=
-board-y+=board.o
-board-y+=i2c.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=usbc_config.o
diff --git a/board/brask/ec.tasklist b/board/brask/ec.tasklist
deleted file mode 100644
index 46863551f9..0000000000
--- a/board/brask/ec.tasklist
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P2, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C2, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_shared_alert_task, (BIT(2) | BIT(0)), TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CEC, cec_task, NULL, TASK_STACK_SIZE)
diff --git a/board/brask/gpio.inc b/board/brask/gpio.inc
deleted file mode 100644
index 01b82a2b74..0000000000
--- a/board/brask/gpio.inc
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_C2_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_RT_INT_ODL, PIN(B, 1), GPIO_INT_FALLING, retimer_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(5, 0), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C2_BC12_INT_ODL, PIN(8, 3), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C2_PPC_INT_ODL, PIN(7, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C2_RT_INT_ODL, PIN(4, 1), GPIO_INT_FALLING, retimer_interrupt)
-
-/* CCD */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-
-/* Security */
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-
-/* Fan */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-
-/* ADC, need to check the usage */
-GPIO(ANALOG_PPVAR_PWR_IN_IMON_EC, PIN(4, 2), GPIO_INPUT)
-
-/* Display */
-GPIO(DP_CONN_OC_ODL, PIN(2, 5), GPIO_INPUT)
-GPIO(HDMI_CONN_OC_ODL, PIN(2, 4), GPIO_INPUT)
-
-/* BarrelJack */
-GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 7), GPIO_INPUT)
-GPIO(BJ_ADP_PRESENT_ODL, PIN(8, 2), GPIO_INPUT)
-
-/* Chipset PCH */
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(6, 0), GPIO_INPUT)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* Button */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_RECOVERY_BTN_OD, PIN(2, 3), GPIO_INPUT)
-GPIO(GSC_EC_RECOVERY_BTN_OD, PIN(2, 2), GPIO_INPUT)
-
-/* NFC */
-/* TODO(b/194068530): Enable NFC */
-GPIO(NFC_COIL_ACT_L, PIN(D, 4), GPIO_INPUT)
-GPIO(NFC_LOW_POWER_MODE, PIN(9, 5), GPIO_OUT_HIGH)
-GPIO(NFC_CARD_DET_L, PIN(A, 3), GPIO_INPUT)
-
-/* Wireless Charger */
-/* TODO(b/191418683): Implement Qi Driver */
-GPIO(EC_QI_PWR, PIN(D, 2), GPIO_OUT_HIGH)
-GPIO(EC_I2C_QI_RESET_L, PIN(9, 3), GPIO_OUT_HIGH)
-GPIO(EC_I2C_QI_INT_ODL, PIN(9, 6), GPIO_INPUT)
-
-/* HDMI CEC */
-/* TODO(b/197474873): Enable HDMI CEC */
-GPIO(HDMI_CEC_IN, PIN(7, 3), GPIO_INPUT)
-GPIO(HDMI_CEC_OUT, PIN(D, 3), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
-GPIO(HDMI_CEC_PULL_UP, PIN(C, 2), GPIO_OUT_HIGH)
-
-/* I2C SCL/SDA */
-GPIO(EC_I2C_QI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_QI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_DP_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_DP_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_PPC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_PPC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-
-/* USBA */
-GPIO(EN_PP5000_USBA, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(USB_A0_OC_ODL, PIN(3, 1), GPIO_INPUT)
-GPIO(USB_A1_OC_ODL, PIN(3, 0), GPIO_INPUT)
-GPIO(USB_A2_OC_ODL, PIN(2, 7), GPIO_INPUT)
-GPIO(USB_A3_OC_ODL, PIN(2, 6), GPIO_INPUT)
-GPIO(USB_A0_STATUS_L, PIN(2, 1), GPIO_INPUT)
-GPIO(USB_A1_STATUS_L, PIN(2, 0), GPIO_INPUT)
-GPIO(USB_A2_STATUS_L, PIN(1, 7), GPIO_INPUT)
-GPIO(USB_A3_STATUS_L, PIN(1, 6), GPIO_INPUT)
-GPIO(USB_A_LOW_PWR0_OD, PIN(1, 5), GPIO_INPUT)
-GPIO(USB_A_LOW_PWR1_OD, PIN(1, 4), GPIO_INPUT)
-GPIO(USB_A_LOW_PWR2_OD, PIN(1, 1), GPIO_INPUT)
-GPIO(USB_A_LOW_PWR3_OD, PIN(1, 0), GPIO_INPUT)
-
-/* LED */
-/* TODO(b/197471359): LED implementation */
-GPIO(LED_GREEN_L, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(LED_RED_L, PIN(C, 4), GPIO_OUT_LOW)
-
-/* USBC */
-GPIO(USB_C0_C2_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RT_INT_ODL, PIN(A, 0), GPIO_INPUT)
-GPIO(USB_C1_RT_RST_R_ODL, PIN(0, 2), GPIO_ODR_LOW)
-
-/* GPIO02_P2 to PU */
-/* GPIO03_P2 to PU */
-IOEX(USB_C0_OC_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C0_FRS_EN, EXPIN(IOEX_C0_NCT38XX, 0, 6), GPIO_LOW)
-IOEX(USB_C0_RT_RST_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 7), GPIO_ODR_LOW)
-
-IOEX(USB_C2_RT_RST_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 2), GPIO_ODR_LOW)
-IOEX(USB_C1_OC_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 3), GPIO_ODR_HIGH)
-IOEX(USB_C2_OC_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C2_FRS_EN, EXPIN(IOEX_C2_NCT38XX, 0, 6), GPIO_LOW)
-/* GPIO07_P2 to PU */
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-ALTERNATE(PIN_MASK(C, 0x18), 0, MODULE_PWM, 0) /* GPIOC4/PWM2, GPIOC3/PWM0 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* GPIO45/ADC0, GPIO44/ADC1, GPIO43/ADC2 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(6, 6)) /* GPIO66 */
-UNUSED(PIN(8, 1)) /* GPIO81/PECI_DATA */
-UNUSED(PIN(5, 6)) /* GPIO56/CLKRUN# */
-UNUSED(PIN(9, 7)) /* GPIO97 */
-UNUSED(PIN(8, 6)) /* GPIO86/TXD/CR_SOUT2 */
-UNUSED(PIN(1, 3)) /* KSO06/GPO13/GP_SEL# */
-UNUSED(PIN(1, 2)) /* KSO07/GPO12/JEN# */
-UNUSED(PIN(0, 6)) /* KSO11/GPIO06/P80_CLK */
-UNUSED(PIN(0, 5)) /* KSO12/GPIO05 */
-UNUSED(PIN(0, 4)) /* KSO13/GPIO04 */
-UNUSED(PIN(8, 0)) /* GPIO80/PWM3 */
diff --git a/board/brask/i2c.c b/board/brask/i2c.c
deleted file mode 100644
index 190f4f019e..0000000000
--- a/board/brask/i2c.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C0 */
- .name = "dp_redriver",
- .port = I2C_PORT_DP_REDRIVER,
- .kbps = 400,
- .scl = GPIO_EC_I2C_DP_SCL,
- .sda = GPIO_EC_I2C_DP_SDA,
- },
- {
- /* I2C1 */
- .name = "tcpc0,2",
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0,2",
- .port = I2C_PORT_USB_C0_C2_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_PPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_PPC_SDA,
- },
- {
- /* I2C3 */
- .name = "retimer0,2",
- .port = I2C_PORT_USB_C0_C2_MUX,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_RT_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_RT_SDA,
- },
- {
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "wireless_charger",
- .port = I2C_PORT_QI,
- .kbps = 400,
- .scl = GPIO_EC_I2C_QI_SCL,
- .sda = GPIO_EC_I2C_QI_SDA,
- },
- {
- /* I2C6 */
- .name = "ppc1",
- .port = I2C_PORT_USB_C1_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_C1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/brask/led.c b/board/brask/led.c
deleted file mode 100644
index 6aaa890ec8..0000000000
--- a/board/brask/led.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power LED control for Brask.
- * Solid green - active power
- * Green flashing - suspended
- * Red flashing - alert
- * Solid red - critical
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
-
-/*
- * Due to the CSME-Lite processing, upon startup the CPU transitions through
- * S0->S3->S5->S3->S0, causing the LED to turn on/off/on, so
- * delay turning off the LED during suspend/shutdown.
- */
-#define LED_CPU_DELAY_MS (2000 * MSEC)
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int green = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_GREEN:
- green = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (green)
- pwm_set_duty(PWM_CH_LED_GREEN, duty);
- else
- pwm_set_duty(PWM_CH_LED_GREEN, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/*
- * When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec.
- */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIG_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIG_TICK(LED_PULSE_TICK_US, LED_GREEN);
- led_tick();
-}
-DECLARE_DEFERRED(led_suspend);
-
-static void led_shutdown(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_DEFERRED(led_shutdown);
-
-static void led_shutdown_hook(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown_hook, HOOK_PRIO_DEFAULT);
-
-static void led_suspend_hook(void)
-{
- hook_call_deferred(&led_shutdown_data, -1);
- hook_call_deferred(&led_suspend_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend_hook, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /*
- * Assume there is no race condition with led_tick, which also
- * runs in hook_task.
- */
- hook_call_deferred(&led_tick_data, -1);
- /*
- * Avoid invoking the suspend/shutdown delayed hooks.
- */
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_GREEN, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend_hook();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown_hook();
- }
-}
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "green")) {
- set_color(id, LED_GREEN, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|green|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_GREEN])
- return set_color(id, LED_GREEN, brightness[EC_LED_COLOR_GREEN]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/brask/pwm.c b/board/brask/pwm.c
deleted file mode 100644
index 5ad905f861..0000000000
--- a/board/brask/pwm.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED_GREEN] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2000
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN | PWM_CONFIG_DSLEEP,
- .freq = 1000
- },
- [PWM_CH_LED_RED] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2000
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_pwm_init(void)
-{
- /*
- * TODO(b/197478860): Turn on the fan at 100% by default
- * We need to find tune the fan speed according to the
- * thermal sensor value.
- */
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, 100);
-
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_GREEN, 1);
-}
-DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT);
diff --git a/board/brask/sensors.c b/board/brask/sensors.c
deleted file mode 100644
index 72b8297aa1..0000000000
--- a/board/brask/sensors.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "adc_chip.h"
-#include "hooks.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_CPU] = {
- .name = "TEMP_CPU",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_CPU_VR] = {
- .name = "TEMP_CPU_VR",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_WIFI] = {
- .name = "TEMP_WIFI",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_4_DIMM] = {
- .name = "TEMP_DIMM",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VBUS] = { /* 5/39 voltage divider */
- .name = "VBUS",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT * 39,
- .factor_div = (ADC_READ_MAX + 1) * 5,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_CPU
- },
- [TEMP_SENSOR_2_CPU_VR] = {
- .name = "CPU VR",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_CPU_VR
- },
- [TEMP_SENSOR_3_WIFI] = {
- .name = "WIFI",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3_WIFI
- },
- [TEMP_SENSOR_4_DIMM] = {
- .name = "DIMM",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4_DIMM
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/197478860): add the thermal sensor setting
- */
-/* this should really be "const" */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CPU] = thermal_cpu,
- [TEMP_SENSOR_2_CPU_VR] = thermal_cpu,
- [TEMP_SENSOR_3_WIFI] = thermal_cpu,
- [TEMP_SENSOR_4_DIMM] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/brask/usbc_config.c b/board/brask/usbc_config.c
deleted file mode 100644
index bd61f7ec1c..0000000000
--- a/board/brask/usbc_config.c
+++ /dev/null
@@ -1,389 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/retimer/kb800x.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_NO_DEBUG_ACC_CONTROL,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C2] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR2_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C2_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C0_C2_PPC,
- .i2c_addr_flags = SYV682X_ADDR2_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-static const struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-static const struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-static const struct usb_mux usbc2_tcss_usb_mux = {
- .usb_port = USBC_PORT_C2,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_C2_MUX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc0_tcss_usb_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- /* TODO(b/197505149): need to fix the build error and
- * clarify how to set the usb_ls_en_gpio and
- * retimer_rst_gpio in the same array.
- */
- /*.driver = &kb800x_usb_mux_driver, */
- .i2c_port = I2C_PORT_USB_C1_MUX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc1_tcss_usb_mux,
- },
- [USBC_PORT_C2] = {
- .usb_port = USBC_PORT_C2,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_C2_MUX,
- .i2c_addr_flags = USBC_PORT_C2_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc2_tcss_usb_mux,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C2_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C0_C2_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_1_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/*
- * USB C0 and C2 uses burnside bridge chips and have their reset
- * controlled by their respective TCPC chips acting as GPIO expanders.
- *
- * ioex_init() is normally called before we take the TCPCs out of
- * reset, so we need to start in disabled mode, then explicitly
- * call ioex_init().
- */
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_C2_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR2_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- enum ioex_signal rst_signal;
-
- if (me->usb_port == USBC_PORT_C0) {
- rst_signal = IOEX_USB_C0_RT_RST_ODL;
- } else if (me->usb_port == USBC_PORT_C2) {
- rst_signal = IOEX_USB_C2_RT_RST_ODL;
- } else {
- return EC_ERROR_INVAL;
- }
-
- /*
- * We do not have a load switch for the burnside bridge chips,
- * so we only need to sequence reset.
- */
-
- if (enable) {
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- ioex_set_level(rst_signal, 1);
- /*
- * Allow 1ms time for the retimer to power up lc_domain
- * which powers I2C controller within retimer
- */
- msleep(1);
- } else {
- ioex_set_level(rst_signal, 0);
- msleep(1);
- }
- return EC_SUCCESS;
-}
-
-__override int bb_retimer_reset(const struct usb_mux *me)
-{
- /*
- * TODO(b/193402306, b/195375738): Remove this once transition to
- * QS Silicon is complete
- */
- bb_retimer_power_enable(me, false);
- msleep(5);
- bb_retimer_power_enable(me, true);
- msleep(25);
-
- return EC_SUCCESS;
-}
-
-void board_reset_pd_mcu(void)
-{
- enum gpio_signal tcpc_rst;
-
- tcpc_rst = GPIO_USB_C0_C2_TCPC_RST_ODL;
-
- /*
- * TODO(b/179648104): figure out correct timing
- */
-
- gpio_set_level(tcpc_rst, 0);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 0);
-
- /*
- * delay for power-on to reset-off and min. assertion time
- */
-
- msleep(20);
-
- gpio_set_level(tcpc_rst, 1);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 1);
-
- /* wait for chips to come up */
-
- msleep(50);
-}
-
-static void enable_ioex(int ioex)
-{
- ioex_config[ioex].flags &= ~IOEX_FLAGS_DISABLED;
- ioex_init(ioex);
-}
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
-
- /*
- * These IO expander pins are implemented using the
- * C0/C2 TCPC, so they must be set up after the TCPC has
- * been taken out of reset.
- */
- enable_ioex(IOEX_C0_NCT38XX);
- enable_ioex(IOEX_C2_NCT38XX);
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_C2_TCPC_INT_ODL);
-
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_C2_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0 | PD_STATUS_TCPC_ALERT_2;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C1)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C2)
- return gpio_get_level(GPIO_USB_C2_PPC_INT_ODL) == 0;
- return 0;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_C2_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C2_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P2, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- break;
- case GPIO_USB_C2_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C2);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- return true;
-}
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- if (!board_is_tbt_usb4_port(port))
- return TBT_SS_RES_0;
-
- return TBT_SS_TBT_GEN3;
-}
diff --git a/board/brask/usbc_config.h b/board/brask/usbc_config.h
deleted file mode 100644
index 7319bcb5e2..0000000000
--- a/board/brask/usbc_config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 3
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_C2,
- USBC_PORT_COUNT
-};
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/brask/vif_override.xml b/board/brask/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/brask/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/brya/battery.c b/board/brya/battery.c
deleted file mode 100644
index a18ab029b6..0000000000
--- a/board/brya/battery.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "compile_time_macros.h"
-
-/*
- * Battery info for all Brya battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* POW-TECH GQA05 Battery Information */
- [BATTERY_POWER_TECH] = {
- /* BQ40Z50 Fuel Gauge */
- .fuel_gauge = {
- .manuf_name = "POW-TECH",
- .device_name = "BATGQA05L22",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x00,
- .reg_mask = 0x2000, /* XDSG */
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13050, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 280, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* LGC L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_POWER_TECH;
diff --git a/board/brya/board.c b/board/brya/board.c
deleted file mode 100644
index 1935988607..0000000000
--- a/board/brya/board.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dso.h"
-#include "driver/als_tcs3400.h"
-#include "fw_config.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power_button.h"
-#include "power.h"
-#include "registers.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-__override void board_cbi_init(void)
-{
- config_usb_db_type();
-}
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
-
- if (get_board_id() == 1)
- gpio_set_level(GPIO_ID_1_EC_KB_BL_EN, 1);
- else
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
-
- if (get_board_id() == 1)
- gpio_set_level(GPIO_ID_1_EC_KB_BL_EN, 0);
- else
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_CHARGE_RAMP_SW
-
-/*
- * TODO(b/181508008): tune this threshold
- */
-
-#define BC12_MIN_VOLTAGE 4400
-
-/**
- * Return true if VBUS is too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- if (voltage == 0) {
- CPRINTS("%s: must be disconnected", __func__);
- return 1;
- }
-
- if (voltage < BC12_MIN_VOLTAGE) {
- CPRINTS("%s: port %d: vbus %d lower than %d", __func__,
- port, voltage, BC12_MIN_VOLTAGE);
- return 1;
- }
-
- return 0;
-}
-
-#endif /* CONFIG_CHARGE_RAMP_SW */
-
-enum battery_present battery_hw_present(void)
-{
- enum gpio_signal batt_pres;
-
- if (get_board_id() == 1)
- batt_pres = GPIO_ID_1_EC_BATT_PRES_ODL;
- else
- batt_pres = GPIO_EC_BATT_PRES_ODL;
-
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(batt_pres) ? BP_NO : BP_YES;
-}
-
-/*
- * Explicitly apply the board ID 1 *gpio.inc settings to pins that
- * were reassigned on current boards.
- */
-
-static void set_board_id_1_gpios(void)
-{
- if (get_board_id() != 1)
- return;
-
- gpio_set_flags(GPIO_ID_1_EC_KB_BL_EN, GPIO_OUT_LOW);
-}
-DECLARE_HOOK(HOOK_INIT, set_board_id_1_gpios, HOOK_PRIO_FIRST);
-
-/*
- * Reclaim GPIO pins on board ID 1 that are used as ADC inputs on
- * current boards. ALT function group MODULE_ADC pins are set in
- * HOOK_PRIO_INIT_ADC and can be reclaimed right after the hook runs.
- */
-
-static void board_id_1_reclaim_adc(void)
-{
- if (get_board_id() != 1)
- return;
-
- /*
- * GPIO_ID_1_USB_C0_C2_TCPC_RST_ODL is on GPIO34
- *
- * The TCPC has already been reset by board_tcpc_init() executed
- * from HOOK_PRIO_INIT_CHIPSET. Later, the pin gets set to ADC6
- * in HOOK_PRIO_INIT_ADC, so we simply need to set the pin back
- * to GPIO34.
- */
- gpio_set_flags(GPIO_ID_1_USB_C0_C2_TCPC_RST_ODL, GPIO_ODR_HIGH);
- gpio_set_alternate_function(GPIO_PORT_3, BIT(4), GPIO_ALT_FUNC_NONE);
-
- /*
- * The pin gets set to ADC7 in HOOK_PRIO_INIT_ADC, so we simply
- * need to set it back to GPIOE1.
- */
- gpio_set_flags(GPIO_ID_1_EC_BATT_PRES_ODL, GPIO_INPUT);
- gpio_set_alternate_function(GPIO_PORT_E, BIT(1), GPIO_ALT_FUNC_NONE);
-}
-DECLARE_HOOK(HOOK_INIT, board_id_1_reclaim_adc, HOOK_PRIO_INIT_ADC + 1);
diff --git a/board/brya/board.h b/board/brya/board.h
deleted file mode 100644
index a7e91a0507..0000000000
--- a/board/brya/board.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/* 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.
- */
-
-/* Brya board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/*
- * Early brya boards are not set up for vivaldi
- */
-#undef CONFIG_KEYBOARD_VIVALDI
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-#define CONFIG_MP2964
-
-/* LED */
-#define CONFIG_LED_PWM
-#define CONFIG_LED_PWM_COUNT 2
-#undef CONFIG_LED_PWM_NEAR_FULL_COLOR
-#undef CONFIG_LED_PWM_SOC_ON_COLOR
-#undef CONFIG_LED_PWM_SOC_SUSPEND_COLOR
-#undef CONFIG_LED_PWM_LOW_BATT_COLOR
-#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_SOC_ON_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_SOC_SUSPEND_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_LOW_BATT_COLOR EC_LED_COLOR_AMBER
-
-/* Sensors */
-#define CONFIG_ACCELGYRO_LSM6DSO /* Base accel */
-#define CONFIG_ACCEL_LSM6DSO_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-/* Lid accel */
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_LIS2DW_AS_BASE
-#define CONFIG_ACCEL_LIS2DW12_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-/* Sensor console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_NCT38XX
-#define CONFIG_IO_EXPANDER_PORT_COUNT 4
-
-#define CONFIG_USB_PD_TCPM_PS8815
-#define CONFIG_USB_PD_TCPM_PS8815_FORCE_DID
-#define CONFIG_USBC_RETIMER_INTEL_BB
-
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_NX20P3483
-
-/* TODO: b/177608416 - measure and check these values on brya */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-#define GPIO_ID_1_EC_KB_BL_EN GPIO_EC_BATT_PRES_ODL
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* I2C Bus Configuration */
-
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-
-#define I2C_PORT_USB_C0_C2_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C0_C2_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_C2_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_C2_MUX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1
-
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define I2C_ADDR_MP2964_FLAGS 0x20
-
-/*
- * see b/174768555#comment22
- */
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x56
-#define USBC_PORT_C2_BB_RETIMER_I2C_ADDR 0x57
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-/* Retimer */
-#define CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-#define CONFIG_FANS FAN_CH_COUNT
-
-/* Charger defines */
-#define CONFIG_CHARGER_BQ25720
-#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Older boards have a different ADC assignment.
- */
-
-#define CONFIG_ADC_CHANNELS_RUNTIME_CONFIG
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR_SOC,
- ADC_TEMP_SENSOR_2_AMBIENT,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_TEMP_SENSOR_4_WWAN,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR_SOC,
- TEMP_SENSOR_2_AMBIENT,
- TEMP_SENSOR_3_CHARGER,
- TEMP_SENSOR_4_WWAN,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT38XX = 0,
- IOEX_C2_NCT38XX,
- IOEX_ID_1_C0_NCT38XX,
- IOEX_ID_1_C2_NCT38XX,
- IOEX_PORT_COUNT
-};
-
-enum battery_type {
- BATTERY_POWER_TECH,
- BATTERY_LGC011,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED2 = 0, /* PWM0 (white charger) */
- PWM_CH_LED3, /* PWM1 (orange on DB) */
- PWM_CH_LED1, /* PWM2 (orange charger) */
- PWM_CH_KBLIGHT, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_LED4, /* PWM7 (white on DB) */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/brya/build.mk b/board/brya/build.mk
deleted file mode 100644
index 674c17c1df..0000000000
--- a/board/brya/build.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Brya board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=tune_mp2964.o
-board-y+=usbc_config.o
diff --git a/board/brya/charger.c b/board/brya/charger.c
deleted file mode 120000
index 476ce97df2..0000000000
--- a/board/brya/charger.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/brya/charger_bq25720.c \ No newline at end of file
diff --git a/board/brya/ec.tasklist b/board/brya/ec.tasklist
deleted file mode 100644
index 470a1fcdde..0000000000
--- a/board/brya/ec.tasklist
+++ /dev/null
@@ -1,31 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P2, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C2, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_shared_alert_task, (BIT(2) | BIT(0)), TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/brya/fans.c b/board/brya/fans.c
deleted file mode 100644
index 021f0de8e2..0000000000
--- a/board/brya/fans.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * TOOD(b/181271666): thermistor placement and calibration
- *
- * Prototype fan spins at about 4200 RPM at 100% PWM, this
- * is specific to board ID 2 and might also apears in later
- * boards as well.
- */
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 4200,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-#ifndef CONFIG_FANS
-
-/*
- * TODO(b/181271666): use static fan speeds until fan and sensors are
- * tuned. for now, use:
- *
- * AP off: 33%
- * AP on: 100%
- */
-
-static void fan_slow(void)
-{
- const int duty_pct = 33;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-static void fan_max(void)
-{
- const int duty_pct = 100;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-DECLARE_HOOK(HOOK_INIT, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_RESET, fan_max, HOOK_PRIO_FIRST);
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, fan_max, HOOK_PRIO_DEFAULT);
-
-#endif /* CONFIG_FANS */
diff --git a/board/brya/fw_config.c b/board/brya/fw_config.c
deleted file mode 100644
index fb8acb635d..0000000000
--- a/board/brya/fw_config.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union brya_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for brya if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union brya_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PS8815,
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Brya FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-
- if (get_board_id() == 0) {
- /*
- * Early boards have a zero'd out FW_CONFIG, so replace
- * it with a sensible default value. If DB_USB_ABSENT2
- * was used as an alternate encoding of DB_USB_ABSENT to
- * avoid the zero check, then fix it.
- */
- if (fw_config.raw_value == 0) {
- CPRINTS("CBI: FW_CONFIG is zero, using board defaults");
- fw_config = fw_config_defaults;
- } else if (fw_config.usb_db == DB_USB_ABSENT2) {
- fw_config.usb_db = DB_USB_ABSENT;
- }
- }
-}
-
-union brya_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void)
-{
- return fw_config.usb_db;
-}
diff --git a/board/brya/fw_config.h b/board/brya/fw_config.h
deleted file mode 100644
index 6e4eb3ef58..0000000000
--- a/board/brya/fw_config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_BRYA_FW_CONFIG_H_
-#define __BOARD_BRYA_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for Brya board.
- *
- * Source of truth is the project/brya/brya/config.star configuration file.
- */
-
-enum ec_cfg_usb_db_type {
- DB_USB_ABSENT = 0,
- DB_USB3_PS8815 = 1,
- DB_USB_ABSENT2 = 15
-};
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-union brya_cbi_fw_config {
- struct {
- enum ec_cfg_usb_db_type usb_db : 4;
- uint32_t sd_db : 2;
- uint32_t lte_db : 1;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union brya_cbi_fw_config get_fw_config(void);
-
-/**
- * Get the USB daughter board type from FW_CONFIG.
- *
- * @return the USB daughter board type.
- */
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void);
-
-#endif /* __BOARD_BRYA_FW_CONFIG_H_ */
diff --git a/board/brya/generated-gpio.inc b/board/brya/generated-gpio.inc
deleted file mode 100644
index 4daa60c5c9..0000000000
--- a/board/brya/generated-gpio.inc
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * This file was auto-generated.
- */
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_ACCEL_INT_R_L, PIN(8, 1), GPIO_SEL_1P8V | GPIO_INT_FALLING, lis2dw12_interrupt)
-GPIO_INT(EC_ALS_RGB_INT_R_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(EC_IMU_INT_R_L, PIN(5, 6), GPIO_SEL_1P8V | GPIO_INT_FALLING, lsm6dso_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_C2_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_RT_INT_ODL, PIN(B, 1), GPIO_INT_FALLING, retimer_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(5, 0), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C2_BC12_INT_ODL, PIN(8, 3), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C2_PPC_INT_ODL, PIN(7, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C2_RT_INT_ODL, PIN(4, 1), GPIO_INT_FALLING, retimer_interrupt)
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(7, 3), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_KB_BL_EN_L, PIN(8, 6), GPIO_OUT_HIGH)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(4, 3), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C0_C2_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RST_ODL, PIN(9, 6), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_INT_ODL, PIN(A, 0), GPIO_INPUT)
-GPIO(USB_C1_RT_RST_R_ODL, PIN(0, 2), GPIO_ODR_LOW)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, GPIO_SEL_1P8V) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(6, 0x01), 0, MODULE_PWM, 0) /* GPIO60/PWM7 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-ALTERNATE(PIN_MASK(C, 0x1c), 0, MODULE_PWM, 0) /* GPIOC4/PWM2, GPIOC3/PWM0, GPIOC2/PWM1/I2C6_SCL0 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(6, 6)) /* GPIO66 */
-
-/* Pre-configured PSL balls: J8 K6 */
diff --git a/board/brya/gpio.inc b/board/brya/gpio.inc
deleted file mode 100644
index 79a97b0475..0000000000
--- a/board/brya/gpio.inc
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/*
- * Generated-gpio.inc is produced using a Brya specific tool that
- * parses the GPIO definitions derived from the board schematics and
- * EC pinout descriptions derived form the chip datasheets to generate
- * the Chrome EC GPIO pinout definitions. Due to the confidential
- * nature of schematics and datasheets, they are not provided here.
- *
- * Variants that do not auto-generate their GPIO definitions should
- * combine the Brya gpio.inc and generated-gpio.inc into their
- * gpio.inc and customize as appropriate.
- */
-
-#include "generated-gpio.inc"
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-
-/*
- * GPIOE1 is an ALT function ADC INPUT on board ID 2 and a GPIO INPUT on
- * board ID 1. This declaration gives us a signal name to use on board
- * ID 1.
- */
-GPIO(ID_1_EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/*
- * GPIO34 is an INPUT on board ID 2 and ODR_LOW on board ID 1.
- *
- * Since this pin is pulled up to 3.3V through a 30.9K ohm resistor on
- * board ID 2, we will leak about 0.3mW until the pin is put in ALT mode
- * when MODULE_ADC configuration runs. Initializing the pin to ODR_LOW
- * gives us full control on both boards.
- */
-GPIO(ID_1_USB_C0_C2_TCPC_RST_ODL, PIN(3, 4), GPIO_ODR_LOW)
-
-/* Board ID 1 IO expander configuration */
-
-IOEX(ID_1_USB_C0_RT_RST_ODL, EXPIN(IOEX_ID_1_C0_NCT38XX, 0, 2), GPIO_ODR_LOW)
-/* GPIO03_P1 to PU */
-IOEX(ID_1_USB_C0_FRS_EN, EXPIN(IOEX_ID_1_C0_NCT38XX, 0, 4), GPIO_LOW)
-IOEX(ID_1_USB_C0_OC_ODL, EXPIN(IOEX_ID_1_C0_NCT38XX, 0, 6), GPIO_ODR_HIGH)
-/* GPIO07_P1 to PU */
-
-IOEX(ID_1_USB_C2_RT_RST_ODL, EXPIN(IOEX_ID_1_C2_NCT38XX, 0, 2), GPIO_ODR_LOW)
-/* GPIO03_P2 to PU */
-IOEX(ID_1_USB_C2_FRS_EN, EXPIN(IOEX_ID_1_C2_NCT38XX, 0, 4), GPIO_LOW)
-IOEX(ID_1_USB_C1_OC_ODL, EXPIN(IOEX_ID_1_C2_NCT38XX, 0, 6), GPIO_ODR_HIGH)
-IOEX(ID_1_USB_C2_OC_ODL, EXPIN(IOEX_ID_1_C2_NCT38XX, 0, 7), GPIO_ODR_HIGH)
-
-/* Board ID 2 IO expander configuration */
-
-/* GPIO02_P2 to PU */
-/* GPIO03_P2 to PU */
-IOEX(USB_C0_OC_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C0_FRS_EN, EXPIN(IOEX_C0_NCT38XX, 0, 6), GPIO_LOW)
-IOEX(USB_C0_RT_RST_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 7), GPIO_ODR_LOW)
-
-IOEX(USB_C2_RT_RST_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 2), GPIO_ODR_LOW)
-IOEX(USB_C1_OC_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 3), GPIO_ODR_HIGH)
-IOEX(USB_C2_OC_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C2_FRS_EN, EXPIN(IOEX_C2_NCT38XX, 0, 6), GPIO_LOW)
-/* GPIO07_P2 to PU */
diff --git a/board/brya/i2c.c b/board/brya/i2c.c
deleted file mode 100644
index bb55b13d0c..0000000000
--- a/board/brya/i2c.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C0 */
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C_SENSOR_SCL,
- .sda = GPIO_EC_I2C_SENSOR_SDA,
- },
- {
- /* I2C1 */
- .name = "tcpc0,2",
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0,2",
- .port = I2C_PORT_USB_C0_C2_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SDA,
- },
- {
- /* I2C3 */
- .name = "retimer0,2",
- .port = I2C_PORT_USB_C0_C2_MUX,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_RT_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_RT_SDA,
- },
- {
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C6 */
- .name = "ppc1",
- .port = I2C_PORT_USB_C1_PPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_C1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/brya/keyboard.c b/board/brya/keyboard.c
deleted file mode 100644
index a9f033130d..0000000000
--- a/board/brya/keyboard.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/brya/led.c b/board/brya/led.c
deleted file mode 100644
index 68945ec79e..0000000000
--- a/board/brya/led.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya specific PWM LED settings: there are 2 LEDs on each side of the board,
- * each one can be controlled separately. The LED colors are white or amber,
- * and the default behavior is tied to the charging process: both sides are
- * amber while charging the battery and white when the battery is charged.
- */
-
-#include <stdint.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-/*
- * We only have a white and an amber LED, so setting any other color results in
- * both LEDs being off.
- */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Amber, White */
- [EC_LED_COLOR_RED] = { 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0 },
- [EC_LED_COLOR_YELLOW] = { 0, 0 },
- [EC_LED_COLOR_WHITE] = { 0, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 0 },
-};
-
-/* Two logical LEDs with amber and white channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED1,
- .ch1 = PWM_CH_LED2,
- .ch2 = PWM_LED_NO_CHANNEL,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
- {
- .ch0 = PWM_CH_LED3,
- .ch1 = PWM_CH_LED4,
- .ch2 = PWM_LED_NO_CHANNEL,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- pwm_id = PWM_LED0;
- break;
- case EC_LED_ID_RIGHT_LED:
- pwm_id = PWM_LED1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/brya/pwm.c b/board/brya/pwm.c
deleted file mode 100644
index 6e662f8e7d..0000000000
--- a/board/brya/pwm.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED2] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED3] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED1] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN | PWM_CONFIG_DSLEEP,
- .freq = 1000
- },
- [PWM_CH_LED4] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_pwm_init(void)
-{
- /*
- * Turn on all the LED at 50%.
- * Turn on the fan at 100%.
- */
- pwm_enable(PWM_CH_LED1, 1);
- pwm_set_duty(PWM_CH_LED1, 50);
- pwm_enable(PWM_CH_LED2, 1);
- pwm_set_duty(PWM_CH_LED2, 50);
- pwm_enable(PWM_CH_LED3, 1);
- pwm_set_duty(PWM_CH_LED3, 50);
- pwm_enable(PWM_CH_LED4, 1);
- pwm_set_duty(PWM_CH_LED4, 50);
-
- pwm_enable(PWM_CH_KBLIGHT, 1);
- pwm_set_duty(PWM_CH_KBLIGHT, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT);
diff --git a/board/brya/sensors.c b/board/brya/sensors.c
deleted file mode 100644
index d4fd905884..0000000000
--- a/board/brya/sensors.c
+++ /dev/null
@@ -1,395 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "accelgyro.h"
-#include "adc.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dso.h"
-#include "driver/als_tcs3400_public.h"
-#include "hooks.h"
-#include "motion_sense.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR_SOC] = {
- .name = "TEMP_DDR_SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_AMBIENT] = {
- .name = "TEMP_AMBIENT",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_4_WWAN] = {
- .name = "TEMP_WWAN",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-K_MUTEX_DEFINE(g_lid_accel_mutex);
-K_MUTEX_DEFINE(g_base_accel_mutex);
-static struct stprivate_data g_lis2dw12_data;
-static struct lsm6dso_data lsm6dso_data;
-
-/* TODO(b/184779333): calibrate the orientation matrix on later board stage */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* TODO(b/184779743): verify orientation matrix */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/184702900 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(1.0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(1.0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(1.0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DW12,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_lis2dw12_data,
- .int_signal = GPIO_EC_ACCEL_INT_R_L,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DW12_ADDR0,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .rot_standard_ref = &lid_standard_ref, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSO_ST_DATA(lsm6dso_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSO_ST_DATA(lsm6dso_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- },
-
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Enable gpio interrupt for lid accel sensor */
- gpio_enable_interrupt(GPIO_EC_ACCEL_INT_R_L);
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_R_L);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR_SOC] = {
- .name = "DDR and SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR_SOC,
- },
- [TEMP_SENSOR_2_AMBIENT] = {
- .name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_AMBIENT,
- },
- [TEMP_SENSOR_3_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3_CHARGER,
- },
- [TEMP_SENSOR_4_WWAN] = {
- .name = "WWAN",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4_WWAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Alder Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(60),
-};
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-static const struct ec_thermal_config thermal_ambient = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(60),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 125C, max absolute temperature 150C
- * PP3300 regulator: operating range -40 C to 125 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_charger = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(105),
- [EC_TEMP_THRESH_HALT] = C_TO_K(120),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(65),
-};
-
-/*
- * TODO(b/180681346): update for brya WWAN module
- */
-static const struct ec_thermal_config thermal_wwan = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(130),
- [EC_TEMP_THRESH_HALT] = C_TO_K(130),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(60),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_2_AMBIENT] = thermal_ambient,
- [TEMP_SENSOR_3_CHARGER] = thermal_charger,
- [TEMP_SENSOR_4_WWAN] = thermal_wwan,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-static void board_thermals_init(void)
-{
- if (get_board_id() == 1) {
- /*
- * Board ID 1 only has 3 sensors and the AMBIENT sensor
- * ADC pins have been reassigned, so we're down to 2
- * sensors that can easily be configured. So, alias the
- * AMBIENT sensor ADC channel to the unimplemented ADC
- * slots.
- */
- adc_channels[ADC_TEMP_SENSOR_3_CHARGER].input_ch = NPCX_ADC_CH1;
- adc_channels[ADC_TEMP_SENSOR_4_WWAN].input_ch = NPCX_ADC_CH1;
- }
-}
-
-DECLARE_HOOK(HOOK_INIT, board_thermals_init, HOOK_PRIO_INIT_CHIPSET);
diff --git a/board/brya/tune_mp2964.c b/board/brya/tune_mp2964.c
deleted file mode 100644
index 198f06d8eb..0000000000
--- a/board/brya/tune_mp2964.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Tune the MP2964 IMVP9.1 parameters for brya */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "hooks.h"
-#include "mp2964.h"
-
-const static struct mp2964_reg_val rail_a[] = {
- { MP2964_MFR_ALT_SET, 0xe081 }, /* ALERT_DELAY = 200ns */
-};
-const static struct mp2964_reg_val rail_b[] = {
- { MP2964_MFR_ALT_SET, 0xe081 }, /* ALERT_DELAY = 200ns */
-};
-
-static void mp2964_on_startup(void)
-{
- static int chip_updated;
- int status;
-
- if (get_board_id() != 1)
- return;
-
- if (chip_updated)
- return;
-
- chip_updated = 1;
-
- ccprintf("%s: attempting to tune PMIC\n", __func__);
-
- status = mp2964_tune(rail_a, ARRAY_SIZE(rail_a),
- rail_b, ARRAY_SIZE(rail_b));
- if (status != EC_SUCCESS)
- ccprintf("%s: could not update all settings\n", __func__);
-}
-
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, mp2964_on_startup,
- HOOK_PRIO_FIRST);
diff --git a/board/brya/usbc_config.c b/board/brya/usbc_config.c
deleted file mode 100644
index 1780e1e16d..0000000000
--- a/board/brya/usbc_config.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/tcpm/ps8xxx_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_NO_DEBUG_ACC_CONTROL,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- },
- [USBC_PORT_C2] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR2_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C2_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- /* Compatible with Silicon Mitus SM536A0 */
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = NX20P3483_ADDR2_FLAGS,
- .drv = &nx20p348x_drv,
- },
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C0_C2_PPC,
- /*
- * b/179987870
- * schematics I2C map says ADDR3
- */
- .i2c_addr_flags = SYV682X_ADDR2_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-static const struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-static const struct usb_mux usbc2_tcss_usb_mux = {
- .usb_port = USBC_PORT_C2,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set
- * to the virtual_usb_mux_driver so the AP gets notified of mux changes
- * and updates the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_C2_MUX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc0_tcss_usb_mux,
- },
- [USBC_PORT_C1] = {
- /* PS8815 DB */
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
- [USBC_PORT_C2] = {
- .usb_port = USBC_PORT_C2,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_C2_MUX,
- .i2c_addr_flags = USBC_PORT_C2_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc2_tcss_usb_mux,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C2_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C0_C2_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_1_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/*
- * USB C0 and C2 uses burnside bridge chips and have their reset
- * controlled by their respective TCPC chips acting as GPIO expanders.
- *
- * ioex_init() is normally called before we take the TCPCs out of
- * reset, so we need to start in disabled mode, then explicitly
- * call ioex_init().
- */
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_C2_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR2_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_ID_1_C0_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_ID_1_C2_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR2_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-void config_usb_db_type(void)
-{
- enum ec_cfg_usb_db_type db_type = ec_cfg_usb_db_type();
-
- /*
- * TODO(b/180434685): implement multiple DB types
- */
-
- CPRINTS("Configured USB DB type number is %d", db_type);
-}
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- enum ioex_signal rst_signal;
-
- if (me->usb_port == USBC_PORT_C0) {
- if (get_board_id() == 1)
- rst_signal = IOEX_ID_1_USB_C0_RT_RST_ODL;
- else
- rst_signal = IOEX_USB_C0_RT_RST_ODL;
- } else if (me->usb_port == USBC_PORT_C2) {
- if (get_board_id() == 1)
- rst_signal = IOEX_ID_1_USB_C2_RT_RST_ODL;
- else
- rst_signal = IOEX_USB_C2_RT_RST_ODL;
- } else {
- return EC_ERROR_INVAL;
- }
-
- /*
- * We do not have a load switch for the burnside bridge chips,
- * so we only need to sequence reset.
- */
-
- if (enable) {
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- ioex_set_level(rst_signal, 1);
- /*
- * Allow 1ms time for the retimer to power up lc_domain
- * which powers I2C controller within retimer
- */
- msleep(1);
- if (get_board_id() == 1) {
- int val;
-
- /*
- * Check if we were able to deassert
- * reset. Board ID 1 uses a GPIO that is
- * uncontrollable when a debug accessory is
- * connected.
- */
- if (ioex_get_level(rst_signal, &val) != EC_SUCCESS)
- return EC_ERROR_UNKNOWN;
- if (val != 1)
- return EC_ERROR_NOT_POWERED;
- }
- } else {
- ioex_set_level(rst_signal, 0);
- msleep(1);
- }
- return EC_SUCCESS;
-}
-
-void board_reset_pd_mcu(void)
-{
- enum gpio_signal tcpc_rst;
-
- if (get_board_id() == 1)
- tcpc_rst = GPIO_ID_1_USB_C0_C2_TCPC_RST_ODL;
- else
- tcpc_rst = GPIO_USB_C0_C2_TCPC_RST_ODL;
-
- /*
- * TODO(b/179648104): figure out correct timing
- */
-
- gpio_set_level(tcpc_rst, 0);
- if (ec_cfg_usb_db_type() != DB_USB_ABSENT) {
- gpio_set_level(GPIO_USB_C1_RST_ODL, 0);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 0);
- }
-
- /*
- * delay for power-on to reset-off and min. assertion time
- */
-
- msleep(20);
-
- gpio_set_level(tcpc_rst, 1);
- if (ec_cfg_usb_db_type() != DB_USB_ABSENT) {
- gpio_set_level(GPIO_USB_C1_RST_ODL, 1);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 1);
- }
-
- /* wait for chips to come up */
-
- msleep(50);
-}
-
-static void enable_ioex(int ioex)
-{
- ioex_config[ioex].flags &= ~IOEX_FLAGS_DISABLED;
- ioex_init(ioex);
-}
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
-
- /*
- * These IO expander pins are implemented using the
- * C0/C2 TCPC, so they must be set up after the TCPC has
- * been taken out of reset.
- */
- if (get_board_id() == 1) {
- enable_ioex(IOEX_ID_1_C0_NCT38XX);
- enable_ioex(IOEX_ID_1_C2_NCT38XX);
- } else {
- enable_ioex(IOEX_C0_NCT38XX);
- enable_ioex(IOEX_C2_NCT38XX);
- }
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_C2_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_BC12_INT_ODL);
-
- if (ec_cfg_usb_db_type() != DB_USB_ABSENT) {
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_C2_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0 | PD_STATUS_TCPC_ALERT_2;
-
- if ((ec_cfg_usb_db_type() != DB_USB_ABSENT) &&
- gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else if ((port == USBC_PORT_C1) &&
- (ec_cfg_usb_db_type() != DB_USB_ABSENT))
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C2)
- return gpio_get_level(GPIO_USB_C2_PPC_INT_ODL) == 0;
- return 0;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_C2_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- if (ec_cfg_usb_db_type() == DB_USB_ABSENT)
- break;
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- if (ec_cfg_usb_db_type() == DB_USB_ABSENT)
- break;
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C2_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P2, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- switch (ec_cfg_usb_db_type()) {
- case DB_USB_ABSENT:
- case DB_USB_ABSENT2:
- break;
- case DB_USB3_PS8815:
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
- }
- break;
- case GPIO_USB_C2_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C2);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- if (port == USBC_PORT_C0 || port == USBC_PORT_C2)
- return true;
-
- return false;
-}
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- if (!board_is_tbt_usb4_port(port))
- return TBT_SS_RES_0;
-
- return TBT_SS_TBT_GEN3;
-}
diff --git a/board/brya/usbc_config.h b/board/brya/usbc_config.h
deleted file mode 100644
index 5d08a446fb..0000000000
--- a/board/brya/usbc_config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 3
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_C2,
- USBC_PORT_COUNT
-};
-
-void config_usb_db_type(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/brya/vif_override.xml b/board/brya/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/brya/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/bugzzy/battery.c b/board/bugzzy/battery.c
deleted file mode 100644
index 55932feccf..0000000000
--- a/board/bugzzy/battery.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-#include "hooks.h"
-#include "usb_pd.h"
-#include "util.h"
-
-/*
- * Battery info for all bugzzy battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- *
- * Battery FET Status in Manufacture Access : bit15 & bit14
- * b'00 - dfet : on / cfet : on
- * b'01 - dfet : on / cfet : off
- * b'10 - dfet : off / cfet : off
- * b'11 - dfet : off / cfet : on
- * The value b'10 is disconnect_val, so we can use b'01 for cfet_off_val
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* SDI Battery Information */
- [BATTERY_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SDI",
- .device_name = "4404D57",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- .cfet_mask = 0xc000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 55,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SDI;
-
-/* Lower our input voltage to 5V in S0iX when battery is full. */
-#define PD_VOLTAGE_WHEN_FULL 5000
-static void reduce_input_voltage_when_full(void)
-{
- static int saved_input_voltage = -1;
- int max_pd_voltage_mv = pd_get_max_voltage();
- int port;
-
- if (charge_get_percent() == 100 &&
- chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- if (max_pd_voltage_mv != PD_VOLTAGE_WHEN_FULL) {
- saved_input_voltage = max_pd_voltage_mv;
- max_pd_voltage_mv = PD_VOLTAGE_WHEN_FULL;
- }
- } else if (saved_input_voltage != -1) {
- if (max_pd_voltage_mv == PD_VOLTAGE_WHEN_FULL)
- max_pd_voltage_mv = saved_input_voltage;
- saved_input_voltage = -1;
- }
-
- if (pd_get_max_voltage() != max_pd_voltage_mv) {
- for (port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; port++)
- pd_set_external_voltage_limit(port, max_pd_voltage_mv);
- }
-}
-DECLARE_HOOK(HOOK_SECOND, reduce_input_voltage_when_full,
- HOOK_PRIO_DEFAULT);
diff --git a/board/bugzzy/board.c b/board/bugzzy/board.c
deleted file mode 100644
index 2d24c9553a..0000000000
--- a/board/bugzzy/board.c
+++ /dev/null
@@ -1,759 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledoo board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2ds.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_8042.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void sub_usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-
-}
-
-static void sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- int hdmi_hpd_odl = gpio_get_level(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, !hdmi_hpd_odl);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .input_ch = NPCX_ADC_CH5,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_4] = {
- .name = "TEMP_SENSOR4",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Skin1",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "Skin2",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-void board_init(void)
-{
- int on;
-
- /* Enable C0 interrupt and check if it needs processing */
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- /* Disable i2c on HDMI pins */
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, 0);
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-
- /* Set HDMI and sub-rail enables to output */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL,
- chipset_in_state(CHIPSET_STATE_ON) ?
- GPIO_ODR_LOW : GPIO_ODR_HIGH);
- gpio_set_flags(GPIO_SUB_C1_INT_EN_RAILS_ODL, GPIO_ODR_HIGH);
-
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
-
- /* Enable interrupt for passing through HPD */
- gpio_enable_interrupt(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
- } else {
- /* Set SDA as an input */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL,
- GPIO_INPUT);
-
- /* Enable C1 interrupt and check if it needs processing */
- gpio_enable_interrupt(GPIO_SUB_C1_INT_EN_RAILS_ODL);
- check_c1_line();
- }
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Enable HDMI any time the SoC is on */
-static void hdmi_enable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, hdmi_enable, HOOK_PRIO_DEFAULT);
-
-static void hdmi_disable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, hdmi_disable, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, false);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-static void set_5v_gpio(int level)
-{
- gpio_set_level(GPIO_EN_PP5000, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC, or send enable signal to HDMI
- * DB.
- */
- set_5v_gpio(!!enable);
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- gpio_set_level(GPIO_SUB_C1_INT_EN_RAILS_ODL, !enable);
- } else {
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ?
- "en" : "dis");
- }
-
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CHARGER_NUM - 1;
- else
- return CHARGER_NUM;
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static struct stprivate_data g_lis2ds_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DS,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2ds_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2ds_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DS_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = LIS2DS_ODR_MIN_VAL,
- .max_frequency = LIS2DS_ODR_MAX_VAL,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-static int ps8743_tune_mux_c0(const struct usb_mux *me);
-static int ps8743_tune_mux_c1(const struct usb_mux *me);
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PS8743_I2C_ADDR0_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .board_init = &ps8743_tune_mux_c0,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8743_I2C_ADDR0_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .board_init = &ps8743_tune_mux_c1,
- }
-};
-/* USB Mux C0 : board_init of PS8743 */
-static int ps8743_tune_mux_c0(const struct usb_mux *me)
-{
- ps8743_tune_usb_eq(me,
- PS8743_USB_EQ_TX_3_6_DB,
- PS8743_USB_EQ_RX_16_0_DB);
-
- return EC_SUCCESS;
-}
-/* USB Mux C1 : board_init of PS8743 */
-static int ps8743_tune_mux_c1(const struct usb_mux *me)
-{
- ps8743_tune_usb_eq(me,
- PS8743_USB_EQ_TX_3_6_DB,
- PS8743_USB_EQ_RX_16_0_DB);
-
- ps8743_write(me,
- PS8743_REG_USB_SWING,
- PS8743_LFPS_SWG_TD);
- ps8743_write(me,
- PS8743_REG_DP_SETTING,
- PS8743_DP_SWG_ADJ_P15P);
-
- return EC_SUCCESS;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (board_get_usb_pd_port_count() > 1 &&
- !gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-static const struct ec_response_keybd_config keybd1 = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- /*
- * Future boards should use fw_config if needed.
- */
-
- return &keybd1;
-}
-
-#ifndef TEST_BUILD
-/* This callback disables keyboard when convertibles are fully open */
-void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-#endif
-/**
- * Enable panel power detection
- */
-static void panel_power_detect_init(void)
-{
- gpio_enable_interrupt(GPIO_EN_PP1800_PANEL_S0);
-}
-DECLARE_HOOK(HOOK_INIT, panel_power_detect_init, HOOK_PRIO_DEFAULT);
-
-/**
- * Handle VPN / VSN for mipi display.
- */
-static void panel_power_change_deferred(void)
-{
- int signal = gpio_get_level(GPIO_EN_PP1800_PANEL_S0);
-
- gpio_set_level(GPIO_EN_LCD_ENP, signal);
- msleep(1);
- gpio_set_level(GPIO_EN_LCD_ENN, signal);
-
- gpio_set_level(GPIO_TSP_TA, signal & extpower_is_present());
-}
-DECLARE_DEFERRED(panel_power_change_deferred);
-
-void panel_power_change_interrupt(enum gpio_signal signal)
-{
- /* Reset lid debounce time */
- hook_call_deferred(&panel_power_change_deferred_data, 1 * MSEC);
-}
-
-/**
- * Handle TSP_TA according to AC status
- */
-static void handle_tsp_ta(void)
-{
- int signal = gpio_get_level(GPIO_EN_PP1800_PANEL_S0);
-
- gpio_set_level(GPIO_TSP_TA, signal & extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, handle_tsp_ta, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
-};
diff --git a/board/bugzzy/board.h b/board/bugzzy/board.h
deleted file mode 100644
index 2697e17d8c..0000000000
--- a/board/bugzzy/board.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledoo board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_DEDEDE_EC_NPCX796FC
-#include "baseboard.h"
-
-/*
- * Keep the system unlocked in early development.
- * TODO(b/151264302): Make sure to remove this before production!
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Save some flash space */
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_BATTFAKE
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#define CONFIG_CHARGE_RAMP_HW
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-#define CONFIG_BATTERY_CHECK_CHARGE_TEMP_LIMITS
-
-/*
- * GPIO for C1 interrupts, for baseboard use
- *
- * Note this line might already have its pull up disabled for HDMI DBs, but
- * it should be fine to set again before z-state.
- */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_C1_INT_EN_RAILS_ODL
-
-/* Keyboard */
-
-/* LED */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-#define GPIO_BAT_LED_RED_L GPIO_LED_R_ODL
-#define GPIO_BAT_LED_GREEN_L GPIO_LED_G_ODL
-#define GPIO_PWR_LED_BLUE_L GPIO_LED_B_ODL
-
-
-/* PWM */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USB_MUX_PS8743
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-#define CONFIG_USB_PD_COMM_LOCKED
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-#undef PD_POWER_SUPPLY_TURN_ON_DELAY
-#undef PD_POWER_SUPPLY_TURN_OFF_DELAY
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-/* 20% margin added for these timings */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 13080 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 16080 /* us */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 787 /* us */
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/*
- * I2C pin names for baseboard
- *
- * Note: these lines will be set as i2c on start-up, but this should be
- * okay since they're ODL.
- */
-#define GPIO_EC_I2C_SUB_USB_C1_SCL GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL
-#define GPIO_EC_I2C_SUB_USB_C1_SDA GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-
-/* LIS2DS Lid accel */
-#define CONFIG_ACCEL_LIS2DS
-#define CONFIG_ACCEL_LIS2DS_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC5 */
- ADC_TEMP_SENSOR_4, /* ADC6 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-void panel_power_change_interrupt(enum gpio_signal signal);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/bugzzy/build.mk b/board/bugzzy/build.mk
deleted file mode 100644
index 815a285d83..0000000000
--- a/board/bugzzy/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=dedede
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/bugzzy/cbi_ssfc.c b/board/bugzzy/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/bugzzy/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/bugzzy/cbi_ssfc.h b/board/bugzzy/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/bugzzy/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/bugzzy/ec.tasklist b/board/bugzzy/ec.tasklist
deleted file mode 100644
index d4fb416bce..0000000000
--- a/board/bugzzy/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/bugzzy/gpio.inc b/board/bugzzy/gpio.inc
deleted file mode 100644
index 979b2867c0..0000000000
--- a/board/bugzzy/gpio.inc
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(SUB_C1_INT_EN_RAILS_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt) /* C1 interrupt OR 5V power en */
-GPIO_INT(EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* C1 I2C SDA OR HDMI_HPD */
-
-/* Button interrupts */
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(7, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_FALLING | GPIO_SEL_1P8V, lis2ds_interrupt)
-GPIO_INT(EN_PP1800_PANEL_S0, PIN(4, 1), GPIO_INT_BOTH, panel_power_change_interrupt)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, PIN(9, 2), GPIO_INPUT) /* C1 I2C SCL OR HDMI en */
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(IMVP9_PE, PIN(E, 0), GPIO_OUT_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(LED_R_ODL, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(LED_G_ODL, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(LED_B_ODL, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EN_LCD_ENN, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(EN_LCD_ENP, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(TSP_TA, PIN(A, 2), GPIO_OUT_LOW)
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(EN_USB_A0_VBUS, PIN(6, 3), GPIO_OUT_LOW)
-
-/*
- * Waddledoo doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-ALTERNATE(PIN_MASK(3, 0x90), 0, MODULE_ADC, 0) /* ADC5-6 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO00_NC, PIN(0, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO50_NC, PIN(5, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO60_NC, PIN(6, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO80_NC, PIN(8, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_DOWN)
diff --git a/board/bugzzy/led.c b/board/bugzzy/led.c
deleted file mode 100644
index d04026e0f0..0000000000
--- a/board/bugzzy/led.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for bugzzy
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* bugzzy : There are 3 leds for AC, Battery and Power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- if (color == EC_LED_COLOR_BLUE)
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- }
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- /*
- * Battery leds must be turn off when blue led is on
- * because bugzzy has 3-in-1 led.
- */
- if (!gpio_get_level(GPIO_PWR_LED_BLUE_L)) {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- return;
- }
-
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL); /*green*/
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L,
- !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_BAT_LED_RED_L,
- !brightness[EC_LED_COLOR_RED]);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L,
- !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/bugzzy/usb_pd_policy.c b/board/bugzzy/usb_pd_policy.c
deleted file mode 100644
index 15faf41ffc..0000000000
--- a/board/bugzzy/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/bugzzy/vif_override.xml b/board/bugzzy/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/bugzzy/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/burnet/battery.c b/board/burnet/battery.c
deleted file mode 100644
index 35a2ebc7df..0000000000
--- a/board/burnet/battery.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* Dynapack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* Dynapack CosMX Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* Simplo CosMX Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* Samsung SDI Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* CosMX Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_ATL;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/burnet/board.c b/board/burnet/board.c
deleted file mode 100644
index d932624b0a..0000000000
--- a/board/burnet/board.c
+++ /dev/null
@@ -1,591 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
- force_discharge = enable;
-
- return board_set_active_charge_port(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-/*
- * Returns 1 for boards that are convertible into tablet mode, and
- * zero for clamshells.
- */
-int board_is_convertible(void)
-{
- /*
- * Burnet: 17
- * Esche: 16
- */
- return system_get_sku_id() == 17;
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(-1), 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_bmi160_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_icm426xx_ref = {
- {0, FLOAT_TO_FP(-1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* sensor private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-struct motion_sensor_t lid_accel_kx022 = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t base_accel_icm426xx = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 4,
- .rot_standard_ref = &base_icm426xx_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t base_gyro_icm426xx = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm426xx_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_bmi160_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_bmi160_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void sensor_interrupt(enum gpio_signal signal)
-{
- switch (motion_sensors[BASE_ACCEL].chip) {
- case MOTIONSENSE_CHIP_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case MOTIONSENSE_CHIP_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-static void board_update_config(void)
-{
- int val;
- enum ec_error_list rv;
-
- /* Ping for ack */
- rv = i2c_read8(I2C_PORT_SENSORS,
- KX022_ADDR1_FLAGS, KX022_WHOAMI, &val);
-
- if (rv == EC_SUCCESS)
- motion_sensors[LID_ACCEL] = lid_accel_kx022;
-
- /* Read icm-40608 chip content */
- rv = icm_read8(&base_accel_icm426xx, ICM426XX_REG_WHO_AM_I, &val);
-
- if (rv == EC_SUCCESS && val == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = base_accel_icm426xx;
- motion_sensors[BASE_GYRO] = base_gyro_icm426xx;
- }
-
- CPRINTS("Lid Accel Chip: %d", motion_sensors[LID_ACCEL].chip);
- CPRINTS("Base Accel Chip: %d", motion_sensors[BASE_ACCEL].chip);
-}
-
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
- board_update_config();
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Turn off GMR interrupt */
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_ACCEL_INT_ODL,
- GPIO_INPUT | GPIO_PULL_DOWN);
- board_spi_disable();
- }
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int battery_get_vendor_param(uint32_t param, uint32_t *value)
-{
- int rv;
- uint8_t data[16] = {};
-
- /* only allow reading 0x70~0x7F, 16 byte data */
- if (param < 0x70 || param >= 0x80)
- return EC_ERROR_ACCESS_DENIED;
-
- rv = sb_read_string(0x70, data, sizeof(data));
- if (rv)
- return rv;
-
- *value = data[param - 0x70];
- return EC_SUCCESS;
-}
-
-int battery_set_vendor_param(uint32_t param, uint32_t value)
-{
- return EC_ERROR_UNIMPLEMENTED;
-}
diff --git a/board/burnet/board.h b/board/burnet/board.h
deleted file mode 100644
index 009da83ac5..0000000000
--- a/board/burnet/board.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Burnet */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_VENDOR_PARAM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCEL_KX022
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-/* ICM426XX Base accel/gyro */
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ALS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 2
-#define I2C_PORT_CHARGER 1
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_COS,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_SAMSUNG_SDI,
- BATTERY_COS,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger */
-int board_get_charger_i2c(void);
-
-int board_is_convertible(void);
-
-/* Motion sensor interrupt */
-void sensor_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/burnet/build.mk b/board/burnet/build.mk
deleted file mode 100644
index a6e1c010d7..0000000000
--- a/board/burnet/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/burnet/ec.tasklist b/board/burnet/ec.tasklist
deleted file mode 100644
index c1330b86f8..0000000000
--- a/board/burnet/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/burnet/gpio.inc b/board/burnet/gpio.inc
deleted file mode 100644
index c43a232870..0000000000
--- a/board/burnet/gpio.inc
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- sensor_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(BAT_LED_AMBER_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-IOEX(BAT_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
-
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-
-
-/* SPI1 */
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* SPI2 */
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/burnet/led.c b/board/burnet/led.c
deleted file mode 100644
index 1f2b75325c..0000000000
--- a/board/burnet/led.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Kappa
- */
-
-#include "charge_state.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "led_common.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, BAT_LED_OFF);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_WHITE:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, BAT_LED_ON);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_AMBER:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, BAT_LED_OFF);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-static int led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- case EC_LED_ID_POWER_LED:
- rv = led_set_color_power(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color(led_id, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_set_color_power(
- (power_tick & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LED for Esche, Esche don't have power LED,
- * blinking battery white LED to indicate system suspend without
- * charging.
- */
- if (!board_is_convertible()) {
- if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
- led_set_color_battery(power_ticks++ & 0x2 ?
- LED_WHITE : LED_OFF);
- return;
- }
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_WHITE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE:
- /*
- * Blink white light (1 sec on, 1 sec off)
- * when battery capacity is less than 10%
- */
- if (charge_get_percent() < 10)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks % 0x2) ? LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_AMBER : LED_OFF);
- else
- led_set_color_battery(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/burnet/vif_override.xml b/board/burnet/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/burnet/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/c2d2/board.c b/board/c2d2/board.c
deleted file mode 100644
index 3327ea43b6..0000000000
--- a/board/c2d2/board.c
+++ /dev/null
@@ -1,1095 +0,0 @@
-/* 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.
- */
-/* C2D2 debug device board configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "i2c_ite_flash_support.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "update_fw.h"
-#include "usart_rx_dma.h"
-#include "usart_tx_dma.h"
-#include "usart-stm32f0.h"
-#include "usb_hw.h"
-#include "usb_i2c.h"
-#include "usb_spi.h"
-#include "usb-stream.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/* Forward declarations */
-static void update_vrefs_and_shifters(void);
-DECLARE_DEFERRED(update_vrefs_and_shifters);
-static bool is_ec_i2c_enabled(void);
-
-/* Global state tracking current pin configuration and operations */
-static struct mutex vref_bus_state_mutex;
-static int vref_monitor_disable;
-#define VREF_MON_DIS_H1_RST_HELD BIT(0)
-#define VREF_MON_DIS_EC_PWR_HELD BIT(1)
-#define VREF_MON_DIS_SPI_MODE BIT(2)
-
-/*
- * Tracks if bus pins are locked by a function like UART holding, I2C,
- * or SPI.
- */
-enum bus_lock {
- BUS_UNLOCKED, /* Normal UART; pins available for other functions */
- BUS_UART_HELD, /* UART locked to pins while holding RX low */
- BUS_SPI, /* SPI locked to pins */
- BUS_I2C, /* I2C bus locked to pins */
-};
-/* A0/A1 (H1 UART or SPI) */
-enum bus_lock h1_pins;
-/* B6/B7 (EC UART, EC I2C, or SPI) */
-enum bus_lock ec_pins;
-/* B10/B11 (AP UART, AUX I2C) */
-enum bus_lock ap_pins;
-
-static const char *lock_to_string(const enum bus_lock val)
-{
- static const char *const names[] = {
- [BUS_UNLOCKED] = "UART",
- [BUS_UART_HELD] = "UART HELD",
- [BUS_SPI] = "SPI",
- [BUS_I2C] = "I2C",
- };
-
- if (val < 0 || val >= ARRAY_SIZE(names))
- return "UNKNOWN";
-
- return names[val];
-}
-
-static int command_bus_status(int argc, char **argv)
-{
- if (argc > 1)
- return EC_ERROR_PARAM_COUNT;
-
- ccprintf("H1 pins: %s\n", lock_to_string(h1_pins));
- ccprintf("EC pins: %s\n", lock_to_string(ec_pins));
- ccprintf("AP pins: %s\n", lock_to_string(ap_pins));
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(bus_status, command_bus_status,
- "",
- "Gets the bus state for swappable pins");
-
-
-/******************************************************************************
- ** Chip-specific board configuration
- */
-void board_config_pre_init(void)
-{
- /* enable SYSCFG & COMP clock */
- STM32_RCC_APB2ENR |= STM32_RCC_SYSCFGEN;
-
- /* enable DAC for comparator input */
- STM32_RCC_APB1ENR |= STM32_RCC_DACEN;
-
- /*
- * the DMA mapping is :
- * Chan 3 : USART3_RX
- * Chan 5 : USART1_RX
- * Chan 6 : SPI2_RX
- * Chan 7 : SPI2_TX
- *
- * i2c : no dma
- * tim16/17: no dma
- */
- STM32_SYSCFG_CFGR1 |= BIT(24); /* Remap SPI2_RX to channel 6 */
- STM32_SYSCFG_CFGR1 |= BIT(26); /* Remap USART3 RX/TX DMA */
- STM32_SYSCFG_CFGR1 |= BIT(10); /* Remap USART1 RX/TX DMA */
-}
-
-
-/******************************************************************************
- ** ADC channels
- */
-const struct adc_t adc_channels[] = {
- /* Sensing the H1's voltage at the DUT side. Converted to mV. */
- [ADC_H1_SPI_VREF] = {
- .name = "H1_VREF",
- .factor_mul = 3300,
- .factor_div = 4096,
- .shift = 0,
- .channel = STM32_AIN(3),
- },
- /* Sensing the EC's voltage at the DUT side. Converted to mV. */
- [ADC_EC_SPI_VREF] = {
- .name = "EC_VREF",
- .factor_mul = 3300,
- .factor_div = 4096,
- .shift = 0,
- .channel = STM32_AIN(4),
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("C2D2"),
- [USB_STR_SERIALNO] = 0,
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_USART4_STREAM_NAME] = USB_STRING_DESC("CR50"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("C2D2 Shell"),
- [USB_STR_I2C_NAME] = USB_STRING_DESC("I2C"),
- [USB_STR_USART3_STREAM_NAME] = USB_STRING_DESC("CPU"),
- [USB_STR_USART1_STREAM_NAME] = USB_STRING_DESC("EC"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/******************************************************************************
- * Support I2C bridging over USB.
- */
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "ec",
- .port = I2C_PORT_EC,
- .kbps = 100,
- .scl = GPIO_UART_DBG_TX_EC_RX_SCL,
- .sda = GPIO_UART_EC_TX_DBG_RX_SDA,
- .flags = I2C_PORT_FLAG_DYNAMIC_SPEED,
- },
- {
- .name = "aux",
- .port = I2C_PORT_AUX,
- .kbps = 100,
- .scl = GPIO_UART_DBG_TX_AP_RX_INA_SCL,
- .sda = GPIO_UART_AP_TX_DBG_RX_INA_SDA,
- .flags = I2C_PORT_FLAG_DYNAMIC_SPEED,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Configure ITE flash support module */
-const struct ite_dfu_config_t ite_dfu_config = {
- .i2c_port = I2C_PORT_EC,
- /* PB6/7 are connected to complement outputs of TIM16/17 */
- .use_complement_timer_channel = true,
- .access_allow = &is_ec_i2c_enabled,
- .scl = GPIO_UART_DBG_TX_EC_RX_SCL,
- .sda = GPIO_UART_EC_TX_DBG_RX_SDA,
-};
-
-/*
- * I2C is always enabled, but the i2c pins may not be muxed to DUT. We will
- * let the i2c transactions fail instead of using the USB endpoint disable
- * status.
- */
-int usb_i2c_board_is_enabled(void) { return 1; }
-
-/******************************************************************************
- * Forward UARTs as a USB serial interface.
- */
-
-#define USB_STREAM_RX_SIZE 32
-#define USB_STREAM_TX_SIZE 64
-
-/******************************************************************************
- * Forward USART1 (EC) as a simple USB serial interface.
- */
-
-static struct usart_config const usart1;
-struct usb_stream_config const usart1_usb;
-
-static struct queue const usart1_to_usb = QUEUE_DIRECT(128, uint8_t,
- usart1.producer, usart1_usb.consumer);
-static struct queue const usb_to_usart1 = QUEUE_DIRECT(64, uint8_t,
- usart1_usb.producer, usart1.consumer);
-
-static struct usart_rx_dma const usart1_rx_dma =
- USART_RX_DMA(STM32_DMAC_CH5, 32);
-
-static struct usart_config const usart1 =
- USART_CONFIG(usart1_hw,
- usart1_rx_dma.usart_rx,
- usart_tx_interrupt,
- 115200,
- 0,
- usart1_to_usb,
- usb_to_usart1);
-
-USB_STREAM_CONFIG_USART_IFACE(usart1_usb,
- USB_IFACE_USART1_STREAM,
- USB_STR_USART1_STREAM_NAME,
- USB_EP_USART1_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart1,
- usart1_to_usb,
- usart1)
-
-
-/******************************************************************************
- * Forward USART3 (CPU) as a simple USB serial interface.
- */
-
-static struct usart_config const usart3;
-struct usb_stream_config const usart3_usb;
-
-static struct queue const usart3_to_usb = QUEUE_DIRECT(1024, uint8_t,
- usart3.producer, usart3_usb.consumer);
-static struct queue const usb_to_usart3 = QUEUE_DIRECT(64, uint8_t,
- usart3_usb.producer, usart3.consumer);
-
-static struct usart_rx_dma const usart3_rx_dma =
- USART_RX_DMA(STM32_DMAC_CH3, 32);
-
-static struct usart_config const usart3 =
- USART_CONFIG(usart3_hw,
- usart3_rx_dma.usart_rx,
- usart_tx_interrupt,
- 115200,
- 0,
- usart3_to_usb,
- usb_to_usart3);
-
-USB_STREAM_CONFIG_USART_IFACE(usart3_usb,
- USB_IFACE_USART3_STREAM,
- USB_STR_USART3_STREAM_NAME,
- USB_EP_USART3_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart3,
- usart3_to_usb,
- usart3)
-
-
-/******************************************************************************
- * Forward USART4 (cr50) as a simple USB serial interface.
- *
- * We do not try to share DMA channel 6 with SPI2, so just use interrupts
- */
-
-static struct usart_config const usart4;
-struct usb_stream_config const usart4_usb;
-
-static struct queue const usart4_to_usb = QUEUE_DIRECT(1024, uint8_t,
- usart4.producer, usart4_usb.consumer);
-static struct queue const usb_to_usart4 = QUEUE_DIRECT(64, uint8_t,
- usart4_usb.producer, usart4.consumer);
-
-static struct usart_config const usart4 =
- USART_CONFIG(usart4_hw,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 115200,
- 0,
- usart4_to_usb,
- usb_to_usart4);
-
-USB_STREAM_CONFIG_USART_IFACE(usart4_usb,
- USB_IFACE_USART4_STREAM,
- USB_STR_USART4_STREAM_NAME,
- USB_EP_USART4_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart4,
- usart4_to_usb,
- usart4)
-
-/******************************************************************************
- * Set up SPI over USB
- * Notes DMA Channel 6 is shared and mutually exclusive with USART4 RX
- */
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_FLASH_PORT, 1, GPIO_SPI_CSN},
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-void usb_spi_board_enable(struct usb_spi_config const *config)
-{
- /* Configure SPI GPIOs */
- gpio_config_module(MODULE_SPI_FLASH, 1);
-
- /* Set all four SPI pins to high speed */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xff000000;
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
-}
-
-void usb_spi_board_disable(struct usb_spi_config const *config)
-{
- spi_enable(&spi_devices[0], 0);
-
- /* Disable clocks to SPI2 module */
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-
- /* Release SPI GPIOs */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Reset all four SPI pins to low speed */
- STM32_GPIO_OSPEEDR(GPIO_B) &= ~0xff000000;
-}
-
-USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI,
- USB_SPI_CONFIG_FLAGS_IGNORE_HOST_SIDE_ENABLE);
-
-/******************************************************************************
- * Check parity setting on usarts.
- */
-static int command_uart_parity(int argc, char **argv)
-{
- int parity = 0, newparity;
- struct usart_config const *usart;
- char *e;
-
- if ((argc < 2) || (argc > 3))
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "usart1"))
- usart = &usart1;
- else if (!strcasecmp(argv[1], "usart3"))
- usart = &usart3;
- else if (!strcasecmp(argv[1], "usart4"))
- usart = &usart4;
- else
- return EC_ERROR_PARAM1;
-
- if (argc == 3) {
- parity = strtoi(argv[2], &e, 0);
- if (*e || (parity < 0) || (parity > 2))
- return EC_ERROR_PARAM2;
-
- usart_set_parity(usart, parity);
- }
-
- newparity = usart_get_parity(usart);
- ccprintf("Parity on %s is %d.\n", argv[1], newparity);
-
- if ((argc == 3) && (newparity != parity))
- return EC_ERROR_UNKNOWN;
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(parity, command_uart_parity,
- "usart[2|3|4] [0|1|2]",
- "Set parity on uart");
-
-/******************************************************************************
- * Set baud rate setting on usarts.
- */
-static int command_uart_baud(int argc, char **argv)
-{
- int baud = 0;
- struct usart_config const *usart;
- char *e;
-
- if ((argc < 2) || (argc > 3))
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "usart1"))
- usart = &usart1;
- else if (!strcasecmp(argv[1], "usart3"))
- usart = &usart3;
- else if (!strcasecmp(argv[1], "usart4"))
- usart = &usart4;
- else
- return EC_ERROR_PARAM1;
-
- baud = strtoi(argv[2], &e, 0);
- if (*e || baud < 0)
- return EC_ERROR_PARAM2;
-
- usart_set_baud(usart, baud);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(baud, command_uart_baud,
- "usart[2|3|4] rate",
- "Set baud rate on uart");
-
-/******************************************************************************
- * Hold the usart pins low while disabling it, or return it to normal.
- */
-static int command_hold_usart_low(int argc, char **argv)
-{
- enum bus_lock *bus;
- enum gpio_signal rx;
-
- if (argc > 3 || argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "usart1")) {
- bus = &ec_pins;
- rx = GPIO_UART_EC_TX_DBG_RX_SDA;
- } else if (!strcasecmp(argv[1], "usart3")) {
- bus = &ap_pins;
- rx = GPIO_UART_AP_TX_DBG_RX_INA_SDA;
- } else if (!strcasecmp(argv[1], "usart4")) {
- bus = &h1_pins;
- rx = GPIO_UART_H1_TX_DBG_RX;
- } else {
- return EC_ERROR_PARAM1;
- }
-
- /* Updating the status of this port */
- if (argc == 3) {
- char *e;
- const int hold_low = strtoi(argv[2], &e, 0);
-
- if (*e || (hold_low < 0) || (hold_low > 1))
- return EC_ERROR_PARAM2;
-
- mutex_lock(&vref_bus_state_mutex);
-
- if (hold_low && *bus != BUS_UART_HELD) {
- /* Ensure no other use of these pins */
- if (*bus != BUS_UNLOCKED) {
- ccprintf("Cannot hold low! Pins busy: %s.\n",
- lock_to_string(*bus));
- goto busy_error_unlock;
- }
-
- /*
- * No need to shutdown UART, just de-mux the RX pin from
- * UART and change it to a GPIO temporarily
- */
- gpio_config_pin(MODULE_USART, rx, 0);
- gpio_set_flags(rx, GPIO_OUT_LOW);
-
- /* Update global uart state */
- *bus = BUS_UART_HELD;
- } else if (!hold_low && *bus == BUS_UART_HELD) {
- /*
- * Mux the RX pin back to GPIO mode
- */
- gpio_config_pin(MODULE_USART, rx, 1);
-
- /* Update global uart state */
- *bus = BUS_UNLOCKED;
- }
-
- mutex_unlock(&vref_bus_state_mutex);
- }
-
- /* Print status for get and set case. */
- ccprintf("USART status: %s\n",
- *bus == BUS_UART_HELD ? "held low" : "normal");
-
- return EC_SUCCESS;
-
-busy_error_unlock:
- mutex_unlock(&vref_bus_state_mutex);
- return EC_ERROR_BUSY;
-}
-DECLARE_CONSOLE_COMMAND(hold_usart_low, command_hold_usart_low,
- "usart[1|3|4] [0|1]?",
- "Get/set the hold-low state for usart port");
-
-
-/******************************************************************************
- * Console commands SPI programming
- */
-enum vref {
- OFF = 0,
- PP1800 = 1800,
- PP3300 = 3300,
-};
-
-static int command_enable_spi(int argc, char **argv)
-{
- static enum vref current_spi_vref_state;
-
- if (argc > 2)
- return EC_ERROR_PARAM_COUNT;
-
- /* Updating the state */
- if (argc == 2) {
- int i;
- char *e;
- const enum vref spi_vref = strtoi(argv[1], &e, 0);
- const enum gpio_signal uart_pins[] = {
- GPIO_UART_DBG_TX_H1_RX,
- GPIO_UART_H1_TX_DBG_RX,
- GPIO_UART_DBG_TX_EC_RX_SCL,
- GPIO_UART_EC_TX_DBG_RX_SDA,
- };
-
- if (*e)
- return EC_ERROR_PARAM1;
- if (spi_vref != OFF && spi_vref != PP1800 && spi_vref != PP3300)
- return EC_ERROR_PARAM1;
-
- mutex_lock(&vref_bus_state_mutex);
-
- if (vref_monitor_disable & ~VREF_MON_DIS_SPI_MODE) {
- ccprintf("Cannot update SPI with reset held.\n");
- goto busy_error_unlock;
- }
-
- if (current_spi_vref_state == spi_vref) {
- /* No change, do nothing */
- } else if (spi_vref == OFF) {
- /* We are transitioning from SPI to UART mode: */
- /* Disable level shifter pass through */
- gpio_set_level(GPIO_EN_MISO_MOSI_H1_UART, 0);
- gpio_set_level(GPIO_EN_CLK_CSN_EC_UART, 0);
-
- /* Disable SPI. Sets SPI pins to inputs. */
- usb_spi_enable(&usb_spi, 0);
-
- /* Set default state for chip select */
- gpio_set_flags(GPIO_SPI_CSN, GPIO_INPUT);
-
- /* Re-enable all UARTs pins we used. */
- for (i = 0; i < ARRAY_SIZE(uart_pins); ++i)
- gpio_config_pin(MODULE_USART, uart_pins[i], 1);
-
- /* Ensure DUT's muxes are switched to UART mode */
- gpio_set_level(GPIO_C2D2_MUX_UART_ODL, 0);
-
- /* Update state and defer Vrefs update */
- h1_pins = BUS_UNLOCKED;
- ec_pins = BUS_UNLOCKED;
- vref_monitor_disable &= ~VREF_MON_DIS_SPI_MODE;
- hook_call_deferred(&update_vrefs_and_shifters_data, 0);
- } else if (vref_monitor_disable & VREF_MON_DIS_SPI_MODE) {
- /* We are just changing voltages */
- gpio_set_level(GPIO_SEL_SPIVREF_H1VREF_3V3,
- spi_vref == PP3300);
- gpio_set_level(GPIO_SEL_SPIVREF_ECVREF_3V3,
- spi_vref == PP3300);
- } else {
- /* Ensure no other use of these pins */
- if (h1_pins != BUS_UNLOCKED ||
- ec_pins != BUS_UNLOCKED) {
- ccprintf(
- "Cannot enter SPI! H1 pins: %s; EC pins: %s.\n",
- lock_to_string(h1_pins),
- lock_to_string(ec_pins));
- goto busy_error_unlock;
- }
-
- /* We are transitioning from UART to SPI mode: */
- /* Turn off comparator interrupt for Vref detection */
- STM32_EXTI_IMR &= ~EXTI_COMP2_EVENT;
-
- /* Disable level shifters to avoid glitching output */
- gpio_set_level(GPIO_EN_MISO_MOSI_H1_UART, 0);
- gpio_set_level(GPIO_EN_CLK_CSN_EC_UART, 0);
-
- /*
- * De-select UART on all UARTs pins we are using to
- * avoid drive fights with SPI pins.
- */
- for (i = 0; i < ARRAY_SIZE(uart_pins); ++i)
- gpio_config_pin(MODULE_USART, uart_pins[i], 0);
-
- /* Set default state for chip select */
- gpio_set_flags(GPIO_SPI_CSN, GPIO_OUT_HIGH);
-
- /* Enable SPI. Sets SPI pins to SPI alternate mode. */
- usb_spi_enable(&usb_spi, 1);
-
- /* Set requested Vref voltage */
- gpio_set_level(GPIO_SEL_SPIVREF_H1VREF_3V3,
- spi_vref == PP3300);
- gpio_set_level(GPIO_SEL_SPIVREF_ECVREF_3V3,
- spi_vref == PP3300);
-
- /* Ensure DUT's muxes are switched to SPI mode */
- gpio_set_level(GPIO_C2D2_MUX_UART_ODL, 1);
-
- /* Enable level shifters passthrough */
- gpio_set_level(GPIO_EN_MISO_MOSI_H1_UART, 1);
- gpio_set_level(GPIO_EN_CLK_CSN_EC_UART, 1);
-
- h1_pins = BUS_SPI;
- ec_pins = BUS_SPI;
- vref_monitor_disable |= VREF_MON_DIS_SPI_MODE;
- }
-
- current_spi_vref_state = spi_vref;
-
- mutex_unlock(&vref_bus_state_mutex);
- }
-
- /* Print status for get and set case. */
- ccprintf("SPI Vref: %d\n", current_spi_vref_state);
-
- return EC_SUCCESS;
-
-busy_error_unlock:
- mutex_unlock(&vref_bus_state_mutex);
- return EC_ERROR_BUSY;
-}
-DECLARE_CONSOLE_COMMAND(enable_spi, command_enable_spi,
- "[0|1800|3300]?",
- "Get/set the SPI Vref");
-
-/******************************************************************************
- * Console commands I2c programming mode
- */
-static bool is_ec_i2c_enabled(void)
-{
- return ec_pins == BUS_I2C;
-}
-
-static inline enum i2c_freq to_i2c_freq(int kbps)
-{
- switch (kbps) {
- case 400:
- return I2C_FREQ_400KHZ;
- case 1000:
- return I2C_FREQ_1000KHZ;
- default:
- return I2C_FREQ_100KHZ;
- }
-}
-
-static inline int to_kbps(enum i2c_freq freq)
-{
- switch (freq) {
- case I2C_FREQ_400KHZ:
- return 400;
- case I2C_FREQ_1000KHZ:
- return 1000;
- default:
- return 100;
- }
-}
-
-static int command_enable_i2c(int argc, char **argv)
-{
- int i2c_index;
- enum bus_lock *bus;
- enum gpio_signal sda, scl;
-
- if (argc > 3 || argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "ec")) {
- bus = &ec_pins;
- i2c_index = I2C_PORT_EC;
- sda = GPIO_UART_EC_TX_DBG_RX_SDA;
- scl = GPIO_UART_DBG_TX_EC_RX_SCL;
-
- } else if (!strcasecmp(argv[1], "ap")) {
- bus = &ap_pins;
- i2c_index = I2C_PORT_AUX;
- sda = GPIO_UART_AP_TX_DBG_RX_INA_SDA;
- scl = GPIO_UART_DBG_TX_AP_RX_INA_SCL;
- } else {
- return EC_ERROR_PARAM1;
- }
-
- /* Updating the state */
- if (argc == 3) {
- char *e;
- const int speed = strtoi(argv[2], &e, 0);
-
- if (*e)
- return EC_ERROR_PARAM2;
- if (speed != 0 && speed != 100 && speed != 400 && speed != 1000)
- return EC_ERROR_PARAM2;
-
- mutex_lock(&vref_bus_state_mutex);
-
- if (speed != 0 && *bus != BUS_I2C) {
- /* Ensure no other use of these pins */
- if (*bus != BUS_UNLOCKED) {
- ccprintf("Cannot enable i2c! Pin busy: %s.\n",
- lock_to_string(*bus));
- goto busy_error_unlock;
- }
-
- /* Change alternate mode to I2C */
- gpio_config_pin(MODULE_I2C, sda, 1);
- gpio_config_pin(MODULE_I2C, scl, 1);
-
- /* Update state */
- *bus = BUS_I2C;
- } else if (speed == 0 && *bus == BUS_I2C) {
- /* Update back to default UART mode */
- gpio_config_pin(MODULE_USART, sda, 1);
- gpio_config_pin(MODULE_USART, scl, 1);
-
- /* Update state */
- *bus = BUS_UNLOCKED;
- }
-
- mutex_unlock(&vref_bus_state_mutex);
-
- /* If we have a non-zero speed, then set frequency */
- if (speed)
- i2c_set_freq(i2c_index, to_i2c_freq(speed));
- }
-
- /* Print status for get and set case. */
- ccprintf("I2C speed kbps: %d\n",
- *bus == BUS_I2C ? to_kbps(i2c_get_freq(i2c_index)) : 0);
-
- return EC_SUCCESS;
-
-busy_error_unlock:
- mutex_unlock(&vref_bus_state_mutex);
- return EC_ERROR_BUSY;
-}
-DECLARE_CONSOLE_COMMAND(enable_i2c, command_enable_i2c,
- "[ec|ap] [0|100|400|1000]?",
- "Get/set the I2C speed in kbps for EC and AP pins");
-
-/******************************************************************************
- * Console commands for asserting H1 reset and EC Power button
- */
-
-static int command_vref_alternate(int argc, char **argv,
- const enum gpio_signal vref_signal,
- const enum gpio_signal en_signal,
- const int state_flag,
- const char *const print_name)
-{
- if (argc > 2)
- return EC_ERROR_PARAM_COUNT;
-
- /* Updating the state */
- if (argc == 2) {
- char *e;
- const int hold_low = strtoi(argv[1], &e, 0);
-
- if (*e || (hold_low < 0) || (hold_low > 1))
- return EC_ERROR_PARAM1;
-
- mutex_lock(&vref_bus_state_mutex);
-
- if (vref_monitor_disable & VREF_MON_DIS_SPI_MODE) {
- ccprintf("Cannot hold pin while in SPI mode.\n");
- goto busy_error_unlock;
- }
-
- if (!!(vref_monitor_disable & state_flag) == hold_low) {
- /* No change, do nothing */
- } else if (hold_low) {
- /* Turn off comparator interrupt for vref detection */
- STM32_EXTI_IMR &= ~EXTI_COMP2_EVENT;
- /* Start holding the ODL signal line low */
- gpio_set_flags(vref_signal, GPIO_OUT_LOW);
- /* Ensure the switch is connecting STM to DUT */
- gpio_set_level(en_signal, 1);
- vref_monitor_disable |= state_flag;
- } else {
- /* Return GPIO back to input for vref detection */
- gpio_set_flags(vref_signal, GPIO_INPUT);
- /* Transitioning out of hold, correct vrefs */
- hook_call_deferred(&update_vrefs_and_shifters_data, 0);
- vref_monitor_disable &= ~state_flag;
- }
-
- mutex_unlock(&vref_bus_state_mutex);
- }
-
- /* Print status for both get and set case */
- ccprintf("%s held: %s\n", print_name,
- vref_monitor_disable & state_flag ? "yes" : "no");
-
-
- return EC_SUCCESS;
-
-busy_error_unlock:
- mutex_unlock(&vref_bus_state_mutex);
- return EC_ERROR_BUSY;
-}
-
-static int command_pwr_button(int argc, char **argv)
-{
- return command_vref_alternate(argc, argv,
- GPIO_SPIVREF_HOLDN_ECVREF_H1_PWRBTN_ODL,
- GPIO_EN_SPIVREF_HOLDN_ECVREF_H1_PWRBTN,
- VREF_MON_DIS_EC_PWR_HELD, "Power button");
-}
-DECLARE_CONSOLE_COMMAND(pwr_button, command_pwr_button,
- "[0|1]?",
- "Get/set the power button state");
-
-static int command_h1_reset(int argc, char **argv)
-{
- return command_vref_alternate(argc, argv,
- GPIO_SPIVREF_RSVD_H1VREF_H1_RST_ODL,
- GPIO_EN_SPIVREF_RSVD_H1VREF_H1_RST,
- VREF_MON_DIS_H1_RST_HELD, "H1 reset");
-}
-DECLARE_CONSOLE_COMMAND(h1_reset, command_h1_reset,
- "[0|1]?",
- "Get/set the h1 reset state");
-
-
-/******************************************************************************
- * Vref detection logic
- */
-
-/* Set by update and read by console command that polls for Vref presence */
-static enum vref h1_vref;
-static enum vref ec_vref;
-
-static int command_h1_vref_present(int argc, char **argv)
-{
- ccprintf("H1 Vref: %s\n", h1_vref ? "on" : "off");
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(h1_vref, command_h1_vref_present,
- "",
- "Get if the h1 vref is present");
-
-/* Voltage thresholds for rail detection */
-#define VREF_3300_MIN_MV 2300
-#define VREF_1800_MIN_MV 1500
-
-static enum vref get_vref(enum adc_channel chan)
-{
- const int adc = adc_read_channel(chan);
-
- if (adc == ADC_READ_ERROR)
- return OFF;
- else if (adc > VREF_3300_MIN_MV)
- return PP3300;
- else if (adc > VREF_1800_MIN_MV)
- return PP1800;
- else
- return OFF;
-}
-
-static inline void drain_vref_lines(void)
-{
- mutex_lock(&vref_bus_state_mutex);
- if (vref_monitor_disable) {
- mutex_unlock(&vref_bus_state_mutex);
- return;
- }
-
- /*
- * Disconnect level shifters to prevent any leakage on DUT side while we
- * are draining Vref lines for a proper read.
- */
- gpio_set_level(GPIO_EN_MISO_MOSI_H1_UART, 0);
- gpio_set_level(GPIO_EN_CLK_CSN_EC_UART, 0);
-
- /* Disconnect Vref switches */
- gpio_set_level(GPIO_EN_SPIVREF_RSVD_H1VREF_H1_RST, 0);
- gpio_set_level(GPIO_EN_SPIVREF_HOLDN_ECVREF_H1_PWRBTN, 0);
-
- /* Actively pull down floating voltage */
- gpio_set_flags(GPIO_SPIVREF_RSVD_H1VREF_H1_RST_ODL, GPIO_OUT_LOW);
- gpio_set_flags(GPIO_SPIVREF_HOLDN_ECVREF_H1_PWRBTN_ODL, GPIO_OUT_LOW);
-
- /* Ensure we have enough time to drain line. Not in mutex */
- mutex_unlock(&vref_bus_state_mutex);
- msleep(5);
- mutex_lock(&vref_bus_state_mutex);
- if (vref_monitor_disable) {
- mutex_unlock(&vref_bus_state_mutex);
- /*
- * One or both of the Vref signals will still be low. This is
- * okay since anyone that just took over these signal will
- * also take over the enabled switch signals appropriately.
- *
- * If no one takes over the Vref signal, then the switch will
- * remain off and we won't pull down the DUT side.
- */
- return;
- }
-
- /* Reset Vref GPIOs back to input for Vref detection */
- gpio_set_flags(GPIO_SPIVREF_RSVD_H1VREF_H1_RST_ODL, GPIO_INPUT);
- gpio_set_flags(GPIO_SPIVREF_HOLDN_ECVREF_H1_PWRBTN_ODL, GPIO_INPUT);
-
- /* Reconnect Vref switches */
- gpio_set_level(GPIO_EN_SPIVREF_RSVD_H1VREF_H1_RST, 1);
- gpio_set_level(GPIO_EN_SPIVREF_HOLDN_ECVREF_H1_PWRBTN, 1);
-
- mutex_unlock(&vref_bus_state_mutex);
- /* Ensure we have enough time to charge line up to real voltage */
- msleep(10);
-}
-
-/* This if forward declared as a deferred function above */
-static void update_vrefs_and_shifters(void)
-{
- static enum vref prev_h1_vref, prev_ec_vref;
-
- int adc_mv;
-
- /* Disable Vref comparator interrupt before draining and measuring */
- STM32_EXTI_IMR &= ~EXTI_COMP2_EVENT;
-
- drain_vref_lines();
-
- /* Ensure we aren't actively using Vref lines for other purposes */
- mutex_lock(&vref_bus_state_mutex);
- if (vref_monitor_disable) {
- mutex_unlock(&vref_bus_state_mutex);
- return;
- }
-
- /* Only get the EC Vref if H1 Vref is on */
- h1_vref = get_vref(ADC_H1_SPI_VREF);
- ec_vref = (h1_vref == OFF) ? OFF : get_vref(ADC_EC_SPI_VREF);
-
- /*
- * It is possible that the user is physically holding the power button
- * while inserting the c2d2 connector on the DUT. In that case the
- * EC Vref (shared with power button ODL) will be OFF while H1 Vref is
- * on. We won't get a valid read on the EC Vref, so we just keep trying
- * to read in the background until we get out of that state.
- */
- if (h1_vref != OFF && ec_vref == OFF) {
- CPRINTS("Looks like DUT power button is held. Will try again.");
- hook_call_deferred(&update_vrefs_and_shifters_data, 100 * MSEC);
- }
-
- /* Update C2D2 Vref and level shifters based on ADC Vref values */
- gpio_set_level(GPIO_SEL_SPIVREF_H1VREF_3V3, h1_vref == PP3300);
- gpio_set_level(GPIO_EN_MISO_MOSI_H1_UART, h1_vref != OFF);
- gpio_set_level(GPIO_SEL_SPIVREF_ECVREF_3V3, ec_vref == PP3300);
- gpio_set_level(GPIO_EN_CLK_CSN_EC_UART, ec_vref != OFF);
-
- /* Set up DAC2 for comparison on H1 Vref */
- adc_mv = (h1_vref == PP3300) ? VREF_3300_MIN_MV : VREF_1800_MIN_MV;
- /* 8-bit DAC based off of 3.3V rail */
- STM32_DAC_DHR8R2 = 256 * adc_mv / 3300;
-
- /* Clear any pending interrupts and enabled H1 Vref comparator */
- STM32_EXTI_PR = EXTI_COMP2_EVENT;
- STM32_EXTI_IMR |= EXTI_COMP2_EVENT;
-
- mutex_unlock(&vref_bus_state_mutex);
-
- if (prev_h1_vref != h1_vref || prev_ec_vref != ec_vref)
- CPRINTS("Vref updated. H1: %d -> %d; EC: %d -> %d",
- prev_h1_vref, h1_vref, prev_ec_vref, ec_vref);
-
- /*
- * Transitioning from 3.3V to 1.8V should not happen and most likely
- * indicates a leakage path on the DUT being backpowered from C2D2 or
- * something else.
- */
- if (prev_h1_vref == PP3300 && h1_vref == PP1800)
- CPRINTS("Check for H1 Leakage!!!");
- if (prev_ec_vref == PP3300 && ec_vref == PP1800)
- CPRINTS("Check for EC Leakage!!!");
- prev_h1_vref = h1_vref;
- prev_ec_vref = ec_vref;
-}
-
-void set_up_comparator(void)
-{
- /* Overwrite any previous values. This is the only comparator usage */
- STM32_COMP_CSR = STM32_COMP_CMP2HYST_HI |
- STM32_COMP_CMP2OUTSEL_NONE |
- STM32_COMP_CMP2INSEL_INM5 | /* Watch DAC_OUT2 (PA5) */
- STM32_COMP_CMP2MODE_LSPEED |
- STM32_COMP_CMP2EN;
-
- /* Set Falling and Rising interrupts for COMP2 */
- STM32_EXTI_FTSR |= EXTI_COMP2_EVENT;
- STM32_EXTI_RTSR |= EXTI_COMP2_EVENT;
-
- /* Interrupt for COMP2 enabled when setting Vrefs */
-
- /* Ensure IRQ will get called when comp module enables interrupt */
- task_enable_irq(STM32_IRQ_COMP);
-}
-
-static void h1_vref_change(void)
-{
- /* Ack the interrupt */
- STM32_EXTI_PR = EXTI_COMP2_EVENT;
-
- /* Disable interrupt, setting Vref will enable again */
- STM32_EXTI_IMR &= ~EXTI_COMP2_EVENT;
-
- hook_call_deferred(&update_vrefs_and_shifters_data, 0);
-}
-DECLARE_IRQ(STM32_IRQ_COMP, h1_vref_change, 1);
-
-/******************************************************************************
- * Initialize board.
- */
-static void board_init(void)
-{
- /* USB to serial queues */
- queue_init(&usart1_to_usb);
- queue_init(&usb_to_usart1);
- queue_init(&usart3_to_usb);
- queue_init(&usb_to_usart3);
- queue_init(&usart4_to_usb);
- queue_init(&usb_to_usart4);
-
- /* UART init */
- usart_init(&usart1);
- usart_init(&usart3);
- usart_init(&usart4);
-
- /* Enabled DAC, when setting Vref, this voltage is adjusted */
- STM32_DAC_CR = STM32_DAC_CR_EN2;
-
- /* Set Vrefs and enabled level shifters */
- set_up_comparator();
-
- /*
- * Ensure we set up vrefs at least once. Don't call here because
- * there are delays in the reads
- */
- hook_call_deferred(&update_vrefs_and_shifters_data, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************
- * Turn down USART before jumping to RW.
- */
-static void board_jump(void)
-{
- /* Put the board into safer state while jumping */
- gpio_set_level(GPIO_EN_SPIVREF_RSVD_H1VREF_H1_RST, 0);
- gpio_set_level(GPIO_EN_SPIVREF_HOLDN_ECVREF_H1_PWRBTN, 0);
- gpio_set_level(GPIO_EN_CLK_CSN_EC_UART, 0);
- gpio_set_level(GPIO_EN_MISO_MOSI_H1_UART, 0);
-
- /*
- * Shutdown all UARTS before jumping to RW. They will be reinitialized
- * after the jump is successful.
- */
- usart_shutdown(&usart1);
- usart_shutdown(&usart3);
- usart_shutdown(&usart4);
-
- /* Ensure SPI2 is disabled as well */
- usb_spi_enable(&usb_spi, 0);
-}
-DECLARE_HOOK(HOOK_SYSJUMP, board_jump, HOOK_PRIO_DEFAULT);
diff --git a/board/c2d2/board.h b/board/c2d2/board.h
deleted file mode 100644
index a8095ece4d..0000000000
--- a/board/c2d2/board.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* 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.
- */
-
-/* C2D2 configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-#define CONFIG_BOARD_PRE_INIT
-
-/* Enable USART */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART1 /* EC USART */
-#define CONFIG_STREAM_USART3 /* AP USART - not connected by default */
-#define CONFIG_STREAM_USART4 /* H1 USART */
-#define CONFIG_STREAM_USB
-#define CONFIG_CMD_USART_INFO
-
-/* The UART console is on USART2 (PA14/PA15) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_HW_CRC
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_CONSOLE
-#define CONFIG_USB_PID 0x5041
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-#define CONFIG_USB_UPDATE
-
-
-/* USB interface indexes (use define rather than enum to expand them)
- *
- * Note these values are used in servo_interface.py for the 'interface' value
- */
-#define USB_IFACE_USART4_STREAM 0 /* H1 */
-#define USB_IFACE_UPDATE 1
-#define USB_IFACE_SPI 2
-#define USB_IFACE_CONSOLE 3
-#define USB_IFACE_I2C 4
-#define USB_IFACE_USART3_STREAM 5 /* AP (not connected by default) */
-#define USB_IFACE_USART1_STREAM 6 /* EC */
-#define USB_IFACE_COUNT 7
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_USART4_STREAM 1
-#define USB_EP_UPDATE 2
-#define USB_EP_SPI 3
-#define USB_EP_CONSOLE 4
-#define USB_EP_I2C 5
-#define USB_EP_USART3_STREAM 6
-#define USB_EP_USART1_STREAM 7
-#define USB_EP_COUNT 8
-
-/* Enable control of SPI over USB */
-#define CONFIG_USB_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_FLASH_PORT 0 /* SPI2 is 0th in stm's SPI_REGS var */
-
-/* Enable control of I2C over USB */
-#define CONFIG_USB_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_EC 0
-#define I2C_PORT_AUX 1
-
-/* See i2c_ite_flash_support.c for more information about these values */
-#define CONFIG_ITE_FLASH_SUPPORT
-#define CONFIG_I2C_XFER_LARGE_TRANSFER
-#undef CONFIG_USB_I2C_MAX_WRITE_COUNT
-#undef CONFIG_USB_I2C_MAX_READ_COUNT
-#define CONFIG_USB_I2C_MAX_WRITE_COUNT ((1<<9) - 4)
-#define CONFIG_USB_I2C_MAX_READ_COUNT ((1<<9) - 6)
-
-/*
- * Set all ADC samples to take 239.5 clock cycles. This allows us to measure
- * weakly driven signals like the H1 Vref.
- */
-#define CONFIG_ADC_SAMPLE_TIME STM32_ADC_SMPR_239_5_CY
-
-/* Options features */
-#define CONFIG_ADC
-/*
- * See 'Programmable voltage detector characteristics' in the STM32F072x8
- * Datasheet. PVD Threshold 1 corresponds to a falling voltage threshold of
- * min:2.09V, max:2.27V.
- */
-#define CONFIG_PVD
-#define PVD_THRESHOLD 1
-
-/* This is not actually an EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_USART4_STREAM_NAME,
- USB_STR_UPDATE_NAME,
- USB_STR_CONSOLE_NAME,
- USB_STR_I2C_NAME,
- USB_STR_USART3_STREAM_NAME,
- USB_STR_USART1_STREAM_NAME,
- USB_STR_COUNT
-};
-
-enum adc_channel {
- ADC_H1_SPI_VREF, /* Either H1 Vref or SPI Vref depending on mode */
- ADC_EC_SPI_VREF, /* Either EC Vref or SPI Vref depending on mode */
- ADC_CH_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/c2d2/build.mk b/board/c2d2/build.mk
deleted file mode 100644
index 559b6b8e95..0000000000
--- a/board/c2d2/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072CBU6TR
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
diff --git a/board/c2d2/ec.tasklist b/board/c2d2/ec.tasklist
deleted file mode 100644
index c1fb169118..0000000000
--- a/board/c2d2/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/c2d2/gpio.inc b/board/c2d2/gpio.inc
deleted file mode 100644
index 485a603453..0000000000
--- a/board/c2d2/gpio.inc
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-GPIO(UART_DBG_TX_H1_RX, PIN(A, 0), GPIO_INPUT)
-GPIO(UART_H1_TX_DBG_RX, PIN(A, 1), GPIO_INPUT)
-GPIO(EN_MISO_MOSI_H1_UART, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(SPIVREF_RSVD_H1VREF_H1_RST_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(SPIVREF_HOLDN_ECVREF_H1_PWRBTN_ODL, PIN(A, 4), GPIO_INPUT)
-GPIO(EN_CLK_CSN_EC_UART, PIN(A, 7), GPIO_OUT_LOW)
-
-GPIO(EN_SPIVREF_RSVD_H1VREF_H1_RST, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EN_SPIVREF_HOLDN_ECVREF_H1_PWRBTN, PIN(B, 3), GPIO_OUT_LOW)
-GPIO(SEL_SPIVREF_H1VREF_3V3, PIN(B, 4), GPIO_OUT_LOW)
-GPIO(SEL_SPIVREF_ECVREF_3V3, PIN(B, 5), GPIO_OUT_LOW)
-GPIO(UART_DBG_TX_EC_RX_SCL, PIN(B, 6), GPIO_INPUT)
-GPIO(UART_EC_TX_DBG_RX_SDA, PIN(B, 7), GPIO_INPUT)
-/* Start C2D2 in UART mode */
-GPIO(C2D2_MUX_UART_ODL, PIN(B, 8), GPIO_ODR_LOW)
-
-/* I2C pins should be configured as inputs until I2C module is */
-/* initialized. This will avoid driving the lines unintentionally.*/
-GPIO(UART_DBG_TX_AP_RX_INA_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(UART_AP_TX_DBG_RX_INA_SDA, PIN(B, 11), GPIO_INPUT)
-
-/* Flash SPI interface */
-GPIO(SPI_CSN, PIN(B, 12), GPIO_INPUT)
-GPIO(SPI_CLK, PIN(B, 13), GPIO_INPUT)
-GPIO(SPI_MISO, PIN(B, 14), GPIO_INPUT)
-GPIO(SPI_MOSI, PIN(B, 15), GPIO_INPUT)
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-/* Default alternate mode pins */
-ALTERNATE(PIN_MASK(A, GENMASK(15, 14)), 1, MODULE_UART, 0) /* USART2: PA14/PA15 - Servo stm32 console UART*/
-
-/* TIM16_OCN/TIM17_OCN: PB6/PB7 - Timer bit-banging for EC I2C lines */
-ALTERNATE(PIN_MASK(B, GENMASK( 7, 6)), 2, MODULE_I2C_TIMERS, 0)
-
-ALTERNATE(PIN_MASK(B, GENMASK( 7, 6)), 1, MODULE_I2C, 0) /* I2C1: PB6/PB7 - I2C1: SCL/SDA (EC) */
-ALTERNATE(PIN_MASK(B, GENMASK(11, 10)), 1, MODULE_I2C, 0) /* I2C2: PB10/PB11 - I2C2: SCL/SDA (AP) */
-
-ALTERNATE(PIN_MASK(B, GENMASK( 7, 6)), 0, MODULE_USART, 0) /* USART1: PB6/PB7 - Servo UART1 (EC) */
-ALTERNATE(PIN_MASK(B, GENMASK(11, 10)), 4, MODULE_USART, 0) /* USART3: PB10/PB11 - Servo UART2 (AP) */
-ALTERNATE(PIN_MASK(A, GENMASK( 1, 0)), 4, MODULE_USART, 0) /* USART4: PA0/PA1 - Servo UART3 (H1) */
-
-/*
- * Note BIT(12) is intentionally not marked for alternate mode since it is
- * directly controlled with gpio_set_level and configured in the spi driver.
- */
-ALTERNATE(PIN_MASK(B, GENMASK(15, 13)), 0, MODULE_SPI_FLASH, 0) /* SPI: PB15 - PB12 MOSI, MISO, CLK, CS */
diff --git a/board/cappy2/battery.c b/board/cappy2/battery.c
deleted file mode 100644
index aa81d0b353..0000000000
--- a/board/cappy2/battery.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "common.h"
-#include "util.h"
-
-#define CHARGING_VOLTAGE_MV_SAFE 8400
-#define CHARGING_CURRENT_MA_SAFE 1500
-
-/*
- * Battery info for lalala battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SDI Battery Information */
- [BATTERY_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SDI",
- .device_name = "4402D51",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- .cfet_mask = 0xc000,
- .cfet_off_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- }
-};
-
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SDI;
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int current;
- int voltage;
- /* battery temp in 0.1 deg C */
- int bat_temp_c;
- const struct battery_info *batt_info;
-
- /*
- * Keep track of battery temperature range:
- *
- * ZONE_0 ZONE_1 ZONE_2 ZONE_3
- * ---+------+--------+--------+------+--- Temperature (C)
- * 0 5 12 45 50
- */
- enum {
- TEMP_ZONE_0, /* 0 <= bat_temp_c <= 5 */
- TEMP_ZONE_1, /* 5 < bat_temp_c <= 12 */
- TEMP_ZONE_2, /* 12 < bat_temp_c <= 45 */
- TEMP_ZONE_3, /* 45 < bat_temp_c <= 50 */
- TEMP_ZONE_COUNT,
- TEMP_OUT_OF_RANGE = TEMP_ZONE_COUNT
- } temp_zone;
-
- /*
- * Precharge must be executed when communication is failed on
- * dead battery.
- */
- if (!(curr->batt.flags & BATT_FLAG_RESPONSIVE))
- return 0;
-
- current = curr->requested_current;
- voltage = curr->requested_voltage;
- bat_temp_c = curr->batt.temperature - 2731;
- batt_info = battery_get_info();
-
- /*
- * If the temperature reading is bad, assume the temperature
- * is out of allowable range.
- */
- if ((curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE) ||
- (bat_temp_c < 0) || (bat_temp_c > 500))
- temp_zone = TEMP_OUT_OF_RANGE;
- else if (bat_temp_c <= 50)
- temp_zone = TEMP_ZONE_0;
- else if (bat_temp_c <= 120)
- temp_zone = TEMP_ZONE_1;
- else if (bat_temp_c <= 450)
- temp_zone = TEMP_ZONE_2;
- else
- temp_zone = TEMP_ZONE_3;
-
- switch (temp_zone) {
- case TEMP_ZONE_0:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- current = CHARGING_CURRENT_MA_SAFE;
- break;
-
- case TEMP_ZONE_1:
- voltage += 100;
- current = CHARGING_CURRENT_MA_SAFE;
- break;
-
- case TEMP_ZONE_2:
- voltage += 100;
- break;
-
- case TEMP_ZONE_3:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- break;
-
- case TEMP_OUT_OF_RANGE:
- /* Don't charge if outside of allowable temperature range */
- current = 0;
- voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- if (curr->state != ST_DISCHARGE)
- curr->state = ST_IDLE;
- break;
- }
-
- if (voltage > batt_info->voltage_max)
- voltage = batt_info->voltage_max;
-
- curr->requested_voltage = voltage;
- curr->requested_current = MIN(curr->requested_current, current);
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
diff --git a/board/cappy2/board.c b/board/cappy2/board.c
deleted file mode 100644
index ba0c4f04e9..0000000000
--- a/board/cappy2/board.c
+++ /dev/null
@@ -1,363 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* cappy2 board-specific configuration */
-
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_mux/ps8743_public.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Keyboard scan setting */
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, !!enable);
-
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* BC 1.2 chip*/
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PS8743_I2C_ADDR0_FLAG,
- .driver = &ps8743_usb_mux_driver,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* modify AC DC prochot value */
- isl923x_set_ac_prochot(CHARGER_SOLO, 4096);
- isl923x_set_dc_prochot(CHARGER_SOLO, 6000);
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Cpu",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
diff --git a/board/cappy2/board.h b/board/cappy2/board.h
deleted file mode 100644
index be34d2b906..0000000000
--- a/board/cappy2/board.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* cappy2 board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KEEBY_EC_NPCX797FC
-#include "baseboard.h"
-
-#undef GPIO_VOLUME_UP_L
-#undef GPIO_VOLUME_DOWN_L
-#undef CONFIG_VOLUME_BUTTONS
-
-/* System unlocked in early development */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* Keyboard */
-#undef CONFIG_PWM_KBLIGHT
-
-/* LED defines */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-#define GPIO_BAT_LED_RED_L GPIO_LED_R_ODL
-#define GPIO_BAT_LED_GREEN_L GPIO_LED_G_ODL
-#define GPIO_PWR_LED_BLUE_L GPIO_LED_B_ODL
-
-/* PWM */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is used as PWM1. */
-
-/******************************************************************************/
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* BC1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* MUX */
-#define CONFIG_USB_MUX_PS8743
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_PP3300_A
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_TEMP_SENSOR_3, /* ADC6 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-enum battery_type {
- BATTERY_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/cappy2/build.mk b/board/cappy2/build.mk
deleted file mode 100644
index b012d8d502..0000000000
--- a/board/cappy2/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=keeby
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/cappy2/cbi_ssfc.c b/board/cappy2/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/cappy2/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/cappy2/cbi_ssfc.h b/board/cappy2/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/cappy2/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/cappy2/ec.tasklist b/board/cappy2/ec.tasklist
deleted file mode 100644
index 0025c2985b..0000000000
--- a/board/cappy2/ec.tasklist
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/cappy2/gpio.inc b/board/cappy2/gpio.inc
deleted file mode 100644
index 00799bfdd8..0000000000
--- a/board/cappy2/gpio.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(A, 2), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt)
-
-/* Button interrupts */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-
-/* Extra Sub-board I/O pins */
-GPIO(LTE_EN, PIN(6, 0), GPIO_OUT_LOW)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(EC_CBI_WP, PIN(E, 5), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED_B_ODL, PIN(C, 2), GPIO_OUT_HIGH) /* PWM_CH_LED2_BLUE */
-GPIO(LED_G_ODL, PIN(C, 3), GPIO_OUT_HIGH) /* PWM_CH_LED1_GREEN */
-GPIO(LED_R_ODL, PIN(C, 4), GPIO_OUT_HIGH) /* PWM_CH_LED2_ORANGE */
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* USB pins */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-/*
- * cappy2 doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-UNIMPLEMENTED(VOLDN_BTN_ODL)
-UNIMPLEMENTED(VOLUP_BTN_ODL)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(3, BIT(4)), 0, MODULE_ADC, 0) /* ADC6 */
-ALTERNATE(PIN_MASK(4, BIT(3)|BIT(4)|BIT(5)), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(4)|BIT(5)), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(2)|BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(3, BIT(3)|BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, BIT(0)), 0, MODULE_I2C, 0) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO00_NC, PIN(0, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO37_NC, PIN(3, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO50_NC, PIN(5, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO56_NC, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO63_NC, PIN(6, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO73_NC, PIN(7, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO75_NC, PIN(7, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO80_NC, PIN(8, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO91_NC, PIN(9, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO92_NC, PIN(9, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO95_NC, PIN(9, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO97_NC, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOB4_NC, PIN(B, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOB5_NC, PIN(B, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO40_NC, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF2_NC, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF3_NC, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/cappy2/led.c b/board/cappy2/led.c
deleted file mode 100644
index fb6faae482..0000000000
--- a/board/cappy2/led.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for lalala
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* cappy2 : There are 3 leds for AC, Battery and Power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- if (color == EC_LED_COLOR_BLUE) {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- }
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- /* Battery leds must be turn off when blue led is on
- * because the led is 3-in-1 led.
- */
- if (!gpio_get_level(GPIO_PWR_LED_BLUE_L)) {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- return;
- }
-
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL); /*green*/
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L,
- !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_BAT_LED_RED_L,
- !brightness[EC_LED_COLOR_RED]);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L,
- !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/cappy2/usb_pd_policy.c b/board/cappy2/usb_pd_policy.c
deleted file mode 100644
index fd9018a3f0..0000000000
--- a/board/cappy2/usb_pd_policy.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/cappy2/vif_override.xml b/board/cappy2/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/cappy2/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/careena/analyzestack.yaml b/board/careena/analyzestack.yaml
deleted file mode 120000
index 9873122a08..0000000000
--- a/board/careena/analyzestack.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/grunt/analyzestack.yaml \ No newline at end of file
diff --git a/board/careena/battery.c b/board/careena/battery.c
deleted file mode 100644
index 7180109168..0000000000
--- a/board/careena/battery.c
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Careena battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack Coslight Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = &battery_bq4050_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = &battery_bq4050_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack SDI Battery Information */
- [BATTERY_DYNAPACK_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-24-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = &battery_bq4050_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Samsung SDI Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = &battery_default_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo Coslight Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = &battery_default_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo ATL Battery Information */
- [BATTERY_SIMPLO_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-17-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = &battery_default_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = &battery_default_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX B00C4473A9D0002 Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- .imbalance_mv = &battery_default_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/careena/board.c b/board/careena/board.c
deleted file mode 100644
index ea2a886c03..0000000000
--- a/board/careena/board.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Careena board-specific configuration */
-
-#include "button.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "thermal.h"
-
-#include "gpio_list.h"
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
- GPIO_EC_RST_ODL,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* I2C port map. */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", I2C_PORT_THERMAL_AP, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 5,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT] = {
- [TEMP_SENSOR_SOC] = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(74),
- [EC_TEMP_THRESH_HALT] = C_TO_K(79),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(71),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-static void board_init(void)
-{
- /*
- * Ensure PROCHOT is deasserted after sysjump.
- * The GPIO was an input in old RO images. On sysjump to new RW, the
- * direction is changed to output but the level is not set, which
- * results in the output driving low, which asserts PROCHOT incorrectly.
- * (crbug.com/1226694)
- */
- gpio_set_level(GPIO_CPU_PROCHOT, 1);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * We have total 24 pins for keyboard connecter, {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {1, 4}, {1, 3}, {1, 6}, {-1, -1},
- {3, 1}, {2, 0}, {1, 5}, {2, 6}, {-1, -1},
- {2, 1}, {2, 4}, {2, 5}, {1, 2}, {2, 3},
- {2, 2}, {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-static int board_is_support_ps8755_tcpc(void)
-{
- /*
- * 0: PS8751
- * 1: PS8755
- */
- return gpio_get_level(GPIO_TCPC_ID);
-}
-
-__override uint16_t board_get_ps8xxx_product_id(int port)
-{
- /* Careena variant doesn't have ps8xxx product in the port 0 */
- if (port == 0)
- return 0;
-
- if (board_is_support_ps8755_tcpc())
- return PS8755_PRODUCT_ID;
-
- return PS8751_PRODUCT_ID;
-}
-#endif
diff --git a/board/careena/board.h b/board/careena/board.h
deleted file mode 100644
index 75545cfcaa..0000000000
--- a/board/careena/board.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Careena board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_GRUNT_TCPC_0_ANX3429
-#define VARIANT_GRUNT_NO_SENSORS
-
-#include "baseboard.h"
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-#define CONFIG_MKBP_USE_HOST_EVENT
-
-#define CONFIG_LED_COMMON
-#define CONFIG_CMD_LEDTEST
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* Thermal */
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-#define CONFIG_THROTTLE_AP
-
-#define CONFIG_BATTERY_MEASURE_IMBALANCE
-#define CONFIG_BATTERY_BQ4050
-
-/* Additional TCPC second source in Port 1 */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8755
-
-#ifndef __ASSEMBLER__
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_SDI,
- BATTERY_SAMSUNG_SDI,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_ATL,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COS,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/careena/build.mk b/board/careena/build.mk
deleted file mode 100644
index c808e65aed..0000000000
--- a/board/careena/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6f
-BASEBOARD:=grunt
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/careena/ec.tasklist b/board/careena/ec.tasklist
deleted file mode 100644
index b562761311..0000000000
--- a/board/careena/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/careena/gpio.inc b/board/careena/gpio.inc
deleted file mode 100644
index c84c81a68e..0000000000
--- a/board/careena/gpio.inc
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(A, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S5_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S5_PGOOD, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(USB_C0_CABLE_DET, PIN(3, 7), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_LOCKED)
-
-GPIO(EN_PWR_A, PIN(E, 2), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EN_PP1800_SENSOR, PIN(6, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(ENABLE_BACKLIGHT_L, PIN(D, 3), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(SYS_RESET_L, PIN(E, 4), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT | GPIO_PULL_UP) /* Battery Present */
-GPIO(PCH_SYS_PWROK, PIN(D, 6), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(CPU_PROCHOT, PIN(3, 4), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* PROCHOT to SOC */
-GPIO(APU_ALERT_L, PIN(A, 2), GPIO_INPUT) /* Alert to SOC */
-GPIO(3AXIS_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* 3 Axis Accel */
-GPIO(TCPC_ID, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN) /* TCPC ID pin */
-
-GPIO(BAT_LED_AMBER_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(BAT_LED_WHITE_L, PIN(C, 4), GPIO_OUT_HIGH)
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SIC */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SID */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SDA */
-
-/*
- * The NPCX LPC driver configures and controls SCI and SMI,
- * so PCH_SCI_ODL [PIN(7, 6)] and PCH_SMI_ODL [PIN(C, 6)] are
- * not defined here as GPIOs.
- */
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT)
-
-GPIO(EN_USB_A0_5V, PIN(6, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(C, 0), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_C0_TCPC_PWR, PIN(6, 0), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(USB_C0_OC_L, PIN(7, 3), GPIO_OUT_HIGH) /* C0 Over Current */
-GPIO(USB_C1_OC_L, PIN(7, 2), GPIO_OUT_HIGH) /* C1 Over Current */
-GPIO(USB_C0_PD_RST_L, PIN(3, 2), GPIO_OUT_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(D, 5), GPIO_OUT_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON_L, PIN(4, 0), GPIO_ODR_HIGH) /* C0 BC1.2 Power */
-GPIO(USB_C1_BC12_VBUS_ON_L, PIN(B, 1), GPIO_ODR_HIGH | GPIO_PULL_UP) /* C1 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET, PIN(6, 2), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C1_BC12_CHG_DET, PIN(8, 3), GPIO_INPUT | GPIO_PULL_DOWN) /* C1 BC1.2 Detect */
-GPIO(USB_C0_DP_HPD, PIN(9, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(9, 6), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 7), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(9, 3), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(8, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(4, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x02), 0, MODULE_ADC, 0) /* ADC8 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* KB Backlight */
-
-/* Keyboard Pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = AC_PRESENT,
- GPIO01 = POWER_BUTTON_L,
- GPIO02 = EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
diff --git a/board/careena/led.c b/board/careena/led.c
deleted file mode 100644
index 4188290b4f..0000000000
--- a/board/careena/led.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2018 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.
- *
- * LED control for Careena
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "util.h"
-#include "system.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color(led_id, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /* override battery led for system suspend */
- if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
- led_set_color_battery(power_ticks++ & 0x4 ?
- LED_WHITE : LED_OFF);
- return;
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_WHITE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE:
- /*
- * Blink white light (1 sec on, 1 sec off)
- * when battery capacity is less than 10%
- */
- if (charge_get_percent() < 10)
- led_set_color_battery(
- (battery_ticks & 0x4) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks & 0x4) ? LED_AMBER : LED_OFF);
- else
- led_set_color_battery(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/careena/vif_override.xml b/board/careena/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/careena/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/casta/battery.c b/board/casta/battery.c
deleted file mode 100644
index 0ced18e734..0000000000
--- a/board/casta/battery.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "common.h"
-#include "util.h"
-
-#define CHARGING_VOLTAGE_MV_SAFE 8400
-#define CHARGING_CURRENT_MA_SAFE 1500
-
-/*
- * Battery info for all casta battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SDI",
- .device_name = "4402D51",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = 8650,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SDI;
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int current;
- int voltage;
- /* battery temp in 0.1 deg C */
- int bat_temp_c;
- const struct battery_info *batt_info;
-
- /*
- * Keep track of battery temperature range:
- *
- * ZONE_0 ZONE_1 ZONE_2 ZONE_3
- * ---+------+--------+--------+------+--- Temperature (C)
- * 0 5 12 45 50
- */
- enum {
- TEMP_ZONE_0, /* 0 <= bat_temp_c <= 5 */
- TEMP_ZONE_1, /* 5 < bat_temp_c <= 12 */
- TEMP_ZONE_2, /* 12 < bat_temp_c <= 45 */
- TEMP_ZONE_3, /* 45 < bat_temp_c <= 50 */
- TEMP_ZONE_COUNT,
- TEMP_OUT_OF_RANGE = TEMP_ZONE_COUNT
- } temp_zone;
-
- /*
- * Precharge must be executed when communication is failed on
- * dead battery.
- */
- if(!(curr->batt.flags & BATT_FLAG_RESPONSIVE))
- return 0;
-
- current = curr->requested_current;
- voltage = curr->requested_voltage;
- bat_temp_c = curr->batt.temperature - 2731;
- batt_info = battery_get_info();
-
- /*
- * If the temperature reading is bad, assume the temperature
- * is out of allowable range.
- */
- if ((curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE) ||
- (bat_temp_c < 0) || (bat_temp_c > 500))
- temp_zone = TEMP_OUT_OF_RANGE;
- else if (bat_temp_c <= 50)
- temp_zone = TEMP_ZONE_0;
- else if (bat_temp_c <= 120)
- temp_zone = TEMP_ZONE_1;
- else if (bat_temp_c <= 450)
- temp_zone = TEMP_ZONE_2;
- else
- temp_zone = TEMP_ZONE_3;
-
- switch (temp_zone) {
- case TEMP_ZONE_0:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- current = CHARGING_CURRENT_MA_SAFE;
- break;
- case TEMP_ZONE_1:
- current = CHARGING_CURRENT_MA_SAFE;
- break;
- case TEMP_ZONE_2:
- break;
- case TEMP_ZONE_3:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- break;
- case TEMP_OUT_OF_RANGE:
- /* Don't charge if outside of allowable temperature range */
- current = 0;
- voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- if (curr->state != ST_DISCHARGE)
- curr->state = ST_IDLE;
- break;
- }
-
- if(voltage > batt_info->voltage_max)
- voltage = batt_info->voltage_max;
-
- curr->requested_voltage = MIN(curr->requested_voltage, voltage);
- curr->requested_current = MIN(curr->requested_current, current);
-
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/casta/board.c b/board/casta/board.c
deleted file mode 100644
index 8b36ed0a69..0000000000
--- a/board/casta/board.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Casta board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/charger/bq25710.h"
-#include "driver/charger/isl923x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-static uint8_t sku_id;
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* TODO(b/119872005): Casta: confirm thermistor parts */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Charger config. Start i2c address at isl9238, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
-
-/*
- * I2C callbacks to ensure bus free time for battery I2C transactions is at
- * least 5ms.
- */
-#define BATTERY_FREE_MIN_DELTA_US (5 * MSEC)
-static timestamp_t battery_last_i2c_time;
-
-static int is_battery_i2c(const int port, const uint16_t slave_addr_flags)
-{
- return (port == I2C_PORT_BATTERY)
- && (slave_addr_flags == BATTERY_ADDR_FLAGS);
-}
-
-static int is_battery_port(int port)
-{
- return (port == I2C_PORT_BATTERY);
-}
-
-void i2c_start_xfer_notify(const int port, const uint16_t slave_addr_flags)
-{
- unsigned int time_delta_us;
-
- if (!is_battery_i2c(port, slave_addr_flags))
- return;
-
- time_delta_us = time_since32(battery_last_i2c_time);
- if (time_delta_us >= BATTERY_FREE_MIN_DELTA_US)
- return;
-
- usleep(BATTERY_FREE_MIN_DELTA_US - time_delta_us);
-}
-
-void i2c_end_xfer_notify(const int port, const uint16_t slave_addr_flags)
-{
- /*
- * The bus free time needs to be maintained from last transaction
- * on I2C bus to any device on it to the next transaction to battery.
- */
- if (!is_battery_port(port))
- return;
-
- battery_last_i2c_time = get_time();
-}
-
-/* Read CBI from i2c eeprom and initialize variables for board variants */
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) != EC_SUCCESS || val > UINT8_MAX)
- return;
- sku_id = val;
- CPRINTS("SKU: %d", sku_id);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C);
-
-static void board_init(void)
-{
- if(get_cbi_ssfc_charger() != SSFC_CHARGER_BQ25710)
- return;
-
- chg_chips[0].drv = &bq25710_drv;
- chg_chips[0].i2c_addr_flags = BQ25710_SMBUS_ADDR1_FLAGS;
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_INIT_I2C);
-
-static void set_input_limit_on_ac_removal(void)
-{
- if (extpower_is_present())
- return;
-
- if (get_cbi_ssfc_charger() != SSFC_CHARGER_BQ25710)
- return;
-
- charger_set_input_current_limit(0, CONFIG_CHARGER_INPUT_CURRENT);
-
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, set_input_limit_on_ac_removal, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- if (sku_id == 2)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
diff --git a/board/casta/board.h b/board/casta/board.h
deleted file mode 100644
index 934063c548..0000000000
--- a/board/casta/board.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Casta board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_TCPC_0_PS8751
-#define VARIANT_OCTOPUS_NO_SENSORS
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-#include "baseboard.h"
-
-#define CONFIG_LED_COMMON
-
-/* USB PD */
-#undef CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT
-/*
- * This board configures two chargers, one of which can measure VBUS and one of
- * which cannot. Leave the default config, which defines
- * CONFIG_USB_PD_VBUS_MEASURE_CHARGER.
- */
-
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-
-/*
- * Don't allow the system to boot to S0 when the battery is low and unable to
- * communicate on locked systems (which haven't PD negotiated).
- */
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT 15000
-
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 15001
-
-/*
- * Allow an additional second during power button init to let PD negotiation
- * complete when we have no battery and need to meet
- * CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON. SKUs which do not have a TCPC on
- * port 1 will take slightly longer to complete negotiation while the PD1 task
- * attempts to communicate with its TCPC before suspending.
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 2
-
-/* Keyboard Backlight is unconnected in casta proto */
-#undef CONFIG_PWM
-#undef CONFIG_PWM_KBLIGHT
-
-/* All casta systems are clamshells */
-#undef CONFIG_TABLET_MODE
-
-/* TODO(b/119872005): Casta: confirm thermistor parts */
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* Battery W/A */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 6144
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_I2C_XFER_BOARD_CALLBACK
-
-/* The board needs 100ms for VBUS_C[0|1]_BC12 to drop to lower VvbusUVLO */
-#undef CONFIG_BC12_MAX14637_DELAY_FROM_OFF_TO_ON_MS
-#define CONFIG_BC12_MAX14637_DELAY_FROM_OFF_TO_ON_MS 100
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/casta/build.mk b/board/casta/build.mk
deleted file mode 100644
index 3d04b75731..0000000000
--- a/board/casta/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/casta/ec.tasklist b/board/casta/ec.tasklist
deleted file mode 100644
index ac41d643dc..0000000000
--- a/board/casta/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/casta/gpio.inc b/board/casta/gpio.inc
deleted file mode 100644
index e37926b72e..0000000000
--- a/board/casta/gpio.inc
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-/*
- * High-to-low transition on POWER_BUTTON_L is treated as a wake event from
- * hibernate. Absence of GPIO_HIB_WAKE_HIGH flag is treated as wake on
- * high-to-low edge.
- */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* NC */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_INPUT | GPIO_PULL_DOWN) /* NC */
-
-GPIO(USB_C0_PD_RST_ODL, PIN(8, 3), GPIO_ODR_HIGH) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_RED_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(BAT_LED_GREEN_L, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(PWR_LED_BLUE_L, PIN(D, 7), GPIO_OUT_HIGH)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-/* Not implemented in hardware */
-UNIMPLEMENTED(KB_BL_PWR_EN)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Misc. */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/casta/led.c b/board/casta/led.c
deleted file mode 100644
index 514ec096a5..0000000000
--- a/board/casta/led.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Casta
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Casta : There are 3 leds for AC, Battery and Power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- if (color == EC_LED_COLOR_BLUE)
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- }
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- /* Battery leds must be turn off when blue led is on
- * because casta has 3-in-1 led.
- */
- if(!gpio_get_level(GPIO_PWR_LED_BLUE_L))
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- return;
- }
-
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL); /*green*/
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_BAT_LED_RED_L, !brightness[EC_LED_COLOR_RED]);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/casta/vif_override.xml b/board/casta/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/casta/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/cerise/battery.c b/board/cerise/battery.c
deleted file mode 100644
index 50d2bf397c..0000000000
--- a/board/cerise/battery.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C235] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWRc3KA",
- .device_name = "C235-41",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x0c,
- .disconnect_val = 0x0c,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C235;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/cerise/board.c b/board/cerise/board.c
deleted file mode 100644
index 78ab8f6de8..0000000000
--- a/board/cerise/board.c
+++ /dev/null
@@ -1,474 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = board_set_active_charge_port(port);
- if (ret)
- return ret;
- force_discharge = enable;
-
- return charger_discharge_on_ac(enable);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-
- /* Enable USM mode */
- ioex_set_level(IOEX_5V_DC_DC_MODE_CTRL, 1);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_standard_ref = {
- {0, FLOAT_TO_FP(-1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(1), 0, 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* sensor private data */
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition, 5V DC-DC ctrl */
-static void board_chipset_resume(void)
-{
- /* Enable USM mode */
- ioex_set_level(IOEX_5V_DC_DC_MODE_CTRL, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Enable Normal mode */
- ioex_set_level(IOEX_5V_DC_DC_MODE_CTRL, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return board_get_version() == 1 ? 2 : 1;
-}
diff --git a/board/cerise/board.h b/board/cerise/board.h
deleted file mode 100644
index 5cf8c06f01..0000000000
--- a/board/cerise/board.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-/* TODO(b:135086465) led implementation */
-#undef CONFIG_LED_COMMON
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#undef I2C_BITBANG_PORT_COUNT
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-#define CONFIG_LED_COMMON
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 2
-#define I2C_PORT_CHARGER board_get_charger_i2c()
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_C235,
- BATTERY_TYPE_COUNT,
-};
-
-enum BOARD_SKU_ID {
- BOARD_SKU_ID_UNKNOWN = -1,
- BOARD_SKU_ID_REV0 = 0,
- BOARD_SKU_ID_REV1 = 1,
- BOARD_SKU_ID_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger */
-int board_get_charger_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/cerise/build.mk b/board/cerise/build.mk
deleted file mode 100644
index a6e1c010d7..0000000000
--- a/board/cerise/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/cerise/ec.tasklist b/board/cerise/ec.tasklist
deleted file mode 100644
index 36be2e96a4..0000000000
--- a/board/cerise/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, 1024) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/cerise/gpio.inc b/board/cerise/gpio.inc
deleted file mode 100644
index d7d5b9837d..0000000000
--- a/board/cerise/gpio.inc
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- bmi160_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-IOEX(BAT_LED_WHITE_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
-IOEX(BAT_LED_AMBER_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-IOEX(5V_DC_DC_MODE_CTRL, EXPIN(0, 0, 7), GPIO_OUT_LOW)
-
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/cerise/led.c b/board/cerise/led.c
deleted file mode 100644
index 53bec5bf05..0000000000
--- a/board/cerise/led.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Damu
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "hooks.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/cerise/vif_override.xml b/board/cerise/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/cerise/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/cherry/battery.c b/board/cherry/battery.c
deleted file mode 100644
index 72daf4966d..0000000000
--- a/board/cherry/battery.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* Panasonic AP16L5J Battery Information */
- [BATTERY_PANASONIC_AC16L5J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- [BATTERY_PANASONIC_AC16L5J_KT00205009] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00205009",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP16L8J */
- [BATTERY_AP16L8J] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0020G010",
- .device_name = "AP16L8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7500, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC16L5J;
diff --git a/board/cherry/board.c b/board/cherry/board.c
deleted file mode 100644
index 8e456e2c80..0000000000
--- a/board/cherry/board.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright 2021 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.
- */
-/* Cherry board configuration */
-
-#include "common.h"
-#include "console.h"
-#include "driver/accel_bma422.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/accelgyro_icm42607.h"
-#include "driver/accelgyro_icm_common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "motion_sense.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Sensor */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct icm_drv_data_t g_icm42607_data;
-static struct kionix_accel_data g_kx022_data;
-static struct accelgyro_saved_data_t g_bma422_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm42607_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = ICM42607_ACCEL_MIN_FREQ,
- .max_frequency = ICM42607_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm42607_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = ICM42607_GYRO_MIN_FREQ,
- .max_frequency = ICM42607_GYRO_MAX_FREQ,
- },
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t bma422_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA422,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma4_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma422_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA4_I2C_ADDR_PRIMARY,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA4_ACCEL_MIN_FREQ,
- .max_frequency = BMA4_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, enough for laptop. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-static void board_update_motion_sensor_config(void)
-{
- if (system_get_board_version() >= 2) {
- motion_sensors[LID_ACCEL] = bma422_lid_accel;
- ccprints("LID ACCEL is BMA422");
- } else {
- ccprints("LID ACCEL is KX022");
- }
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable motion sensor interrupt */
- gpio_enable_interrupt(GPIO_BASE_IMU_INT_L);
- gpio_enable_interrupt(GPIO_LID_ACCEL_INT_L);
-
- /* Disable PWM_CH_LED2(Green) for unuse */
- pwm_enable(PWM_CH_LED2, 0);
-
- board_update_motion_sensor_config();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/cherry/board.h b/board/cherry/board.h
deleted file mode 100644
index 9db5042085..0000000000
--- a/board/cherry/board.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright 2021 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.
- */
-/* Cherry board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* Chipset config */
-#define CONFIG_BRINGUP
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED
-#define CONFIG_LTO
-
-/*
- * TODO: Remove this option once the VBAT no longer keeps high when
- * system's power isn't presented.
- */
-#define CONFIG_IT83XX_RESET_PD_CONTRACT_IN_BRAM
-
-/* BC12 */
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* PD / USB-C / PPC */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-
-/* Optional console commands */
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_STACKOVERFLOW
-
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 9000
-
-/* Keyboard */
-#define GPIO_EN_KEYBOARD_BACKLIGHT GPIO_EN_KB_BL
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Sensor */
-#define CONFIG_GMR_TABLET_MODE
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* ICM426XX Base accel/gyro */
-#define CONFIG_ACCELGYRO_ICM42607
-#define CONFIG_ACCELGYRO_ICM42607_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* KX022 Lid accel */
-#define CONFIG_ACCEL_KX022
-
-/* BMA422 Lid accel */
-#define CONFIG_ACCEL_BMA4XX
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-/* SPI / Host Command */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* USB-A */
-#define USBA_PORT_COUNT 1
-
-/* Temperature */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_PANASONIC_AC16L5J,
- BATTERY_PANASONIC_AC16L5J_KT00205009,
- BATTERY_AP16L8J,
- BATTERY_LGC_AP18C8K,
- BATTERY_TYPE_COUNT,
-};
-
-enum sensor_id {
- BASE_ACCEL = 0,
- BASE_GYRO,
- LID_ACCEL,
- SENSOR_COUNT,
-};
-
-int board_accel_force_mode_mask(void);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/cherry/build.mk b/board/cherry/build.mk
deleted file mode 100644
index 0b0569c6d8..0000000000
--- a/board/cherry/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-
-# the IC is ITE IT8xxx2
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202bx_1024
-BASEBOARD:=cherry
-
-board-y+=led.o battery.o board.o
diff --git a/board/cherry/ec.tasklist b/board/cherry/ec.tasklist
deleted file mode 100644
index f9050fef87..0000000000
--- a/board/cherry/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(DPS, dps_task, NULL, 1280) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, 1024) \
-
diff --git a/board/cherry/gpio.inc b/board/cherry/gpio.inc
deleted file mode 100644
index bf3a3a3210..0000000000
--- a/board/cherry/gpio.inc
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH | GPIO_PULL_UP |
- GPIO_HIB_WAKE_HIGH, power_button_interrupt) /* GSC_EC_PWR_BTN_ODL */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(J, 7), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Chipset interrupts */
-GPIO_INT(AP_EC_WARM_RST_REQ, PIN(D, 3), GPIO_INT_RISING | GPIO_SEL_1P8V,
- chipset_reset_request_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- chipset_watchdog_interrupt)
-GPIO_INT(AP_IN_SLEEP_L, PIN(F, 2),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PMIC_EC_PWRGD, PIN(F, 3),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_IMU_INT_L, PIN(M, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- icm42607_interrupt)
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(D, 1), GPIO_INT_BOTH, ppc_interrupt)
-#ifdef BOARD_CHERRY
-GPIO_INT(USB_C0_BC12_INT_ODL,PIN(J, 4), GPIO_INT_FALLING, bc12_interrupt)
-#else /* TOMATO */
-GPIO_INT(USB_C0_BC12_INT_ODL,PIN(I, 5), GPIO_INT_FALLING, bc12_interrupt)
-#endif
-GPIO_INT(USB_C1_INT_ODL, PIN(B, 2), GPIO_INT_FALLING, rt1718s_tcpc_interrupt)
-/* TODO: not used in other devices? */
-GPIO(LID_ACCEL_INT_L, PIN(M, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V)
-
-/* Volume button interrupts */
-GPIO_INT(VOLUME_DOWN_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(VOLUME_UP_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-
-/* Other interrupts */
-GPIO_INT(AC_PRESENT, PIN(E, 5), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- extpower_interrupt) /* AC_OK / AC_PRESENT in rev1+ */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING,
- uart_deepsleep_interrupt) /* UART_DEBUG_TX_EC_RX */
-GPIO_INT(WP, PIN(I, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- switch_interrupt) /* EC_FLASH_WP_OD */
-GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING,
- spi_event) /* SPI slave Chip Select -- AP_SPI_EC_CS_L */
-#ifndef BOARD_CHERRY
-GPIO_INT(AP_XHCI_INIT_DONE, PIN(J, 5), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- usb_a0_interrupt)
-#endif
-
-/* Power Sequencing Signals */
-GPIO(EC_PMIC_EN_ODL, PIN(D, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_PMIC_WATCHDOG_L, PIN(H, 0), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_HIGH)
-GPIO(PG_MT6315_PROC_B_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(PG_MT6360_ODL, PIN(F, 1), GPIO_INPUT)
-GPIO(EN_SLP_Z, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(B, 6), GPIO_ODR_LOW)
-GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_INT_ODL */
-
-/* USB and USBC Signals */
-GPIO(DP_PATH_SEL, PIN(G, 0), GPIO_OUT_HIGH)
-/* TODO: Turn off in S3 */
-GPIO(DP_DEMUX_EN, PIN(G, 1), GPIO_OUT_HIGH)
-GPIO(EC_AP_DP_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_USB_A0_VBUS_X,PIN(B, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_DP_IN_HPD, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_DP_IN_HPD, PIN(J, 1), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS_EN, PIN(F, 0), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EN_KB_BL, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT)
-GPIO(EN_EC_ID_ODL, PIN(H, 5), GPIO_ODR_LOW)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(EN_5V_USM, PIN(G, 3), GPIO_OUT_LOW)
-GPIO(USB_A0_FAULT_ODL, PIN(J, 6), GPIO_INPUT)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT) /* I2C_CHG_BATT_SCL */
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT) /* I2C_CHG_BATT_SDA */
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SCL */
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SDA */
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT) /* I2C_USB_C0_SDA */
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT) /* I2C_USB_C1_SCL */
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT) /* I2C_USB_C1_SDA */
-GPIO(I2C_F_SCL, PIN(A, 4), GPIO_INPUT) /* Rev 2+ I2C_PROG_SCL */
-GPIO(I2C_F_SDA, PIN(A, 5), GPIO_INPUT) /* Rev 2+ I2C_PROG_SDA */
-GPIO(I2C_H_SCL, PIN(H, 1), GPIO_INPUT) /* Rev 0,1 I2C_PROG_SCL */
-GPIO(I2C_H_SDA, PIN(H, 2), GPIO_INPUT) /* Rev 0,1 I2C_PROG_SDA */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C B */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C */
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, 0b1111), 1, MODULE_PWM, 0) /* PWM 0,1,2,3 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(I, 0xCF), 0, MODULE_ADC, 0) /* ADC 0,1,2,3,6,7 */
-
-/* SPI */
-ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI */
-
-/* Unimplemented Pins */
-GPIO(PG_PP5000_S5_OD, PIN(D, 2), GPIO_INPUT)
-GPIO(EC_GSC_PACKET_MODE, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-/* *_ODL pin has external pullup so don't pull it down. */
-GPIO(PG_MT6315_GPU_ODL, PIN(H, 6), GPIO_INPUT)
-/* reserved for future use */
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-/*
- * ADC pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-#ifdef BOARD_CHERRY
-GPIO(NC_GPI5, PIN(I, 5), GPIO_OUT_LOW)
-#endif
-/* NC pins, enable internal pull-up/down to avoid floating state. */
-GPIO(NC_GPM6, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(SPI_CLK_GPG6, PIN(G, 6), GPIO_INPUT | GPIO_PULL_UP)
-/*
- * These 4 pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(SPI_MOSI_GPG4, PIN(G, 4), GPIO_OUT_LOW)
-GPIO(SPI_MISO_GPG5, PIN(G, 5), GPIO_OUT_LOW)
-GPIO(SPI_CS_GPG7, PIN(G, 7), GPIO_OUT_LOW)
-
-/* Other unused pins */
-GPIO(PWM7, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_NVME_PLN_ODL, PIN(D, 7), GPIO_INPUT)
-GPIO(NVME_EC_PLA_S3_ODL, PIN(I, 7), GPIO_INPUT)
-GPIO(EN_PP2500_NVME_X, PIN(J, 2), GPIO_INPUT)
-GPIO(EN_PP1200_NVME_X, PIN(J, 3), GPIO_INPUT)
-GPIO(PG_NVME_OD, PIN(H, 3), GPIO_INPUT)
-
diff --git a/board/cherry/led.c b/board/cherry/led.c
deleted file mode 100644
index 43c4e45b86..0000000000
--- a/board/cherry/led.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "pwm.h"
-
-#define LED_OFF_LVL 0
-#define LED_ON_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED1, LED_ON_LVL);
- pwm_enable(PWM_CH_LED3, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- pwm_enable(PWM_CH_LED1, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED3, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- pwm_enable(PWM_CH_LED1, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED3, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else
- led_set_color_battery(LED_OFF);
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/cherry/vif_override.xml b/board/cherry/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/cherry/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/cherry_scp/board.h b/board/cherry_scp/board.h
deleted file mode 100644
index a698ff2bb3..0000000000
--- a/board/cherry_scp/board.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Cherry SCP configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/*
- * RW only, no flash
- * +-------------------- 0x0
- * | ROM vectortable, .text, .rodata, .data LMA
- * +-------------------- 0x58000
- * | RAM .bss, .data
- * +-------------------- 0xbfc00
- * | Reserved (padding for 1k-alignment)
- * +-------------------- 0xbfdb0
- * | IPI shared buffer with AP (288 + 8) * 2
- * +-------------------- 0xc0000
- */
-#define CONFIG_ROM_BASE 0x0
-#define CONFIG_RAM_BASE 0x68000
-#define CONFIG_ROM_SIZE (CONFIG_RAM_BASE - CONFIG_ROM_BASE)
-#define CONFIG_RAM_SIZE ((CONFIG_IPC_SHARED_OBJ_ADDR & (~(0x400 - 1))) - \
- CONFIG_RAM_BASE)
-
-#define SCP_FW_END 0xc0000
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/cherry_scp/build.mk b/board/cherry_scp/build.mk
deleted file mode 100644
index 0d6c33755f..0000000000
--- a/board/cherry_scp/build.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=mt_scp
-CHIP_VARIANT:=mt8195
-BASEBOARD:=mtscp-rv32i
diff --git a/board/cherry_scp/ec.tasklist b/board/cherry_scp/ec.tasklist
deleted file mode 100644
index f0e97e0ffe..0000000000
--- a/board/cherry_scp/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(VDEC_SERVICE, vdec_service_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(VDEC_CORE_SERVICE, vdec_core_service_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(VENC_SERVICE, venc_service_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MDP_SERVICE, mdp_service_task, NULL, TRENTA_TASK_STACK_SIZE)
diff --git a/board/cherry_scp/gpio.inc b/board/cherry_scp/gpio.inc
deleted file mode 100644
index 48b397b9a9..0000000000
--- a/board/cherry_scp/gpio.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
diff --git a/board/chocodile_vpdmcu/board.c b/board/chocodile_vpdmcu/board.c
deleted file mode 100644
index b3e49fc547..0000000000
--- a/board/chocodile_vpdmcu/board.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* chocodile board configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "registers.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpc.h"
-#include "util.h"
-#include "vpd_api.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= 1 << 0;
-}
-
-#include "gpio_list.h"
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Do nothing */
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_VCONN_VSENSE] = {
- "VCONN_VSENSE", 3000, 4096, 0, STM32_AIN(ADC_VCONN_VSENSE)},
- [ADC_CC_VPDMCU] = {
- "CC_VPDMCU", 3000, 4096, 0, STM32_AIN(ADC_CC_VPDMCU)},
- [ADC_CC_RP3A0_RD_L] = {
- "CC_RP3A0_RD_L", 3000, 4096, 0, STM32_AIN(ADC_CC_RP3A0_RD_L)},
- [ADC_RDCONNECT_REF] = {
- "RDCONNECT_REF", 3000, 4096, 0, STM32_AIN(ADC_RDCONNECT_REF)},
- [ADC_CC1_RP3A0_RD_L] = {
- "CC1_RP1A5_ODH", 3000, 4096, 0, STM32_AIN(ADC_CC1_RP3A0_RD_L)},
- [ADC_CC2_RP3A0_RD_L] = {
- "CC2_RP1A5_ODH", 3000, 4096, 0, STM32_AIN(ADC_CC2_RP3A0_RD_L)},
- [ADC_HOST_VBUS_VSENSE] = {
- "HOST_VBUS_VSENSE", 3000, 4096, 0, STM32_AIN(ADC_HOST_VBUS_VSENSE)},
- [ADC_CHARGE_VBUS_VSENSE] = {
- "CHARGE_VBUS_VSENSE", 3000, 4096, 0, STM32_AIN(ADC_CHARGE_VBUS_VSENSE)},
- [ADC_CC1_RPUSB_ODH] = {
- "CC1_RPUSB_ODH", 3000, 4096, 0, STM32_AIN(ADC_CC1_RPUSB_ODH)},
- [ADC_CC2_RPUSB_ODH] = {
- "CC2_RPUSB_ODH", 3000, 4096, 0, STM32_AIN(ADC_CC2_RPUSB_ODH)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-void tcpc_alert_clear(int port)
-{
- /* Do nothing */
-}
diff --git a/board/chocodile_vpdmcu/board.h b/board/chocodile_vpdmcu/board.h
deleted file mode 100644
index 552f00aa09..0000000000
--- a/board/chocodile_vpdmcu/board.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* chocodile_mcu board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * The console task is too big to include in both RO and RW images. Therefore,
- * if the console task is defined, then only build an RW image. This can be
- * useful for debugging to have a full console. Otherwise, without this task,
- * a full RO and RW is built with a limited one-way output console.
- */
-#ifdef HAS_TASK_CONSOLE
-/*
- * The flash size is only 32kB.
- * No space for 2 partitions,
- * put only RW at the beginning of the flash
- */
-#undef CONFIG_FW_INCLUDE_RO
-#undef CONFIG_RW_MEM_OFF
-#define CONFIG_RW_MEM_OFF 0
-#undef CONFIG_RO_SIZE
-#define CONFIG_RO_SIZE 0
-/* Fake full size if we had a RO partition */
-#undef CONFIG_RW_SIZE
-#define CONFIG_RW_SIZE CONFIG_FLASH_SIZE_BYTES
-#endif /* HAS_TASK_CONSOLE */
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART1 (PA9/PA10) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-
-/* Optional features */
-#undef CONFIG_USB_PD_CONSOLE_CMD
-#undef CONFIG_USB_PD_HOST_CMD
-#undef CONFIG_CMD_PD
-#undef CONFIG_USBC_VCONN
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-#define CONFIG_ADC_SAMPLE_TIME STM32_ADC_SMPR_41_5_CY
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_COMMON_GPIO_SHORTNAMES
-#undef CONFIG_DEBUG_ASSERT
-#define CONFIG_FORCE_CONSOLE_RESUME
-#define CONFIG_HIBERNATE
-#undef CONFIG_HOSTCMD_EVENTS
-#define CONFIG_HW_CRC
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_STM_HWTIMER32
-#undef CONFIG_TASK_PROFILING
-#undef CONFIG_UART_TX_BUF_SIZE
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-#define CONFIG_UART_TX_BUF_SIZE 128
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_VBUS_DETECT_NONE
-#define CONFIG_USB_PD_TCPM_STUB
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_REV30
-#define CONFIG_USB_PD_TCPMV2
-#define CONFIG_USB_CTVPD
-#define CONFIG_USB_PD_DECODE_SOP
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_VBOOT_HASH
-#define CONFIG_WATCHDOG
-#undef CONFIG_WATCHDOG_HELP
-
-#define CONFIG_USB_PID 0x5036
-#define VPD_HW_VERSION 0x0001
-#define VPD_FW_VERSION 0x0001
-
-/* USB bcdDevice */
-#define USB_BCD_DEVICE 0
-
-/* Charge Through Current */
-#define VPD_CT_CURRENT VPD_CT_CURRENT_3A
-
-/* Vbus impedance in milliohms */
-#define VPD_VBUS_IMPEDANCE 65
-
-/* GND impedance in milliohms */
-#define VPD_GND_IMPEDANCE 33
-
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-/*
- * TODO(crosbug.com/p/50519): Remove CONFIG_SYSTEM_UNLOCKED prior to building
- * MP FW.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifdef HAS_TASK_CONSOLE
-#undef CONFIG_CONSOLE_HISTORY
-#define CONFIG_CONSOLE_HISTORY 2
-
-#else
-#undef CONFIG_CONSOLE_CMDHELP
-#define CONFIG_DEBUG_PRINTF
-#define UARTN CONFIG_UART_CONSOLE
-#define UARTN_BASE STM32_USART_BASE(CONFIG_UART_CONSOLE)
-#endif /* HAS_TASK_CONSOLE */
-
-/* Use PSTATE embedded in the RO image, not in its own erase block */
-#undef CONFIG_FLASH_PSTATE_BANK
-#undef CONFIG_FW_PSTATE_SIZE
-#define CONFIG_FW_PSTATE_SIZE 0
-
-/* Include math_util for bitmask_uint64 used in pd_timers */
-#define CONFIG_MATH_UTIL
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-#include "gpio_signal.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_VCONN_VSENSE = 0,
- ADC_CC_VPDMCU,
- ADC_CC_RP3A0_RD_L,
- ADC_RDCONNECT_REF,
- ADC_CC1_RP3A0_RD_L,
- ADC_CC2_RP3A0_RD_L,
- ADC_HOST_VBUS_VSENSE,
- ADC_CHARGE_VBUS_VSENSE,
- ADC_CC1_RPUSB_ODH,
- ADC_CC2_RPUSB_ODH,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/* 1.5A Rp */
-#define PD_SRC_VNC PD_SRC_1_5_VNC_MV
-#define PD_SRC_RD_THRESHOLD PD_SRC_1_5_RD_THRESH_MV
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/chocodile_vpdmcu/build.mk b/board/chocodile_vpdmcu/build.mk
deleted file mode 100644
index d4e5f58962..0000000000
--- a/board/chocodile_vpdmcu/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F051K8U6TR
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f05x
-
-board-y=board.o vpd_api.o
-#
-# This target builds RW only. Therefore, remove RO from dependencies.
-all_deps=$(patsubst ro,,$(def_all_deps))
diff --git a/board/chocodile_vpdmcu/chocodile.html b/board/chocodile_vpdmcu/chocodile.html
deleted file mode 100644
index b38edf94ec..0000000000
--- a/board/chocodile_vpdmcu/chocodile.html
+++ /dev/null
@@ -1,9491 +0,0 @@
-<!DOCTYPE html>
-<html lang="en"><head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABIAQMAAABvIyEEAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAFdJREFUKM9jYGBg+A+EEEANFvN/EDgAZMmDWT+ALHsw6w+QVQ9m/UNh/YcAXCyo6VRiAc38D8ZUYoH9/R9qBxVYNHAfVcOPQGxhi19E7CNSBCKVUDf9AQBM1TcCCjMB0AAAAABJRU5ErkJggg=="/>
-<title>chocodile/chocodile.cpm - 71311de5a6455abe5b4ca313ec5effaddaf8dff7</title>
-<body>
-<script>/* Javascript code for DiffUI. Directly embedded. */
-
-var zoom = 1;
-var dark = null;
-
-/** Activates or deactivates animations referenced by diff id.
- * classname -- used to select which animations to trigger
- * state -- whether to animate (or reset)
- * conflictswith -- classname this diff conflicts with.
- * Conflicting animations will not be started.
- */
-var setAnimation = function(classname, state, conflictswith='') {
- var anims = document.getElementsByClassName(classname);
- for (var i = 0; i < anims.length; i++) {
- anims[i].setAttribute('fill', 'freeze');
- anims[i].setAttribute('dur', state ? '1s': 'indefinite');
- if (conflictswith) {
- var attr = anims[i].getAttribute('attr');
- var siblings = anims[i].parentElement.children;
- for (var j = 0; j < siblings.length; j++) {
- if (siblings[j].classList.contains(conflictswith)
- && attr === siblings[j].getAttribute('attr'))
- break;
- }
- if (j !== siblings.length)
- continue;
- }
- anims[i].beginElement();
- }
-};
-
-/** Callback for when a diff checkbox is clicked.
- * Animates the diff and, if checked, unsets any conflicting diffs.
- */
-var onDiffClick = function(target) {
- setAnimation(target.name, target.checked);
- if (!target.checked)
- return;
- var row = target;
- var td = undefined;
- while (row.tagName !== 'TR') {
- td = row;
- row = row.parentElement;
- }
- for (var i = 0; i < row.children.length; i++) {
- if (row.children[i] === td)
- continue;
- var checkboxes = row.children[i].getElementsByTagName('input');
- for (var j = 0; j < checkboxes.length; j++) {
- if (checkboxes[j].checked) {
- checkboxes[j].checked = false;
- setAnimation(checkboxes[j].name, false, target.name);
- }
- }
- }
-};
-
-/** Handles restarting animations when a page header is held down.
- * Also updates the history to include the page number.
- */
-var onHeaderMouse = function(evt, down) {
- pushHash(evt.target.parentElement.id);
- for (var tag in {animate:0, animateTransform:0}) {
- var anims = evt.target.parentElement.getElementsByTagName(tag);
- for (var i = 0; i < anims.length; i++) {
- var hasattr = anims[i].hasAttribute('oldDur');
- if (down && !hasattr) {
- var olddur = anims[i].getAttribute('dur');
- if (olddur === null || olddur === 'indefinite')
- continue;
- anims[i].setAttribute('oldDur', olddur);
- anims[i].setAttribute('dur', 'indefinite');
- } else if (!down && hasattr) {
- anims[i].setAttribute('dur', anims[i].getAttribute('oldDur'));
- anims[i].removeAttribute('oldDur');
- } else {
- continue;
- }
- anims[i].beginElement();
- }
- }
-};
-
-/** Callback on clicking the expand button for lists of diffs.
- */
-var onExpandClick = function(target) {
- var show = target.value === '+';
- var row = target;
- var func = (function(e){
- if (show) {
- e.removeAttribute('hidden');
- } else {
- e.setAttribute('hidden', null);
- }
- });
- while (row.tagName !== 'TR')
- row = row.parentElement;
- for (var i = 1; i < row.children.length; i++)
- func(row.children[i]);
- while (row = row.nextElementSibling) {
- if (row.getElementsByTagName('th').length)
- break;
- func(row);
- }
- target.value = (show ? '-' : '+');
-};
-
-/** Validation function to ensure conflicts have been resolved.
- */
-var onSubmit = function() {
- var rows = document.getElementsByClassName('conflict');
- for (var i = 0; i < rows.length; i++) {
- var checks = rows[i].getElementsByTagName('input');
- for (var j = 0; j < checks.length; j++) {
- if (checks[j].checked)
- break;
- }
- if (j === checks.length) {
- return confirm(
- 'Some conflicts do not have any changes selected.\n'
- + 'Unselected changes will be abandoned entirely.\n'
- + '\n'
- + 'Accept anyway?'
- );
- }
- }
- return true;
-};
-
-/** Callback function when clicking on an instance.
- * Updates the location with the instance's path.
- */
-var onInstanceClick = function(target) {
- while (target && !target.id)
- target = target.parentElement;
- if (target) {
- // If this is the only instance of this refdes, strip the symbol suffix
- var refdes = target.id.split('.')[0];
- if (document.querySelectorAll("[id^='" + refdes + ".']").length > 1) {
- pushHash(target.id);
- } else {
- pushHash(refdes);
- }
- if (target.classList.contains('highlight')) {
- highlight();
- } else {
- highlight(target);
- }
- }
-};
-
-/** Updates the back/forward history with a new target (if not redundant).
- */
-var pushHash = function(target) {
- window.history.replaceState(null, '', '#' + target);
-};
-
-/** Highlights an element and removes other highlights.
- */
-var highlight = function(elem, scroll) {
- // Remove old highlights
- var highlighted = document.getElementsByClassName('highlight');
- for (var i = 0; i < highlighted.length; i++) {
- if (highlighted[i] !== elem) {
- highlighted[i].classList.remove('highlight');
- }
- }
- if (elem) {
- elem.classList.add('highlight');
- if (scroll) {
- // Only scroll if the midpoint of element is not currently visible
- var box = elem.getBoundingClientRect();
- var midX = box.left + box.width / 2;
- var midY = box.top + box.height / 2;
- if (midX < 0 || midX > window.innerWidth ||
- midY < 0 || midY > window.innerHeight) {
- elem.scrollIntoView({block: 'center', inline: 'center'});
- }
- }
- }
-};
-
-/** Flips between light and dark color schemes.
- */
-var invert = function() {
- if (dark === null) {
- // Grab the current color scheme
- var svgs = document.getElementsByTagName('svg');
- if (svgs.length && svgs[0].style['background-color'] === 'black') {
- dark = true;
- } else if (svgs.length && svgs[0].style['background-color'] === 'white') {
- dark = false;
- } else {
- return;
- }
- }
- dark = !dark;
- var bgcolor = dark ? 'black' : 'white';
- // For readability, some colors are tweaked in dark vs light schematics
- var colormap = {
- black: 'white',
- green: 'lime',
- goldenrod: 'yellow',
- darkviolet: 'violet',
- dodgerblue: 'skyblue',
- deeppink: 'pink',
- }
- // Invert the table for light mode
- if (!dark) {
- var rev = {};
- for (var key in colormap)
- rev[colormap[key]] = key;
- colormap = rev;
- }
- // Update colors
- var applyMap = function(elem) {
- for (var attr in {stroke:0, fill:0}) {
- var color = elem.getAttribute(attr);
- if (color in colormap)
- elem.setAttribute(attr, colormap[color]);
- }
- for (var i = 0; i < elem.children.length; i++) {
- applyMap(elem.children[i]);
- }
- };
- var svgs = document.getElementsByTagName('svg');
- for (var i = 0; i < svgs.length; i++) {
- // If the bgcolor is already correct, the pages are out of sync. Skip it.
- if (svgs[i].style['background-color'] === bgcolor) {
- continue;
- }
- svgs[i].style['background-color'] = bgcolor;
- applyMap(svgs[i]);
- }
-};
-
-/** Navigates to the referenced target when back/forward are hit.
- */
-window.onpopstate = function(evt) {
- var refdes = window.location.hash.replace('#', '').toUpperCase();
- if (!refdes)
- return;
- var elem = document.getElementById(refdes) ||
- document.getElementById(refdes.toLowerCase());
- if (elem) {
- highlight(elem, true);
- return;
- }
- // If there's no exact match, exclude symbol index and try again.
- var groups = document.getElementsByTagName('g');
- for (var i = 0; i < groups.length; i++) {
- if (groups[i].id.split('.')[0] === refdes) {
- highlight(groups[i], true);
- return;
- }
- }
-};
-
-/** Takes an element and linkifies it, applying a provided function to the text
- * contents to generate the link target.
- */
-var onTextClick = function(text, linkfunc) {
- while (text.lastChild)
- text = text.lastChild;
- var href = linkfunc(text.textContent.trim());
- if (href[0] === '#') {
- window.location.hash = href.substr(1);
- } else {
- window.open(href);
- }
-};
-
-/** General mousemove handler.
- * Used to upgrade clickable things to links without slowing down initial load
- * time.
- */
-window.onmousemove = function(evt) {
- var target = evt.target;
- if (target.tagname === 'tspan')
- target = target.parentElement;
- if (target.tagName === 'text') {
- var propname = target.getElementsByTagName('title');
- propname = propname.length ? propname[0].textContent.replace('$', '') : '';
- if (propname === 'AGILE_PN' || propname.startsWith('XR')) {
- target.setAttribute('cursor', 'pointer');
- }
- }
-};
-
-/** General click handler. Dispatches as appropriate.
- */
-window.onclick = function(evt) {
- var target = evt.target;
- // Process inputs
- if (target.type === 'checkbox') {
- return onDiffClick(target);
- } else if (target.type === 'button') {
- return onExpandClick(target);
- }
- // Process text clicks
- // Clicking on tspan is the same as clicking on text
- if (target.tagname === 'tspan')
- target = target.parentElement;
- if (target.tagName === 'text') {
- var propname = target.getElementsByTagName('title');
- propname = propname.length ? propname[0].textContent.replace('$', '') : '';
- if (propname === 'AGILE_PN') {
- return onTextClick(target, function(t) {
- return 'https://goto.google.com/ee-part/G' + t.replace('G', '');
- });
- } else if (propname.startsWith('XR')) {
- return onTextClick(target, function(t) {
- return '#page' + parseInt(t);
- });
- }
- }
- // If it wasn't the above, find the ancestor with an id set (if any)
- while (target && !target.id)
- target = target.parentElement;
- if (!target)
- return;
- // If the ancestor is a g tag, it's an instance.
- if (target.tagName === 'g') {
- return onInstanceClick(target);
- }
-};
-
-/** General double-click handler. Dispatches as appropriate.
- */
-window.ondblclick = function(evt) {
- var target = evt.target;
- // Process text doubleclicks
- // Clicking on tspan is the same as clicking on text
- if (target.tagname === 'tspan')
- target = target.parentElement;
- if (target.tagName === 'text') {
- var propname = target.getElementsByTagName('title');
- propname = propname.length ? propname[0].textContent.replace('$', '') : '';
- // Double-clicking on net names triggers a search for the next one.
- if (propname === 'SIG_NAME' || propname === 'HDL_POWER') {
- while (target.lastChild)
- target = target.lastChild;
- window.find(target.textContent.trim(),
- true, false, true, true, false, true);
- return;
- }
- }
- // Double-clicking on random blank spaces will flip the colors.
- if (target.tagName === 'DIV' || target.tagName === 'HTML') {
- invert();
- return;
- }
-};
-
-/** Use css transform to scale the page instead of allowing the browser to zoom
- * and reflow. This is waaaaaay faster.
- * x, y -- point in client space to keep constant when zooming.
- * if not provided, assume middle of the window.
- */
-var setZoom = function(newZoom, x, y) {
- newZoom = Math.min(10, Math.max(0.5, newZoom));
- if (x === undefined) {
- x = window.innerWidth / 2;
- y = window.innerHeight / 2;
- }
- x += window.scrollX;
- y += window.scrollY;
- document.documentElement.style['transform-origin'] = '0 0';
- document.documentElement.style['transform'] = 'scale(' + newZoom + ')';
- window.scrollBy(x*(newZoom/zoom-1), y*(newZoom/zoom-1));
- zoom = newZoom;
-};
-
-/** Captures keydown events to capture zoom.
- */
-window.onkeydown = function(evt) {
- if (evt.ctrlKey && (evt.code === 'Equal' || evt.code === 'Plus')) {
- setZoom(zoom*1.1);
- evt.preventDefault();
- } else if (evt.ctrlKey && evt.code === 'Minus') {
- setZoom(zoom/1.1);
- evt.preventDefault();
- } else if (evt.ctrlKey && evt.code === 'Digit0') {
- setZoom(1);
- evt.preventDefault();
- }
-};
-
-/** Captures wheel events to capture zoom.
- * Note that this has to be added via addEventListener with {passive: true},
- * since browsers nowadays assume passivity for this event.
- */
-window.addEventListener("wheel", function(evt) {
- if (evt.ctrlKey) {
- // Dividing by 500 seems to make zoom rate about the same as keyboard
- setZoom(zoom * Math.exp(-evt.deltaY * (evt.deltaMode ? 120 : 1) / 500),
- evt.clientX, evt.clientY);
- evt.preventDefault();
- }
-}, {passive: false});
-
-/** Run on page load. Injects event handlers and other interface improvements.
- */
-window.onload = function() {
- // Inject header interactions
- var headers = document.getElementsByTagName('h1');
- for (var i = 0; i < headers.length; i++) {
- headers[i].addEventListener('mousedown', function(e){onHeaderMouse(e, 1)});
- headers[i].addEventListener('mouseup', function(e){onHeaderMouse(e, 0)});
- }
-
- // Trigger animations for alread-checked diffs
- var inputs = document.getElementsByTagName('input');
- for (var i = 0; i < inputs.length; i++) {
- if (inputs[i].type === 'checkbox' && inputs[i].checked)
- setAnimation(inputs[i].name, true);
- }
-
- // Now that everything's ready, try to scroll to the item requested in the URL
- window.onpopstate();
-};
-</script>
-<style>
-.highlight {
- filter: url(#highlight);
-}
-tr.conflict {
- background-color: tomato;
-}
-th.expander {
- text-align: left;
- white-space: nowrap;
-}
-th.expander input {
- font-family: mono;
-}
-</style>
-<div id="page1">
-<h1>chocodile/page1: TABLE OF CONTENTS</h1>
-<div>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0,-5500,8500,5500" width="14.87500in" height="9.62500in" font-family="monospace" font-size="47.000000" stroke-width="3" style="background-color:white">
-<symbol id="symbol:schottky.3:m:s" overflow="visible">
-<line x1="-125" y1="-82" x2="-125" y2="25"/>
-<line x1="-125" y1="-82" x2="125" y2="-82"/>
-<line x1="125" y1="-82" x2="125" y2="25"/>
-<line x1="-125" y1="25" x2="125" y2="25"/>
-<line x1="-25" y1="-50" x2="-75" y2="-50"/>
-<line x1="-25" x2="-50" y2="-50"/>
-<line x1="-25" x2="-75"/>
-<line x1="-50" y1="-50" x2="-75"/>
-<line x1="-25" y1="-51" x2="-25" y2="-40"/>
-<line x1="-25" y1="-40" x2="-28" y2="-40"/>
-<line x1="-75" y1="-51" x2="-75" y2="-59"/>
-<line x1="-75" y1="-59" x2="-72" y2="-59"/>
-<line x1="75" y1="-50" x2="25" y2="-50"/>
-<line x1="75" x2="50" y2="-50"/>
-<line x1="75" x2="25"/>
-<line x1="50" y1="-50" x2="25"/>
-<line x1="75" y1="-51" x2="75" y2="-40"/>
-<line x1="75" y1="-40" x2="72" y2="-40"/>
-<line x1="25" y1="-51" x2="25" y2="-59"/>
-<line x1="25" y1="-59" x2="28" y2="-59"/>
-<line x1="-50" y1="-50" x2="-50" y2="-64"/>
-<line x1="-50" y1="-64" x2="50" y2="-64"/>
-<line x1="50" y1="-64" x2="50" y2="-50"/>
-<line y1="-75" y2="-100"/>
-<line x1="-50" x2="-50" y2="25"/>
-<line x1="50" x2="50" y2="25"/>
-<line y1="-75" y2="-64"/>
-<line y1="-100" y2="-75"/>
-<line x1="50" y1="50" x2="50" y2="25"/>
-<line x1="-50" y1="50" x2="-50" y2="25"/>
-</symbol>
-<symbol id="symbol:synonym.1" overflow="visible">
-<line x1="-50" y1="25" x2="50" y2="25"/>
-<line x1="-50" y1="-25" x2="50" y2="-25"/>
-<line x1="-50" x2="50"/>
-</symbol>
-<symbol id="symbol:res.1:m" overflow="visible">
-<line x1="19" y1="6" x2="-22" y2="-14"/>
-<line x1="-23" y1="25" x2="19" y2="6"/>
-<line x1="-22" y1="-14" x2="18" y2="-34"/>
-<line x1="-22" y1="-54" x2="18" y2="-34"/>
-<line y1="36" x2="-23" y2="25"/>
-<line x1="18" y1="-74" x2="-22" y2="-54"/>
-<line y1="-84" x2="18" y2="-74"/>
-<line y1="-100" y2="-84"/>
-<line y1="50" y2="36"/>
-</symbol>
-<symbol id="symbol:vdd_bar_generic.1" overflow="visible">
-<line x1="25" x2="75"/>
-<line x1="50" x2="50" y2="50"/>
-</symbol>
-<symbol id="symbol:esd_array.1" overflow="visible">
-<line x1="125" y1="125" x2="-125" y2="125"/>
-<line x1="125" y1="125" x2="125" y2="-125"/>
-<line x1="-125" y1="125" x2="-125" y2="-125"/>
-<line x1="-125" y1="-125" x2="125" y2="-125"/>
-<line x1="-150" y1="100" x2="-125" y2="100"/>
-<line x1="-100" y1="50" x2="-50" y2="50"/>
-<line x1="50" y1="50" x2="100" y2="50"/>
-<line x1="-100" y1="75" x2="-50" y2="75"/>
-<line x1="50" y1="75" x2="100" y2="75"/>
-<line x1="-100" y1="-75" x2="-50" y2="-75"/>
-<line x1="100" y1="-75" x2="50" y2="-75"/>
-<line x1="-50" y1="-50" x2="-100" y2="-50"/>
-<line x1="50" y1="-50" x2="100" y2="-50"/>
-<line x1="-25" y1="-25" x2="25" y2="-25"/>
-<line x1="-75" y1="50" x2="-75" y2="-50"/>
-<line x1="75" y1="50" x2="75" y2="-50"/>
-<line x1="-25" x2="25"/>
-<line y2="150"/>
-<line x1="150" x2="75"/>
-<line y1="-150" y2="-25"/>
-<line y1="-25" x2="25"/>
-<line y1="-25" x2="-25"/>
-<line x1="75" y1="-100" x2="75" y2="-75"/>
-<line x1="75" y1="-75" x2="100" y2="-50"/>
-<line x1="75" y1="-75" x2="50" y2="-50"/>
-<line x1="-75" y1="-75" x2="-50" y2="-50"/>
-<line x1="-75" y1="-75" x2="-100" y2="-50"/>
-<line x1="-75" y1="-100" x2="-75" y2="-75"/>
-<line x1="75" y1="75" x2="75" y2="100"/>
-<line x1="75" y1="50" x2="100" y2="75"/>
-<line x1="75" y1="50" x2="50" y2="75"/>
-<line x1="-75" y1="50" x2="-50" y2="75"/>
-<line x1="-75" y1="50" x2="-100" y2="75"/>
-<line x1="-150" x2="-75"/>
-<line x1="-75" y1="75" x2="-75" y2="100"/>
-<line x1="25" y1="-25" x2="25" y2="-30"/>
-<line x1="-25" y1="-25" x2="-25" y2="-21"/>
-<line x1="75" y1="-100" x2="-75" y2="-100"/>
-<line x1="75" y1="100" x2="-75" y2="100"/>
-</symbol>
-<symbol id="symbol:ldo_fixed.17" overflow="visible">
-<line x1="150" y1="300" x2="150" y2="-300"/>
-<line x1="-150" y1="300" x2="150" y2="300"/>
-<line x1="-150" y1="-300" x2="150" y2="-300"/>
-<line x1="-150" y1="300" x2="-150" y2="-300"/>
-<line x1="-200" y1="50" x2="-150" y2="50"/>
-<line x1="200" y1="200" x2="150" y2="200"/>
-<line x1="200" y1="-200" x2="150" y2="-200"/>
-<line x1="-200" y1="-200" x2="-150" y2="-200"/>
-<line x1="200" y1="150" x2="150" y2="150"/>
-<line x1="200" y1="250" x2="150" y2="250"/>
-<line x1="200" y1="50" x2="150" y2="50"/>
-<text stroke="none" y="-240" font-size="29" text-anchor="middle">LDO</text>
-<text stroke="none" x="-150" y="50" font-size="32">EN</text>
-<text stroke="none" x="150" y="200" font-size="32" text-anchor="end">GND</text>
-<text stroke="none" x="140" y="-190" font-size="32" text-anchor="end">OUT</text>
-<text stroke="none" x="-140" y="-190" font-size="32">IN</text>
-<text stroke="none" x="140" y="150" font-size="32" text-anchor="end">NC</text>
-<text stroke="none" x="140" y="250" font-size="32" text-anchor="end">PAD</text>
-<text stroke="none" x="150" y="50" font-size="32" text-anchor="end">PG</text>
-</symbol>
-<symbol id="symbol:ldo_adj_en.7" overflow="visible">
-<line x1="-150" y1="-300" x2="-150" y2="350"/>
-<line x1="-150" y1="350" x2="150" y2="350"/>
-<line x1="150" y1="350" x2="150" y2="-300"/>
-<line x1="150" y1="-300" x2="-150" y2="-300"/>
-<line x1="-200" y1="-250" x2="-150" y2="-250"/>
-<line x1="200" y1="-250" x2="150" y2="-250"/>
-<line x1="200" y1="300" x2="150" y2="300"/>
-<line x1="-200" y1="250" x2="-150" y2="250"/>
-<line x1="200" y1="150" x2="150" y2="150"/>
-<line x1="200" y1="250" x2="150" y2="250"/>
-<line x1="200" y1="200" x2="150" y2="200"/>
-<line x1="-200" y1="50" x2="-150" y2="50"/>
-<line x1="200" x2="150"/>
-<text stroke="none" x="159" y="-200" font-size="26" text-anchor="end">(adj)</text>
-<text stroke="none" y="-265" font-size="29" text-anchor="middle">LDO</text>
-<text stroke="none" x="-140" y="-240" font-size="29">IN</text>
-<text stroke="none" x="140" y="-240" font-size="29" text-anchor="end">OUT</text>
-<text stroke="none" x="140" y="300" font-size="32" text-anchor="end">PAD</text>
-<text stroke="none" x="-140" y="260" font-size="29">DELAY</text>
-<text stroke="none" x="140" y="150" font-size="32" text-anchor="end">PG</text>
-<text stroke="none" x="140" y="260" font-size="29" text-anchor="end">GND</text>
-<text stroke="none" x="140" y="210" font-size="29" text-anchor="end">GND</text>
-<text stroke="none" x="-140" y="60" font-size="29">EN</text>
-<text stroke="none" x="140" y="10" font-size="29" text-anchor="end">FB</text>
-</symbol>
-<symbol id="symbol:esd_diode_bidir.2" overflow="visible">
-<line x1="75" y1="-100" x2="25" y2="-100"/>
-<line x1="75" y1="-50" x2="50" y2="-100"/>
-<line x1="75" y1="-50" x2="25" y2="-50"/>
-<line x1="50" y1="-100" x2="25" y2="-50"/>
-<line x1="24" y1="-100" x2="24" y2="-86"/>
-<line x1="75" y1="35" x2="75" y2="49"/>
-<line x1="50" y1="-1" x2="50" y2="-50"/>
-<line x1="75" y1="50" x2="25" y2="50"/>
-<line x1="75" x2="50" y2="50"/>
-<line x1="75" x2="25"/>
-<line x1="50" y1="50" x2="25"/>
-<line x1="50" y1="100" x2="50" y2="50"/>
-<line x1="50" y1="-150" x2="50" y2="-100"/>
-</symbol>
-<symbol id="symbol:res.4:m:s" overflow="visible">
-<line x1="-25" y1="-20" x2="-35"/>
-<line x1="-5" y1="20" x2="-25" y2="-20"/>
-<line x1="15" y1="-20" x2="-5" y2="20"/>
-<line x1="15" y1="-20" x2="35" y2="20"/>
-<line x1="35" y1="20" x2="55" y2="-20"/>
-<line x1="55" y1="-20" x2="75" y2="20"/>
-<line x1="75" y1="20" x2="85"/>
-<line x1="-50" x2="-35"/>
-<line x1="85" x2="100"/>
-</symbol>
-<symbol id="symbol:load_switch.4" overflow="visible">
-<line x1="-100" y1="-100" x2="-100" y2="50"/>
-<line x1="100" y1="-100" x2="100" y2="50"/>
-<line x1="-100" y1="-100" x2="100" y2="-100"/>
-<line x1="-100" y1="50" x2="100" y2="50"/>
-<line x1="-150" y1="-50" x2="-100" y2="-50"/>
-<line x1="150" x2="100"/>
-<line x1="150" y1="-50" x2="100" y2="-50"/>
-<line x1="-150" x2="-100"/>
-<text stroke="none" x="-90" y="-50" font-size="24">IN</text>
-<text stroke="none" x="90" font-size="24" text-anchor="end">GND</text>
-<text stroke="none" x="90" y="-50" font-size="24" text-anchor="end">OUT</text>
-<text stroke="none" x="-90" font-size="24">EN</text>
-</symbol>
-<symbol id="symbol:testpoint.1:m" overflow="visible">
-<line x1="100"/>
-<line y1="10" x2="10" stroke-width="6"/>
-<line x1="10" y2="-10" stroke-width="6"/>
-<line y1="-5" x2="5" stroke-width="6"/>
-<line x1="5" y2="5" stroke-width="6"/>
-<line x1="-5" y2="-5" stroke-width="6"/>
-<line y1="5" x2="-5" stroke-width="6"/>
-<line x1="-10" y2="10" stroke-width="6"/>
-<line y1="-10" x2="-10" stroke-width="6"/>
-<circle r="5" fill="none"/>
-<circle r="10" fill="none"/>
-<circle r="10" fill="none"/>
-</symbol>
-<symbol id="symbol:usb_type_c.8" overflow="visible">
-<line x1="300" y1="-450" x2="250" y2="-450"/>
-<line x1="-300" y1="-450" x2="-250" y2="-450"/>
-<line x1="-300" y1="-400" x2="-250" y2="-400"/>
-<line x1="300" y1="-400" x2="250" y2="-400"/>
-<line x1="250" y1="-1050" x2="250"/>
-<line x1="-250" y1="-1050" x2="-250"/>
-<line x1="-250" x2="250"/>
-<line x1="-250" y1="-1050" x2="250" y2="-1050"/>
-<line x1="300" y1="-900" x2="250" y2="-900"/>
-<line x1="300" y1="-950" x2="250" y2="-950"/>
-<line x1="-300" y1="-900" x2="-250" y2="-900"/>
-<line x1="-300" y1="-950" x2="-250" y2="-950"/>
-<line x1="-300" y1="-700" x2="-250" y2="-700"/>
-<line x1="-300" y1="-550" x2="-250" y2="-550"/>
-<line x1="-300" y1="-800" x2="-250" y2="-800"/>
-<line x1="300" y1="-150" x2="250" y2="-150"/>
-<line x1="300" y1="-200" x2="250" y2="-200"/>
-<line x1="300" y1="-250" x2="250" y2="-250"/>
-<line x1="300" y1="-300" x2="250" y2="-300"/>
-<line x1="300" y1="-700" x2="250" y2="-700"/>
-<line x1="300" y1="-550" x2="250" y2="-550"/>
-<line x1="300" y1="-800" x2="250" y2="-800"/>
-<line x1="-300" y1="-650" x2="-276" y2="-650"/>
-<line x1="300" y1="-650" x2="276" y2="-650"/>
-<circle cx="-263" cy="-650" r="13" fill="none"/>
-<circle cx="263" cy="-650" r="13" fill="none"/>
-<text stroke="none" x="-240" y="-650" font-size="32">D1_N</text>
-<text stroke="none" x="240" y="-650" font-size="32" text-anchor="end">D2_N</text>
-<text stroke="none" x="-240" y="-700" font-size="32">D1_P</text>
-<text stroke="none" x="240" y="-700" font-size="32" text-anchor="end">D2_P</text>
-<text stroke="none" x="240" y="-550" font-size="32" text-anchor="end">SBU2</text>
-<text stroke="none" x="-240" y="-550" font-size="32">SBU1</text>
-<text stroke="none" x="240" y="-150" font-size="32" text-anchor="end">SHLD4</text>
-<text stroke="none" x="240" y="-200" font-size="32" text-anchor="end">SHLD3</text>
-<text stroke="none" x="240" y="-250" font-size="32" text-anchor="end">SHLD2</text>
-<text stroke="none" x="240" y="-800" font-size="32" text-anchor="end">CC2</text>
-<text stroke="none" x="-240" y="-800" font-size="32">CC1</text>
-<text stroke="none" x="-240" y="-900" font-size="32">VBUS3</text>
-<text stroke="none" x="-240" y="-950" font-size="32">VBUS1</text>
-<text stroke="none" x="240" y="-900" font-size="32" text-anchor="end">VBUS4</text>
-<text stroke="none" x="240" y="-950" font-size="32" text-anchor="end">VBUS2</text>
-<text stroke="none" x="240" y="-300" font-size="32" text-anchor="end">SHLD1</text>
-<text stroke="none" x="-240" y="-400" font-size="32">GND3</text>
-<text stroke="none" x="240" y="-400" font-size="32" text-anchor="end">GND4</text>
-<text stroke="none" x="-240" y="-450" font-size="32">GND1</text>
-<text stroke="none" x="240" y="-450" font-size="32" text-anchor="end">GND2</text>
-</symbol>
-<symbol id="symbol:inverter.1" overflow="visible">
-<line x1="150" y1="-75" x2="-75" y2="-75"/>
-<line x1="150" y1="75" x2="150" y2="-75"/>
-<line x1="-75" y1="-75" x2="-75" y2="75"/>
-<line x1="-75" y1="75" x2="150" y2="75"/>
-<line x1="75" x2="-25" y2="-50"/>
-<line x1="75" x2="-25" y2="50"/>
-<line x1="-25" y1="50" x2="-25" y2="-50"/>
-<line x1="19" y1="11" x2="1" y2="11"/>
-<line x1="200" x2="85"/>
-<line x1="50" y1="-100" x2="50" y2="-15"/>
-<line x1="50" y1="100" x2="50" y2="15"/>
-<line x1="-100" x2="-25"/>
-<line x1="10" y1="10" x2="19" y2="1"/>
-<line x1="10" y1="10" x2="1" y2="1"/>
-<line x1="10" y1="-9" x2="1"/>
-<line x1="10" y1="-9" x2="19"/>
-<circle cx="80" r="5" fill="none"/>
-<text stroke="none" x="175" y="-25" font-size="32">?</text>
-<g transform="translate(50,-100)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32">?</text>
-</g></g>
-<text stroke="none" x="-100" font-size="32">?</text>
-<g transform="translate(50,100)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32">?</text>
-</g></g>
-</symbol>
-<symbol id="symbol:res.4:m" overflow="visible">
-<line x1="-25" y1="-20" x2="-35"/>
-<line x1="-5" y1="20" x2="-25" y2="-20"/>
-<line x1="15" y1="-20" x2="-5" y2="20"/>
-<line x1="15" y1="-20" x2="35" y2="20"/>
-<line x1="35" y1="20" x2="55" y2="-20"/>
-<line x1="55" y1="-20" x2="75" y2="20"/>
-<line x1="75" y1="20" x2="85"/>
-<line x1="-50" x2="-35"/>
-<line x1="85" x2="100"/>
-</symbol>
-<symbol id="symbol:border_b.1" overflow="visible">
-<line x1="8495" y1="-5495" x2="5" y2="-5495" stroke-width="6"/>
-<line x1="8425" y1="-5425" x2="75" y2="-5425"/>
-<line x1="8500" y1="-5500" x2="8500" stroke-width="6"/>
-<line x1="8425" y1="-5425" x2="8425" y2="-75"/>
-<line x1="70" y1="-5430" x2="70" y2="-70"/>
-<line x1="5" y1="-5495" x2="5" y2="-5" stroke-width="6"/>
-<line x1="5895" y1="-350" x2="8425" y2="-350" stroke-width="6"/>
-<line x1="8425" y1="-225" x2="6270" y2="-225"/>
-<line x1="6270" y1="-350" x2="6270" y2="-75" stroke-width="6"/>
-<line x1="8425" y1="-150" x2="6270" y2="-150"/>
-<line x1="8425" y1="-75" x2="75" y2="-75"/>
-<line x1="8500" stroke-width="6"/>
-<line x1="7125" y1="-150" x2="7125" y2="-225"/>
-<line x1="8000" x2="8000" y2="-225"/>
-<line x1="8000" y1="-5495" x2="8000" y2="-5425"/>
-<line x1="7500" y1="-5495" x2="7500" y2="-5425"/>
-<line x1="6500" y1="-5495" x2="6500" y2="-5425"/>
-<line x1="7000" y1="-5495" x2="7000" y2="-5425"/>
-<line x1="6000" y1="-5495" x2="6000" y2="-5425"/>
-<line x1="5500" y1="-5495" x2="5500" y2="-5425"/>
-<line x1="5000" y1="-5495" x2="5000" y2="-5425"/>
-<line x1="4500" y1="-5495" x2="4500" y2="-5425"/>
-<line x1="3500" y1="-5495" x2="3500" y2="-5425"/>
-<line x1="4000" y1="-5495" x2="4000" y2="-5425"/>
-<line x1="3000" y1="-5495" x2="3000" y2="-5425"/>
-<line x1="2500" y1="-5495" x2="2500" y2="-5425"/>
-<line x1="1000" y1="-5495" x2="1000" y2="-5425"/>
-<line x1="500" y1="-5495" x2="500" y2="-5425"/>
-<line x1="2000" y1="-5495" x2="2000" y2="-5425"/>
-<line x1="1500" y1="-5495" x2="1500" y2="-5425"/>
-<line x1="8425" y1="-5000" x2="8500" y2="-5000"/>
-<line x1="8425" y1="-4500" x2="8500" y2="-4500"/>
-<line x1="8425" y1="-3500" x2="8500" y2="-3500"/>
-<line x1="8425" y1="-4000" x2="8500" y2="-4000"/>
-<line x1="8425" y1="-2500" x2="8500" y2="-2500"/>
-<line x1="8425" y1="-3000" x2="8500" y2="-3000"/>
-<line x1="8425" y1="-1000" x2="8500" y2="-1000"/>
-<line x1="8425" y1="-1500" x2="8500" y2="-1500"/>
-<line x1="8425" y1="-500" x2="8500" y2="-500"/>
-<line x1="8425" y1="-2000" x2="8500" y2="-2000"/>
-<line x1="5257" y1="-233" x2="5257" y2="-75"/>
-<line x1="5895" y1="-350" x2="5895" y2="-75" stroke-width="6"/>
-<line x1="1500" y1="-75" x2="1500"/>
-<line x1="6000" y1="-75" x2="6000"/>
-<line x1="6500" y1="-75" x2="6500"/>
-<line x1="4000" y1="-75" x2="4000"/>
-<line x1="3500" y1="-75" x2="3500"/>
-<line x1="3000" y1="-75" x2="3000"/>
-<line x1="500" y1="-75" x2="500"/>
-<line x1="1000" y1="-75" x2="1000"/>
-<line x1="2500" y1="-75" x2="2500"/>
-<line x1="2000" y1="-75" x2="2000"/>
-<line x1="7000" y1="-75" x2="7000"/>
-<line x1="7500" y1="-75" x2="7500"/>
-<line x1="5000" y1="-75" x2="5000"/>
-<line x1="5500" y1="-75" x2="5500"/>
-<line x1="4500" y1="-75" x2="4500"/>
-<line x1="5" y1="-4500" x2="70" y2="-4500"/>
-<line x1="5" y1="-5000" x2="70" y2="-5000"/>
-<line x1="5" y1="-4000" x2="70" y2="-4000"/>
-<line x1="5" y1="-3000" x2="70" y2="-3000"/>
-<line x1="5" y1="-2500" x2="70" y2="-2500"/>
-<line x1="5" y1="-3500" x2="70" y2="-3500"/>
-<line x1="5" y1="-1000" x2="70" y2="-1000"/>
-<line x1="5" y1="-500" x2="70" y2="-500"/>
-<line x1="5" y1="-1500" x2="70" y2="-1500"/>
-<line x1="5" y1="-2000" x2="70" y2="-2000"/>
-<line x1="70" y1="-233" x2="5257" y2="-233"/>
-<line x1="75" y1="-75" x2="75" y2="-5425"/>
-<line x1="8495" y1="-5495" x2="8495" y2="-5" stroke-width="6"/>
-<line x1="8495" y1="-5" x2="5" y2="-5" stroke-width="6"/>
-<line x1="8500" y1="-5500" y2="-5500" stroke-width="6"/>
-<line y2="-5500" stroke-width="6"/>
-<line x1="8430" y1="-5430" x2="8430" y2="-70"/>
-<line x1="8430" y1="-5430" x2="70" y2="-5430"/>
-<line x1="70" y1="-70" x2="8430" y2="-70"/>
-<text stroke="none" x="6279" y="-191" font-size="30">DESIGN:</text>
-<text stroke="none" x="6279" y="-265" font-size="30">TITLE:</text>
-<text stroke="none" x="6282" y="-315" font-size="30">PAGE</text>
-<text stroke="none" x="6250" y="-25" font-size="40" text-anchor="middle">13</text>
-<text stroke="none" x="7154" y="-191" font-size="30">DOC NUMBER:</text>
-<text stroke="none" x="8007" y="-81" font-size="30">FLAT:</text>
-<text stroke="none" x="7750" y="-25" font-size="40" text-anchor="middle">16</text>
-<text stroke="none" x="8250" y="-5450" font-size="40" text-anchor="middle">17</text>
-<text stroke="none" x="8250" y="-25" font-size="40" text-anchor="middle">17</text>
-<text stroke="none" x="4250" y="-5450" font-size="40" text-anchor="middle">9</text>
-<text stroke="none" x="8462" y="-5250" font-size="34" text-anchor="middle">L</text>
-<text stroke="none" x="8462" y="-4750" font-size="34" text-anchor="middle">K</text>
-<text stroke="none" x="8462" y="-4250" font-size="40" text-anchor="middle">J</text>
-<text stroke="none" x="8462" y="-3750" font-size="40" text-anchor="middle">H</text>
-<text stroke="none" x="8462" y="-3250" font-size="40" text-anchor="middle">G</text>
-<text stroke="none" x="8462" y="-2750" font-size="40" text-anchor="middle">F</text>
-<text stroke="none" x="8462" y="-2250" font-size="40" text-anchor="middle">E</text>
-<text stroke="none" x="8462" y="-1750" font-size="40" text-anchor="middle">D</text>
-<text stroke="none" x="8462" y="-1250" font-size="40" text-anchor="middle">C</text>
-<text stroke="none" x="8462" y="-750" font-size="40" text-anchor="middle">B</text>
-<text stroke="none" x="8462" y="-250" font-size="40" text-anchor="middle">A</text>
-<text stroke="none" x="38" y="-5250" font-size="34" text-anchor="middle">L</text>
-<text stroke="none" x="38" y="-3250" font-size="40" text-anchor="middle">G</text>
-<text stroke="none" x="38" y="-2750" font-size="40" text-anchor="middle">F</text>
-<text stroke="none" x="38" y="-2250" font-size="40" text-anchor="middle">E</text>
-<text stroke="none" x="38" y="-1750" font-size="40" text-anchor="middle">D</text>
-<text stroke="none" x="38" y="-1250" font-size="40" text-anchor="middle">C</text>
-<text stroke="none" x="38" y="-750" font-size="40" text-anchor="middle">B</text>
-<text stroke="none" x="250" y="-5450" font-size="40" text-anchor="middle">1</text>
-<text stroke="none" x="750" y="-5450" font-size="40" text-anchor="middle">2</text>
-<text stroke="none" x="1250" y="-5450" font-size="40" text-anchor="middle">3</text>
-<text stroke="none" x="2250" y="-5450" font-size="40" text-anchor="middle">5</text>
-<text stroke="none" x="2750" y="-5450" font-size="40" text-anchor="middle">6</text>
-<text stroke="none" x="3250" y="-5450" font-size="40" text-anchor="middle">7</text>
-<text stroke="none" x="3750" y="-5450" font-size="40" text-anchor="middle">8</text>
-<text stroke="none" x="4750" y="-5450" font-size="40" text-anchor="middle">10</text>
-<text stroke="none" x="5250" y="-5450" font-size="40" text-anchor="middle">11</text>
-<text stroke="none" x="5750" y="-5450" font-size="40" text-anchor="middle">12</text>
-<text stroke="none" x="6250" y="-5450" font-size="40" text-anchor="middle">13</text>
-<text stroke="none" x="6750" y="-5450" font-size="40" text-anchor="middle">14</text>
-<text stroke="none" x="7750" y="-5450" font-size="40" text-anchor="middle">16</text>
-<text stroke="none" x="1750" y="-25" font-size="40" text-anchor="middle">4</text>
-<text stroke="none" x="2250" y="-25" font-size="40" text-anchor="middle">5</text>
-<text stroke="none" x="2750" y="-25" font-size="40" text-anchor="middle">6</text>
-<text stroke="none" x="3250" y="-25" font-size="40" text-anchor="middle">7</text>
-<text stroke="none" x="3750" y="-25" font-size="40" text-anchor="middle">8</text>
-<text stroke="none" x="4250" y="-25" font-size="40" text-anchor="middle">9</text>
-<text stroke="none" x="7250" y="-5450" font-size="40" text-anchor="middle">15</text>
-<text stroke="none" x="1750" y="-5450" font-size="40" text-anchor="middle">4</text>
-<text stroke="none" x="750" y="-25" font-size="40" text-anchor="middle">2</text>
-<text stroke="none" x="38" y="-4250" font-size="40" text-anchor="middle">J</text>
-<text stroke="none" x="1250" y="-25" font-size="40" text-anchor="middle">3</text>
-<text stroke="none" x="6750" y="-25" font-size="40" text-anchor="middle">14</text>
-<text stroke="none" x="7250" y="-25" font-size="40" text-anchor="middle">15</text>
-<text stroke="none" x="8007" y="-116" font-size="30">PAGE:</text>
-<text stroke="none" x="8007" y="-192" font-size="30">REV:</text>
-<text stroke="none" x="38" y="-4750" font-size="34" text-anchor="middle">K</text>
-<text stroke="none" x="6279" y="-115" font-size="30">MODIFIED:</text>
-<text stroke="none" x="5250" y="-25" font-size="40" text-anchor="middle">11</text>
-<text stroke="none" x="4750" y="-25" font-size="40" text-anchor="middle">10</text>
-<text stroke="none" x="250" y="-25" font-size="40" text-anchor="middle">1</text>
-<text stroke="none" x="38" y="-250" font-size="40" text-anchor="middle">A</text>
-<text stroke="none" x="99" y="-97" font-size="24">FOLLOWING NOTICE SHALL APPLY: &nbsp;COPYRIGHT C 2009 GOOGLE, INC. &nbsp;ALL RIGHTS RESERVED.</text>
-<text stroke="none" x="38" y="-3750" font-size="40" text-anchor="middle">H</text>
-<text stroke="none" x="5750" y="-25" font-size="40" text-anchor="middle">12</text>
-<text stroke="none" x="92" y="-200" font-size="24">THESE MATERIALS (INCLUDING ALL TEXT, SOFTWARE,CODE, DISPLAYS, ARTWORK, AND IMAGES) CONTAIN TRADE SECRETS AND CONFIDENTIAL INFORMATION WHICH ARE PROPRIETARY TO GOOGLE, INC. &nbsp;ANY USE, REPRODUCTION, DISTRIBUTION,</text>
-<text stroke="none" x="98" y="-169" font-size="24">DISCLOSURE, PUBLIC PERFORMANCE, PUBLIC DISPLAY, TRANSFER, OR TRANSMISSION OF THESE MATERIALS, IN WHOLE OR IN PART, IN ANY FORM, AND BY ANY MEANS, WHETHER MECHANICAL OR ELECTRONIC, IS PROHIBITED WITHOUT THE EXPRESS</text>
-<text stroke="none" x="99" y="-134" font-size="24">WRITTEN PERMISSION OF GOOGLE, INC. &nbsp;THESE MATERIALS ARE AN UNPUBLISHED WORK PROTECTED UNDER THE COPYRIGHT LAWS OF THE UNITED STATES OF AMERICA AND OTHER COUNTRIES. &nbsp;IF THESE MATERIALS BECOME PUBLISHED, THE</text>
-<g transform="translate(6082,-215)">
-<image href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAEzAa4DAREAAhEBAxEB/8QAHwABAAEEAwEBAQAAAAAAAAAAAAQDBQkKAgcIBgEL/8QAVxAAAQIEBAMFBQUFAwgFCQkAAQIDBAURIQAGMUEHUWEIEnGBkQkTIqGxFDLB0fAVQlJi4XKC8RYXIyRXkqKyCiWWwtQYJzNDhtLV4uMmKDQ4RkdTZqX/xAAeAQEAAQQDAQEAAAAAAAAAAAAAAwECBAgGBwkFCv/EAFsRAAECBAQEAwUFBAUJBQUDDQECEQADBCEFBjFBElFhcQeBkROhscHwCBQiMtEWQuHxCRUjUnIkM1ZigpKWotQ2Q7LS4hclJkRGRZPCNDdUV2Rmc3R2g4WGpP/aAAwDAQACEQMRAD8A3+MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR0txH7RnAfhF7xviRxayHlONbbS8ZPMMwwDmYXGVCodYy3BuxU/iWqUq5Dy11AKkAqBWgH4mJZkwHB3GJYvQUiwAr2MyolmpKTummQV1Cx1TKI05iOf5V8K/EfO/CvKmScyY1TqUUff6XC6lOFpWLFEzFp6JOGyl6sibVoUWUQCEqbx5nT2sHZHyuCmSzbPHEJ6qklGUcnxEK0hYJCfeROdIvKTSmiaFTsIYvupNQhah3Dwut8Xcn0tpE6vxFWjUdEpAB5FVaujSRzKCuzsCQRHe2AfYr8b8YY4hQ5dyvLYEHHMdlTpikliQiTgEjG5iVgWCJ4kOqxUlJ4o82Tv20WXkuuJyzwGnEawCfcxE8z1BSx1adi7CS/Lc3QydyERr4GlbX4vUeN9OFKFLl+csD8qqivRKKu6JdNOA6stUdsYd9gTFFIScW8SaCnmEfjlYdlyoq0JO4RPqcVoVLvYcVPL5tqB1nNvbL8SHyoyHg3kWWinwibT+fTspJ07yoJMgC6bgJQT0x8md424qon7vgVBKG3tamoqPUoFM/oI5dRfYJypLAGJZ8zHVkfmNDhmG4cD/AIRPOKN3Kldo+KiPbFdozvEw2QuCTaNkPSHPUQsXOq2+IkOk0FAfgTe9gbYKvGnM7/hw7AUpf96nxBRbyxJA+tOfIZX2EfCpgJuZfEJStzLxLLkoHTRKsqzle8vprFNj2yXaIaV/rvDzgrEpqKphJRnmDVT+27n6OSk2OqTTcYvR405lc8eG4GoA34ZFeg9fzYhM6X72is37B3hasEU+aM/ylbKnV2XZ6QbXKUZapyR0Cn3faPtpX7arO8NQT/gVlSZGwJlGcZvJaXFSERsnnxNq0T3wakVIFz9CT43VyWFRgFJNLgEyK2dJHUsuTUaciod7GOP1v9H/AJemk/1Z4j41SgbV2BUOIdhx09dh27OQgsNnMdqZZ9thw7fiG286cD85yWFqPexWV8zyPM74T++puBm0LlBtRSKd0KmCQs1BUixP2KXxtw5SgK3Aq2SkkAqpKmRVKHMhE1FGPWYL6trHCsW/o/c0y5S14B4h4BXzQ/BKxjCMRwiUT+6F1FDOxxYBNiRSqbYKuB6kyX7VPsY5uZh1R3ECc5FjHyEmW52yhPYV6HKqAfaJhIIfMUhQO8e6VJnC0p7qlKKWx38crovFTJlYlPHiE6hWv/uq2jnoUnqqZTpqKcDr7Yjd2vHTuP8A2NfHvA1zfu+WaDMUiXcVWAY5hs5EzX/NUuJTcLxJRYPwmhSouAAVfhj2pkLi1wu4pwKpjw24iZKz3Bthv37uU8zSeeqhFuoC0MxzMujIh+AiO6fihoxtiIbNUuNJUCBzWgxbC8UQZmG4jRVyA3EaSpkz+AkOEzBLWpUtTfurCVDcR0BmTJWcMnVApc15WzBlyeoq9mjGsIrsNE8IUUqXTrqpEqXUynBAmyFzJStUrIvHYWPoRxiGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEI6B419qTgF2eIdDnF7ibl3Kke/CGNgsuqeemua5jC95baIiBytJmY+fPwrrza2ER32BMAHkqQ7FN9xZT8HGsz4Dl9L4tiVPSrKONFO6ptVMTcBSKaSmZPKCoFImFAl8QIKwxbsrIHg94leJ81SckZRxTGaaXPFPUYoJcujwWlnMlSpVRjFfMpsOlzkS1pmqp/vKqkyyFIkq4kg4c+M3tt3XmoyWdn/hQIZalFENm/inEpeUhkhSHHGcl5ajg0mIv72EiIrN77LKkIMXKYlC3GEdPYz41k8crAMK4XLJrMUU7bHhoqZbBTF0KXVkAgBcpV0je3IX9H0hC5NZ4mZzM0JTxTcCydKMsKWGUlMzH8WpisygRwVEqTgcuYsKPsK2UpKZhxd8Ve212oONinGc98YM1rlTiVtqy3luKRlDLa2VLCw3FSXLDcqg5sEGzT05RMYpoEpS/wBwlOOrsXzpmjGnTX4zVmSXH3emUKOlKSfyzJFKJKJwf8qp4mKFwFC0bgZL+z94QZACF5cyLgya5JCxiuKyVY5iwWkEFcivxhVbPouIFpkqgNLJUQFGUTcebkxClrUtalLUsla1KJUpalEqUoqJJUpRPeV3qkm5rWuOLOSSSS5JJcu5NydQ7kknUkm7NbtkyQEhKQlDMlKUslIAAACQGYAWCQwDWYWNwaiKAX8QbitwOdNtqb1AxQi5Is3PRtTp8TvtpGOuWdxwnR+4Gtn/AFu0TkRKTeqk63H3ehqNABpY86cxcFilxvbWw2vd+bMBvEKpZ3AJ5jX1+jsYrCI71/eC3NOvgScOIBgf5d2+A/SLPZD+6v1H/ljiYnWq1G2iQQehpU6aV1uLEaCQWYPaxZ+h5M99WGxNjFRLGyVHubM+mg6bxFcigAaAXrc609baWNgLaaYoQTclrPz06B+mp9bRKmXzNnDBP8h+pJ1i3OPkg3v1rrob7A8hXbWmKsBf1JYeb/Jrlna8TpllrhgDbrf1Ltbre29udeArfXUnfkFWqkcvmOY679BoS3IuG68xpvGWlNtAAG/gSxOvIAtblFrdcrUmoGw/BVBzFEjXzIqNu55eWgJ9drOYmQknWyRcg7PzYBydG5GKEPNY+WRTcdLI+Ml0bDqC2IyCinoSLYVspmIh1tvNrFAe82sUsAdCbkLmSlBcpapcwMQuWpSFJI04VJYhtyCCNrkCJJ1JT1kldPWU0ipp5o4VU9TKlzpUxJ/dmSpiVIUDYkKBsdbx7R4S+0t7YfBxuFgpbxVjc8SKEcStMh4osf5cwziU90JgxOpk8jN8LBIbSGmoSX5kg4eGaARDNshKac4wnxGzdg6UIlYoutkIIIkYon76kpDDh9tNIq0IADJRLqUJSLJAjoLOn2TPAzPap1RV5Np8vYjOSUnEsnzP2empWokmd9wpUKwSdPKiVrn1WFVE2au81UxyIyzcDvbe8KsxvyyScfOH064aRr4Zh4zOWUnHs4ZPafCCX5jHyUMs5uk8uUpKg3CyuHzpGtKW0ha3UFyIb7WwTxnwypMqTjtBNw1amSqspSauk4mvMXJCRVykFvwolJrFgkAkh1DSvxD/AKPnOWFS6vEPDbM9Bmynl8c2RgWNoRgWOLlP/Z01PXmZMwSuqUgjinVk3AKdYC1JSg8EtWYXhhxg4XcacvDNXCjPuV8/SEOJYiI7LU1hpgqXxS0B1MFNoNtYjpNMC0UumXzWGg41LSkOKYCFpUe2sNxbDcYp/vWF11NXSHCVLp5qZns1EPwTUA8cmY1/ZzUoWAQSliI0ZzdkbOGQcT/qfOeW8Xy1iJQZkqnxainUoqpKVcBqKKepP3eupuMFAqaObPpysKQJhUkgdkY+hHFYYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPNfaL7W/AfstSIzbi5naDlk0iIF2OkeSZX3JrnnMyUKeaaTJcusuof+zxESw7BonEzcluX2IlCm46bwgQtSePY/mnBMtSPa4rWIlzFIK5NHLabW1IBIHsacEK4VKSUe1mGXISoELmpYx2v4XeCniN4w4iKLJOAT6ujlVKKbEcwVnFRZdwlSghaziGKTEKlCbKkzETzQ0iavE5spQVT0U4qSDrsdpn2xfHXi05NMt8FWDwQyHEpchETGXxCI7ibNIZXfQt97NCUoh8rqiE+6eZZytDQ81lrocaTmiPbV3xr/AJk8WsbxX2tNgw/qWiUCj2iCJmIzElwSqpbhpuMMQKVKZ0s2FSu8eonhJ9hjw6yWKPFc/wAweIWY5SkzjSVMpVNlKkmgJUJcvCCVTcX9krjQteMTZtHVoKVnB6daSmMUEfOpnPJhFzeczKOm81j31xMfM5nGREfMI6JWR7yIi4yLcdiYmIVQd9x91biyKlRJx1VMnTJ8xc2dMXNnLKlTJk1apkxSj+ZS1qJUt9SpSi/PlulTYfR4fSyaGgpKaho6aWmTTUlHIlU1LIkp/LKk08lKJUlKAbJlpSkPYMzfrT1PCouOfmKg/LXY4jI87aHYW0A7WLEu2u1qkkP00LegIDF+u9tNrk0+DeugvagtQ6HTQbhPgTTANo/E+vNrC/PvqbM4iBaHGwL2Otybab3sQ48gInNv0pfU+dDvpQi1a2rrf94z6aXsdjt1DdPIDWMdSLfiHK/MBtxZXmxPuiamJFgT61Omt7Hl/EDWgrh3Da31awuCNN9fNtIiMsG1j0IA1dgxbuQDqQQdzITE6XI5c/mBsb36YAvod22Z/cS925npEapHJJBbUFx11e783tuNqoirXWf+H8j8zio4hoW8j/5ot9iLfiUfS3v+EcDE61UTXwprbSv0p4WxQnqPJn73OnkfnFfYXdlKG/N/pvIxQXEgVv8AnflWgueQPzscEWu7fRAYA9XvtoHkEoJ2CdL66e87aBn1e8RXInrzrWvzHdqK70Sm29gcGJbb3n9A22rjXcGQIBNg5O5DcmPMjbTziC68KE10NdtfSxsa0vfWl8NGbo5Pyck9hcOddYmSjm7jQWcDS7OBrdyTYWdhFvdfrau+unyOu4qqgGwSCRhe+vXmO1rc7EvZ3sRkhOxGmgHc3L6HS5u+ju4tzjteg/x056a3oOZwbn3u2z3LFm7b31vGQiW91WcbWsdhyY77++LW8/civOvTmOnVXkL6NbnTXv1PIch5mMtCGA5gWbYWLA8mDEnXoItrjmwNSee/KprVI5epucV1udNnbWzH4gCx+EZEtBVtb3Wa3+Eb8z5AfQ5K4l594W5hhs18OM5ZlyRmSCUksTrK06j5LHlCHEuGHefgXmVRME4UAREDEh6DimiWYlh1pS2lZlFiFbhs9NTh9XU0VSj8s6mmrkrAseElChxJV+8hQUhQspJBEfLzFlTLecMMm4JmnAcJzDhU8K9rQ4xQ01fTlZSpPtUIqZcwSZ8sEmVUSjLnyVtMlTUTEhUZxOy77cfMsmdg8r9q7K4zXLVqhYdnihkKXQUszFCXDT8TmbJzSoSRzltZWIl2LywrL78G0w40xl6bvRLfuO6Mt+MdTKKabM1N95l/hAxKilolz0X4VKqKQFEmaCSCVU/sCgJIEmaVDh89PF/+j1wmvRUYx4M4wcGqkibNXlDMlVPq8Ln24kSsJx1Yn4hQKTwmWiRi4xKXPXMQuZidEiUv2mwxwo4x8LuOeUYTPfCPPOX8+5Vi1BoTSQxgeVBxZYZiVS2by95LMzkU3Zh4iHeiJPOoKAmkM2+yqIhGg4jvd64biuHYxSprMLrJFbTKLe0kr4ihbBRlzUFpkmaApJVKnIRNSCOJAcR5jZzyLm/w8xudl3O2XsSy5jEgFZpMRkcAnyeNcoVVDUyzMpMRolzJcxEquoJ9TRzVS1iVPWUKbsvH0I4nDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEW+bTeVSCVzCdz2Zy+TSWUQUTMZrN5rGQ8vlksl8G0t+LjphHxbjMLBwcKwhb0RExDrbLLSFOOLShJIjmzZUiXMnTpiJUmUhUybNmLSiXLloBUta1qIShCUglSlEAAEktGTRUVZiVZS4fh1JU19fWz5VLR0VHIm1VXV1U9aZUimpqaQhc6fPnTFJlypMpC5kxakpQkqIEa9nbW9tPCSt6bcN+yB9mmUcy5FS6a8bJzL24mVMOoSplZ4dyGPbUzNnGniS1mbMUKuUOFhZl0inEDFQk4T0Zm/wAXEyzNw/KvDMmJKpc3F5qAqWk3STQSFhprK0qZ6TJPCfZyZyVImj028AvsET6yXRZr8bva0tNMTJqqPIFBUqlVk1BImJGaMSplpXRImIACsKwucK1ImJ+9YjQz5U6iOvFmXOuac95gmebM7ZjnebczzqI+0zef5jmkbOZzMogIS2lyMmMwefinlNtNoaZ77pS0y22y0ENNoQnoWqq6qtnzKqsnzquonK45s+omrmzlq0da5hUtQAAAST+EABLAcMen2D4Dg2XMMpMFwDCsPwXB6GX7GjwzC6ORQ0NLLKisok0tMiXJlFS1KmLKUAzFqVMWVLUVRBbd3Brz1rW1lDwA0tXWmoxzcC7H909N2GhB+TxlzJb3sW+gCzNc6i+8T2n6UANvUgAV8+hHxU0BrXFH1e3I7HX07EveMZSHNwR77fDz6X0aLg3EV3vpXenKpFDXrfypUeos+vw7G+vTqIgVLcP0t7yWuxG4Fix7tPQ9epNhvvfQ01A9RS17VEPfrq4BvyI52A0Lb3jHVJbTTz6bO40a14ltxJ1rX0tShJ0PPVQB3NxamjA37uDfkp2fo4tu0QlDOW89jzfQsOxb3xJTFCl/6EaUJAOnhf5CpJ69mf4c+bkdoiMoEX89i77h2PbhIHrFYRKdK0Bvag8LUBr+umDvb8J53+THf0+Nhk9CknRiCe4uAH0ZnjmIogUqelzb5fWuKW5I9f8A0w9kf7yh0OvkygB5vH4YkDc1J3+tx60GK6ahIfkf4D+EPYF78XTi0fyMUjFDb5AgHxHdFxzGv0OSW7aDnu5JDe/0i8SgNgCGdyfh+FzvoTEZUUb6aa69TtTyJIGB1253ueQIF2G7+rXi8S3Fn7aeRuHs17u+sQ1v13qfKl6UpanQgA8hzBvdzJ+AOltz3GrzJlH1Hx3fe2rDoRq8Nx8CtTW1tdq02BO2pHhagPrqTd/K3QB+m/YmMhEoDYHk/L383vzG5D292I7wrXUa+VqUAqBsAQka1w3vci7Db5eZbpGQlDdXt7/W/IW2L2e3rdrXoRU+VgbW8BTcUBoTVuZfcC1uWwJ3+g8ZCJZOum4/W/mw6RbnnwK/FsamtzrqeQ0GpN9CMV199+WnrrsDpGSlLWDM1ybdPIDlfX1tTzwuSdLgaA0JvWlh09epn6DfuXfbzDX9L5KEaM+tz2fUPpfT1e4i3Ou/vKPgnSvIkaV5eHPSptYfm+HO/LmT+XvGQlOw03P1qdgLnSOz+C/aE4v9nTOcNnzg7nmdZLn7K2PtiYCIK5RPoSHWpxMrzLI4gOynMErJccJgZrCRLTK1/aIYMRSG32/q4RjWKYDVJrMKrJtJOSU+0KC8qelJJ9nPkl5c+WXICJqVN+ZJSr8Q4dnzwzyR4o4FOy9nrL1Dj2GLTM+7mpl8Ndh86akJNXhOISuCswyrHCl6iinSVzAn2U0zJBUhW032GPbA8Ku0a9J+GvGtuU8H+M8X3IOAiXYwscOM9xpLaGmZBNZjELfy7PYxxakM5ZnkTENRTqWmZPP5rHRaZZD7H5P8TsOx0yqDFhKwvFSyEqKuGgrF2AEiZMUTInKNhTzlEKLCVOmLUJY8fftD/Ygzj4Wors15BVW54yHJ4p9TKTI9pmnLtOONS14lR0spMvFMOkJSFLxbD5MtclBXMrsOpKeQqrm5l8dpxolDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR03x34+8KuzZw6m/FDi9mmEyzliVJ90wlX+sTefTV1KjBSDLUpbUIqczuPUhQh4OGT3GWUPx8wfgpXBxsdDfLxjGsOwGhm4jidQmnp5dh+9NnTCDwSKeUPxTZyyPwoToAVrKJaVrTzrw68Ns4+K2aKHKGSMHnYti9YeOYR/ZUOG0aCBPxLFa1Q9jQYfTAgzJ808UyYqXTU0uorJ9PTzdO/tze0t4udsmcRmW4NyN4dcC4KLBkvDWXR6vez9MJFCIgp5xCjoYtpzBNy61DRcNKAVZckDsPDCWQ0VM2ImfTLVrOWfcTzVNVTpK6HBkq/ssPlrvP4VcSJtctJHt5hZKhK/zEghJlBSwZ033I+zz9lDJfgXQyMVnIkZn8RJ8kivzVVU6eHDTOk+yqMPyxTzgo4ZRhC50mdWFsUxKXNm/e5smlmSsNpcdjbwNKkA0pWtajW4G/I89KmuOA3HbXiYeY7dN7ux12hKeVxyvppvr1G3aLg09cA69b8/MjXqAb3IwIGx9N9nYvfnbXRwLQKQDcNo2nbv1d7c9zFxaiCKGvhU263NK6mx02odLXdhcdGt1/mCzt0EYypbbB2FnsdmflewOruHie2+DS9KC9BUelPhtrSosLVqQJuxHO2r9iLG3meQa8KpbliAPL3tt5ExObf59L+OuoA8a60p3RW1GbQtfTV/W+2x0jHVKIv57nV9x73sGd9CZaIkgWOl6UH4ingbDU0OHMkEdRfr+puPe0QmW2o+Y+LbDQjTlEoRXPQWrUHahJIFwKUp3vMXwBc6g67s3kNR37veLDLB66/p79y46CJCYoGgrem4qBtyVc05+W4XOzE6nXTmxB+P6RqkhtH00e/lcevxiqIpJ/etzH+O53pvc1rioNnuG5vt3ufreIzJS7Eatbf1c66/zjl9qT/Fbyr9PxxbxD+8fT/0xd7D/ABNy4v4/KOKopINQq2p/wr+FPLFwIZxcDkL+n16Rb7BIIDeRu/m7RTVFC97EWIFBvb7oF60qT5nTFOdne4f+JLeQH6SCSOTX0vbtoD6/xjqixcjn5a3Gh0prUDY2xU6XYON767cree8XiW3IXPy9x5OGiMuJJ33ItQnfSgNeYvzA3GKO+jq06Bxv6jr5AxIEasH1976377h+8RFv6XrS177C42150NQOZw7lg2g28xf0A0bm8yZRPIX2vz3Fr3ve452MJyIFNb35gX60qdxal9b1IrYWD9h/HnzOu0TJlAbcu+2/e1rcrxAdia2FKCvLTwvSgprf0FHfcaM/y09G31EZCUGw9B0HnbkN32i2uP8AUlWo0sbm1b60+I78jQmoD6lunnz+LPvZQ0yEyxvttyNrvv0OzDqIgOvU1uaig5G/qrwA1BoK3qHOhsDrsL+TsRvfrYNOlPTqBz/QbP6RbnXtSTUn1FPW3hcU7wtfADYeZt2fQFrOdBoOpnRLe5Ftg+xOpfQdSXIJ0sItjz9KitTy5aXJGxrTQi1jW+Lm6MO5JJLOAzO/Nj0LM2WmXuQwA+hr0sN99CBbXHKVNak/oW0rTQCwHTW4czZOybXe/n0HP35aUaOGa4HwNjryH72pswGdP2eXtk828F35Jwf7Uk0nGfOEQU1LpDxFfEROM9cNYYpbZhoaaLQHphnTJ0ItJqw99qzTI4R1aJVEzeWwMsy2x3DknxPqsLMrDMwzJlXhjiXIrVAzKyhTZKEzCHXVUqSNDxVEpJPslTJaJcgedv2nPsL4LnxGIZ38IKOiy5nYhdViOVpZlUWXc0zXWubNpASmmwHHqgEfjlmTg9fNQlVZKoaqoq8VmbZWWM0Zbzrl6T5tyfPpPmjK+YIBiaSLMMgmMJNpNN5dFIC4eOl0ygXX4SMhnkmqHmHVoNCK1BA2MkVEiqkyqimnSqinnIEyVOkrTMlTEKulaFoJSpJ2IJEeMeLYRiuA4nXYNjeHVuEYvhlTMo8RwzEqWdRV1FVSVcM2nqqWoRLnSJqDZSJiEqFizEGL7iaPnQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEeZ+1b2r+E/Y+4VzHifxTmhSkl2AynlOAcZVmXPOYvcl2HkUghHVpClU7r0zmT/dl8mge/GRzqR7lp/wCDmLMWHZZw+ZiGITLXRT0yCDPq54S4kyUnXnMmH8EpDqWRYHtjwb8Gs5eN+cKXKOT6QEsipxrGqlMwYTl7C/aBE3EcSnoBYOSikpJb1NdUcMinQTxrl6Qna17Y3FztlcS4nP3EyZmHlkEuKhckZClsTEnKuQ5K+tomBk0K6sh+YxqYeFdn2YX2xMJ5GMMqe+zy+Elstl+pmZszYnmmvVW16+FCCpNJRIUv7tSSSQ6JSTZS1sj285X4pykgnhQiWhH6BPBbwMyT4F5TlZaylSe0rJ6ZM7MGY6uVK/rjMdfKStqivmy0/wBnS05mzpeG4dKUaXD5MxYl+1qZ1XV1XmRp8ineJpXWugtrffwoTelaU42bjqbkEb206sebkM4eO21oJsBe22vXQk20I25OXuLb+lTpoR4358x56d4iuLWZ/eNbuw2Fxz063aMaZLBdxcjVnO4uBr0I72ie2/sTVNvCwJNL2/AjUACre1jyPI9+h3f0JIx1oI1BP+tc8m2ueelv7zRObfI0VXoTc33FQDe9qbdKUsQAf487Eb+rEODrEJTzD9W091ux8xExESLCpr/Ca87GlajTY8t6UMRobPd+m73csW3LbjUwqlPYM2rFtQ3yDbBnB5xObiiki+m42v41pQUAI/PFuj7Nz0HZ9tLAjQWERGWRe41sz8+j+XxtEtEWDavmDQ6a2JHjYDkNsVv27HrpcaN1fvERlf6vS1yQzcrAkkgeZGsSUxQ2URcChItToFUAtpT8Kj1AO9wwA8wz+lvWIlSknu99vgzn6N7xVETWg7w61NSegCiKDl41vinCLMS3QlvrtFnsfif5flfYtr+tUxJtcX/m/JR+dMPM+QB+CYtMkjR/R/0j9+19b+Ip6Vwe373fhL/BvdFPZHr/ALp/WPz7Sb3FP7V/TvfQnDzPmAPiIqJJOpPmG/WKZiQL98a6A0VvUnu18z41G+Dbkn1Ye5ou9h138vh1vo3naiqKA1UbEaGh8RVWh8Dv5Aw0A8ruPi58+8XiSnpcht/i/u98R1RdKivKwIIpXqRbla2lBatbuddd25+evUv21iVMo8r9WsPQHvaIbkWTvTauldKam3gBbStDhq372thps47Wu5v12kEo8tG2a2w0cNfbTRrtDcitfiJPIE/SpVrrX64qxO7Cwsz3fUm3OxvpdtJ0y25AcvPn/E9ohORBpc0HKoqNdtE+JNbeJFQwsL7Wvc6ue/q+pcPKlADMG6nduXPsPSILkRYgHfXcn1uelun8ogfvf7o5B7G3qx3dyNZUIJYi1tSzXbTyO79ogOP2N9qE2BN7bACmnTkK0wPL0A6gdzy/hGQiUzNcnV9HDEkancXN9QNmtzr9ahJN979NL3I1vpzsMXAMLhydADc9xytt5xlJltzJ9dXL30Gl7WFrOIgOPU36nQ16/W50Fr2pUjdTPsAOetr7u2z94yUoGp+L2u7OB5ksAX2i2uv1qEkcqg2A3obV6k610oKYuAIDm+4HXncga792JiZKe7bM5Jt+7bf++zagbPbXXtQDrUk67XoQfnvat7YrqfhyG258tXAta5OShAdy3YPz7EsS7q8hzjKB7OX2n2f+xRmmEydmlc1zz2c59MkqzNkkRAiJlkx6MiAqNzdw7+1vNsQsyQVuRc0y4t+Fk+aauIecls2ch53C9hZIz1WZWnppqgzKvBJ0z+3pX4plOpShxVNEFKZCw/FMkcSZU+4JRNInDUX7Uf2SctePeETsdwdNFl7xQw6lIwrH/Z+ypMdRTy+GRgmZvYoVMnUiglMmkxYInV2EHgVLRV0aZmHzt2jhtxJyLxgyLlniXw0zPK845GzhK2Jvl7MMnf8AfwcbCPd5K23EqCIiCmEFEIegJrKo5mGmcnmcNFyuaQkJMISJhmtpaGupMSpJFdQz5dTS1MtM2TOll0qSrYiykLSXRMlrCZktaVS5iUrSpI8Cs1ZVzDkjMOLZUzXhNZgeYMDq5lFieGV0v2c+nnIYpUkgqlz6aolKl1FHWU65tJXUk2RV0k6dTT5U1f3GMqOPwwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR0D2mu0lwy7KHB/M3GXirNfsMhkTX2aVyuGKVzrN2Zopl9Ulyll2FUR9qnM5eYWhsrKIOXQbUZOJrEQUol0fGw/x8dxuhy9hs/E8QmcMmSGly03m1M9QJlU8lP702aQWdkoSFTZikykLWnsjwn8K82eMmd8JyLk6j+8YjiK/a1dXNdNBguEyVyxX41ic4f5mhoZcxKlBPFPqZ65FFRyp9bVU0ibofdrfte8Ue2RxcmvFPiTHFiECoiX5JyXBRLr0gyDlb7Qp2EkMoSpLSYiIKe4/O5y7DtRk9mXvIx9thhMJBQeo2Zcx4hmfEpmIVy2S6kUlMgkyaOn4iUyZYIDki82aUhU2Y61cI4EI/RV4K+CWUPAzJNFlDKsgTJxEuqx/Hp8lCMSzHjHsgifiNYQVmXKB45dBh6Zq5OH0vDIlqmTFTp8/zU0/TRVR0uR89fGxrc0GOPkP0Ojj0v31bnpHaykN08mDHUC1jrYgC2jl4uDT+l97bU3FRXcHqNyBQYt/xbaEWt31BOhdhyL6wlAILgfBux2JY80nyETm3qfdPltS9ed9qjatb4oX0Nw5Lj8wvt56t1iFUvZn6al/gQ4LNd9jE1uJA1NKW2pvSm1DtyA0xaQ9wXfbfzH6d4gVL152J/5dX3tuxc67xObiRqTre1NjXStNa1rptbFL6N5HXTby+XSMdUndiDa6R05M/YAlrA7iJjcTWlSFaa3p1uQfOu/UAGF2JBOr3A+f0LamIVSjsHblYvyIZh5gbXiSiIA/eINKUrUDmLkK8b1A3GFxdgW1Zja50u3kGB56xEUajTooN79PeLxJREkalJ5XoedQDTbS/mdcUZNthvqm/v8AePIRYZb7eYD9eo131ismKvevzpodaEjwofywZtyX5tb0+Y7RaZY7bsQ7RWEWB+/6kA/8wP8Aj6OEsCwPViG82Pu/nZ7Ht0+gB9e7mIux+Ktbgk976rA+WDbkC/Ignz3inse3qf0h9q/nT6YRb7E9fUQMXQfepzNe74aLp8geuKEbgDzLHysTF3se3qf0jgYuv71TrY1r0NCTTT8N8VYs9g7bG/mwGmnK+sV9kOmt9/K4Px9IoqijyPjp6VKRTwv47G6kX6fME+5vhF6ZYGxJPIfFr+/pFFUSdikdK6enjuQCd8Pw9SBp+8/V9fcW3FouEsD91u9hztoPSIy4kH94k6G9K6V0NbbiopvbS697Ad226aaF9ObXiQI0ABPIJHfcsB7/AIRFXE63AF6gGh13oeQ5nWtCLClupO2w9NddreRiRMpXID3qPqO2ib2iG5E9dOZpcVItW1qCtTpfTFb6Dlone7F28zyv1MTpk6G50ub2cC3TdierNpCciamxrqQa2pXx6UoK72NsG5nowufTb5d4yEyujltGc3Ggb4htr3LwXH/4j0pWg0pz2uNTbbF1+wDf49LdrdmD7ROmXpy3FidTvcB2e7nV7awnYim9AAbDXXlXrva+nOoBtw8hci7HZ929G7XmShm66276vuNXOp0dr25187qoPG5/PTpbrbFzMLa8z9CwezG0TJlk7A+Thg/+8Q5/1Q1g0W91+xJPdT6E/P6cvLAB/Q337gAENbpfZnjJTLbvsdd2Y89LAWtfrbXX6ggEhNNtTr1ubbGgvfbF2nUvp1drjnYW7XtGQlF3ZzybqGBt2HCPNtYtzr1rWGutyL0vurWh0Gmwxcx/xE2G4A30sGcdA9umQiW1zcsWcWHlt29GvGUn2YntLs0diHiI3lbOEVMswdm7PM2Y/wAussJXERj2TZlEe5hDxFydBhSgibwjDTCMxyqFbCM1SWFbhnEKm0tkUVB9g5FzpUZWrPu9Utc7BquYDV04dRplqZP32mTtMCQPbISP8plpCWMyXLWjUL7Wv2U8I8f8sqxfA5NLhvipl+jmfs7ixTLky8cpZftJ37L45OYcVFPmKmKwqsmqKsHrpy5qVCiqcRkz957KWbMt57yvl7OuTZ3L8yZTzZJpbmHLc/lMQiKlk5kk3hGo6WzKBiEfC7DRcI+080qx7qwFJSoFI2mp6iTVSJNTTTUTqeolonSZ0shSJkqYkLQtChqlSSCD1j89uM4NiuXcXxPAccoKnCsZwauqsMxTDa2UqTV0NfRTl09VS1EpV0TZE6WuWsXDpcEggn6HE0fMhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPm85Zwyxw+ynmXPWdZ1BZcyjk+RzPMmZp9MnFNwMokcmg3o+ZTCKUhK3C1CwjDrpQ02484Uhtlpx1aEKhqaiRR086qqZqZNPTylzp81ZZEuVLSVrWpnLJSCWAJOgBJAj6uB4Ji2ZcZwrL2A0FRimNY3iFJhWFYdSpCqitxCunopqSmlBRSkLnTpiEBS1IlocqmLQgKUNCX2jHb3zX25uNcTmBpcwkvBzJT0wk3CHJEWoNuQMndebTF5qn8K08/Cqzdmsw0NFzUsuPIlUEzLcvw0TFtSpcxj9Sc65sqM1Yoqc65OG0pXLwymVbhlEjiqJwSpSfvNRwpVMZ/ZpEuSlSgjjX+jX7L32ccG+z5kKVhi001dnrHkU1dnbH5IKkT66WhRk4Ph05cuXOGCYMJs6TRcaUKrKiZV4nNlyV1iaWm8AtPmxSfEHfQ2ob2pWtz1rTHDS99rs/kWdmc3Lkh+mx2SWgj8wbrz0IJ73Lgk66tFwaiATYlJ0psTa3npTX6YtKWfkb2AY7aWZ20tpoLxCpHY2azX1a+4tobsDfV5zcRzNDzGn18DyItca05vvrdxaxvt1DB/K2OqW7tf1s3kCN+mo7Tm4jrUcxep8zTzNPle0pGosfduOXw6FogVLN+Q0dgdNtAeX7pZrOLTURANP3q+up2JrfbXyIpihDM4Nt9/W2lvzDnuLxqQNhfS9jqNCwLaHcM/nKQ/yVytt08vECu+BvuCG/e18jb42di0RKl6NZnNx15gM4dtLEsWiUiJNb3puDS/M3pXpXU7YtIDaEdWcdL6t6+cRKla27FnvewIB7fuuAwsIkoi/5iP7XOo12ANL0rp4YMdmc3cH5M7jW3pERlO9nZ7FiG32dx3ZmiQmKFhUXroaevxU7vQctNiuHJfXRQf4hn9OkRGQNWHMkO/lY3625iK6YobE+RvptcW8zXyxTlZOnb1uL/reIzJ6q0u7KFy7X0Onu86iYutu95X73zWflXywYDUK9fkRaLfYm9rD+8hh/4R8Y5/aa7p/vC/4n1xUEDVS+zhvKwinsTf8AJ5cXnZwB84faerf6/u4q45r9RD2J/wBX/m/WBiqDUD+yNNd7aC9xQYtLFmKzfQkegsTf6eAkl/3OliTfubeUUzF7d+3ME19e/T+u2K8P+qfM2b0A84u9iXYv5It70/MxTMUDbvHxJoDfoTflf02o9tE69yPV+bP6xcJHPj10sB/ugac+ZHrQVF0uSOdzU7XNTfpQfWuK3szl3FgQOwt0csIvEgBrJ3D6vqG0Atvaw2JiMuLuaEnw8OqqbUNPIYMGF0jnd/cAfc8TCVsxBFyNANuQ73dtS4ERlxKq6gV5kk/M9aHWuKtbQ9XZI8+e27nnEqZVzbhboA55mwN7HQ6O1oirfF6qJNDre2umwGtaDxvXFe5A6Is5Gz8+nbmHlEseYvbp1Zz6J20MRHIrr0oLmw6HlzNNCRioBZgANn0P689eHbQOIkSgH1u2j2uTsdTcg2dtohORBvVQSBWlSQT0F9/Ac6jarC5Nz1DAHsWfu/K8TBB5dmZrvdyLtb8ovzNohLf1pbeqvL8OeK3t8dBaxtvt6guYmTK5gDoBb06PcqN3cagRAdidaVUbipNhWo56VFDtS3TFWY3ccyfl5Nbz3jITL3Nn6G45aOpujBuhvAcfuaqqemnK+tRa4237wvi/UE6AbnVruNhd9Bbn1nRLJIYMOZcFuQIFhzAuw8otzz+p73gNuVDU62+7S+ADizgalRtbcW1G/KMhCOQHU2BHpoNTYvraLe8+b1J3oPWm4AH8uvnbF4AH5fXfy09dLaF3jJRL/ugPqTy2tbfn6g7W9x4nW2thpf0t0xcNuXf+frGQEgaX5q0FtQLO9/i5a8Z/vYqe0te4C50lnZV41z/ucEuIU6LPD3MU1fQmE4V5+nMSVJg4mMeWn7DkbOse6GI/3hXBZfzREQs9UICXTXNUyT214aZ0OFVKMBxKb/7sq5rUk6YocNDVzDZJUWKaapWWXqmVPUmaQhEyomR5tfb0+yojxGwKr8YMhYaVZ/yzQBeZcMo5ZM/OOXKGUyp8qRLSfvGYcBp0cdKEAVGJYTLm4ak1NVR4NSHcxxsdHhbDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEai3t7+3/Mc0ZqhexrwtmgGQ8rRjE240TqXxDhZzZniWRKXoDh8HmSGHpTkR4Qs1n7ClRSX84vS6GeagovKCjF6/wDipmpVVO/ZuhmPS06gvEpiFEioqkKdNI4/CZdKoJXNBKuKpKEEJVTni9WP6MDJPh7mCpz/AOJ6cWoMczxknGkZLl4KkJXNyfJxPC5dbNxmaJiSr71mCSqvwegrJASink4TmGhE2dNnVsmj1wYaLS6AtKqcxXQ2sRenjoa1NjfpbZtRsDr6m++9x6AeywCVo4geJJt/rJIsQbuD63u5DRc239AbG1xr1rT71ieSq3OLWO1xuk9NAH72e2hiJUvkxHLtpbnfZ3G0TkP1ArcaVGt9PDlQ2rzoa2M+ljcN9fMWIckWiBUofu668O36HZ7A6dHnNRBtcKHXyG532Oup7tzWhGxt+unpz1vdtGgXLvcMxfdvdcc9xtyMTG4kHQ92lqbddh86HQ60xRrWsG2v/EEndw+1neFUu2ludr+YsexY9dzMREfxAa6imxPIGnlrvhd+eum/kb78tRY7RCqVt7j5PYkp5lwQ1nu0S0RPJQP9oXHrQ1rfXagoMUYEu3LQsdrFvLW/SIjLIsNfo7l2D2ZRbV9olIiik3qOWh33JHjoaaXtTFAkjQ9gRyHPTU8iSzRGUNpsNrH38OnqfjXTFUpcHx+ZFQK9L05Ypw7FI2DgttcnQn05xGqWHDtsC9m83B20F+Z3NcRA1FLjYDTyT+tcU0s5SDzct6gN5E94tMp7t1d9ttSfifS5qCI0+MgfXyNaacqdNcUtq6S/NPvtf1iwy7a6mzjb/e+UVBEqFfj+X5U/HyxUgbpHrwjyBb3WiipWmnmNNLaa8/KP37Ss/v8A1H1wb/U/5ot9l0T6fwjl9pVsoA86p+dACfXDhP8AdJ6FQ+TQ9l27Ekj0NhHH7Uv+P5HAgDVA/wB6HsuifT+EcTEGpJXbnQDXyP6NjhoHZIHV1e8P9d4v9na3nZwPcG159xpFMxFtSdaHUEb7H9a9DgaKHkken84r7K46i3l1KlbdYpqiQKmwrWlh+Vb3HP6lrzVY9A+3T0J7ReJYGoax/e1Iu9iPmxuzRHMWBeo8hWo6Gg0Ntz5UrUAuGAS3Nn63u/S45ReEMxHO4ACQH1DkgX2ILcn2jqiiRWlK0uaDoa0AFN960pSutWfUk9gQC4+nYs+0Xpl9O+7jfca7gkjQsYiLih/FU8gN6HagA06keGKhrs3xPmWtrub83IiRMpx33Oh3fZLtve3URFXEHmEjrr0008rbHBuu/c99hzt6sLRMmULFr8/n7tQDq7m8Q1xA2+Lck+PM0PhUipvsQbmA6ak6G+psGZzsWA90TiX3HxNr2AKn0OwuO8QXIiv3lVpU0BNtbbeYF6Cx5VDtYeZv0YBn32BvqREyJZuwFtCQlvIaaWu5O+rGE5EGpv3dSANd61tbxN9BYgkVAfS5e5Onf4jd2cGJkyu6j1e3635sLk7xBciDse6KG5qa602BJryoBehG1wSHc/iPJ7DTV323ubuxjITL04mJFgAAW6PfezDUb84Dj+tDpqT59La6A1rypTF2vXk2nxLs2pto14nEsMH20SOnx5+93iGtwqNvX6/4m9LYrErNbQA6b7G5bTmHd72uDSwh7oYQjdg9iV7Qd7tLcKXuzzxUnRi+N3BWRQf7GmkcqsbxD4VwqoeVS2bvxBdWuNzJk2IcgpBmV95th+YQEZlqcrdmkzjMwxUNst4Z5uONUBwivm8WJ4ZKT7OYr81ZQJaWiYS54p1MSmVOJYrQqTMJWtU5Q8FPt8/Zql+FWcUeJuT6AScg59xCf9/pKcf2GWc4ThNrKqilyglIp8LxyWioxLCpaFTJdNUyMVoUoo6SThkmbnYx2lHnlDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR4I9oz2uobshdnaeZolMQj/OhnYxOS+FUJ3YZ5UPmONg3Fxea4mGiUuodl2TZeXJutDkJFw0ZN/wBhyaMabh5suJZ4nnLMIy9g82fLI+/VRNLQJ/CSJy0ninkKcFFMh5hdKkqmeylqAExxwPxEzanKOXp9TJUP60riqiwpDJJTUrQSuqUlQUDLo5TzmKFoXO9hJWAmcVDRTz3LIvPEDNXpjFxUyn0VFRE4Eyj4hyMjY6cRDjsRFREdGRTi34l+ZvOvfa4l91Trjz5inVrcSe9q3VcU8KUtRXMWpUwrWorUpaiXKlqJUVLLlSieIkufxOY+f9hH7UVX9l/7QOCZxxSrnKyFm5UvKfihIXNqDxZcxKrQtGY2R7UzsRypiRlY7K45M6bV0cvFsKlLp1Ysupl+UWnHoR1QKVoUhRQ6y4lSFpUhRStC0qopC0KBBCgFJUCDS4x8g2JB2t6fXyj9lNDW09RIpq+gqKeso62nk1dLV0k6XU0dbSVUpM+mqqafJUuTPp6iTMROkVElSpc2UtMyWVIW6voGItLiQpCqg2IOoIoCk7VHQ1NiDocUb3db/rtfXrrH1xwTQFJs731bdiHtyPufVVwbiL6kU0HSx8fWoxQh9Q7eR+WtrWEWLlm5I4g2o131v03t1vE1ERShNb7g9AK7jzsd9NbCk3ANm/KfkSe+2u7h4gVLOgYi7A7e8aC1iNdNIloiK0FQflTexPqTWpppcYoQAzuk+ZGmo823tERlB3/KexL6eZ3/AL3SJSIihFFFJva522FjprU79MUY3txc2fs40c21YjnERlHVgW04SAbau3/l9SHiUiJJ1orS4NPqAa9KfXFGdwe1x7jv7jEJlgPqNQxGg8nHuG8SERQ5qSba3+RFaDwvinDq3xc+QN28ojMvo/bV9WsSP+XSJCYqp+8lVib21526+OKM3S/JvXr6RGZQfRux79U38vOKwiP5TpqFVJ15jrXXrrfC9tfJrdXIB+tOdipQ6HysPNhflc77mKgiqAXUOmv5fj44HdwCOxJ7/LQ84tEp9DfV+I99OJvdptFT7WLVXWlqd38e6fw6YoyW095T32vbtAylbA+/z/d9PoRzEWP4kjxA/wDcJxayb2T/ALx/T4PFplKGpV6J+bfW0fpix/Gg00sPl8GDJ5J/3z+kU9mf7yvRH6xwMWP4gPADrrRNPx64AA6AeSi/I7Rd7JXU9w3wB+to4mL0HfJF/wB2lP1/iMXAJ04fVJ+LfOK+yJ1cdywbv+FttDFNUTXdR86fh+fO2K3br0b5vAyg/Pp+a/rbyAikqJpsBY6q8b0pS16W8N6g/lzOvmAPhEnsgzufhs1/yW6Hv1igqK/n9B+NPxxViSW6ch6k+7SL0yunTzOx8/8AW5RHVEi9ATyJNB5bX6G2DDdreenLb4d4kTLY7PyAfof7xHqAbRGXFE1+IDoAdL2JtSniedMXAE6Am57efI6b9IkTKvoTrd2353N9WcX6mIi4i1bnqTrTpYEepHOmDWuW6emvTcajVr6zJl9QNdBfzOr6NfsBEVyJ5knagsPWmg2sAD0OKhJsWYC7m/u6XawfvEiZQayQANzy33AcdH0eIa4nUV7o1uTf8SKC1afndwvr+I+jC/16bXicS3L/AJjYcm215X6ekQlxHI+Zp4eA8q7Hli5voW+uu3SJghhcsP7o13735687XiIt4qJ1NdeVbeZ+XTFeXbTl8vj31iUBnAHDbuTr6dHOh0O9IknXCGjtZ9buT58ugYdI/MIQwhDCEdy9nzjnnns18ZeH/G7hzHLgs1ZAn8LOIZn3zzMJOZf8UNO8tzX3CkOOybMsnfjpHN2QauQEe+Ed10IWn6WEYpVYLiNJidGvgn0k1MwByEzUXE2RMa5lT5ZVKmDdKjoQCODeJfh9l/xUyNmTIOaKdM/B8yYbNoZq/Zy5k6hqbTaDFaP2gUlFfhVdLp8QophDIqaeWVOjiB/o5dn/AI3ZL7SHBjh1xw4exKojKfEbLkLPYBp1xhyLlcX7x2BnWX5kqGW6wmcZansHMsvzhplxxtmaS2LaQtSUBR3FwnE6bGcNo8UpCTT1klM1AJBUhTlMyUvhJHtJM1K5MwAkCYhQe0fl38ScgY94W57zP4f5llCXjOV8Um4dUrQmYiTVyeFFRQYlSialMw0WK4dPpMToVrSlS6OrkLUlJUQO4cfRjhEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIRpEe067Vjnam7TmZIySTB6J4YcMVxfD3huwiJLsvjIWWRixmLN8O226uFU5m+dsuxkPGtttxMRluDyzCRlXJclKNY8848cdxucqUsqoaHjpKMO6FoQr+1qAASl6mcCpKwyjJTICroAGlHibmo5nzJUzJEwqwzDOPD8NSFPLWiWtqirSASgmrngrSsAKVTIpkLvLjHs1YA+J8SbAeeOGHU/Ttv56x1voO513tt7wfq3QHFTLBl0xRPoRoiBmi+7FhNO4xMgkkqpQFKY5tKnxXvf6w3ElSk+8bRj509P4uIBn/MP9b5AtuTfYOY/Tx/RFfaqHij4VVHgFm/E5UzPfg/QSVZVVULKKzH/C+ZPFNQJSFKUipqMj1s6Rl+eqUmnEvAazKyDJnz5VfWTOq2nVMq7ybg0CkHRQGlOShqD5G2MePYyVNVKU4uP3knQj9eRi9NPBaUqQapOx1FLEHkQbEbeBuj6SVJWkKRoq7tfW4I0caWZx5NJS+QQakU8/nSv4fTCKlIOwVbUEgv236s7epiQiI/xB+opSviDzIrim+v8AH6bbziMywdDfkfT0tqfk8SkRNrK8v1Uc7Uv1xThHLRgCCx7tYBtfpoiVKbVPVwQfTUWfy2iSiJ5jU7G3lqB1JA5DFOFgWNmdiLaa97ObdxEZl21s37wYXFndz8HiuiK/nI+fPcaU8K9BbFOE3dLvu4Bc6+/R4jMlx+XTU/pr6cvWK4ib6g3/ALJJ6i3SvPytRuhTtuXPXm/Tl1iP2QuxULNe/oX2OlgeYG9YRG9DtXunTpoa9b8vE0YbqbbS9uYHxN4sMrqG/wBYMX7295vr25iLIp8RSK3rQemhPjfqcUAfYE9Xf4gfXaKCUW0B2DHfqyjzHKKgi66LJ8k/U/icV4W1H/MB9bRaZJ1KfeD5flJ3jkIv+e24KfrQeeuKFJGx+PwinsjpwH3X/wCWPost5dzXnJ9cLk/LmYM0xTau45D5akkznj7ayAe4tqWQsUtCqEHuqSDQg0xNIpampJTTU8+oULFMiVMmkE6AiWlREfKxbGMFy/LTOx3FcMwSStPEmdi2I0eGy1JduJMysmSUqS4ZwSHDR25B9lvtRzBsOwHZz47RrSrpcheEme321AioIU3IFAgi9dORNsfSTl7Hlh04Hi6xq6cPqyPJpB+POODT/GbwbpVmXU+KvhtTzAWKJ2eMsy1AjYpViILxFmHZl7TcsBVMOz1xxgQNftfCjPMMAACSauSNANNfDpiOdgeNUyFTKjCMSkS0h1LnUNUhKRa5UZSQPPruImpfGLwgqy1L4peHNT//AAM75bm9P3MS+jaPhorhbxWgnzDRvDPiDCRKbqh4rJ+YYZ8A2qpp2WpcAqDcgHa9McIrM4ZRw+pXR4hmnLtBWIuqlrMZw+mqEh2/FJn1KJqQ4I/Eh3Dc4+/KzxkeegTZGc8qTZRICZsrMGEzZZPILRWKST7m5REVw04m/wCzrPI/9lJ8B5gwN/T8sY/7e5GItnPKx2YY/hIF+1Xp3DlttpxnTJQ/+sMsX1bHcK67iqEUVcNeJwB/83ueBrYZSnoHWv8A1eKjrf8AOoz3kc//AFhlYnrmHCR6f5Xr9dRUZ1yTqc3ZZJ64/hdmu4/ys/HrFBXDTid/s6zyf/ZWe9dKQFR5nFRnvJH+meVBd7Zgwgt//wBdvXSL/wBt8kA/9sMrJ0/+3sKJ6v8A5WT5fh19KKuGfFC9OHeeRp/+k56TSh1/6vqaaUqAb3rq/bzIu+c8qk3d8w4Sm7uCR97e/wAGtF4zxkcm+ccsK0/+3sLa2n/zXvDM1zpEZXDHijU/+bnPZNLf/ZKff/D622+Ib1Bxd+32RR/9aZUA/wD6hwjbmTV6N59YlGeMjv8A9scqp01x/CibuP8A9LJu2gY8ndojL4YcUqEf5uM9jnTKU+PUX/Z9NCbkmo0OH7f5Ev8A/GmU+/7RYR0//bLfDTeJBnrIo/8ArHKyj1zBhQDjX/5tyNrPz5xHVws4pH/9uM9jxylPrf8A+fQYft/kTT9tMpvy/aLCP+si/wDbzIwA/wDjLKzasMfwkC77mr62t53MUzwp4ok34cZ7qf8A+pT75f6hiv7fZE/00yp/xDhHl/8ANw/bzI+2ccrB/wD94MK+JqyffH5/mp4of7Oc9f8AZKff+Aw/b7Iv+mmVP+IcI/6uKft5kfT9ssqvy/aDCf8Aq4f5qeKH+znPX/ZOff8AgMP2+yL/AKZ5U/4hwn/q4r+3mR/9Msrcv+0GE68v/wArj8/zVcTxrw6zyP8A2Tn3/gMV/b3Ix0znlU//AOw4T/1cP27yR/pjlb/iDCv+rj8/zWcTf9neeP8AspPf/AYr+3mR/wDTHK3/ABBhP/Vw/bvJH+mOVv8AiDCv+rh/ms4m/wCzzPH/AGUnv/gcP28yP/pjlb/iDCf+rh+3mR/9Mcrf8QYT/wBXH5/mt4mf7PM7/wDZWef+Bw/bvJB0zjlY/wD+fwr/AKuH7d5I/wBMcrf8QYV/1cbIXsAO0Hn/AIe52zl2SuImWc0yzJ/EBMw4g8NJpOJRN4KEk+epNL2BmjLoXGQSIZEPmvLMAicQ5+0w6IWZZViGm4eLicwrch+8fBjxPytVYqrKEjNGX66dihm1OFU1LjWH1NSuskSTMqaeRTyqhcyZ7WkkrqCJaXQaWYopV7RSk+XH9JBkDKOasCwHxkypj+X67H8uKpss5pocOxPDqqpr8vVtTMVhOJ8FPVKnKm4NitQqimgSZqp1JjEuYuZJlYYlM3a7xtFHjzDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhGN72qPaW/8nDsmZxXJphEQPEDix7zhdkVyCd9zGQL0+g4hWZ8wNvodbiYL9iZUZmqoGZQgU/CZijJAlBZL4iWeG56xr+p8AqTLWpNXXvQ0pSQFJM1J9vNdwpIlSBM4VpcpnKki3FxDrnxSzJ+zmU6wyJikYhir4XQlB4Vy1VCVfeagKBC0ewpRNKJiHUioXTtw8XEnSVQBQHeh+Z/p+qY1lP5jyDX5WcjsQDbSNKlmzc/gPoRPbH1AA8AT/Qb1xESwJiFRZPYe8nX4ekUJvJ4aeyqNlUWP9DFslAXSqmHge+xEN0IIWw6EuIvRXd7iwpC1IVirYhjvbW/IcgSC1v0t254CeNWafs8+LmSfFzKE5ZxHKWLyamsw7jCabMGATx91zBluuCgZaqPHMInVVAuYU+1op82TiFHMkV1HS1MrxvMpfFSmPi5bGo93FQT62Hk1qkqQbOIVQd5t1BS40ug7za0qoK0GGoEG/rseo6cunKP23+G/iFlbxXyHlPxIyTiAxPK2c8Docfwaq4TLnCmrpQWqlrZBKlUuI4fPE6gxOjWozKPEKWppZhK5KiY7TymVVF0k1Wnn1H8w0GxFQbaUjncqaZZ5pOo+Y6/HeLwhaXEhaTUHfTxFNQQagg3BGEfSSoKSFJLg6H5dxuI54Rc50/j6cvKOQWodfHCAYWuO3Tp02Zm1vFRL1NRpyJufM2ve2twcIo3FrwnVibEPyO5OhJI6RVEQdK21IVz86inj4X1NCPXR9xrofr1tFpQk24TbdP4m7C7m+ujFoqiJHJJ8Ca6iw+IV9NeYxVn52c8++r/y6RaZY0c8xxA2bcm5BGwZ79DFURIOxGgA5+Nfz1G+9Dp8mf5j6vtFDKJdikuBfn5akaMfcGi/5akOZM5z2WZWyfl+e5rzPOohEJKMu5blMfPJ5NYtZARCy2UyxmKmEdELJHdZhodxw7IO0kimn1c2XT08ibU1Ew8EqRIlrmzpiizJly5SVLWT/dSlRc2ePlYxieEZewysxrHsUw3BMHw6SqfX4ti9fTYbhtFITdU6qrqyZKpaaUAC8yfNQkbmM4fZq9hzxrz61C5i7RWboLgzInmmH2cmyJELmziLFhdFutTJ5l85UyqlLKh7t37fmiPEQHIeNkkCW/eOdq4H4S4nWBM/G58vC5JAIpZPDUVqn1Ewp/yenYMx456+J0qlIZz5yeLv9I94eZaXOwrwpwOp8QMTQuZLXmDElTsDynI4HSmZSS5kn+u8beYCFJ+7YLS+yKJ1PiNSFlCM1/B72W3Yq4PwUC3A8G5RxAm8MlH2rMvFxR4hzGZvooRExMpm0OjJ0KuoSAzJcrSqEFEqVDl0qcX2jhvh9lbDUICcMlVkxIdU/ElGtmLP95cuYkUqTdmlU8tJ14SXJ89c9/bN+0Ln2oqFVOf63K9DO4vY4PkUfsrR0cpQP9jIrqBasfnpuXmYhjVdPuQJvBwoHviU5alUkgISUyWVS+TyqAaSxASuUy+Hl0ugmE17rEHAQTTEJCsJuUtsNIbSSaJGOWy6aVKQmXKly5ctA4US5aRLQgD91KEhKUjoAAI1rrMUrMRqZ9diFZVYhW1SzNqaytqp1ZV1Ew3MyfU1Cpk6dMNnmTJilGzqMXUS9NLNqPShNK7W7tvXpbS72Pbs5+uv00Yv3qwI5tqH+B6D6vVEvNP/AESvPvWPyPlWn1xcJI6e8/HT09YtNQzlwLWGn6dL+7nbJxlGSZigzL5/IpTPYFRJMHOJdCzKGCjUd8MR7ESyFgUIWAFA/dUKCvx8dytlzNNErDMz5fwPMeGqJKqDHsJoMYo+JgCoU2IU9RJTMG0xKAtJAKVAgEZFJjOIYbOFTh+IVeHzwwE6iqp9LNbdJmyJqFlLv+EukvcXjznnfsa8Ic1tOOS2UxeSpoe8pEblqKUiEWpQNERMmjftUuUykkqIgG5bEKJAVElACMaq+If2EvAjO0qZOwjBq/w/xg8SpeIZTrFS6GYpX5ZdZgGI/fcJVToLq4cMk4TVEkBVYZaUyx2RgXjhnTBlpTU1snHKQMDIxSUlU8C/EqVXU/saoTFCwNSuqli5EniU8eHeJ3Y64l5CRFzOTsIz1l6HBdMbI2Hm5zCw6T8Tkfl9anooe6up1cqiJs02wkxL64dtLoa85PGX7D3jJ4XSq/GcvU0rxLynSAz1YhlmlnjMFHRi8ydieVVKn1p9h+JU+ZgtRjcmXTJNZUrpJSZyJHfWU/GvKWZFyKSvmLy/ik0hH3fEJss0M2aSwTT4iyJX4yAEprJdGtUxQlSkzVlBX5ZVBFKlJU33VJUpKkkKCklJKSlQI7yVpUCFA0KTVJAqRjR+ZWqQpaFOlaFLQtKxwKStCilaFJJBCkqCkqBHEFAv+IR28JgUApLFJSOEgcQKSAQUnQgguC7KBe40/Psunwg0OtCNK7DStd9vXFhq1K0e42D+87gw4iXckcxqwvyYaahx73jiYUDVIF61vWhtvSwpzNaabYp7d9Tozv8AHX+QPnFA2zG/1p/O8cTDWNQSRfe1KVoSDoN9gLilsBOAZlalncfJreZHWzwcO4dyx2IuTvrpoTrYO9zxMPXQWsampsb+B08BauLvbANcP09LM7e97m0OfPUBm5e7kQNGtFFUPYilwRoDqNTuRUUoBvXQgYkTPUWKTbRyQLadyzfCxivPbfe7sWbpe931e4ikWCCbCt9a1PLUk3FbEC1rVteiZ16gAu2xHPld769xHJ9ma/U3G1jd79bxRUzetCa6VGx1qTYg7geoqBiQTLgnbdy+oa/qNCG82o3MHQNbk1wHNgxbXTSKC2RyAANagHQU2UaVudh43oZ0zTd1JGx0JvsHubvZvK8VDd99Brpq7kDVt9xEdbQv0PMnewoANNNetd8TIWLC+3QN3Jb0FtG0EV5sNSC7Wu12YlzyYbBthGU1f7tDXS5162t4kEcqa5CFsbkMzu/933W6DU+tL/is/YHpttpyd7ADQRlsKINUUFjsKeZBsfwsSTXEwnJ5vdiQH+Funm/Q3sQ19DdzzuHAJ33fvbS55cnc1yfmORZqkcQIWdZcm8vnkriAVqDUwlcYxGQylgKQVt+9abDrYIDjZWgkpURj7+Xcx4lljHsFzJgs00uLYBitBjGHT9RJrsNqpVZTLKUqHFL9tIT7RHEAtBUgnhURGHiFBS4pQ1uG1iPa0ldSz6Ool6ccirlLkzACXZQQslKmBSoA63G0pwzz5K+J+QMpcQJMktS/NUkg5qiGW4l1yAiXUdyPljzqUpQ5ESuYNxUviFoAQt+GcUj4CDj9Knh1nbDfEjI2Vs9YQky6HM+DUmKIp1LEyZRVE1HBXYdOmJCUrn4bXS6mgnrQAhU6mmFH4SI84Mw4LU5cxzFMDqyFT8MrJtMqYElKZ0tJ4pFQhJJKUVEhUuegEuETEg3ePucc0j40MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhGn97bLj9E8T+1UzwolszRE5R4DZeh5GiFhnGnoVWes1Q8DPs4RxeaTVcSxBHLeW4mFcccEvjcvRrQSxEvRqDr54lYsa3HBQIXxU+FSkygkEFP3qelM2pU4F1BPsJKgSeBUlQDFShGo3jTjysTzSnCpc0KpMDkIkBKSlSTXVKE1FWtwLqQn7rTqSSfZrp1pZKlLBw7oFwOVB6XJ+f60x1oXuR1L8wWDeTx04vUdHLdv5RPbGh5BR8bin0odMRrNu5H6/KIl8uqU+jP8ACJzYJNtzQeQJPy08fMYq9ugfrqAPf8PWBRBHx7k3+I6946a4w5VD0KzmmDaSHYRLcLNghJCnIVS/dwsWog0UqHcKYdxSgVll1kd73cNQQrDh9xbYdS/n2Fy2jR7wf0N32qlYTjmK/ZWzjiVQrDcwLxLNXhJNqp3tZFBj0iSqvzZlGnCyqZTyMbopdRmnDaeTwUUvFMPzCsoFfjqDN88Yhj9FEVmHlMKqKlBPxoFL/wAydPj86KFjsQiaTNMpV7oV+Ycv9YdR79DF4QtK0hSCFJIqCPp0I0I1Bsb4R9EEKAUkuCHB6dtj0NxHLCKwwhDCEMIq55mPb3Yp7B3GTtr5yXLcmQ5yzw5kMbDM584qziEddy/ltDzaogy6Ww4dhl5mzVEQ6KweX4CIb9yX4SKncdJ5Y+iPPK8rZQxPNVSUUqfYUMlYTV4hNSTJkOOLgQl0mfUKTdMlBDOlU1cqWoLjXH7RH2mvD/7O2X01eYJoxnNuJ006bljJNBPloxXF1S1iV97rJxlz04NgkmcpqjFKqUr2ns58nDabEK2UqlG472TOxDwD7HmVW5Nwsyuh7NEdAQsJmziZmFEPMM+Ztcao679smvuW0SqVOxI9+1luQsy6Rsltl1cHFR7Ko13ZnLuVcHyzTiVh9ODULQlNRXzgldZUkXPFN4R7OUVXEiSESQQCUqWCs+BPjf8AaL8T/H3GlYhnbGly8FpqqdPwTJ2FKm0mWcDQt0S/u9CZi1V1ciSfZzMXxOZV4lMCpqET5NMsUyPUOac25QyHJYjMWdMwyfLMlhRV2YTeNahGlukEtwsKhxQejo100SxAwbb8XEuENQ8O44QnHNMLwbE8brJdBhGHVOI1kz8sikkKmqCRrMmFI4JMlGsyfOVLkyx+KYtKQ8a9YnjGG4LSTK7FsQpsPpJQ/FPqpyZSSrZEsE8c6as2RJkpXNmK/DLQokCPC2fvaJZClMS5AcNsqTLOTjfeQueTp45ckynP3DAwZh4ucxzX/wDIYuHkqwQQ171Cg4O7MC8A8YqZaZ2YMSp8JSpiKOkQMQrG3E6aFy6SSv8Au+ymVgILrKCOE9L4548YRTTFScAw6pxUhx98q1mgpCrYypXBMqpqP73tUUirEJCgQqPME+7cfHnMD6lwU5kOU4RRIRA5cy9BKQkfuqXGT4z2Yrc7oAcUiMabKiVJZQCEp7Ho/BjJNAgCbR1uJzAzzq+unBR3ITKovucgB9EmUpQAA4yQ567q/GTOlfMJlVlJhso/lk0NFJIA2Jm1hrJ5UwuRNQklyEAECPj3e03xyi1FbvFDNaFE1IhI5uBbv/C1BNw7aRyCUgDlufqJ8O8nSQEoy5higzEzZJnK81TStT9SX6mPlq8Qs4zi6sxYk5v/AGU72I/3ZSEJa9rAchykQ3an48S8hUPxOzE6RtHKgZmk6WKZhCxQJqBuDemhxZM8N8mVFpmXaFIvaSJ1P6ewmS+Z2b4RdL8Rs5yC6MwVym2nGTUaEa/eJUz4HQnW8dm5V9oDxly64lvMsLlbPEDX/S/b5YmSTYISPuw0fIXISAQSAQVxkkj1Kt8SSFY+FiPghlOvSVUEzEcGnN+H2NQaymc3JmSK1M2cpuUqrkAcjpH3sP8AGvNdEQmvl4fjEh/xe3kGkqW0aXPolSpIYfvTaScbOI9f8NO35wXzopmX5yEbwxnTi0Nd+dqbmGV3VOK7qFIzFCNN/Y0JNDEOzqWymEhUkKMY8gOuJ6tzD4I5swoLn4V7HMNIlJWBSJVIxFIS5KVUE1Svaqb8iaSoqZkwuPZJVwpPaGAeNOVcVKZOKe2y/VKUEvVkTsPUSWBFfKSn2QButVXIppUsX9qsBSh7Yh34OYwrEfL4uFj4KMaQ/Bx0DEsxcJFsOJC2n4SKh1uMRDLiaKQ424ttxJBQsgjHT02VNkTFyZ8qZJnSlFE2TOlrlTZa0llImS1hK0LSbKSpIUk2IBjtyVNlT5aJ0iZLnSZqQuXNkrRNlTEKDpXLmSypC0qBcKSopULgkR5m409mTJnFJuJm8A1DZXzqoe8E9goZIhJo6lBQG5/ANd1EZ3/9GlUxZSiZtdxol2KYb+yOaY/aM+xf4deOUitx7CJVLkbxKmD20vNOHUgTQY3ORLKESM2YXTezRiCZoEtKsYp0oxuR7KSVT66mknD53beQ/FrHsnLk0VSubjGXweFWGz5jzqRBVxFeGVMx1SSklRFLMUqjXxLARJmKE5OKfOvD7M3D+fROW81Sx2XTGHCXEVAchI6FUSG46XxSR7mMg3SlSUPNE9xxtyHdDUQw8y14OeJnhtnnwhzXW5Mz7gk/BMaowJ0srPtKDFKGaVCnxTBsQQBIxLDakoWhFVTqV7OfKn0lUinrqappZO52X8xYRmjDZWLYLVyqukmkoWzpnU04AKVTVUlTzKeolggqlzACUqTNlqXKmS1r+QMKeQ3Gn5DbenyxwATy91dbXLvbUv5amPtW1Z7Wsx9S3O2nmIpqhrXCqeBudvvJr4i9Lcr3ieST1JuTe3JiTr5g+QitjoAOgZ7Xct0OuvNtTSMNSlE7GwFTanMV3rod+WJkzyXdugDXHIB3HuPPSwB7gq5HQa9QSw1Go5GKCoc6AGhtTrXrSp8KX5byoneoPRr2A2uddNLQ63vo9vg+789+0UFMEmw5G9QbilqA0rtY1vcbypmszkMHZ9Oe7aNcEdRZ4DS2/m+/0Aw5RSVBuEGiDp+98Ngb2JrQVrXbUdbxUoBJVMe9+C4u1u45ctelRcsd/N376t79i7RRVBU+8oA3FBcV8SBvQ6G/PTEwqd0pJ5EkA8tA/wARaKltWLEbMNzf97e2o7XvHXDtp1BVUDU7UuDSgpcUxPLnLU9+FiQQl+l3JJfVzbaKhiLh2STe+hsz8tmiC4hIBCQEig0HI3+nmcZMskqDkm5YEk6p4tenv9BAXUz6gkPfVPPz827RAeTZQrqD8jU/W36OMxB18vn9fyipuFFtQkj69fLpFud1Pn/ynGdLLl+Y+Yin7pPQf+I/CMx/syeKSpllvOvCKZR5cictRLeb8sQjzilOJkc3eEJP2INBJDcFLp39ijXkAJH23MrjgKy6vuevH9HP4kqxHLmbvCzEK4zKjL1UnNGXKWcsqmJwXFJiafG5FIlyEUdBjCqSrmpZLVeYJkwFZmr4NT/tEZcFPiWE5op5ATLxCUcMxGahICTWUqTMoVzTqqdPoxOlJVf+yw9KbBKXyo49Lo1shhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPjeIueZFwxyBnfiRmd9UNlzIOUsw5xnjyEFx1Eqy3KYucR/uWgQp6IVDQbiYdhB777ykNNgrWkHHq6mXRUtTWTi0qlkTqiaQHIlyZapi2G54UlhqSwEYeIVsjDaCtxGpUU09BSVFZPUA5EqmlLnTOEbq4UEJSLqLAXMfzxc65vnHEHO+cM/ZheVEz/O+aMwZvnkQtRWt+b5lm0VOZm8pRCSpTsbGvLKiE94qrQVpjUarqJlXVVNVNPFNqZ86fMJOsydMVMWX1upRjz8r6udX11XXVCiufW1NTVz1EuVTqicZ0xRJAJJWsl2HYRZUfeHXX0xhfunkNOdyP0jBXqO3zMTW7U8U/8RUfwGIlmwHf69CYjUXUOpUfcf1ie1qnxUflT8TjGVv0AB8y/wCnvjHVZhzKfkfcIkuwzMXDOQsS2h6GimDDPsrAUh1l5JbebWk2KXELUlQ3BOI1WKj3j62XMyY5k/MeBZsyziNTg+Y8r41h2YMBxakWqXVYZjGD1kjEMMrqeYkhSZ1JWU0mcgggOgAukkHxRm/L7+U8wRsnd7zjKCIiXvrSUGJgHlK+zvCwQpSe6th8t1SIlh5KSe7iwpCmILdLFulgNPpo/bJ9k77Q+B/ag8DcneLGFIp6PEq+RMwfOeCU89M8ZczxhEuRLzBhBIUZiKda51PjGECpCKqdl/FsIrJ0tCqnhj54EEVH69MREMW/X5tGx8V2H1Mq3LZPxJHP+JINu9a4/eHWhwieTOMssboOo5HmOvTcdbxeEqStIUkggioI0PhphH0AQoAguDcERywisMIR779n72FM4dtrikqVh6Ny3whyY9ARvFHPUO2z7+FhIhxS4XKmWvtKXGIjN+Ym2IhuDcdYioKQwLcTPZnDxSIeDlU25lkzKFTmvEDLdcjDKUoXiFWAHSlRJTTyOIFKqmeEqCCQpElAVOmJUEplzNXftTfaYwD7OeSxW+zpsYz7mGXU02S8szVzPZz58pITPxvGPYqRNk4DhK5spVQlE2TU4nUrk4ZRTZCptRXUG7jwq4W5C4MZEy3wz4Y5Yl2UclZUgUS6TSSVtdxppAq7ExkW+sriplNZlErcjpvOJg9FTKbTB+Jj5hExEU846rarD8Po8Lo5FBQSEU1JTI4JUqWLAaqUol1LmLUSuZMWVTJiypa1KUST+dHOec80eIWZsXzjnLGavHsx45UqqsRxKsWCtamCZNPIlICZNHQ0klKKagoKWXJo6GklSqWlkypEpCE+Z+0922cpcDVReTcotwOcOKXulJiJcp1apHlBTsOlcM/mV6GWhcTHKDrb7GXYOIZi1spU5MYuVNOQZje9/DTwbxXOgk4vipnYTlkqSqXUBIFbiwTMKZkvDkTApMuQOBSFYhOQuUFkJp5NUpM32OuPiP4wYXk0zcJwtMnFcycJC5BUo0WFlaAqWvEFy1JVMnHjStFDKmImqRefNpkrkmdhczxxVz1xWzA7mXP+ZZjmKaOfAwYp1KYKXQ/xFMHKJZDpal8qg0HvK+zQMMw244px94ORDrzrm4eC5XwTLNAjDsDw6Rh9Km6xLS86fMs86qqJhVUVU02HtJ0xa0pCUJKZaUITqLjOZcZzNXKxHG8RqK+pNkmYoCTIQD+GVTU6OGRTygS/s5CEBSiqYrimLUtVnhosfCSaHSuxF/xv47jXGRNku9ut7dux+OvOMSVO27+e3TVme/UPF8YjqUv0GnkDQgiupG/LngrktqLDZgH66Hfe/aM5E4NY7Bzr6jfv8dTckTAUA71TyJJP1GvhT1xjmQHcgDn9EfwtGQJ2znycADnp11do4rmAp94Gm1TbkTc/rxxVMgA2AP10HxfSKKnvufNz6ON+vui2REb3rA13ua/971NyDTpjJRJ0tbtcctrfBvOMdc1rktuX1PTZuXwLCLBExQob358qEaX1/wANyT9CVJ6fLv2HvPpGFNmvZ7Ne79Pd07C+vcfBXtScUuAUzbXlSbrmOV3Ylt+b5HnTr0TlyZICkpfXCtFRckkyea+D9qyksPrWiHEc3MIWHEIri2b/AA2y1namUnE6UU+JJlqRS4xSJRKr6csSgTFNw1dOlX4jTVIWhIMz2KpE2YZo5RlPxEzFkqoCsNqlVFAqYldVhFWpUyhqACAsoS5VSVC02FRTFCnCPbJny0CUc7vADtJcO+0Zlpc1ynFmX5iljLJzRkyYvNieZfedUttMQO4EImcniXEK+xTiCQWHkqbZjG4CZB+XsaU568PceyFiApsTle3oKlaxhuL06Vfc65KQFFF3NNVy0qHtqScRMSypklU+n4J69y8j5/wLPdAajDJvsa6nQg4jhM9afvlEpRKQtgwqKWYpP9jVyQZagUompkT+OQj6nirwqy3xUy67JJ4wlmMYDzsknbLTao+Sx6mykOsqNC9BvlLYmEuUtLEay2kFTMSzDRcNqn4+eAeSftBZKqcq5rpk02JUyaipytmmmp5S8Xyxi65JRLqqWYsJVUYdUKTKRjGDTJsulxWmloBXTV1Nh+IUPc+TM6YvknFpeJYbMMyRMKJeI4dMWoUuIUwU5lzAHEuegFRpapKVTKaYo2mSZk+ROw/51yHPchZlmGWJ/DpZj4B0dx1rvOQ8wg3Cr7LMIJwpT76CjG0+8aKkIcQoLh4htmJZeYa/Nj4reGmbvBnPeNeH+dqRNHjGDTv7KokKUvD8YwyaVnD8cwietMtVTheJSUe1p5i5cuokrE2jrZFNX0tVSyN88t5iwzNOD0mNYTMVNpapJ4kLAE6lqEcPtqOpSCUy6inUeFaUqUhSeGdKXMkzJUxfyn7PcOjahUm6qIoO8TUg91XM1oabY66NagX4ypuTqHutf1axtH3mfbpe5vtyY3t00NjHBUtCT8ak6qr3RU1Ar9406bW8Nb0V5IHAk6BuIsNW0D9NdvOAYNvpv7jblFEwjKVAFJVcak7AkWFBTpSnOuJE1M5QP4uHnwvv3JPN7jto1bM4G6h6No7/AKxFWlKUgJSkUSLAAUvfQD9a4yEqUVB1KLvqSdjzJi17jsf/AMPw25RDcFUkdFg87/4188Zqf3fKL9xs/Dp5P7384tbopX+1+dMZksukDcAP5vFPkkg+awYtztiL6pB/Xp+qYzpX7+llfw+u5i9IfXkof+H9T6nnFtd08lYzJf50+X/gVBJuB2b/AHS/y93KID+/9/GdL38vnFdj/gHwVFucFQetL+IUPwFsZsu3D2HvDRa34f8AZPuUD+vrHofsicRUcMu0Lw8ncU4puUzeZf5ITohwNNpl+aQZS3ExClEJ+yy2ZPy+bRAIUS1AK7g953CNkvsp59R4d+OeRcXqZipeGYriX7LYuRMEtCaHMqRhcufUKUQn7th+IzqDFKgEKJl0KuAe04SOAeKmAnMOR8dpJaQqqpaYYpSOkqV7fDSqqVLlgX9pUU8ufSo/1p4c8LxsrY/QrHn3DCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEYqfbLcVmuG3YfzlJGn3GZvxczRlThpK/crCXAy/Gu5un63UA+8MG7lzKc1lr6xRsPTKFZdUQ+lp3g3iJXCjyzUygWmV86RRoY6AqNRNJGpSZNPMQdnWl7Fj1d4wYoMOyVWSUkibitTS4dLbXhUs1c8kC/Aaelmy1GweYkF+LhOl+1oOfdH9fwxrirU9z8Y04V+c/7XxEXBH3h5/Q4g/d8h8VRCv8AMfL4CJze3gj6LpiGZt5/KI1apbX8TekTm9U/2V4xzqt+aYhVqny/8Bi4J0RTmj6jEStFdjECtT3PxjrXi1k85ly6Y6CaW7N5GH4uHQ2ApyJgyEmOgwnVSw2lMTDpTVZeY9y2lSnyDbLWEqY6KYatdmFnYvu/ePT7+i0+1Yn7P/jkjImbMSp6Lww8Zp2HZexeorp5p6PLmcpS1ycoZmXPV/YU1LUT6iblzG508yKeXQ4pS4rWVUqnwIJV47beFRSpGtdyCBe33hSlT941pc1BlUgKdru7jRr9dPR7PsI/WcldyCWIJBBDFwwLg7h/Lo15iHAoddeYI5jne1NdKjECkEH+e3N+ly7b8ok10+vPtcmw1iXDvllV6ltX3huk/wASf+8ka66i9kTSZxlljdB1HI8x821EXhKgoBSSCCKgjQjCPo8iLg3B5jmI7S4K8H868fOKeSeEHDyXmYZsz1O4eTy8LChBy5hQXETOeTV4f/hpNIZWxGTibRN1NQEFEFpDr5aac+hhWGVeM4hSYZRI46mrmplIeyEA3mTph/dlSZYVNmK2QhTAlgeFeIuf8ueF2Scx5+zZVfdMCyzhs3EKspY1FXNBTKosNoZZ/wA9iGKVs2nw+gk2EyqqZQWpEvjWnfR7M3Z7yH2XeDuUODXDyGUmT5dg0OzOcRDTDc1zZmWO92ufZsni2EIQ7NJzFJ75SO83AQLUDKIMol8uhGm9wcCwWjy/hdNhdCn+ykJeZNUAJlTULYzqmbwhjMmqDtcIQESk/glpA/MR4weK2Z/GnxAx7xCzZOBr8Xn8FFh8qZNXRYFg1OpacMwLDRNUpSKLD5CuHiLLqqpdTX1HFVVdRMX5r7cXbJHBeXq4XcOJgyrinPoL3s0mrKkuHIEljEVYigC2tk5nmzKlLlEOtRVK4QidRTSS9J0xmz/gj4QftjUDM2YpChlihnlNLSrBSMerZKvxyiQpKxhtKscNVMAAqpwNFLUeCrMnTPxo8WhlGQctZfnpOZa2SFVNUhl/1FRzQOCaxSUHEapBJpZZJNNK/wAsmIHHSCdgmTMYiKiHoqKiHoqKinnYiKiYl1x+JiYl9anX34iIeUt55955anXnXFrcccWVqWpR7yt41U0uVLRJky0SpUpCZcuVLQlCJctACES0S0gIloQlISlCQlISGADMNKRPVNWubNmLmTJilTJkxalTFzJi1FS5i1rJUta1EqWtRKlKJKiSXi/QsXSl+XnqDfYiu4pWm9h86bK1bX5W7HY31G73fMlzWAc2tf6056aM53N9YjQKXsDz5Wpp5mpFK6m9MJckEszHl77N52Di2gjPRN699bm+u4107aARdmo4ilVH1NfzAFfE74w10/T3DnpyPkR7gIyEzuttObHX4NoOdomJjxrc2FgTUdampr5A/OsJp+bjmwt8SImFQwDnt8AN/R/J4LjxfUE8ya15/TYbmvImm/g4+VvnA1BNweh8+lufI9NIgux381utf8fA64nRT2/L7hft9GIFzjz3332J1059zpvaIiMqCK+Vxr6UtU60BPljMlym0D6eXX16A2taMZc1t7bE69fXmWYWOxiwxEXYgHT9frpyBJxnSpJd2fv8Db3XJ3jBmzX3YPfUnkXfbn8L/iueR+JWbuFmbZPnrI07iZFmSSRAfg4tg95p5pRAiZdMIZRDMwlUwZBhphLolK4aLh1rbcTQIUmHGcuYTmXCqvBcao5dbh9YjgnSpjBSFBzLqJEwDikVMhX9pT1EsiZJWEqSRcGfCMwYplvFKXGMGq5lHX0cwLlTEE8K06TJE6USUT6acAZc+RMdExBKVB7p2V+zD2k8r9pnh0zmiVpYleapOYeXZ6yol5xbkinam1rbfhFvJS5ESKcpadi5LGVdq0h+XxLxmUsj20edviV4eYl4dY+vDagzKrC6sTKjBMUKQlNdRpUApE0JJTLraQqRKrJTJ/EZdRLQKeokKV6CeHHiBh3iDgSMRpgimxKk9nT4zhgUoqoqspJC5ZWAqZRVQSqbSTXU6QuQtRnyJwFy498K2eI2V3X5ewk5rkTb0XInUqS2uMbp72Jkjy1gJLccEn7J31tpYmHuHC61Driw752/bW+zPS/aD8NZ9ZglHLPifkilrMTyXUpVKkzMXkhIqMSyfVTZoEtcjGkSnwtU6bIl0WOoopy6qnoZ+KJqNkvCrPkzJePIlVc1X9QYtMlU+KyyFKTTLJ4JGJy0pdQXSFX+UcCVqm0ZmoEuZORTmXipiEqbUttxKkOILiVoWkoWhYJCkrSoApUlQIUkgFJBBAOPzaqlTZMybJnSlyZ0lapM2TNQqXNlTJRKFy5ktYC5cxCgUrQpIUlQKSAQQN7pagtKFJKVJWUqSpJCkqTqlSSCQQpKgQQWILiLY7tXUlR/4aflXqcZMsMA2jJ96gYfXz+ukW5f3uV9OdqfjXGXL0Pv7bfP6aA0G91F9mcAe9/SLc593+6n64zkfmHn8DFNx2PxTEBwgJPOiz1oDT8KYzkaJOw4Yv8A3k/7PwB+MWx3f+1+eM2WGSObMfJ4p/5C/fjDe6Lc7Wo6JA/Xr+r4zZTfj58R+H84vSW9CfK36Hz7iLa7p5K/XyxmS/zpPb/wGCdRzt3/ACl/l9AtAf3/AL+M6Xv5fOK7H/APgqLc4QK8xS3gCfx8dcZssPw9gfd+sW/u9gfepvkYhB52HebfYWpt5hSHmnEmim3W1d9taTspC0hQOxAOPoU02ZImyp0lZlzZM1E2UtJZSJktSVoWk7FKgCDsRCalKwqWsBSVoUlSTopJStKgehBY9I2p+EudmuI/DHIWemi2FZpypJJvFttKKm4aZRMCyZrBBRuowMyTFwaidVsKudcfpd8Mc3S8++HeSs5S/ZhWZMs4PilTLlKK0U9fUUUo4jSBRuo0deKmlUbuqSS51jzYzNhCsBzDjWDK4iMOxKrpZalhlTKeXOV92nEB29tTmVNA5LEdh451Hw4YQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEI1n/8ApA2fmnJz2b+F7EXV+Dlue8+zaBCyAlqZxUjy7l6LW2DRZWuU5nZaWoVb7jyUH/SLp034r1QKsJokqulFTVTEvstUqVKURv8A5ueByuzvGuHj1XAzcvYYlX4kSq6vmofaYunp5CiHYv7KpAcWYtqY1yWtv7I/DHTitT3PxjXZX5z/ALXxEXBH3h+tsQD8p5HQ9iP1iJevl+sTWzp/c+RUDiGZt5/XuiIg8SehIPdv4RPa1T/eH4/Sv6tjHVbi68J8hb4t6xArY8in5JPzi4I+6joGyfCo/LEa/wB7z+cQkXPVRH16xNbFU16qFPEj8sQK18h8BFFliCCRwlJBBIOgDgi452v2jxRxcycco5lVEwTRTJJ2XY6ACTVuGfKgY2ABoC2IdxxLsOhVUiEiGUJWtTLndyJS+NL/AL6fwqZn3/ERoXbTmC0frt/o1ftWD7SPgPQ4ZmbFJdV4q+FSKHKWdhNdNdjWHIplIytnRaSpaZ6sdw6lm0eLVEpQWvMmEYzUTKWjpaygRN6zaeB3OorY18wNf7QpS17UxeQ7vobOR3ex0uwY9WaPRpE0ixY6N1f6256WJic29oLm1tzToaXHPQ6A74hVL1NtfrTqGv1IfbJCgpy+t3739+nIXi4w0T7o0NS0q5H8B/iTtQ/vDwNr4iLsAdtO3Ly9xcdsiTOMshKroPqk3uLOzm/NizkRtM+wv7LjGX8kZp7VmapQj9u56ejcj8LnoxIU9BZJlMahvNeYYBskoYOZszQYkTUU4hMciCypHJhVIlk8eMfsB4R5eEijqMxVMr+2rCukw8rF00kpQFROQNvb1CfYhRAWE0ywlpc08fjV/SXeNy8XzLgfgfgOIqOF5Zl0uZs6oplNKqsxYjTKVgWFVUwMqaMGwao/rRchClUqqjHaZU5K63DJYpc0XaM43yns9cIczcSZkhiLjoJlqU5VlD7wYTPc3TJLyJJK+9X3hYC2XpnMwwHIlqSy6ZxTKFGHttB4cZJq/EHN2GZbplLlSZylVeKVaEFZocIpVINbUt+ULIXLpqb2hTLXW1NNKWoCZHjt4h5zpchZUxLMVQlE2dJSKXDKRawgVuK1KVijpncKKAULqKn2YMxNHT1M1AJlxqzZgzfPc6ZinObczzSJnOYcxTKKm04mcYtTkRGR0W4XXnFEmiEAkNsMN91mGYQ3DsIbYabQj1IocGocGw6jwnDKaXSYfh9NKpKSmlJCZcmTJSEoSANVG6lzC6psxS5kwqWtSj5mVmL1uM19XimJVMyrxCvqJlVV1M1RVMmzpquNai7gC4ShCQEIQEy0JCEpBqQsXSlT9b/IDnevXxsmSjdw40trYW3+N9riKy52jfG3lv5dxF9YjK0odafiBS3Pem40FsYK5LuWte+1tT8bgxmy52lw+vmW5NpbpvrF4ZjiKX2sL9eleYsKfLGFMp3ezuP5ae52jLROZr/WxF/oHVg4uKI8Cl6AdK032Tr6jGKqnbTXb57n0cfrOmo8+2pHy7EbG8SkzAU+9XkdKeiMWewJ5egv74k+8Nvfu/yIgqYCla08qk+qf64exV9N+sDUO+pto7fIAxDcj7WPhtz6V3voPxkTT23c67cuoHKI1Tzcgt3bydy/TYcuttejSa3+uu40rzNeY8K5SKdmLMPLS/X4a894xlzX1L7/ABbXk4BfmNWaLO/GfzbEHa3PTz6fPGdLkgWLBty3O+9ratc6xiTJ1yHNy439x9Pq1hiYsEKvzB2Op8/r+ebLlOWu3xb5dHYM55DCmTXPfcX9LF+vnpt3N2aO0TO+zhxbkOfpeqJipC481KM8yBl5xtvMGUYx9H7Rh/dijS5jL0gTSRuPIUlqawkMldIV2JbXxPxF8PqLxCypXYHPEuVXpQqrwWtWhJVQ4pKQfu6+I/iFPPJNNWJQQqZTTZhT/aJlqTyzw+z3WZBzRRY3TmZMolKTS4zRJUUiuwuatP3iWQ5SZ8hhVUalAhFTLl8X9mqYFbXkoncpzLJZPmOQxsPM5HmCUy6dyaZQi0uwswlU0hmY+XR0M6glLjEXCRLL7K0mim1pI1x5a1tHVYdWVeH10iZTVtBVVFFWU01JTNp6qlmrkVEiYkgFK5U6WuWsEOFJIj01o6ymxCkpa+inS6mjrqaRWUlRKUFS59NUykzpE6WoEhSJspaFpIJBSoGMbPagyAnKmdxmGXw6GpNnAPxxSyAlqGnkOpv9rMFAr3BGF5mZIUe6HnouMS2gJYUB+eb+kW8DZfhl4wIz5gVDKpMp+LCKzGeClliXT4fnOjXITmimVKT+GQMUVVUeYpSzwS6iqxLFZVPLRLoFpTu94HZuVj+WVYPWTlzcSy3wUrzSVLn4ZOCjh00KP5zTCXNolWKkSqenUtRVNBPll0mljWgPQ0URT1AGvM10pjQJGrczblYG3k4Md2biztfXlr8/4xbnDfvV0qa9AKbdadNcZkoWNtWB63d/QEdxa8Bo3IBPqSfSx5xb3aAm/IdKAV18CmvOlfDNQL6de72HwPrFPkHIvZy3noNLxAetrr3L15qJrptY+FqXxmgWAG5YeQ/iPQxUdNh6cIt8B/JxFsdNCd6d4/qnUXxnI0A6j3sfnA+4Aepct9PvpEB0jvEcqAfT52/DGXJdieZJPezD4+sXCwJ/1fibe74Ra3Tr0AHqfyOM6WPxDk6vcOEfP+TiFwotsCPQFvO3xi3vKNFHofqQfWn61xmIGvl8/wBQfOKmwUOQSB/GLc7qfP8A5afUj1xnS7Hyb4e9h5ttAflI6J95JHq43tFvd/e8APQ1/H9GoGXKGu9yfRI/SKq1L3ZJPpofeQR0flGwP7OzNicydmyUSsqKn8k5ozNlh8qPxFL0SzmiGUBr7tMLmRphKh8JUw4KlSVU90vsJZlTj3gBheHFRVOyjmLMGXJpUfxKTMqJWYqdQBb8CafH5UlJA4SqSsOVJWBo7464YaDP9VUD8mLYdh+IIbQFEtWHTAf9YzKBayOSwdCI9043JjpyGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCNM322GcXs0duzMMnWoLa4fcOeHeToW4+FmJl8Znp1NhUd2OzpFpINSFVOhGNevEioM7Ms+WdKWjpadPZSFVJ/wCapVGoHjLVmpzvUSiXFDhtDRp3YKlqriO4XWr1MYnEG58CPmB9cdefXrHUpsR9WZ9uw+ETUH4q8yD5EAfniEuARsHA9QSfh9a2L1Fr3H6fGJ7ZoANyDToQbedfr6xr0+t7fOI16vpcH129+sTmzQ+Br6gg+la/KorUYq+fMN7wR9fpGOoFtb6+YJ3vy1+MT0EUtsDX+6dvX6YjLvfe/reIle6xHUEf+mJzRNPE19UjTxUD671xAqxblb3lvc3wixbEf7P6kX6Bvh0j5fP2UGc65YjZQQ0mPS39rk8S4e6IaZQ4Pue84EqUlmJSpUJE/CsJZeWsNrcQ2UxoX7OYTs7KB3BPY6G4PTq0bUfYx+0pin2WvHfK/iImbWzMoVswZb8SMGowJpxfJWLTZQxCbKpVqQmfieA1MqlzFg6UTaabOr8Ml4eqql0VfWy52PVxL0LEPQkS0tiJhXnId9lwd1xl5lZaeaXSoC21oUhQNgQoa4+jrd20uDrysXFyS0ftBwfGMNxvDMOxrBq6mxTB8YoaPFMKxKjX7WkxHDMQp5dXQV1LMAHtKarpZsqokTUgFcqYlRDGJLb53IpQVO2t6gXBrYEEDU4oxAIAOmm2+h5alla6MHj7CJhDEcnZ9idue+nO+jR9dk/Ls3ztmrLWTMvtpfn+b8wSfLEkZVUodm0+mMNKpc0sJClKQuMi2EKKQV0Pwg4vk0q6ufIpZABnVM6VTygQf85OmCXLfdipY1GjsdAcfGcdoMvYLi+P4osy8MwPC6/GMQmJI4kUWGUk2sq1h2SFJkSZihxEJBYKtH9Erg5wzy7wX4XcPuE2VELGX+HmUJFlGWuvJQmKj0ySXQ8G7NY4NjuGYziJbfmsyWj/AEa4+NfcSAkhKdysNoJGF4fRYdTA+xoqaTTIJbiWJSEpVMW1uOaoGYtrFa1ER+WHPWcMV8Qc55pzvjaknFM1Y9ieO1ctClKk0ysRq5tRLoaYq/F90oJK5dFSJV+JNNTykqJIJjB17U3je5m7jLJ+EcseUJDwqlbUTNQHFBEZnXNENDzGLWW0qKFNSnL65NBQ7i0pfZjYueN3ZcbK/Rr7LGR04TkyrzfUoBrs11K0Uh4Q8nBcMmzKeSOIhwqrr01s6YkEoXIlUKrLSoDza+01nNWK5wpcqUyyKHK9KhdVc8M3GMTly6iaW/KU0tAaSTLUQFonTa1LlCkmMaMNGXBB0Guvypt56W5Y2YmSm25sNdNG0OjkjXbSNcZc0Br77czYNzB3v83v0PGbVpz2rfSoFq78rDW+MCZId7DS3J92v8tthpmy51g56c72e3QbW3NhreGI2m/Pz/4aa2N+pOmMBdOQSw23D78nPLr3G2YiboxG36WOunS/J3i6NR+xPjv56Vr8r02xirk809iPncX1015CMhE9mv6nXzZm5P8ApE9EeOe24A1vShSPl+OIFSASdPRjbqSH8ifhE4qPNr2bXyPvaJAjhY1FacwD/wAtsW+wHMev/qi8VHU+/wCYMfhjrGhv0IJN/wCzh7Acx6/+qBqBrc+Z91gIjrjxc18bA1FOXdpi9MkDqOQ/V29SPhEap/lycjTe+2uwiA7Hkix6fMC1vLntSgxOiSdks+pPyY6eZ7DeBc539fI3199mDE9otT0brU1/Q2oKc+gFLiuMtFOd7/T7W6bWDNYRjLm63Gt7n3nftFliI3W+lv18NxvodqUvjPlyG2a/e4Omr+v88WZOcFiOnU353PI/DeLFExYIN9q+I2raw6dN9s2XK0DPfuzEddeml+djgLmM/LqbOG7D03jYa9k9xxdz1wczFwknDpdm/CObMrkrynCoxGSs1vRkdAQ5SpSll2TTyGncMpSfdsIlsZJodtvvMOLXoB9qjJKcDzdh+a6RITSZrpVprEBLCVjOFplSZ0xwAAisoZlFMALrNRJrJiiy0hO+H2Ys4qxnKlfleqWV1WVqpBpFlTmZhGJqmzpMsgkq4qStl1kskMgU86klpDoUVe3O0blVrNPC6fqDQVHZdT/lNAOjVv8AZgWJglVLqbdk7scFJrQuhh4gqaTjyT+3h4Z0viP9nDOc4U/tMZyCiV4hYJUJB46f9nkTTjyF8P4l09RleoxpK5RIlipRR1awpVJLEb1+DuPzMCz3hSSvhpcaJwSsQdFitUn7mQ9kzEYhLpClbE+zM2WGE1UYoXVVJ0NSdyD8NhSvXTkTQG1/zdoHw+N+Z2A5c943uIJ82H625s/MWEW9ehFrkDlfUgX8evxa2xmy0sBrufLkdd332i4/r6Cw59dz8zb3D3q21BPrWnhUX8xXQYzZQue4HmLkH0t2LavFA251IHYDUfE6Pr1eA8dRTQ0Brr3B+dqDrpTGWkXSL8/ruB7x53D947mzNuS9vQ+7WLa4b6XsPH9DXwxmpFgHsAS/v5+WsUto/wC8bi9hYH42fvFudP3tKEq+ZoKbadT90864zZQZIO5AP113frFyiW7EB35D9XL9vK3OG58b+QqfoRjNlDmNBr3NvUC/vvFAHB8gOVyPo73veLc7oRofh9bE+tDXGagWDbn5tF6jY7OT5EaevD7+l7e8bE7mtPMgD17o9dgK4zUb20a773HwP08GDs+4H+6Bvpqz6aHtFudNa1tRVPIDXGbKAAuNQfer+O3MxQ6l7hwPUj9COdgO2YP2Vk6dclfGXLy3CWoWYZOnLLP7rbkfDT6BinAP4nUyyDSroyMer/8ARu4tMXhnirgaphMqmr8rYtJlE/hRMrafGaOpmJDazE4fSpUX/wC6T0jVb7SFIlNVlavCWVNk4rSLVuUyJtHNlp7JNRNI5cZjLfj05jWSGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCNFb2oc9GYO312kY1CypEJm6UyNI7wUEKy5k/LcheSNQB9olzyinUKUoGmmNaM7TPbZoxdWwny5X/AN1TyZR96CLRpN4mzhPzzmBYuE1kmR/9xR09Ooa/3pZ5eseEEGhHKtvBW/qT6Y4edvQ9xZvQD1jgC7B97P3BZvQD1icjQc6fIH8K4iP5j1YPazhtOpuWvY84sWLA8j9H3RPbNxzBNPMWp/eoT/WmIVflPaIVgsez9gDp7omtn6VpzI2+vpjHWNNLFn2117W98RLAuNr3/wAQH6W1i4NEd0b1Iv0I/wDer0v1xEdebW9LfBv5xCoEsdPw6dbE+57a26RNaPWoCb73SbeZ1r0PWkKgz937vr6Ee/1sIBH1dxf0b3+s5s0ppZVL7A2+p16+NMdYu/MRCXI7Ai3MF/RtO3r5B7QuSDLJlD51lzQTBTd0Qs5S2juhmbJQSxGKCfhpM2W1BxQCVCKh1uLW45GCmdTTOMezNyi6BZ+E6jiN/wAJLdmDWj9I/wDRAfaoVnTI2JfZszhiE6dmbw3olYx4fVNZUe2mYn4eTalEqswGWZhM/wBpkrE6mUmjllcyWnL+L0FDRyqekwBQPnJp+lyanbcU1sajTc1saigOJyCNBbqGIZtRt01BtcR7YomG3a9+pfr0cMTfXSMmPskOHMHxM7evBBqZQ32uUZEjJ/xPjWSkEJjck5fmEwyrEkqCgkQed3Msxlwe/wC57ie4paVp5l4e0Ka7NuFcYKpdKqdXKSdlU0lcyQeyar2Ci9/wgAh41a+2xnCdlP7NniEqknexrsySMNyfTzAWJp8wYnS0uMygxD+3y8MXkAhmMx1AhJSreUejoeXwsTHxay3CQEM9FxK7VQxCNrfdVcjRltatQDTWhNNqpMmZUTpVPJDzZ8yXJlA7zJqwiWPNSgI/O7OnS6eVNnzS0qRLXOmHlLlpK1nUaJSTqO8aYvEHiDMuJPEPO/ECcOBUyznm3MGZ4tKVlTbC51NYmPRBsFVCmEgGXm4ODaACWoSHaaQEIQAPajLuXqXLeXcDy9RJamwXCcPwuUWZcwUVJKp1TpoDgzp65ap05bkqmzFrUSpRMeOuP47U5ix/GserFPU4zitfic0BRKZZrKmZUJky3ZpUlC0yZKABwSpaEgfh4RZ4eMpS4Btvvbr5jSopagxmTZDvbnbUaG/6nTubxhondunu59zfYkO7WvLEbpfXqK9RSmhNuh0FxjCXJPLdh27l3Yerl2N4zETnAvyZrnXfsb6ciSLxd2Y7kSQAdaX515bEVPOwOMVckFw2vkdfR9b7APyjJRP63+XJrAvfsTFybjhz6VsSa38vXQgg2virp+Y62fp5uzWfbtGQmfo5fc6/CxJJfTzG0S0R4FisAV/l6c7itNfAX1xCqmf93zYv8/jEongvsw13fyfS1vgIr/bU8x/vJxH91P8AdPof1iQT9yq/f5Ew+2pH7w9U4fdTyPof1gZ3JXdz8GMR1xw071aVp938L8tSD6YkFO23oDf0AiNU8bbhww5fz2G9ohuxwNaK8zQV01A8ufPpjITTtYB/XbU9ex6CIlT9htzOzPrfmUtvaLY9Gg1+KvmKHS1vGlR1FgLZCJLNa/Qd/IWe3axMYy5z3vytqA242Op8zZw4tL8YL3rXw6emlhoKA2JFMuXJJ2LM+40bU+rs29mvGKub1Zrtvo1ztb3RZYiMF71FtxYEm5+t+laWOM6VIfa/YhtAPdpv3uIxJk5xbqz207dOTAWHSPevswOJkXkntd5Rk6IkolfEmQ5nyLN2FKPu3veS5eZ5O4hJPcEU3P8ALcsaZeKfeJhomNYbKftS+/0V9prLcnGfCXFqwy+Kry5XYbjlItKfxIKKkYZVpJ1MpVBiNUpaPymZKkTFD+zS3d32cMwzcH8VMLpAvhpsw0WI4NVILsoKpziFKQHCRMFdh9OlKmJEuZNQktMvtIRzDEZDxMHEtpehoth2EiWXBVDzDyFNPtLFbpcQ4ttYBFQqxtjyvr6CjxWgrsLxGnl1mH4nRVWHV9JOHFJq6GukTKWrppqbcUqop5syTMDh0LUHj0xkzptPOk1Ehapc+nmy58mYgsqXOkrTMlTEk2CkLSlSSdCBGEWeQC5PNppKHCVLlcxjZctSqBRMDEuwxJFqFSmq0pqepp+SDM2X52V8z5iyxUKUufl3HsXwOctQZS5mEYhUYetSgAGUpVOSWDOWAA09MMNrE4jQUOIS0gJraOmrEAOQPvclE5IHYLsQ5F35xYHVWAGoHKt1G+96DU8iTuMfPQGfr15fAm9ttIzSwPQe/wCdztre0W9ZFSdgCTUW0oK9TfTrblmygWHPTU6na5s1hyNt3czC/T1N3HRrNfXbSLe8q/yNTuqpPjuDf+IUpjLlg8Tv5t2CW+fcPvDQe/m+wtvd+Z1Yavb3FD4vAkV5moHTc77HGYkP2JCWHJx8LesVFyOQAffqfJyduTxbnCKU0oeegFa/OtdLg6YzkAAW5W2d7fDTfTUxUnRtwT3J19zgbuG5PbnTbW/P+0aGp8KnyPPGZLDOeZDBuQAa3PSCRpbVz5AWI8z8Gi3um41p8Sjf0rz1PpjNQLpH0+vxirflDcydrEh/mNi/lFudpXlUgeBArvsCSL10vvjMRptr/D5P56CKh7O9gSW3d203Z+0W9ymh3rX+8fxOM6WLdmHp/Fj8YoG1bcm+rAA+rkHlq1tcmfstJwpnitxJkPfomZ8P2pwpupuqR5klcElVND3RP1iuo79N8ejP9HNiSpPiNn3BgpkV+SZGJqTupWE47h9MlTb8IxtSXu3Fs99eftGUwXlvL9Y15GNLpgf/AOcoKiaR5miB6tGcLHr5GoMMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEaAXbmjlzDtn9qp9w1LfaA4rwIIr9yW50nEtbGmqEQqRpqmg0rjVvMyuLMONl3bFK5J/2KiYgD0SI0VzuszM3ZnUdU47iiR/8A2aybLHuQ0eYknTw+mteWop05Y46oXJ6/HRvQv19Y4moO55+VlCze9+vPWJqDXyOvQ1oPWhp8qjEStQRu+mvcdxYnYREfxIPZz5XI/T6MTWySAOlvFNaV6WviM2JbTbsbiIy7DkPn59PV4ntq0PLn4UrT1tzBvXGMoaj4d+uj7P3iE2DHX5g2PoWvsUt0nMm9LA0oATuLjTzO9bU6QHy52ffXXty56M0QqFjqzvzLEXb4bMO95zaqEai4URpY2NeVNac611GI1jfmG68ww66fweIxuLdD57c309+jxObIrTb7vPw9QfzNsY6w47X+voxEoXP+8O41a29ifUxDnsjgczySZyGZpKoOawjkM8UgFxpdlMxDRWCgPwsQ2zEsKUCEvNIWQUimLULKCladUnyIL2Ouo4gbaR2H4Q+KWZ/BLxPyV4q5NnplZhyTjlPi1IiZMmyqfEKbhXTYpg1cuQpE7+rMewior8FxREtaVrw/EKlCSFEEYyswyePytPZnl6aI7sbK4pcO4ruqSl9qiXIaKbSr4vcRcMtqKhyDQsuoJNa4+ykpmJCkkjiDgg3Gx8wzGzR+1/we8VcreNXhnkvxUybUioy9nXA6fF6NJnSp8+gnlS6bE8FrlyD7MYpgWK09bg2KSgB7LEaCplFIKWjNx7AaVpmHa/4hzFxAWmRdnrNEW0sgHuxEbxA4ZyxIBuO8uGi4yhGyFihuFdneE8kKzFWLKQPZYPPWG0Cl1dFLYciQpVg4NzaNR/6SLEFU/gflikSoj+sfE7B5K0/3pVPlnNtWSf8ADNkyXIs5Ta4jaY7SWYV5X7OfHzMTDim4mTcGeJ0fBLSTUTBjJc7MuUFA1TWOMOkrp8Ne/U0rjb3wyoE4p4kZAw6YkKlVmdMryJ4LEfd143RfebHVpAmFt2bd48FfEeuVhnh7nvEJZKZtJk7Ms+SQSCKhGDVn3e4uHn+zDjR3jTVh4ugFFct/Cg+9rUeHnj2kmSX0uw110fpe4t10tHj2ic1j5X0bS/MdfIjSL1DxwtVV9zXw/mpavWhF96Ya5OxG3LvruNRfludYzETdLuH+n/XVrbxeWI3Q963j4/zWqNTzB0pXGGundh077227W69YyUzjYufWzevk2w1vFzajyP3j5n8e9Xnev0OMVdOC7i1/P3NdtBr1jJTPu+3dzppz38nuNYntzDT4r+Nr+YrQX33xjGm7nf56MRvfvdonTP2cjTr8eW7PEtEf/NalrmnpX6b761iMgvoPfoNNND9cokE4WLhvN/UW9A3KKojhuoU6G/zXi0yDsn3q/Q/CL/b21/5vr0aPwx4vRQp439Ar6bYewO6f/F+nyHSBnjmf979NfSKS4/8AmseppXwr54vTIL/lHLS/vF3iwzhzAew1fk30NIiOTDfvf8Qtp1NL03GnPEopyGd7dPSzD62aIlTxu56P6v57HybSLe7Hg/vddaC3P4q+BO+thjJRT3snW2ndtgPntYxAuft9cu55873GkWt+OF6q1qKWvborf0IrvjKRTtqNGb9NLe5g12ZsZc7mX18/JvotdtbNER1RTvAUrShPWlq8tN6W0OMyXJ5BtOvnoPXdhfWMZc2zu3NixN/Kz395YuI7a7M+a3MrdpTs/wA9Q4UIl/GnhiuKKSarlr+dJNCTNoUJJL8tfimfBw1ChUHiXiXhScT8N8/USkgmoyZmYSnGlSjBq2bSqJNv7Oplyl7XSzgsY5R4dYmrDvEPI1alRCZGb8uGaQ7mQvGKOVUpcX/HTzJqCdL3BGu6s8qhIrQiqa6WCviV531FNzapPi4LgHnHsKbEjlGHXjFDJgeKXECHAIT/AJVziJSNgiNjHI5CQOQTEhItcUqSbH8u/wBp7CRg32jvG+iQOFH/ALS811stLcIRKxfE5+Ly0JZvwol16UpAuUpTc3VHof4d1BqsiZRnk/i/qDDpKi5PEump00q1E8+KSSeSjpy6rdVtW/1JFehtS1d9TUW6SQLi1umwG3JjuNW6a8x82G/1/EXAiCtVAdBudNE17t7itxTWtNBQVzUhhroGt118tfc8XNcJ6382floBfzvFudVXTfa2/wDS3iKVtfLlJYP6a6egd9+R2vAuXv68gzORYuQ1t2YveIDyrUpvW42Gx8TWleY0qaZcoOR0D2O55dQCH7FwbRVLlyzuW2e7kt5dQO8W51Wt76b35725HWvnjNQOnXpaw+fmA2kUN3630swsOw1826mLe6dwfTS3wjTzNfDnjNlpYAer9bnTfsOtovA1HkNO6m9WsOTgNFvcNSa1pUDyFyfkeeltcZksany+vQesUNySNdr87Wba59x5vbnSb61p4/eNd+VL8wDuRjMQA4Fuemrbt6fxiuxI0sBoGAs+o3dvKLe6fvHlW3hb5E19NMZyAbdfiT+gHqYoA3MOydtTc/He4eMivsvP/wAwGcL1I4Oz8GmlRnTh+fW9D4DTG/n9Hd/+ejM+oB8L8cIfl+1mSB8ifPeOh/tEf9isM1/7VUQv0wnHD83jPJj2WjTOGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCP5+vbah1QvbK7VrSgQVdorjNEAHUJi+IWYItB8FpiAodKa41ZzICnMGOA6/1viCh1C6qaoX6Ai3UtaNFc5oKc25nBDPj+LqvuFV09Q9XfsR5+bGyKV8/Ctulhep5U1x8FYLjqG+bfBhzjiZvbl+Hu36sGHN9N5jRrbxHgbkHXX+tMQq0fl776HodxEY1IvbTkx+m7C2hia0r8xtY6+FqYiO13O937X7Fu4MRsQSPLqd/ewbvaJ7ZtS1rcyKaV2pTX+Y8jiFYv/LoPXTy7RCoXPViH0trZ+THQ2cRMaVfnvTqNjUitRYakioub4x1BvhyBB/Q63YG7MbRKDHcPbrfTt7hfoIuCToda3vQnum/Qa+FhzGIyNt/Qg/KIjY+6zgcrb6M+t+Yiag2F/ukA16Uppp3q3Na1p4YgI9/Lr35afwixYs9ufRruO2zdOV4mtquP5rgbAjXlqK7E2NKi2ICGJF/r6f9IiUHflz3bnpqDZzuw1BMeau0hkL9rShjPEsh1Lj5G39nnCWRVT8lUsrbiykUUVSp9ai4pFT9iinnXT7qCSUZtHN4VGSo/hU5SDsrcf7QHS6Wu8e0P9EP9qYZKztiX2b84YlJkZa8RKxeNeH1RWzPZIw3xAk0wl1+Ay5ymlJlZywunkGilTloCseweko6Ljr8wKlzsg//AEfSZNs9q7i9AKICo7s6TpxhRVSq4Lidwvq33eam4pxyxp3WlVrWuO4/CYgY9iCTqvB5pB6oraFw7t+8SwFmZuXpt/SRylTfBvJM9LkU3ifQIWG0TUZTzcOJ9glclKG3MwaMQdmftgQz0d2Tu0owwFKdRwP4nRoSknvKRLcoTaZutilytTMK4lCE1KyQmh7wGNw/CKoRTeKnhxOmEBAztlqWSdAajFqWnSSdAy5qSSWAZ3DR4O+LElVR4X+IctAJV+xmY5oA1Ip8KqahQDXJKZRAAuSQBrGmpDTCw+LlvQ/83T9UNfZZE7Y30DG+77i/La/dz5ClA21+vr1bYRe2I8Gnxaa1Pht3qdfHyJm/AvoX3/lZ2ufQD920KUn4fXr6Ns0XVmOpSivRWvhVW3I28K4iVI5aM7j+XxDxMmexu999O2nPf5sIuLUwI/eB89deStefyxjGQb2t2Y28rctWblE6Zw3IPMcn68vlyiciYDc8t6mg5fFpy1HzxCZAuOEvt/MD3fQmTOPPo4uOu2vqTuYkpmI/jGtqk1/5rXxEacDlbZv/AExeJwfXTQBwO+hPw0isJgCB8Z/3qfVdfXD7uOl/rk3pF3tyf3gO5L+d4GYAA0WfWv0USOuH3dOtrfWnDeHtj/efsSfgTFBUwT/HpyJ+fx4qKccgen0mLTOGxt2JY9LDXz0iM5MRoDXWwPpX4vy6YlEgacJ8wPn+sWGbu576dLcn8n3iA7MCa/FQeNetAe94/qpxOmQXDjRtveSw+fS8QKnAXfbQfT+nS0W16N1Pe3533t97XfrXUDE6ZATqG3fd32cX7huvOIFTuWvr1fbt0u+0Wp+PAr8d779P7Wg2rpXlTEjoRyJA/TsT5tzaInUv67/q3o8fdcD0vTrjtwRk0N3lxE34x8LpVDoQT31PzHPUhg2UppUhSnHUAUBNdBUEY4lnqtRS5JzlVTCEy6bKWZaiY+gRIwWumrJdgwSg23FtCI5PkqlXU5yyhTS/xTKnNWXKeWA4PHPxmilJZt3VbW7NpfeafcBUs1sVE+Ve93RvW5ruLlNBUY8TBYDsI9lzcnuYxBcbopMRxYz84gghOZItg3BHvIUNQqxufhcZWDyINDUUP5j/ALWlVLrftM+Ns6UXSjPuK0ZIL/2mGy6fDp42uJ9JMSRa4Ym0eg3hnLVK8P8AKKFAgnBaecAR+7UKmVCCO6JqdNY6gWok02H5Ene/+7S2lRQdAykjVuXrt6b7vqTHOufqRo+jX1PUbgekF1dPGmnSnwjal7kVN6m9yMtKXIFmFn2u4O9/TRj0Nb+avr36P/iEW9Zuan/E668uvLwGMxIYdrt8rfLuTqYp0Yudumo/W/TrEB1etNBpypoDqdTXzrU3NMuUki5N1HfZ+dg1m/TSLrB2/wANzoTq/kGBFrRb1qqfOlep8T/jTwGM2WASPJW2gsl/jbRuetBq/IOH3YgD9Lcm5mLe6oXPLptoNCdddKmtRYgDNQPd8d7HcaOLN5xfpzJA6n8SvoevMxAcIpTQ+e9yRroAaDn4Xy5adAe+nncd2B0taKC1xoLnTU2G578rvuGtzqt/FRFedk25HUg6UFN8ZktLnTkB9dPdA2YPoCDqe47a3HI7piA4aevyAqd/EaUJoNjjLQH13v6sBr5P5wFmfk+pFza/k515sNIyL+y6P/3gM3jnwdzAfXO3D63Sm39Mb/8A9HiG8aMz8/8A2X40PTNeSfm5PUmOhvtEf9isLF/+1FEb9cJxs3Hnt1B0jPNj2SjTSGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCNDL2k0jVlzt39pyXLT3DEcSo2fhOgKM0S2W5lSul7uNzYOE2BKqnXGsucJRlZmxhJH5qtS/OchE9JZtxMD7kRpH4hyPu+dcySyGKsRXP8qmXLqAR3E0E9+8eKmlbW5eVtem3hWgtji6g47X+uvLrHB1C56hx30LNu1+4D2ia2qh6n6pr+RxCRqNm9x5+vrESrEEae9iHHnt3LDWJqCAa7a+RrXzrW2ImsRvu+zaN5WGr9ALxrDEHR/lv9conNq0Olu71rqm3yvqTzocRLDjtf8AWI1cwNLjtuH5a928omoOnqKHcC9PpenkcYyxv5Hs/uboD1DREob+lvMeln0azWaJzSwoUqDbl+6RU7AWOtdqb6xkHd9WPfvEKhbvy5iwHWzswHXpNaVSx0sDrvodhrY03vYjESxf1I8mcfMctA+1mobcD1DBwednPTQagCYhR0JoTSnMEX8aEnS1AdjXEC0uH5e/6EREXIZ+VnJG4HUG76i5L713WoeLYehYpluIhYpl2HiYd5PfaeZeSpp5l1JstDralJWk17ySqoNsR31BIUCCDuORHbTzEZWF4rieAYrhuOYLX1WFYxg1fRYrhWKUM0yKzDsTw+ol1dBX0k0AmXU0lTKlVEmYx4JktCmPC0ffeyQa/wAy/tJZJkp5akS3iVw94j5ey0+64CIyDbk3+XjEMXFULkVCJyRGQTzawHHYmFDyEKbdaW52z4WVqU5mp0kgKq6SspSl2/tEShVbk8QUmlJTvcA3EfpVzb46UP2tPsCYd4oSlU6c15PzDlil8ScKp5Xsf6ozfQVErLmJTpVMCtMnDMaRmKhzBhSpUydJk4disuimTU1tFW09Pt5Z2y+3nPJGc8nPAOM5tynmTLDzZIAcZn8mjZS42SqwUpEWpJKqggmpIGNqcFxBWEYzhGLIPCvC8Uw/EkKv+FVDVyapJDXcGUCGvyjzCxnD04tg+LYUscSMUwyvw5aToUV1JOpVA90zSL25xomqefgYuJgYpK2omBiH4SJZWlTbrURDOqYfaWhRC0LbdQpKkKSFIUkgjvAg+19PVInypU6WoKlzkImy1JIUlSJiQtKgQWIKVJPECQQQQWaPGGdTrkzZkmYlSJkmYqVMSoEKTMlqKFoUCxSoFJDFiCCC1mubEwrT4q1pubaX1pawqK9K6DNTOt6nmOz97nR/UmApO4226dtG1ux7GLuzMiB962ouRUHlfYdb89sZKZ7b9Du3nzsNrFjq8RlAOmr2829wfQAcupuTUyr+9YEbn5XsfGmtgbYlEwH8wDl/kC7X2253Ooi3gIYg7WLkP21fTU/rE9EeDQFVCBzVXfrU/LkK4ueWbjm1228hcWt5PB1jc32Z3b3fyfkYkJjhaqqjf71deYJGmnlXlgZaC7Kt6A22sfrTWK+1UPgNbHqDy+jFX7cP4z6n/wB7FvsUbMfQfECK+2X09I/DHAarP/EfW5t42w9ijmPcfgkiHtl8x6RSVHUt3hfl3geupH65a4uEtAuVAD1HY2DdPf1GYouz9rm/TbqxtYxGXH0r8e/81QOu/X8dsHljYH08tBfrodWi38Z5uH6dQ4t8eWj3guzH+a3iRpY0ub1NK3F9RbFpnAaABrdbg7sTtbQ3aAQTvvq293v5adyCYtj0xN/iNthXf+9/Q7d6mIVT3cvz6XG3utfoWGl4QPVwH2tvtvztbTU2d+YG/wAXoTXexuLim1d9wMYyp2v8hps9+9xvs8XpST9dB6nRiSLesevvZ3ZbVnrtsdnyVBCnUSnO3+WrgSCot/5ASuZZ0ZeINQEtxcihrnQ0CSFUx034840MJ8Jc7z+PhVVYQcIS9nGNVMjCVpGl1SayZ3a4YFu3PAzCDi3ivkqSUlQpcW/rZVgQDg1PPxVCuQSmZRovZiRuwjc+ccJqAbU51CQb0reqj5062r5KgOWGpsI9W9IwuZ2mqJxm7NU2QrvomeY53HoWDXvJjJlFPpVW4PfS4CCTShG1MflJ8UscRmvxR8R8yyZgmycw58zdjUqY/EJsrFMfr66UsK3CkTkqcaghnBj0ny3RKw7LuA0CklKqHBsMo1I0IXT0UmUoaW4SguPXVx8e4sAEVFNT4W7oFgL+dRT7wxw5KWA17/E+T/xtH2hfl12uz7OW2Ye4mLe4v1v60pyoQB8xS9KjJloA9x67t+tub6Egix1e9y2oHfdxvzYvrEJ1VAb9COmpOoOn5igqTlITxEC3MnpozsRc+/qLVHM20bk+g12De7eLc6rb09LDTa1dj6DGchPL3bXBO9n0DPuIqeTvqOr7nnfTd76C0QHFH50Nb9SfIWqdCfGmXLSw6nTs1g30fcIqkaPsyraudB1/kNNYDqhuRa58NtNLj5DGYhOgAf17t8tyH3gdhZ7k6b3LvsNW3AHcQHVE2JAvTrcgm/oB1TyF8tA3+uXrc+RHlUc21udWAH5dHA2J5XeLc4oUr/FfrTYX5/M13Jxmy0sL9nHMuSfSw1a3aKO501sDfa537bM76teA6q5G33d/Ek11t8zfXGXLS5FtLiwO7BvMnVtAdou5aMTy2GjkdLh76DYxko9lrBOu8cM9zMD/AEEHwrj4Fw7B2Y5uyi+wOlUSt8i96G2PQf8Ao76OYvxZzfXgf2VL4dVlGthb2ldmXLM6Xf8Aw4fObnc7Rr99oqckZSweQWC5mY5E1Ox4ZGGYmhZblxVKPc8Z28ewsadQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIRpKe2Ty67l/2gPFiKcZLTOaJJw4zJCLUCBEsO5EkUlfeRspKZhJIyHJFfiYWKWONdvECQZeZ65TECdKpJyXGv+TS0EjW3EhY2uI078W6cyM84mtiBUyKCeg2HEDRSJJUD0mSlJ/2dWjGGhXU0018wfO2tr33xwg8+Yf683jrFQs4Fxdtbbj0iag6c/wAqC23K23gRiFQY/W7m+53vv3BiJYcdDvze4ffze4tYgxNQoEa6X8QeYG1tTppbESgxBG7D3+d+QY7lnEWH8SevwI2v6PExtexP5706Hztz2OIzr3uPP4to+8Ra/G/vv7/Vr6zkKre1TWviKWoQK2ptoKnXGOoMSNvr36/KImZ0+nY9NyCbXflyMxpVwa2NbUr4pvufDkACBiEhrcrcn1ZR2a7O78+URENbn31s2nQPZhbW8TkKvXXTTcGh57X3Oh5kYjIcN6d/r6eIiGPd/L3diLCxtExCqgdALjkN+Vq0NgdTawMJGvw+v423MWKD6WOo6d+h8+5YxKQve4071700qOVN9tCSaXhUOEg6jqPj3/VmiMh/kPeU+8ADsG1avJpo/kjiXwh4zyrvt5g4K8RssZ/h1w6HFRUykEpmsI9nDLaQ0FOOs5hy23HwBhkpIiHS1D99pDzro+zl3FDg+M4dXlREunrKebMa/wCBExPtAW2VLK5a+ctaraRuX9i3xzT4Y5xzT4a5nrly/DDx6y5U+HuaUT5qRQYHmGtlT5ORs8zETVIlyTljHapCcQqkzEmRgeIYnWexrJ9DR0x3PpfMYWYwcHMZfFsRsDHwsPHwEdCPNvwsbBxbKYiEjIaIaUpp5iIYcbeh3m1KbeaWhaFFCgRuklSVpSpJCkLSFJUCClSVAFKgRYpUCCCLEFxaO758idSz51NUSplPU006bT1EichUudInyFqlTpM2WsBcubKmJVLmS1gKQtKkqAUCI08PaS8J3+CnbB4oQTUucgMvcQ4//O1lZYQEwkTA55iYqOnggUoSENQ8vzmzmeVtwiUtmEagmm0NiGVDuOep/gJm8Zo8MsuzF1AnV2ByBlzEAS8yXNweXLk0ftiSVKmTsKVQT1TTxCaqaok8ftEp8s/HnKhyt4m5glJkGTQ43POY8PIDS1ysXmTJ9WJLAJTLk4omvp0ywB7JMpKQODgUrxGxMSACDXQnntf7vhUfIk1x3Yie36mz9y/v5ON46ZMsG/qN3521tqB2Di0XVqZbE9aG2m9adOe4qTpjJTPFr9tOfpsT3IZtozK1tz08rjmPVukXJuZDY8tPA9N9zb8MTJndX5v5an378zFnAfre/a3v8onImX83Sh/CqevLamwxKmd101Y2ctr35vr1eLeE+/49dOwfoIkomXUeGv8A3bdbYv8AbfTae/8AWLSkjZvL4bRUEzI/ePz/AARi4Tyd27kj5xRhyHoIGZE6q/XmjAzyN37En5wYch6CKS5l1B/Dy7t/Ei3mcWmfvp5fFz8IuCSRo47Dbv3+miMuZVr8VjsNP+WvyGIzO66XBJ/S53Gv6Q4SdL/XPQ+RMQXJluVeZt8u7rtobHUYiVO6/L3nyHnvF4Qfht387/7PnFsdmOtzvpoB/u/hfrTEKp/XzcHTa57ta4NokEs8r25uGAu7X7dPy2i1PzCoI71NfHW9yOVOVOgxjLn7P5u3vfk2j92iQSwO/r3udXA306sDGer2F/CByZ5s4wdoSZQDhgcvymG4T5SmEQ2DDLnU8el2Z84rgVKTaYymUQGVoVx9HdU1A5ofh+8pMW8lGl/2uc2hGG5ayXTz0+0rKleYsSkoJEwUtIifh+FpmjX2NRUz8QmJQXCp2HoWwMpBO5P2SsqmbiOZM5z5KjKo6ZGXsNnLDy1VVWuTX4mZb/8Af09NJoJalhiJNetBKhMUBn/4qZpOUuH2bJ826GImEk8SzAOlVPdTKYBEuly0/wATiY6LYcCNapOgBJ8rftF5+V4Y+B/iZnORUikxDDcrV1Jg1S7KkY/jfBgWAzpYcFUyTi+JUU5KQbmXf8IJHohkTBBmHOGX8JXL9rIqMSkzauWzhVFRvW1qVaslVLTzkk9bXaMPZPdApyAGuwoVeAGiiRy6j8v0qWEJSkCyQBzLAMB3LdbubtHoqSS5IAJuen8Tqdb2fWILrnXmQT8q/UAeKcZSEOe7cttW3sLXu+ouHbN9HRxb3+VywiEtQ3NgD40H4nnzOtaYykp5Dfyf+A2vYaM7UYmw82Nn92l/edNILi9/IX21AoBzNVG1/nmS0N1Jfb+dm0bbnaL+Tb2GvIORYluWhAG7kRAcVr00G1fl+tNaYykB29f9l99bndm90U17Cw9Q2xYk6nryBEQXFa3tz5getyRseQ2oM1Cd9rN6fIHl2La3aa8wTf8AeO3YdbaX1MW9xViTvrzp+6K6UFL389TjKQk66cje/nqTu3VtQAKC+rEncG7Wd7vyTz184DithvUA77FRJBr0uBztZOMxAuNwNeXT+Xxip0fdRDDp6+ezE6uAYgOq12r+NgOV/Gx6VIzEJsBye/vL66M3O3WKfOwu1tVGxb5MBqGBguq180jXU1JN9fTblplyk2BPfTlYBwex05jYvXY+YGmzsOz6jTmNTGXT2UErC47jZPFIBLUNkeVNOUugPu5mjH2weS/s8MpQoLtpN629QP6OPDQanxWxcoBKKfKWHS5mqkidMx6pnIB5LMiQohv3EuY1g+0jUtKynRg2MzF6hSdiUJoJaCQbgp9pMA/xG7u2ZTHqPGrMMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEaqX/AEgnh9+zeNPAbik2P9HnDhpPMixSUI7qUxGQczOztmIdUEgLfiYfiEWUqWorLMtQindaQMdLeKFIUYhhtaP+/o5lMWDfipZxmpJPNQqynshnEazeOtB7PFsExMWFVh06iUALcVDUKnJUS35lJrykFyWlgMAlxr/tqJGuhpsPA23Na9a2NjjqkhifUfMc7aXva4vbok3A9C/1p200OxM1pVRT/AUF9gBUeNB8o1Dfy9dO7G7e+ISGcNYctSCbW3Y9RtExtWnqNrGv631uCK4iI1B+vr+RiPRRfd+wIA6chq7dImoVQiulj5GtCeuunXnTEJFjfQ++w2G7WPe2piNQYvzv5/Xxia2r8BS1jWx5fOleSdY1Bx2/TsfgYjUN+VwNbEaef8eUTEKuPpfU/PTSo9K1xjqGrfEXGra6c2I7lmiJQcP/ADbR+4Lc9RozRNZXUAbkilTW41pXmKior5CmIiGLfTbP15hhESg4fkC458j2e/ruCIloV3SKaVoOgNa35crgDYVpixQcH6c/XRzo4ER8wfo2bnpfkdRExtehB6U6frQ6E7aYgIex+vrffa0WKB/Uc+WxuDt35l5SF0pQ22IP3a0oPMnnQaVFARCQ1iHB9/1t02YtES0pWCCAoEMoG4ULuS+zWIL3cFzrsnezs4xwnErs+SLLDzndzHwlTDZFmcKpaT3pHCMKOTI6HQmqmoIyJpMlaaVQiMy/HhCUMfZxjavwyx4YzlqRTzFk1uD8OH1AUXKpCUk0M4b8KqcCR+K5mU00/lKY3o8KM61Oc8tiZitXOrcewud9yxWqqZhm1VdxAro8SqJyiZk+fVyQUVVTPUuoqq2nqqicta5pWrpL2unZji+NvANjillCBiY7iBwJ/aWYPsUHD/aoifcPY9tg50l6GW0l9cXI0wMFmqDU2XO7BSudwbcK/ETRhxjc77OHiCjKWb14DiE5ErBs2+wozNmL4EUmMySsYZOKieAIqvazcPmghLzZ9JNMxCKdSV8D+0h4frzZlBGPYdJXNxnKRn1nspSOOZWYNOSg4nJCUjjVMpRJlYhKIJaVT1coS1rnoUjU4ZmVgQq1AQQQfOybgbHS9iNB6MpnX1vyHR9QfN36WvfznMvcfXT4W1F3eLo1MtB3vz/5fy863nTO6tbct878/PWLChQ69ouCJlTflp4f2a/S2Jkz2a5/hzccx3i0jmNemrd/oRMRMqU+Ijobjz+HEgn6OR6/Hme5iwoG1vf8b+hESEzPkR4/07oBxIKjd3POz+4xQoD2tzP8Gv6xU/af86fT/wCXD7z19/8A6oez6+7+MP2n/On0/wDlw+89ff8A+qHs+vu/jFJUz5keP6SR5YGobduelx1c6GHAL9mBd/kPRyIjrmVa/ETvyA8KJ08xiIzze7XuHJ9NLDf9Wi4JG9/QfDXzeIS5jqa3O538u7z1FOtd8Rqn63brp2Or69t4uCeQ6aefbrbvFvdmX8wFtAfHT4f1ep5QqndX7XOvM9vN9IuCC2w6fyiXluUZgzvmbL+TcqSuLnmaM1zqW5ey9JoFpb8bNJzN4tqAl8FDNIQVqciIp9ttJoEoBK1kISpSfm4jilHhdFWYlX1EuloaCmnVlXUzlBMuRT08tU2dMWolgEoQSdywAuQIzsPw2rxSuo8Nw+RNq6+vqZNHR00pJVMn1NRMTKkykJAJKlrUkDYamzxvZ9k/gFKuzBwA4dcGZdENx8dluTiJzVOGUIbTPc6TlxUzzXNWkhIUmCdm8REw0obeLkTDySFlkJEPvusLeV5OeIWcKnPmcMazNPSqVLrqkooKZSio0mGUwEjD6ck29omnQhdQUhKF1UyfMSlKVhI9ZPDzJ9NkPJ+C5ZkKTNmUNNx19SlISKvFKpRqMQqEgXEpVTMWimSoqWillyJa1LUgqPUva1z024qSZBg3ipTKk5gnaUKIbS4UuQ0ohXDWq1htcZGPtLAS2hyXup76lAteKH9Jp4uSJ83J/gphVUta6WYjO+b0yltKlT1S6mgythk4oU8yeJE3FcWqaaaAiVLn4JUpMyZNH3fdf7PWV1oTimbqmWEiYk4PhRUAVKQFInYlUIcfhTxopqaXMSSpSkVcv8ISfaeHXHK13+VdKAW+5yAuceTCU9Ow5aXNteZjZ7m3mfXkSC4+mcmGtVfM+FTt4AbD6k4yUpYNyuT/AA93xsLNO7e7X1I12A66Q3HPSnOlSB96lrbAmxFQbYyZaNzsXTzAOxLuCz22N30i4AAFzprbW4tY9nvZx1iA4utq3/O5Og150HqDjLQO3lz0AG2t9TtpaKa8uulh7hu9jctoYguKFDtb5E+f3gOQoOYOMyWgjub9reVgdD5sS4Nwt1uyR1Gp2sLgkDrreILiqn633JFE7mmldtNaWykp0G3y+F7+h3sXyFzuTqTffmObA6AiC6vTnXXruRbRI0voK7hWMxAa/wANOp897fMCoG176h9Bdk35+Rvfrb3FWN7ECnQD1N/11y5aW729duWlz1YiKOSdeg9znUPodQBbQG0QXFa62Phe3gbDnY2rcAYykJdg1vgBbfmer2OgvFddG5DoB17j3W3UIDq9dKCo2rWlztTlfx01zUi132ezM/PVvQ8gAGYddLCw01IDNawHWzt0jPh7MLKK5LwDnWZ4hkIfzrnybRUI/oXpNIoKXSOGSRStWZxDZgFakUWAAkhVfZv7AWWVYT4OYpj86UEzs1ZvxGop5o1m4ZhFJRYTISbay8TkYzoSn8dgDxE6YfaCxMVec6TDkKdGEYNTSpif7tVVzp9XMOrfjpplGW1cXOwyQY3mjomGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCMJHt3+ErmdeyVlziXAwwdmHBriTKJhMXyuhYyjneHdynNUttgd5x1zM7+SHCQoBuGh4lxQoO+jrzxJoTUYJKq0h1UFWhSjykVAMhbDcmcac9ACeo6f8acLNZlenxFCXmYTiEqYtTtw01Yk0sxhuTUKo+gSFEgxqBNK0rSlKGh/msbDwBIFfC1OhlDdnLuH5Ncb6M7G2w3jVA6sHu3Qudr7XI18zE5CqHbxrpvWt9RenhfEZ9x5/V4sUNDq23N9fSJiFbjmafiLeda0JvamIVBj2Af9flZwNHeIlBx5C+vY3207WuDExtVQPXlXmKc+XLmRrEob+Xbkeje8tZ7xYfxAhmPXY/Xu7xLbUNP0R8jblXQcq4jOr+u9/rsNWsIi6GxHx58gNtRsbtE5Cxp4UF7i1/HoKE21JFIljf1+m+tLBojUGPIPfoevIEgag3G0SkLuDrahqdQdPmefgDYDHUGdu4YaFr6bED9W1MSh8fgbjfyIdueoia2vvAdQa6Co/i1Gm513oajuxmx+v4RGoee29jo2/kNL6j96U2sjka22+IX6fevbY354jUnf6GnubkHHa0WAag7e7nblz38gYloXoQbE9TS4FDUi9Bfn40JiUl7H65Xvz2+ERqSQ/vHXRwBr1exEereyB2hIjs8cX5VmSMeilZJzAhvLefoBhZIXIol5CmZu3DkFD8blqNKJrDAJTEPQqZlLIeIh0TR5eOV5IzKrK2OyaqaVnD6kClxKWg2NMtX4agIuFTKRf8AbIFlqQJslKkCcoxzvw3zivJmZaeumKmKwqtAocYlIJPFSLWCmqCLpXOoZpFQgMFqlifIQtAqFKO0TL5hAzWAhY+CioaYSyYwcPGQcZDutRUHHS+NZQ/CxMO82pbMTCRUO6h5l9srbeaWhSFLQoE7eSpqJiJc6TMSuXMQibKmy1BSVoWAuXMQtJIUlSSFIUkkEEEFjG+kuZKqJMudKWidIny0TZUxCkrlTZU1AWhaFAlK5cxCgpKgSlSSCCQY1FvaidhaYdl7iJE8VOHUoeVwB4jzd6IgUwSHnmOGubZi69ExWSo5z3akQ0jjXPfRmSIlx0gwHv8AL7qlRUmbipn6JeBni3Lzrg0vAsaqU/tXg1OlE0zFJQrGqCSkIl4lKALzKqWOGXiiEpDzSirSOCoVLk+dfjt4STckYzMx7BaZRyljVQpcoSkqUnBMQnLK14ZNUQRLpZpKpuGLUoj2QVSKPtKZMyfipamWnxD1BvzrTQbm1+e+wYqNXJ7X/ju2jlnjXwoG1v57c9+fcARPbmRtem1QRXUgmlPClhbXniZM8XvuNN7Pq+o1a/TaLeDbvy+HL16gRMRM/wCaleov6AEeeJBP6976DZnd+ul4s9mHFhvt8mfZ9PnFYTLmpJ31A6X+Hn15ed3t3A67t/H1tFPZjRutyRZ+rRVTMzSykEf2k1+YqPD5Yu9sOnoYt9mOZ9R+kfipmd1I8O8N+dBfxpTD2w5j0MBLHXzIH6RTVMuSk+RB3HQH62162mfa9tA7X+LRd7MOLe8kdrP6fKI65nWvxC1rEVGmtRXmLH0Othn9S7dBa+mz6bfIxXgF7DVtHbqzONNx5F4iLmRv8QvzItvUig+nLxxGqf1azXPuB6A7WffaL+D46+XL+Om0W56ZgBRKwlKRVVwABrUkgUApUnQbkVtCqe+76s2rdtLizDUltRFwRvsA5fTfct0t7jGzv7HLsER+R4OD7XPGOSvQWa59KohngtleZoch4vLuXZxDFiN4hTSEdaacYm2ZpW87L8rw61qEJliNmE0fYciJ5LHJXpB9onxal4uuZkHL1UJmH0s9CsyVslQVLrKynWFS8JkzApSV09FOSJtasJBmVsuVJSpKaWcJ+8f2c/CSZhMuV4gZipVS8Qqqdact0M8KTMo6OoRwTcXnSylJTUVshSpNCglpdDNmz1IK6qSZGdrOmcZXknLc0zLN1n7HLmStDCFJDsZFuEohICHCjRcRFvqQ0ip7iQpTyyGm1qOhPit4l5d8Icg5j8Qc0TVDDMBozMl0klSE1eLYlPPscMwagEwpQqtxOsVLppJURLkpVMqp5RT086YjdXLWXq/NWN0GBYakGorZvCqaoEyqWnR+OprJzAkSaaUFTFsCVEJloBWtIOIvM+ZJlmqezXMM3eL8xm8W5GRKu8ShHfISzDtBR/0cLCsIbhodofC3DMNNpACRT8xue86Y/wCJOdMx57zRUmrx3M+KVGKVyypRlyTNZFLQUiVMZVBhlHLpsOw+QAEU1DS09OgBMsN6IYLg9Fl/CaDBcNliVRYdTS6aSGAUvhBMydMb806omqmT58xzxzpsxb/jL/MqXX9Ur0A0HIDWlq3OONpS3zLe/ctp6R9QjTo5bzdyLuW1G1nuLRHHNR5WOuthf7w3OgHzyEIduWvf0/d6G5NrMWuAaw13PLff3DzOn4YLixU3rzpudheptXw31IrlpT5W1O3Xlo7N5MA4oSNrcvdf0Jbq5ABMQ1qpv58yNiaggClyK8tbHJQjQkBnsGdurcy/PRtzaoDb2Zy+wPkWJGz3A6hoLi9aUqfDXY05AbV8NcZaUt589hydrP2HXR4uPIWLMOg7au19joLsYhrXTfrWoGlyqthcmnje1MZSEW5Hc62P6+VgAXd4pbXVrMdSdg3vJu7nsLe4uu9LU10SNrbq3000BpjLQlz2PqT/ABuf4wI0BZybn1YOdOQtpcXcRCcWTWmt7eAFL+dfG/Q5aQLcti3PU/Adh1io7ty6B9Ws3FYab2s4EBxXnqBf1PlTw8KkDLlI3LXYkXFth1Yi7+bmDtcXFrCxbtblyuAxcXEBxWo0pU+NK8jzPKtTQXuMtCXI1/m3p73AuwNwYW5P5ki51BYDfkdQA8bTfZbyO/w67PnCfKsYwuGmMNlCXzOawzqAh6Em+Yy5mKaQbyRb3kDHTV+DWampYrU64/Q19n7Kc3JPgx4c5eqZS5FZIy1RV+ISJiAibT4jjZXjdfTTUi3tKWrxCbTLIdzJdzrHnb4h4ujHM7ZkxGUtMyTMxSfT08xJdM2moeGhp5qT/dnSaZE0WH59BpHfuO4o4ZDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhHQfal4OM9oHs68ZeDiywiLz7kDMEnkcRFd4w0DmhEGuOylMYgI+NUPLczQkpjn20FK3WYdbaVJK+8PmYzQDE8Kr6CwVU001EonRM8J4pCy12ROShRa5AIj4mZMJGOYDi2EuAutop8qQpT8KKkJK6WYprlMuoRKWoAglKSAQ7x/PHeh4iBiYiCjGXIeKg33YWKhnklDrD7DpaeYdQaFLjLqFoWkmqVApobjGra0KSSlQKVJJBB2UHBB10Lg+e8aHzEKQpSFJKVJUUrSdUrS4UDyIIY2FwXZorNq2JGlzpW5of1bU1oAMY7bAEbi733Gtm5a/lDRGbjsw+PflzG7DUxNbVtWlSK7eGtRtcWsKUAxYoOH1IBYfXuiIhrbMeHU99Pdyd3tEtCqHpcX2P5Heu1MQkWv3+ux5bve0RENfo562t6aHXfUgRMQrfw9fyJrqa+PexGbWL3LCz25NbSxtba7NFqg/wCIcrjmO46ddNIltuaX011323trsa10G0ZGxuD7/r3d4jLKF7k6hu/v7D3xLQvxBHy+WljcnyAqBCtOr3d9foX36d2eIhnHNz35f7Xbm5fQykLpoTrXrtpbmTc1Ota1OIFAjt7t231AGgDbNzjKWPPUHrzHQ+49mImoWCPqOW5pXWlq8611qTZ9fXKIynceR62seV9OTNyArpWR+B/dIsBUcwNDcmwoRUYsUl/q7308zcaam0Wu7hXXa4PIeeoNuxiWlY1Hhe51III+VRWvM0OIiNjp8dD+kRlPJux0NvdZtn00u+YL2eXbFhpB+zeAHE+aoh5TERPuOGWZo95ppiWxcY8gDJMzinHG0ogo6KcW7lqIdqWI992SOvKhYmTswPdXhlndFL7LLWLzgmnWvhwirmKCUyVrUGw+ctRAEuYoqVSLU5RMUqnUrgXITK2O8GfElFH7DJ2PT+CnWvhwKunKSlEiZMUP/ddRMUpIEqbMUVUMwuUTlqpVK9mumTKzH53yZlDiZlDMOQc+yCW5pyfmqWvyjMEhmzPvoKYQMQBVLiUlDsPEsupbiIKOhXWYyXxrEPGwL8PGQ7DrexuGYniGC4hSYphdXOocQoZyZ9LVSFcMyVMTuNUqSpJKJktYVLmy1LlzELlrUk7K4pheH43h9XhWK0kmuw6vkqp6ulnp4pU2UvUFiFJWlQC5cxCkzJUxKJspaJiEqGoZ7QD2ZXEfsnTKa8ROHELOOIfZ4fiDENz2HYdmGYeGrcS86GZVn5mGQVGVw/8AooaDzy00zJ4t16Gg5uJTNYqDh4/fzwq8bcKzvJkYTjC5GFZsSkJVTqWJVJjCkJTxz8MVMLCev8S5mGqUqolhKl05nyETFyvPbxZ8D8XyHOqMXweXPxfKK1laalKVTavBkrWrhp8VShJJko/CiXiaUpp5ilIl1Ap58yWibiqbmQt8XMipBN6n+Kh9D1x3sJ3XkA77Wdx05n3R0Lwh3bn3vbXX1fozRKTM6f8ArKUO5vvWnxW11p64vE8WuwHX5FrfXN6cAt7+v6ekSBM/5/mDX/j+mLxOJFz2sD6W+NvlQy+RPZh/D5RzEyt979ep+uK+36e7+MU9mDqfUfxgZnS/eHn/AIj64e36N5em8PZtofIAfqI4GaWJ79P7wH/fP0OKGcRoX62Deo6dor7Pq/u/X4RHVNK/+srrpv4/Fiwzhzfk5e/k7esVCBvf3eUUURb8U+xCwrb0VExLzcPCw0Ohbz8REPrS0wwwy2VuvPPOLS2000kuOLUEISpRAxDMqUy0LWtSUIQlSlrUQhKEpBUpalKICUgByolkgOWiSXLUtaZctClrmKCEIQFKWtaiEpSlIdSlEkBKQ5KjYORGyH7Nf2RkyRG5f4/drvLbkE3CLhZzkPgVO4ZaIxyJ921Ey/MPFKAeUPsjcMpwOQnD2NaEaqMZBzgxDtMvZejNQ/GDx9QuVVZXyJWe0MwLp8TzLTLBlhDqROpMFmpssr4QF4rLUZfs1H7gpSlJqpe4vg59n6YmbSZpz9RmWJZl1OF5YqUELK+FK5NXjcpX5Eod5eEzEhZmJH9YISlK6SZsgTqfSjLspmU9nszgJPI5LARMym02mUUzCS6WS2AZXERcdGxb6m4eFhIVhC3nnnVoQ2hBUogfFjTmbNlyJUyfOmIlSpSFTJs2YoJRLQgFS1rUogJSlIJUSWADmNxKiokUkidU1M6VT01PKXOnz5y0y5UmVLSVzJkyYshKEISCpSlEAAEkxi34occ4vjNFQ0fL2YyXZHYWt/K0vjmFQsdMIRYUhjMs1g3FKehYucQ6vtMBARQh4mVSiIhoaNgoKcOThpXgX9uX7Qczxf8AEP8AY7L9YVZA8Paqpo6NMpajJxvNA46bF8dnMfZzU0bLwjCWSsSqeXX1Mmdw4tMSnczwByqvDMqS8011JNpcSzXJlVlLJqpIkVdHl5bTMLROlqedInYmhScUqJE0ypsqVOoKSqpZFZRTwrqNazSpvTc2rpqdNf66E40fSkbW95/Ww+nIB77Dvq5O/JtG389dgBvFW7qB1FdyK0NK2AsAdx1OuQiXoTpy5EXDsXOp79AxioHbq7Fturs+g6Pe0QXHPytsLHui/qrf0Bykp+vmbNtYb9AIP79B3a553056mzCIi161O1+g5eJ21O56zy0uXaz/AO8f0u+l9ra1A5XO5se7X25mxtsfxQ1r18Li3kBTw131NhjLQkAP6eYuer9e93eLuTB7gjVyeZO2+urcohLUdTQk20B/ui3ma0F6+GUhPuOhf1PfQt0S7uDQX+L6NcufXR9CCWEQXF6nra51FgNK90VvpS9STbGUlJsBc3c6a6k+73WiugfYAW772s52+T2hOLpb12qbeNAOXgANMZaEgAfrcC/x+FwRaKNzvufgBzLkB3I0uxiC4quluRtbcm9OtCBYmoNKjGShLntqDudh6s9+TizxUDV9f3r8hYcuhCjzd7GIDqxsRyTyA/8AmG1NLXtjMSGsNhqB723PLfQvZ4E3ex2GmrMSbaDqTz0YjtDgPw9ieLHGbh1w/YbU6zmDNMuRNSkpqxIIBwzTMcSAv4FLg5FBTGIabUU++dbQ0FAugjtXwbyPO8Q/E3JOTpUtUyXjOP0SMQI4XlYLRr+/43UAKZClU+EUtbOQhRAmzEIlghUx441nLG0ZcytjmNLVwqocPnmmd/x1s8fdqFBIuBNrJ0lClgEpC1LAZLnbCSlKEpSkBKUgJSBoEgUAHQAUGP0VJSEpCUgBKQEpAsAAGAA5AWEecBJJJNyS5PMmP3FYpDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEaK/tVeAjXZ+7a/FOUyuEcg8rcRn2OMOU0KQlDSYHPkRHRU9hoRDaEMtQEtztCZqlUuh20hMPL4KFZNSgqOumdcM/q3H6xKE8MmqUK6SGAHBUlRmAMAAlFQmdLQB+VCUjYk6ZeJeBpwLN2Jy5aOGlxApxWmSQAOCtVMVOCWYBEusRUykJAZKEIBI1jHg2si9dzTmRrTlUXpyFQTbHD1JcefSxfrsdD6gPHXxsedg7aH+Btc6m+4ichWlOVddv1pXWxvfEZ9Oe1/rXk+1otIceevvHr5HXSJbaq+I86g1PiSCDStzeoFbRKHp8DoOwI100HQGIhxe12PQ7eRHuAuTrLQuljf8AEfr5ailcREOOX19fziLQ9CbbNbTr0t3OkSkKof1cfO9vl0IEZBIL837W6C40BZmsWILmxQa40PLu/ppExtelDcabVrSo1tv15bVsIdwYsIcP2foeY7+7TRnlpWDcf4G553t5UuLaQKS1tvl9Hy9CYiNj5dRyHUk3O3aJCF0p86ag6AgU89eadwDEUs/mR/EvqP46cURqBHJ9+vMdDZuvWxEtDgVy112N9SNjrSh5AVpawi7Mba9PTbraLCl9D0A30sPhY6XL6xISunXXehF6UNNRal62Fq4sKX0tz3/kbnRvnFhJFue+r77932N7xIS7XpfUHfWtrpIIJqN7g2AMZSR/LytsdR1vpFCkHr2Fx2PmOt7jWMw/Y69oWiTw0q4Xcf5o+uXsIZgMscT4pTkS7BMtobZhZXnl5S1vvwraUqahs0hLz7J9y3PW1w32idQ/dmRvEwU6JOD5kmqMpIEukxdZK1S0gAIk4iSSpSAAyKwcS0/hFSCniqE7IeGvjGKVFPgGcJ61SUBMmgx6Y61SkpCUy6fFlFRWuWACEYgApaTwpq0lHHVIzSsRUBNYFDrLsHM5ZMYULbdZcYjoCYQUU2Clba21vQsZCRLK+8hbanWX2lhQK0LBX3zLmgiXOkzAoEJmSpspYIILKRMlzEEgg2UhaSxsQdDGziVSqiUFIVKnyJ0t0qSpE2TOlTE2KVJKkTJa0lwQVJWkuCQYwtdrf2KnBTjLFR+cuz7NoXgJnyLXGRUZlxEC9H8JJ3GPqcfQUyGCpM8irXEL7jruVxGyKEgwlEFkwvNlx3YnI32h8x4AiVQZnlTMy4bLEuWirM0Sscp5aWSXqV/2WJAIDpTWezqVzLzK8pICdcc+/Zvy1mJc7EMqzZeV8UmFa5lIJSpuBVExXEoNTS2nYYVLLKVRCZTIlgCVh4UCV68nHzsCdsDs2ftCN4jcHcyRmVZc48l7P2R2XM85HTDNLKG5hGTmQIiHsvwUWO6uFObIDL8WoLS07CMxIcYRtNlnxXyTmv2UvC8epUVs1KeHDcQUMOxDjIBMpEip4U1UxFws0cypQGKkrUghR1NzT4SZ7ygZ8zFcv1cygkFROK4eP6ww72aVcKZy6im41UiJgIUkVyKaZfhUhK0qSPGH7SUhRQtSkrSSFINUlJBoQpJUCkg6g7645+KjRrvcbgjYggX90dcmUxYgg8h6aXPqY5ftP+f/AIv/AKmLvbn+6Iey6K9P4Q/af8//ABf/AFMPbn+6PUw9l0V6fwivBOR81i2JfK4WMmUfFOoZhoGBhn42MiHnVhtpmHhYZLr7zri1JQ222ha1rUlCUlSgDFMrJcpC5s2YiVLQCpa5qky5aEpDqKlrYJCQHJJYC5MXyqabOmIlSZcybNWoJRKloUuYtSiAEoQgcSlEkABIJci14yednb2R3bQ49xsrjJ5kdzgZkeMSiJi82cXWYqQTNuC7yFH9mcPwhWdY+YxDKi5L2ZlK5DKIrupMVPoBl1t9XUOafHfIuXJc5FNiIzFiCCUoosEUiolGY1va4kSKCVKSphNMmdUz0X4aaYoFMd0ZT8APEDM02VMqsNOWsOWApddjgVTzeBw/scMD4hNmKSSZQmyaenmWCqmUhQWNlPsa+zC7OPY/MtzVBQL/ABP4yQzLvveKed4aDXESmIiW/cxCch5bbMRK8nMe478OiObcmmaVMRUfDP5ldl8auAb1Mz74x5sz0J1FNnDCMBWoNg2HzJgRPQg8SP6yqyUzq9XEyzKIk0QUmWtNIJssTTuB4feC2UMgGTWyZJxnMCEEKxvEZaCuQpaQlf8AVtGOORh6SkFPtUmdWlK5yFVhkzTJHvDP3EbJfC/Ks1ztxBzLKsq5WkzPvo+bzaJ90wlSiEsQsM38URHzCMdKWICWQDMVHzCJWiHg4V95aW1dN1tdSYdTTayuqJVNTSQ65s1QSL2SlI/MuYs/hRLQFTFqIShKlECO0MSxPD8Hop2IYnVyaKjp08U2fPXwpBJZKEC65k2Ypky5MtK5s1ZCJaFKIEYK+JnaozP23+JH+RWWoOZ5Y7NeSI2GnU6l0UsQs34ix8HFuLkKM1iGedbalsXFw7cbCZTZeeh4aGg4qPmcZETUSlMq8+vtg/aMn5QyHV0OBVCqHFcyKn4TlySGNWohKRiOP1KQSmXKwqlmpVRSlGZKRitThy58upSlaJPwvBrB6z7Q/iXIoZlHUSPCzJs2mxvMkuYr2K8enSpy1YNhNcpBV/ZYpVyPaTMOlqZOGUeITZtQmr+5+y7aU4kWtSlABQeASkaDSlKUrpY08OglSiSSSol1E3JJLlSidSSSSTqbk3D+toSwAACUgAAAcKQALBhYW0AFhYABojOOa0NjyNB53qo3Jpzte2MhEvR7nYat2DNsL6EbB4v0bXoG/FyNhoLPa5a6haIi3Otdxp5c7Dbn9MhKRvzvy2t3Je/nuDFpL232AZg/Tnrf01BEVbm5Ph1roE/ncDeuJ0S31FruD11Km62YfoIqA/zL2HN2AZ3/ACuDz2iG44fACulTQ3vzJOmpqOW2UlA8tGPlq/b6Ac3WA3bS4ubWDWt01Lk6OTDWvc2poNe7X6qOw8hbXJSh9dPR2dx0axv3OwFLk/AbAf8Al5ka6C0QnXNRWnnWnofiUbaaWxkpTpuf4drfRPStrubaknU8v9nlz00d4ji9didq6culTb89MZUtDX58xqR3D8I3fyuYHrqxa+3M7Bg787toIguL1Gwsabi9h42rqdx0ykpuG1JJHd9T8B1DGFurai13L3L+4lha+xMJxeulz8VzvsN7b08dajGXLQw00H168/N2Nh6HSxYNYD3X0YFrkbiIDiya/wCFa/gNDXStDpXGVLQ5BOjB/V/0ZjsTAbbOAN7DVnve7bPZmIjKz7LHhYJvnTPHGCYNqVCZSlyMpZe77ZLbk8zAlMVN4xp7vDuxErksKzBKaKVhbOY1LV3VNoKvRz+j88PhiGZ81+JNZLeny5Qoy5g3FLPArFcZAqMRqZc1wEzaDC5EumMtlBcrHCpXCpEsnXD7Q+Yvu2F4TlmQoCZiU9WI1vCpiKSiJl00pSN0VFVNVN4iQQuhYBlKjOHj1djUmGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQjBz7dPs2xHFDs55e455dgWojMfAKcRD8/922RGxXDfOLsvls6WgtNrdjFZfzBDZcmyGXyGJfJ3czzBC2j75ET174h4UqswuViEpIVNw2YTMYfiVSzylExmBKjLmplLANkoM5Qa4PTvjLl9WJYDIxiQgKqMEmqVOAH410FWZcucQwJWZE9NPNAP4Zco1EwEfiCtQZKqdNDrpyPPmLjnY0v0WpLHodP0jVYjUem7g6/AO933Dhpja6U8qgD7t7baG9NDqDqaQKSQ5HvL8Q3LE6iz82sHaI+muwP11N7tve0TULof0dd+oP63BsIfqDof5aHf0MWKD3GrevToQdDziWhVdNdTpvQ1BrpfavjXWFSW7ba7DTv7vLSJQcX00u+2xtY2HLpbSShdbf189KcvG29Diwh+/wBW+tOoJBs0se199Axc66uGvqLuIlJXTz228jzoPLcWxEQbg7Al9wOXb4O4La2qDXH8nt/B997gEym3N9Ot79Dcb9RQ737xsIex+u0RkAj1t8x29d+bS0r8RSu9x9LUqbWGmthEpLdR2/if115PEZDa3vY8+/IlyHfmWe8V0r8K130NOfXba1qWAxEU8nb3ja3Q7jc6m5IsKe4PvG9xv5i3IOIlIcN6/wCGml7iwsdBqqgIMR+vrnz91osIG/8AA6+hv77OWIkJVW4qLg2F/wC8DXp/ShwI2P1tEZS389e2np7y4iqlwjfmLXTyun16VsTQA4sKOX8fX01B5i+tH5j4vfr17G3VyfXPZ37ZnFvs8uQ8rlUajNmQREpdi8h5giH3Jey2s0iFZcmKQ7HZYi3kFS0mDTESlUVSKj5LHud7vcwyznnG8sKTJkzBWYbxhS8Nq1KMoAn8f3ScxXSLIJIKOKQpbLmU8wx2HkzxLzHkxSKemmpxDB/aBUzB65ajJSD/AJw0M8BUygmEEn+zC6ZUxpk6knKcHNZwW7eXALi8xBwb+ZG+HmbX1oh3cs57fhpUhyJc7qG0ynMa3UyKZtRLqg1CNmMg5s64O67KIfvsB3vjAfEXLeNpRLVVDC61RCTSYipMkFZsPY1RP3aclRsgGZLnE2VIS6eLZ7LHi1lDMiZcpdanBcRUQhVDiy0UyVLUwT93rSoUdQlajwy0mbKqFKsqmQ6OL2o3EGxSok0+8D3hRQIpYhQBG5NFDU0OOd6x2cDyPpyP6iOjeIfZg7NfFz3q+JvAThDniLfSULmuYOHuV4+ftpqSTC5iXLET+BUa/EuCmTCiD3akKpjkWGZvzVgvCMKzHjdAhJcSabE6tFMT/rUvtTTL7LlKA2jjeKZOynjRUrFstYHiExaSkz6nDKRdUEkuQmr9kKmWCbn2c5LnWPLEx9kd7O6ZvriVdnOXwLjqitxEs4icXpfD946+7g2c/iDh0DRLcMyw0kCyBcnmMrxr8TpSAgZomzAkMDNwzBZi26rVhvGo9VKUescIneBXhVOWqYcpypalElQk4rjstBJ5ITifAkdEJSByi9Zc9lN7PTLEW3GwXZnyvMopsgp/ylzTxEzdCGhqA5KczZymkndGv/pZevvCoVUWxBV+MfiXWIMuZmusloOopKTC6NflOpaGTPHlNHSMii8E/C2hmCdJyjRzJidDV1uLVqPOTV4hOkKH+KUdS9rR7KyHwk4R8K2EwvDDhVw64cQyRQMZDyNlbKDVe73CpSMvy2XpWtSahbiwpxdSVqUVEng+I45jWLq48WxjFcUUf3sRxCrrTq4Y1M6awB0AYCzAMI59huBYHgyeHCMGwrCk3JGG4dR0Lk6lX3WTK4lH95SnKiSSSSY+1nE+lEglkbO8wTSXSSTS1hcXMpvOY6Clkrl8K3T3kTHTGOfYhIOHRUd96IebbSSApQJGPjzZsmnlLnT5sqRJlJKpk2dMRKlS0DVS5iylCEjcqIA5xn1FRIpZMypqp8mmp5KTMnVFRNlyZMpA1XNmzVJly0jdS1ADnGNTj57Urgxw3aiZPwpZc4v5uS0+hEVBLdleQpbEAKQyY2fuNiMnhS4UP/ZstwkRBxMOFtKzBL4hSSnrvG/EvB6AKk4Wk4vVAEcaCqXQylXA46gjinMWVw06ShSQR94lqaOoMzeNGXsJC6fA0nH68JUPaSiqThcldwn2lUoBdSXZXBSIVLWl0/e5S9MEnGztB8Y+0nmqGm3EfMcXPn0P/Zsu5XlrRgMtSRcW73EwkgkLK1MtREQ44lhcfFLjZzHISw1HTOLSwwEdJZgzNW4p7bEcbr0IpqSVNqFcZ9hQUFPKQqZOmhDlEtEuUlSps5ZXNKEvMmKCQ2uuM5hzLnfE6ZNdOnV9XUT5dLhuGUqCmQifUzBKk09DRoJBnT5i0SgtRmVM4mWiZNmcKWyP8F+HMPwsyJLZAUMKncUP2nmWMYqsxM4ikNh5pDyqKXCy5ptqXwlEoQtuHVFBlDsS97zxG8cvEqo8V8/4ljyJs8YDQvhOV6SaPZ+wwalmzDLqVyBZFVik5c3EarjK50sz5VGqcqVRyBL9xPs++ElN4O+G2E5dmSqc5hrmxnNtbKPtPvOO1kqUJtNLnllTaPCZCJOGUfAJciaimmViZKZ9bUKX2it3W++t6V3qa3050Jpvc9SJQBoNPXyG5uS/e7Wju1xqPU6joAC3PkNgxERVOa00/wABbfbXXoTTEyUXAZ+n6nRtBycPzgz9ty4t37WYWdrAGIy3KV15nUGtK/Edq1Fhc1rWmMhMsb3I0DeRZPYEgk6FrRcBboX6uTY8I1sAbm7PaIrjl689uelfDau2pvjIShm57W+n6e/QNXQMQP8ADfvc3fdufcMIil8zcV8rbVuoj1O9MZCUbl25cx15X9Ip7z1e3Q7gM5vdW/IxHHNem2wvfvG9SRc/7u9DkpTpzLfJuX87m7NXQdNzuS1m0tsG8m1iGtdOp9OdzS2u3XmSTkoRz/jtYXY99tTFN/gBdhfRjd9202ZrQ3F61r43tWlTcU0JAB8qb5KU9PL4DYtzPUmzxXa+hO1+yRzvq1nsLO0Ja6VPSw5DUkjnWutT51xlS0WBIB5m9zsBpYenwFb8rnQdR8SBqXANhEFxeo2uCdaVpvzqRQVobXtXGUhJJbnd32+W+wIvd7RQcjcXvqC1w3bkN9NDEUJcecQyy24666tLTTTaS4644tXcbbbQkFSlrUoAJSkqUpXdpW2M6VKXMXLlS0qmTJi0oQhCSpcxaiAlCEJBUpalEJSlIKlEhIckQJShJUtQSlKVKWoqCUpABJUSTYAAkk2sVG942meypwg/zI8C8kZJi4NmEzEuB/b+cfdhsuOZqnoRGTJqJeaUpuJdlTZhZA1EIUpLkHKIUIUpCUk/oF+z54bDwq8Jsq5VqKaXTY0qkOMZl4PZla8wYtw1NdLnzZRUifMw9Bp8IROQpSV02HSOBSkBJPnj4i5m/azN2LYtLmqm0InfcsLfiCU4dRvKp1S0KAVLTUK9pWKQQCJlTM4gFEiPROO6Y4RDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR8/mzKuXs9ZWzHkrNsqhp7lbN0im2WsxyWNCzCTaRzyBfls1l0SG1tuBmMgYl+HcU0426lLhU24hYSoRT5MqpkzaeegTJM+WuTNlq0XLmJKFpLXZSSQWIN7GIKqmkVlNUUlVLTOpqqTNp58pb8MyTOQqXMQpiCy0KKSxBD2IN4/nydq/s85k7LHaA4jcE8xtxKxlWePOZZm0QEEZkyTM/wDrDKWYW3mUIhnVzKSREIuYNw/wS+ctzKUv+7i5fFMt6z43hczCMSqsPmufYzD7JZH+ckL/ABSJoIYHjllPEB+VYWg3SY0czRgNRl3G6/CZ4U9NOV93mqb+3pJrrpagFICSZsgpMwJsicJktQCpZA8+oX4351uN0/kLX3vf4hS1j5b+Y6xx0h+mr6a87bX/ABHcMW0Imtr0Fa60J5bg21sK8tb3rCoNtaztsdiB/dufgW2sLmzX+i/8dGv1iUhfWnI10J50286XruCLSNj9fX1eLFA6i/Mcx+v10MtK6+OpB873OlBpT8cRKS3y/QsNSdC8RkAi1xt5NYsNX0LxJbXsf67XFtfn5iuIyH0sRp/H6+YMbtY3B0P6/ozcuQkpUefK96E8jp/XpUDEZ34rch06a+mmvJxaU7p76+jdtt++0lDg8KctRfUGl/xsDa2LSG10PoYsLHodxty5W87cy8SEroNSbgVpY7abWGltQSRYCIo5M1uh9bv3bbeLCkjRm0bQjz73vvpeJCVeHgb+Y+o6Gtq4iKe4PS3117MdIj4QQe7Ho/MWa/JwA/K9ZLlKUOnqB49Dfw+I3BxGUkfVn7bPbTe2hEWkH153HXt1G2rc5CXRvroaGhF7VFADbTQUOhFsWtZ/TkdN/Pl01iwh7adDdy3O/nvZxzNcLFbGpGux6Cm5/wAU4oRz0Pv+t4t4Trpy3HUvqAdtevOOXe1CiCNPiFut7AnnShO9cW8Iv1+tC4bkCGG0Uvyd9RbTtezaOGD2jubh32huNvChcOOH/E3NuXYSFAS1J0zIzXLhSP3XcsTpuY5eeoPhQp2WKW0Cr3SkE1x9vDMx4/g3D/VmL1lMhH5ZHtPa0jbA0k8TaZTXbilEh7MXMckwXOWaMvFH9T47iFFLR+WmE729CQGYKoaoT6NTbFUhRT+6Q5Mevcu+1F7RUoSy1OJbw5zYlASHXZrl2aS6LdA+8sO5fnsqhGnVCp7wgVtJJsxoBzOl8Wc0yGE+ThdaBZSptNNlLUOYNNUSUBXX2ZT/AKsdi0XjznOmCU1MjBcRAYKVPo58maobkKpKunlpV19iU/6hjt2A9rjmVpsJmfA7L8a7T4ly/iDM5W0pVqkMxWUp0sJqD8JiFWNCo0JP2pfjLWBP9rl2mWprmViUyUkm37q6OeW1txb62vyOV9oiuCQJ+VKSYprqk4xPkJJt+5Mw6pIGtuM94hzf2uGd3m1/sPgxk+Wu90lC5zm2dT9tBAJqpmAk+WVrSLVAfbJofiFbWTvGTEVAinwGjlKP5TPrZ9SBydMuTSE9WUOQiGo+0NiqwRSZYw6Qo/lNTiNVWAHqmTT0JV1AWl9ARrHQObfaedqKftOsyiZ5KyQXAoe+yxlCGiohoEEENLzfE5paSdSFqaUtBHeSpJAI+RU+J+a6lJEqZQ0JUNaWkQtQBbQ1i6sXBsWcPq4eOO13jbnmsSpMidhuFuPzUWHomKAIYkHEF14Sb2dJI1Bdo8PZ/wCKnEjiZGGN4hZ7zbnWIDyoho5ln0xmrEM4sE/6lCRT7kHANoqQ0xAw8PDsNkNMNNtpSkcQrMSxLElceIV1XWrB4gamdNnBJL2loUoolgBwlKEpSkWSkANHXmI43jONTBMxfFK/E5nEVA1tVOnpQp/+6RMWZcoDRKZaUISmyUpAAHWTqjcCxOu+lrGlLctb1roMQJDJL7/AgP8Ap6+WDcHpbcHUgHkdmFttL29edkrhkJ7mCI4iziGSuU5YeMNI232++iLzGtpK1RaQurfdksK8l5s91SxMIqDfZW27BKxpr9sDxSOXsuU/hxg9StGMZrkfeccmSJnAujywicqX92UUlMzixyrkrpVjiCFYdS18icFy6xIO/P2H/BwZkzRUeKeOUyJmC5NqDR5dlTpPtEVua1yZcw1ifaJMtScvUdQiplqIMyXilZh1TTrlzaBRORpTta79dB/gPz51PmgEXHP1N+TWHS2rdo9ZdTz6ve9rcgNQ4tY7gRQU5zNdh89BqdNrHniVMs7uOYdzrubtrtudeYB9b8+mhLkju4Fx6xHU7y1FaHU0r0000FbE0pWgnTLbZhv31Nn1c9b6u0XN/tNrqwLcrufU87xFU5yvSt+XnvcGutzXc4nCeQv8v00bowvaKO5bU3v7rat3D6Al2IiOpwXvU0ra59Nhbe1bUNcTol87nsw31LOXHqC5ZrUuegcOX8tSbs/QOPw3iItw86bVFSQL0AFTQW5m4vUaZCU8tbfp07Pb1Je5gxHIEsTcnmrTvruHawiItwjX0rpy51J3/GtTkol7n158wNttS0ULlrNZmGo67Nozbiw1LQ3HNfMmum9Sq1unXrpkJTp6MPgH15k+Z2EVA7c7G3+zyH970HSIte58QDqb6nwrYbDrplIljfXcjQdB8epvo3FUltB2Hp6FjYdb3LRCcXUa66m+nO1/C9Ba9SAMlCX25e46b7bWO2mtNr35n/8ACN9rgl9zcxBWuu+/TS+vpppTyploTwjS++/l/Kz6bRdp56bcmDchc8xexvHuf2fXAxXF3jfA5knEA5E5K4WmEzXNnXE0hYzMbcQVZSkrhqfel6Yw7s5iIdaFw8RL5HFQUXREahLu332N/CU+IvilSY5idGudlfIRpswYhMUP8mqcalzQrLmFrOkwzaySvE58kpXInUmFVFPUcKamWmZ07405v/ZrKk6gpZwRimYfa4dTgf5yXRKQ2J1SRqkJkTE0iFhQWidVSpkpzKUU7HuPbSNGoYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQjBj7bnsaq4x8G4TtIZFlLb/EXgZLok5vahk92NzHwiLjsdNFfC2v7TFZBj3X8ywra3IVDcgjs4LLkVFolsGvr3P8AgX3+hGK06HqsPQROAsqbRE8S9i5plEzU3S0pU+5JSk9O+L2U/wCtsKTj9HKCq/B5ahVBIHHPwskrmaj8SqJZVUJcp4ZC6supXAk6g6F+u45jkL0qK/dHOnInpBSXtuI1ZUkguNdL/WurFmN7cpTa77EEfo6W7o8DtUDSBSdjb9Hv3B626RGoOHHz5s17uTryvufxTEL05GtK2qAdx/S2oGqcQkNZrBtP3X0a1x3OzHYizXv8fkANv00lIXSnLprp4/nbS1MWkecWFLOWudrMfUG/wOu8SkLqdq8ga63r51r4eF4lJb9fgPQM/Pm9oyHG/chhYafLvze0hDlKfXTfQgfPTTFhD2P11HyMRl08yPgG56kaXANnJeJKVdetzca3v/Q68gMRkEdrafpuToP9n8TvFCkKuDfnsYrpc686nx2PKnKnLTXFpTy+trHe/Qai14s0sofR5H1O4fZ7xIS513qakkHmLXA2ppTWpAxYUg6i9x2+vdFpSD5bjb9eY1tfnFcOC1d7XNq1tfr89QNcRlBuR9a7fD6MWEEdeu/WzsQWb3aANVCxb9U5XGhtatxyxGU67H6sQdi9xZ/WLWG22p0sBexL/C7u2sVQ51oNwfiH0rXxxYUkX1N7ixc87s3v20izh1a3u52Y+bgA36sYqpdI001qDXTc94EDoKHcilK4oRq+ugDc+RBu3NvKLSDvfV3t5aE+9+fKOYeF+9SvMpKb8goGv9ByxRn0+IPus3m3KKNbQgche3MguOtn5xzDw5Vr/MT8yBQeflvijWOtuYPye/du8WlI3U1uTe6xO+g89o/fe+P+8j8cGHMe/wDSKhIOjFt2P/mb0ik89RBFTUmmqTbU6U5bm+lDi+WAVXO2z/pfXRjvFwQHcsALnX5k9/KLU65SprvXXnehA5HrW9DUC+UlgGGotcEbW7WA925idAHn2u7kWNjfS3LRyYtzihegrWvPw38a/kDUSp5M93GnY7jo3zZolFi5tqQ1n/g3q4i45Zy7NM5ZilGWZO0XZjOo1qEh6pUpDIUSuIi3wgVRDQUOhyMinKgNwzDq1KSlJOPjZozJheT8u4xmfGpwkYXglDOrqtQUhK5gQAiTSyDMISuqrahcqjo5RLzaqfKlJBUsA8syXlHGM95pwLJ+ASPbYvj+ISMPo08C5iJQmErn1lSJYKkUeH0qJ9dXTfyyKSnnzlqCEKUMyOUctSvJOWZPlWTpKYCSwaIRpa0pDsS6VKdio2IDYS2IiOi3X4t8p+H3zywkd2mPFPOuasTz3mrGs24yp6/GqxdUuSha1yqSQlKZNJQSFrPGqmoKSVJpJBUxMuSlSgFKVH6B8g5Jwfw6yfgGTMCQU4bgGHy6SXOmIlyp1ZUFSp9diNSiV+D71iNbNqK+oCTwidPWEMlKYvxdtqa+p8rCnkDeh+KluNpl2YMB+m/Vxpp+vMGsP3g9tgPLVW/N/WKCnOtTfSu/W/PT5a4kCRyf+HPbqet+TUJF9w46AAer69X5MA8da61rsLitvAml9NOulNJkoLh7X7/R7dGL6Lk31LW56bdL3LjW2sR1u089LX1vRJGwBub9AK4nTLZmt8+Rsez79dIrq79yBYP1Pm/IMdWiKtyv1IJHzpXqKG9Kg7HEyUHYWtf618t35xVw53I0DORzYdQ13Z+WkRlL2BqdK+ug+df8cZKEAbd/Tc7dtegF4tJ5+etmvazAiwFzcsSXtEW5rtz3N6aDcmvp5gzpS7W225B9eQF+vLV4u5ci1xZ+5uw2A1ewiI4v8wDvT95VPkNh1FsmXL3OulvgPgXF976Uv0J0A2Df3R8TZvIxEccvc6nzrUX6U5beNhkJS9hft+u/xJcsRqYbl+Z5HuNTsH013AiEtdev46dPufM30FcZaEcOuv0+939dnJgx1NuQ9bturvpqYQcHGzWPgpXLIWIj5lMYuGgYCBg2VxEXGxsW83DwkLCsNJU48/EPuNssNNpUtxxaUISSUg59DRVWIVdNQ0VNOq62tnyaWkpaaUufUVFTUTEyZNPIkywpc2fOmrRKlSkpKlrUlIBJaLJ06VTyps+fNlyJEiWubPnTVhEuVKlpUtcxa1EJQlCEqWpaiAEgqVYCNo7socB4Ts98HZDk9xpo5qmVMxZ6jW3Ev/ac0TGHYTFQrT6CptcDJoZmGk8F7gpYebglR/dMTHRLrvvr9nvwlpvBzw1wjLS5cs4/W/8AvnNdUhYne3x6slShPkInJKkLpcMkS5GG0xlcMmailVVhPtqqetfnx4jZwmZ0zPWYmlShh0j/ACHCJKklHs8PkLWZcxSCyhNqpiplVN43WlU0SSeCUhKfSmO744JDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEUIqFho6GiIKNh2IuDi2HoWLhIpluIhoqGiG1NPw8Qw6lbT7D7S1tPMuoU242pSFpUlRBoQFApUAUkEEEAgghiCDYgixBsRFqkpWlSFpStCklKkqAUlSVBlJUkuCkgkEEEEFjaNGr2ofYjjuxzx8jXctS58cEeKERMMzcMJg208YSRqW+XZ3w9iIhSVJTG5UiYhH7NSp11yMyxFyaLW65G/tNqG19zdl9WCYioyUn7hVlU2kUyiEX/tKYkhgqSSOAOeKSqWX4+IDT3xFygvK2NLNOg/1RiKplRhy2VwSnU86hUdPaUyikS3USunVJUT7QL4cayFX662/ep+8KnXn63sTxBSXHXY/LtHXSk7jzFuRseRvr6ixAkoWPHw31uDWgI29BUGghI2NiPrzB+tjEZD+T+WnctzuWdza6paHOtRzppU6Hp5gGtjuYiltA/MPcsC5HPtqNgx4Yt5A2+F9++xb4i8pK6Uofn15/oiugJxY3mPr663aLVJvyPMjUdRof1HSJKXARty02rptzoKWqRfc2FHL478/g/bezRlN2Otyz+8au5/2mGh1isldKX52r9PrWlaHriMgj6+Pw7uIsKSHbubWvz5GzHq+piQlwGhNa+NxWleh6bEnmcWFPJvSxbT65WDC0Wu7gjn59udm035WeuFcjtt06XvuN9dCMWNo40tv00L/qkE8ja0o5en8YrJcpT62I8frp5a4tZ9Pr5chq7lmiw21Bf60tflvYdmrJXyNOo0qLC1KDc1ArW4xaQDqP16/wAYoUgjnt8yx5cy/e0VQ5yobUtqTzodSdyTYV1xaUDbn9abfTjWLSg6Pbkbhuh1ZtGPnvHP3gFa+RNq+J08Kcji3gPft/FvreLeEjbux2vZjrzu/cbVA4RpXyuBXny61GLCgbgX9fXfyJihAGpvexSQP+X5PrHL3h518AD9AcW8CRt7z5bxRh08lN/4h8zDvj+Ef7h/LDh/1lesUbt/vD9YiPugrCR3RRO1rmta8iBz56WxNLSQkm5fRyHPLrEqE22ux1H69+e2jxDdXUG9a3pSmhFOXT/C2JAn8tmD+4uAzWfptptEnCByYG4u4D9LPzG22sQnV1qN6bnQ2pewv0pTE6UgNprctdnc8ywHN9IlDKFuTC3d9dLdC+h0j332UeGwlEqiOI02h1ImM9ZcgsvNup7q4eSIdAio8N/eC5rFMpbYccSlQgYUPMFUNMSpXnf9rzxQGKYrS+GeEVCV0GBzZWI5lmSVFSZ+NLlFVFhhmD8BRhdNPNRVS0KWn7/VS5U32dThykD1W+wz4N/1LglX4uY9SzJeJ5ikz8MylJnp4TTZflzwmuxZMpQ40TMZrJAp6SbMTLUMNo1z5BmUmLJmK9iKdJ28yQBtoB6HTnfGlIQ2gbv83u1u3nHoODqUjmx1Oh5787u2xiipyouajmfhGv6r6dMSCXe79t/5NobP0aDE9Tu2nrYP1uQ24sKK3ABbSngNxQAUJ8DTcUrQYlTLbSwfffS+453uDYaCAABbQ8gHO2pOl+TM4L7xHW6TvSwAsajwAsLHW1wQbVJlSjkH3f8AU+T3s9w1oqGYDQGzC+rC51326XuBEdTmvn1J0udQN7cieoxMmW4c307D4E9m8ooTZhYWADjXnZ+egvZ3FnjLcsbgC9tv631POu9sZCUsdH8i/pt7z20gPjdr37tYFmtu7WBDR1uHrcWpqbUqTsBU8gdhcjEqEvYWFg5u3IAXJ27b7RUb8w1rsGsDs/ndg40DxFuU8f8AhTW1BzIHoNSBbGUiWA1rnV7knr9dbXBPdtSWdxz6bbqIs/MaRDcc19bm29/QGtDypc1xOlJJtq/Ueb2HXsTcbB593c/7OlrEuNRpewiqXyr56kAine05aUJpS4tTKSgJ6n6+u1gAIq2nTQbDuemgJ05ExDW4Njf9bU+7alBc0p45CUF9L8tuTuNDdxty6HGxve521OhOvPezmMtXs0ezKcwTg9oXOkuSuSSCKiIHhtAxjCltzLMTClQ8xzWlLoDLkJl5XvZfJ3QiISqfqjItpcHG5dYW96NfYe8Cv61xH/2xZmokrwzCJ06lyTTVMpRTXYzKKpNbmAJWEyl0+DkLo8OmcE5KsXVU1MtVNVYNIVM1r8d8/fc6X9isKnlNTWoROx2bLWOKRRLAmSMOdP40rrnTPqUkoP3MSpahMk1y0oziY9UY1NhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQjzd2sOzFkHtc8E808Gs/NfZ2Zq0JjlfMjMOmImOS85QLMQmQ5qlrZdYLrkA6+6zHwP2iHbm8niplJ332mI9xxHy8ZwmmxqgnUNSGCxxSpoDqkT0giXOSHDlJJCkkgLQpcskBRMfAzNl2hzRhFThVcGE0cdNUBPFMpKtAV7Gplh0uUFRC0cSRNlKmSlEJWSNBrjhwW4hdnXinm/g9xQlBk+cMmTJyBjUsl5yXTOEWkPSyfyKMfh4VcfIZ7AuMTKURyodhb8FEI+0Q0NFJiIVnXLEcPqcMq51HVo9nPkLKVM5QsaomIUQCqXMSQtC2DpUOIAvGlmMYRXYFiNVheJSvZVdLMMtRHEZc1GsudKUpKTMkzpZTMlLZJUkhwlYUkdYJXXqaXpaut9OlOgFbjT56kv0On19e5wfkqSdRY6B/W/rq3zEV0OHUE7DWnkT+OvI3riBSWsR7vg4aIyAduHXVz6ebaWLjUhhKQ5S2vNPp90ix5jQioHTEZTckWPPY/4hqORN+ZEWENrfl07jyIb0dolIXXS3+B1B8+ZsagYj9x+mZn117RQpBF7/H3dGe+7bGJCXCLE+VBTw/pqeZJAxQpBvvzGsWFN3Z+ofi7636cn0IEV0r0oeetjXal78tuZN8RlLe7TTqTa3PzYaRYQC++mgcNu4a2jt5ARWS4Rap+iqV+Y26898WEdAR6j37/VosII0uNLu3PXnpqLdLiKyXAdT+fkL1ttShtvXFhSNrdNvrrqxI0tFHB1Dd9NOZtzFu+kVAvetLc6EdOtedqb4oxGz9g4LdNBZ+V2Cd4oUDY6+n16xUDhFa7c9vMWPqcWsC2z/Wh15ai+gLXtKVDZ9NOnofTvFUOnWp9aj54o36XcX5OQ3vi09Q3ldvcPcNO8cw9pcedfnenp/TBi7Nccr/CH4eo9D+kcg7/MfJZ+hJxQpG6fURaw5D0EfvvbffV8iB/h5eWKMOQ9BFeAEOw9Db/liGtwKUpROp1qnTS9Dy1+eJQg200bR79mvy9D0ioSQOXQg+gs3a/TpEZ1YFaUqDuo/nSht09MXhNwwYPy6HRhdteY7ERIA6ebjUC769yXsd+mpj73hTkKI4kZ0luX0BaJc2r7fPolCi2qFksM419qKHBVSYmLUtqCg+6lSkxMS24pIZbdcR1z4teINJ4ZZIxTMk0y14gU/cMBo5ifaCtxyqlzfucpct0g01NwTa2tJWkfdKWclBM5cqWvuTwM8Kq3xg8RcGylKTNRhIV/WmZ66XM9kaDL1FMl/f5kubwqKaqqMyXh1BwpWfvtXImLSmnlz5svLbCswsvhIaBgmGoOCgodmEhIZhIbZhoaHbSzDsNIqSltppCW0JoKJSBUmhPjlW1VZiVbV4jX1E2srq+pnVlbVz1cU6pqqmaqdPqJqgAlUybNWpayAzqsBYD3ww/D6HCqCiwvDKWRRYdhtJTUNBRUyGk0tHSSUU9NTSUl+GXJky0S5YLnhSOIliTULxAsTfdPqTU2HjQVvrriAIG+nx+Y9T5Rltu1/wDX/Qc9h6RQU8aGhrtUVUo23JNBTkfOgOLwi/5fMhm/l0v3hbm+tk2Hazkud9L3Y2NJTnWm1jVWlN7CngKbcjKmW7O9z2B9b/A62irnQMA/zawcPudC+m7Cgp3XrW9b9d9elzyxOlDeR8vSxPu896M+rA8zfUnQX13cs7kbkxlO7ih31trap30OgN9gQDiQIvpftfyFmFwNrc4rZzs+5/Ny5MNQ2hbbcR1OnUk2qBU32Fh1NflrQHE6ZT6+nwJNnsQ3wIJhYB9ObO/m+7ka/AkCOtzrTUm9z41uNdPwFp0oA5emnbU2HdmtDkHYNtqdbgMTcc+92vEW515gAb66DkKC9TcUNqHGQmXxbW6v8u7eTgMbG0cWvawHN1N5dLdWiKpwnfyOnIXqb86WvSmoOQlITYeZ36/rc9zFQ+9zcO7atpuxO+r6BtIq3L0HrUjzPT8bUJ0nQh+XXfyHMhr8nDkB3o528zvbVhyHP0c6+k+yp2b592lOJMPl5n7VL8lyQwszz7mJgBBlsnW8oNy+AddadY/bk7LL0JKW3G3g33IqZOsPQsviEL7++z94I4r41Z1kYPKE+kyzhSpFbm3GpQAVQ4apZCKOlmzJcyWcVxQy5lPh6FomBHBUVsyTMp6Kcg8B8RM80mRcCXWr9nNxSrEyRg1AokifUhI4p05KVBRpKTiRNqFAoKuKXJStMyegp2g8vZfk2VJFJ8s5dl0PKZDIJbByiTyyFSpMPAy6AYRDQkM131LcUlpltCSt1bjrigXHXFuKUtXu3g+EYZl/CsOwPBqOTh2E4RRU2HYbQ04Ik0lFSSkyKeRL4ipZEuWhKStalzFl1zFrWpSjoFW1tViNZU19dPXU1lZPm1NTUTCCudPnLMyZMUwABUpRLJASkfhSAkAC8Y+lGLDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEYxfaYez2y/22eGjc2yw3L5Hx/4fwEW7w9zM/RiHzFLwH4uI4dZmiO+hv9izeLX7+UTSIS47lidLMbDqTLZhP4OZcTzVlqXj1JxyeGXiVMlRpppsJqbk0s4uPwLVeWs3kzPxAhC5qV9e5/yPIzdh/tKcS5ONUSFGiqFfhE+X+JSqGoU4HspizxSpinNPNJWlkTJ6ZmkTmrK2ZciZmn2TM5SSY5azXleaxkkzDIJvDOQUzlE2l764aNgYyGdAW08w6hSFapWnuutqU2ptaugp8ibTzZkifLVJnSVqlzZSxwrRMSWKVJLXBfQF9RqANRKqlqKKfOpauTMp59PMVJnyZqSmbKmoUykTEG4UlTnlqzhQizpcBpU30rSlqXrzG/ysTXEBGx+vlrGKUnUBuxB30+AYvcPtaulZtXpvatToRodeorUXFcQqQR1F/o+X1dojbn1u1vP3W3ZnLtElLm9TUCtQKGo/iAtSt6i9+hOIyl7eRB25tuD006RaUkG1ntrYvsDbzB5dQIkJdFL0tao0r4W+dN/vUxGUkbE6f4m07ejtaw0i3XXU9hc6F+X0NbSEr3BtzOnz0pXela6EYo3K/Tf0/R4tKQe/MfV/OK6Xda01qK/nbb8upsKQem1rdfjFhSe40/D+nU8rbtFULHPkb9dBXXzOt9MWlH0Pi1teQZrM8WsD8wNetiz7uAwFme8VQs7Go9RbwNvlXrixiP00Pv18n6xaUtdyDqRp0diGPk/WOaXeumlDb0r+uWKFPMa8xeKMoG7abuD30P1y0ioHR0B3qKV8aW/XrbwjmRyvp27xR9iD1s4+fTn7o5hwcyOgIV9b/r1t4COR7hh6DU9T/Kn4NwB7j+o93pHLvjkf15jAJUNCPU/DT1EOFJ0PoX/WOK3KJJChWlBYi5sL1wSFOHdt7+vPbpDgHM+79Ii962iR1p/X6+eJeI8z6/Xu8orw9VHo7vFFazempNa6X5nlQg10OlOtwBtfsGc31YXdw1ri5sIvCQGLpG3UDdj2PUXLxk27PvDsZCyW1GTBhLeZM0Jh5lNCtKkvQkIEKVK5SsqAUlUKw8qIi0JSjuR0VEMKLyIZlw+WP2kvEtXiBniZhmGVKpmWMpKqcMw1KC8mtxErSnFsXCU2WmdPkpo6KYpUwKoaWXUS0yVVk+WfbH7JPg6PC7w5k4ri9GiXnHO6KXGcX4pZ+8YdhnAteCYGpawFoVTU9Quur5aUS+HEq2dTTTPTQ002O9y7zIqNKXN+psfkfGt9eBK0d9RrYa+vdie0bVObiwsAGPPewN3vZvO0Ui5YipO57xrz2FvzxIJYB08wL+pbns+8GO77asB2+G190gtFNTttQNgNNuQ100NOtMSBAvbY9T35D084MG2a/wCV92dyT19zOzg0VObabXtXmQNdK2qa7XFReEktqddLnnroH924Aitxc+4OXI322Hu0FjRU5zpy+I0HkAeZ5img5mVMon5MxvYhzZvTXswachzL/i2bX520cD8sR1O6mp318dhbnrppWuJ0ywNh5WcAHW93Gvp3dtrudLPZ3HqOrkuYjLd1ua+pp62uenia2lSglgB5D6s2+uujgiHDvd+o7sw7sSSe5/MIjLcubjpa3O3O5sRprTXGQiU11emnL9B17GKgejamxb5M3TW4cRHWvcknxNzb0FgdKV0ucTBOwsP5D5iK6aBte/Rn6mz25Bi8RHHKa6bXtYmo6n53xkIQCOXPmX07DdtbB2vFt9n7DdjuT0F99js/ZPB3hDnbjpn6UcPsjS8xc0mK/fR0e8h79k5ek7LjaI+fz6KZbd+xyuBDzaVK7qn4qKdhZdANRMxjYKFf7F8NPDbMvinmzDsoZVozPra1XtKqrmJmCgwfDZa0JqsWxSfLlzDTUFIFoBVwqmT6iZIoqWXOrKqnkTOP5nzNhWUcHqcaxeeJciQOCTIQUfeK2pUlRkUdGhak+1qJvCoi4RLlJmzppRIkzJiNofgVwSydwA4eSrh/k5gqZhv9dnc5fbCJhmXMD7DDUwnkwotwIdifs7TUPCocWzL4FiFgGFKah0qV7t+FPhflvwiydQZQy3KeXJ/yrFMSmICKvG8XmypUusxWsZSgmZP9lLlyZCVql0lLKkUsolEkKOgObs14nnLGqjGcUWApf9lSUqC8mhokKWqTSSbJdMvjUqZMKQudOXMnLAUsgdxY7IjjEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEYffae+zDkPbAkERxV4VQ0sy52kctSwNsvOGHl0o4sSeXsL+z5XzPE9xDUNmaGaQ3C5SzZFuJaYbS1l7MTv7CMtmeVuFZsynKxuWayjSiVikpDAlkIrEJFpM5TMJoYCTOVYMJU0+z4VSur/EHw9k5okqxLDRLp8ekS2BJCJOJSpaTw09SWZNQkMmmqlH8IAkTz7HgXT6ZuaMr5lyLmWd5OzlI5rljNOWplFSaf5fncE/LptKJpAulqKgZhBRKEPQ8Qy4khSFpood1aCpspUroydImyJsyRPlLlTpS1omS5gKVoWk3SoKYhQYguG3cjhB1TqaSfRz51LUyJlPUyJi5U+nnJVLmSpiSUrQtCgClQ0YsNxZos6F228Dp/Sx89q944gIN20+n9Ow6sbRjEcV2Lb2v1BG9+Vr6gJiQldaU8aE32pQ1odeZ8QTQRlAOlu1h8IjKSNDyBG29tHG9iD0FhFZLnjzqCQelR1oNuovfEZSRYj57X9N/wBIsKXtp0IHm2+pJ1Poz10uEUIttavd5XBIIN9ietiTiMpfru+hfuBpszadgItIPudidRqWaxHWz7XESEu6VpytSmtNNf8Al5E1xYUkPuL3NjoCeh0O/YbxS29vX+Oupt25RVS4DodDsfnQ/QVN6Yo1+X+K3l/Gw3ihAOoB2f6uP5tFUOEU2ttY0tt5aW6EYoRzDh+4f4Rbw9X6KuP1H1rFQO+o0JF/Cv589cW8I6gcgbd2+tIt4TuLbhJt6Hfkx8tjUDg5mw0B71et7jwH+NpRybvow8rHu38KEdGvYkEfC3dwG67cu+Dv6g/UE/S3XFOA8n6gj4ED4+kU4QzFj2UG9CB8fSP0L5ECvJX5C/rinD/i/wB3+MU4B/dP+5/GOK3NB3t664uQncjoxi9EvU8I5M1/PlFJS7XVXX979XNbYv4RyHoIuUiws1xt39w38ucd89nnh5/ltnFubzFlLmXsqLYmEYlxv3jUdM+8pcqlpC6tqQXWlR0YlSXe/DQghnG0pjUOp16+0f4lHIWSZmGYdPVKzJm1NThmHLlzDLnUGHhCUYviiVIaYiZJkz5dHRrQqUtFZWS6lEx6RaVbX/ZF8G0+JviLLxnF6UTso5FmUmM4qidITNkYniypi14FgqhMHsVyZtRTzMQr5cxM6XMoaGZRzZQFfLmoyVl2orc1uTpv/NY151N/KvlqENYWbYEkegcD0HSPagu92J1/Eoqcnf4vbz1bgXTsR43J8O7oNuR+dbgg68JF+QAPnvvoDDnfk/CG31e79b6bRTLlRuB5AfmPC2pFcXiWQTpY6an5B/XR2sYNr2Aclz2a99xbUi0Ui51vb7uvmTr68rb4lEodSH/e08kjTtrrdMVt3Y6DYbizm2xte1hFFTtNKX0OppW9TX8786YkCALNowuwvpp+unckmjm2g0F9n6B9e+2gZ4oKdtqdaVrUgVv9dNR1rUSJQSzdNrXvp8m3fRnMTe5/xaciyR33Da33igpwHetR5UuLmouaDrsf3jidMrQm3x58ufPe7WAFWf0a/kbBt+bG/QMaC3K3sNegvXrfz9KWEyUgWA/X+UNOvUtqPeNOps50vHU5S9ak1t6moHpz6hN8SJS/bV9rbE+ul/8AFaGnXzs46XJNhzNjpEVbmv52Ap+8b7aXv1xkpls25ttv0GzvyfqNIaks/dtw4s/Unto7GOwuE3CbPfG7O0syFw+lDk0nMwUHop9ffZlkjlTbzLMZPp5GpbdEuk8AX2vtEQUOvvvOQ8BL4eMmUZBQcRz3w98Os1eJ+ZqHKmUcOXX4lVkTJ01XEigwuhRMly6nFcXqghaaPDqQzZftppSubNmTJVLSSamtqKemnfBzJmTCMqYTUYxjNSKelkumWkELqKyoUhapVHRyiUmfUzgg8CHCEJSudOXLkSZs1GzN2aOzVkrs1ZHby5l5CJpmWaJh4rOecoiGbZmWY5m0hQShABcXAyKXKcebkkmQ861BNOvRD7sXM42YR8X7geCXgnljwTysjBcHSmuxquEmfmXMk6QiXW4zWy0nhQkArVS4VRlc1GGYamauXSy1zJs1c+tqayrqND8956xXPWLKrq0mnoacrl4XhiFlUiikKIcqLJTOrJwSg1VUUJVNUlCEJlyJUmTL9HY7njg8MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhGL/ANod7Mzhv22ZA5mmSOS/h/2gpHLwxlviAiF7sszLDQwQIfLPEWHhIdyLmkpDSFQ8qnMOlydZaccbehUzKWNxMgj+J5lyrS49LM1HBT4ihDSqhvwTgPyyqoJBUpGyJgeZJJdPGkGWrr3PGQKDNsk1Ekoosako4ZFbw/2dQlLNT1yUgqmS2HDLnJBnU5IKRMlhUlel9xo4KcUuzxxCnHC/jBlCaZMzjJVBbsvmLaVQ0wgHHn2YSdSKZMKcgJ5IpgqGiPsE5lcRFS+KUy+0h4vw77TXRlfh9XhlTMpKyQuTOl3KF7pchMyWsEpmS1MoIWglJIsXCm1SxfB8QwSum4filLMpaqTcpWPwrQSQmbJmB0TpKyDwTZalIUxD8SVJHWCHPltv5amwt5mgFcYJSNm9dLPd+V+TDmbR8oixfrcP7wPV+gd9DXS6TQVrv18bCh1JPS5rcGwjn9dO4iwpBDtbtZ78ySC3e55ERVSvkamun3SB59P8SL4sKBtaLSkjqDsb+hu7Hvy2isHDemvOlD9NgeW4r1jKSNRb1ixhZ3HQ3A8+7b9LGKqXTfTyHdPTSxI1oKVqKEXGLCkFtbc3PxO+nLpFOHy7aDvoQGO9xd3sYqh4ilSLUA7w031AIqB4E600raUHZxbYuOzEg33vyu2lGOrPva3TSxbsOji8Vg7XUUpyoR8q18KjXzxYQ3IvzdPmx9zltYpb6+vke+0cg4k6EV5Go5+JHPf8hDaggerelj5RRu3r9P5RzCzUAH5gjyrfTW1RhbmObF3+Y98UKRuPkf1+ukcu+rn6AH8PpimsU4E8vef1imVoJua0tTumg1romlb3xeEqa3qCL+/07mLwCBYkPe6v1MSIKFiZjGwcvl8O7FR0dEswcJDMtqU9ERMS4llhlpHd+JxxxSUpFdTe1SMesq6bD6KsxDEKiVSUNDTT62rqqiYmXJpqWllLnVE+bMUQlEuTJQuYtRsEpJJDRm4dhtfjGIUGE4ZSzq/EsTraXD8PoqZJnVFXXVs9FNS00iUl1TJs6fNRLlpAJKlDvGVvhrkyF4eZOleXIchyKaR9rm8UnugRk4ikIVHRAKaD3KFIRCwoNVpg4aHStS3AtavIbxWz3U+JWdcVzJOeXQqX9xwOlUCTR4LSrmCilK4i4nT+OZW1YACfvlVUcATLCEp97vBLwuofCDw7wTJ9PwT8RSj+scx1yAnhxDMNbLlHEZ6ClISqmpzLlYfQEuv+r6Kk9quZNC5ivui6L1APnX1FPDHXQQBuX6W+vJrR2yX/ALoYcym3xt6RxL19daWA89/p41xdwi5bk7kmx77ae6D3IcDRgA50e1hb17iKRdr1O+9L/KmtT1scXhJ5bW2Hbbbl0uIo3MEuBqW9Q5Ol9+3Kmp0ixIGovep2sNK2pS52G+L0ylEP9fEdi3rtFRsOmiR5am/QksxFyIoqdvzBpruDra56/Ikm2JRKAZ7+T+8/p+sVZn0Gt9fj1vq2tjrFJThoa0pTwHLT5Ct+dqAShI0AuYr2D33t19NNHc35mKCneZrQa6C/Ifha/XEgQT66b66OWH8L8oo9+dhowDc9e7P7tTHU7t6ab05U0GvI9MTJl899db93uXPaxu5NqOTZntYBwByvbRujH/ljqd1uDTaorSliTS9K60O/96dKWazDR7t5D5DzirbG9iwaz9rA6Wdhy1t332e+zZxK7SGahI8mQAhJHAutnMuc5ky8jLuW4ZY95R51tPej5q+gES+TQhVGRbhS46qClzcXMYXuTwf8Ec5+M2OjC8tUv3bDKWYg43matRMThGDSVAqabMQOKpr5yQRR4ZTE1M9SkTJppqNNRWSOGZ0z3geR8P8AveKTTNq5yCKHC5CkGtrlgs6UktKp5ZLzqqYBKlh0oE2eqXIXsm8A+z3w77O2Tm8qZFl5VFRRZiMyZnj0NOT/ADPMWkFCYqZRSEJDcLDhTiJbKYYNy+WtOOlhlUVFR0XF+1PhN4QZO8HMuJwDK1IVT55lzsZxyrTLXi+OViEcIn1s9KRwSJLrTRUEngpKNC5hlyzUT6qoqNGc450xvO2JnEcXnNLl8SKHD5JUmjoJCi5lyJZJ4pi2Bn1EzinT1JSFqEuXJly+88dpxxKGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEI8ydqTsi8EO2BkJeROMmWER5hffvZYzfKvs0BnbJUe+EByOyxPXIaKXCh8tM/tCVxbEbJJslhhM0lsX9nhiz8rFsGoMap/u9dK4uFzJnoZM+Qos6pUwgs7DiQoKlrYcaFcKW4/mLLOEZnojR4rTiZwuaeql8KKukWWddPOKVFPEw45agqVNZImS18KW05O297MXj92MpjHz+Kl73EngmqIcMr4sZXlz6oSWQ64r3ELB5/k7aomJyXNVByESIiJdistR78U3DSnMEdGpioOD6Tx/KeI4IpU0pNVQueCskpLIBLJFQgOZK7gOoqlKKmRMUXSNXM3eH2NZVmLnFBr8J4j7PEqdCimWkq4UprZQ4lUky6fxKKqdZUEy5yl8SE43gs6G+u/4+VqitjYXxxUg7h9fLXZ76i24sdo4CUg9D9ajQ8i+1orBwGgr5aefjpS5p4VxbwjYv8WdubHuGGuu1rEbP13bkQdX3Y311vFcOWobgaAio6X1sNTry5YtIPz8ufbqHHWLCAdGI3PRnLjRthoNjzioHBzIv/aFBqa606ig2IGuLCkHb6594tKG0tv2J6Gz9BdtC0VErNqX3sR9D/WmxOLSjkfrv/CLSDuHa3I+t/O46vHL3nOxO5+E+op86ivOmLeBXL4RRgNiABobh/f8R01MVQ6bUJA6EH0qD8qfLFhSNx8vWLQkbEF9AXHwL+6P0LG9DbTukH1Bv5nBupHv+Lt5QKDoB5uCPgDHL3o2v/eUNOhBr6308bSnqP8AdD+rBvSASobkX2b1sflHD3p6+v8ATF3COQ9Iu4T/AHz7/wBY9fdl/h+YyNiOIc1YV9ml6npfltDneKXo9TZbmEyDYAK0QTLpgodaqsmKfiVIrEQKVN6c/as8RxQYbT+HOEVCRW4tLk4hmRUpiumwtE0TKDDlTPyy5mIz5X3qfLBE4UdPJStP3fEPx+hX2HPBtWJ4vV+LuPUsxWH4HNn4Xk+XO/DLq8ZmSTKxTF0y1F50nCqWeaGlmqCpCsQqqlUs/e8KeV7hLlRqTQWoB+JV8saD+xvcv5n9B8Y9RyLixI5lRt5PHD3o5A+KhX/hB+gpivsU8/j+sG6BxoWfTm+nS/uEcC7oRQHe1T6kg/rli8S0jb5fBobn8XYDUeV39LRwLpIvzrc057Du3/WuLwlrAel/fFSOjvz5O93v7i0UlOADXWtgKHTwtppQ+GLgm/p15ctm3sOsUJ2fbQBz5HT3c9NqRd3FNt9ddK0G96U8dsSCWbjv9EBztZyL7bw3dgL6kv5DkefziiXa18iacxzOltKWtW4GJRKDXvr2boB2e5LbubxTUOz3Gttm09x1d7PoKCndbjqBTY0I7xpYClhoadKyhGlrbO/LYdeYHPrFWuxvbRmA+JGm5AfQOLUC4TYVudBXW2+puLdOptKlF2Ac2G2/TTcavfQaPWwZ2Ac2s/0Ab/FnfJn2XPZzZ34ouS7OXGRuZ8PuHyj9phpCtv7HnjNDQp7n3cHFMrOWZS8rvFUdNIczSKh2gJfK0wsdCzpneLwL+xpmbPC6PMniQiuyjlJTTpOFFH3fNGOSwE+zCZE9CjgmHzVcRVVV0n79PlI/ySgTIqpGJS+hs/8AjfhWAJnYXlg0+M4yPwLqwfa4Vh6v3+KbLWBX1KRYSadf3eWtRM+pMyVMpFZ5MkZFyhw2y1Lcn5Fy9Lss5blLKWYGVyxkttJolKVxES84pyKj4+IKQ5GTKPfiZhHPlURGRL761uK9WssZVy7kvBKLLmVsIo8EwXD5Yl0tBRSyiWlgAqdOmLK59VVTikLqa2rmz6uqmlU6pnzZqlLOoWK4viWOV0/E8WrZ9fXVKiqbUT1cSjckIQkBMuTJQ5EqRJRLkyksiVLQgBI+sx9+PnQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIRFj4CBmkDGSyZwcJMZbMYSIgJhL4+HZjIGPgYxlcPFwcZCRCHGIqEimHHGIiHfbWy+ytbTqFIUpJopKVpUhaQpKgUqSoBSVJUGKVAuCCCQQQQQWMWrQiYhcuYhMyXMSpC0LSFIWhQKVIWlQKVJUkkKSQQQSCCDGB7tn+w24T8WVTjPnZemMu4KcQH+9GPZBjGX18I8xRRWtTyIJmEbiJnw9i4gOe8S5JYabZcSYZmDYyvLPtURNWOvscyDR1nHUYSpNDUH8Rp1AmjmncJCXVTE6/gC5VgkSkOVjpzNfhDhuJe1rMvTJeE1pdZolhRwyeok8QQEgzKFSncGUmbIHCEJp5fEZidYrj92YePPZgzS9lPjdw2zDkqLEStiWziIhTGZTzEhKEupics5qgftEhnrCmSHHUy6PeioFfvIaZQ8FHMREKz1ViOEYhhc4ya+lmSVOyFkcUmbuDKnJeXMBAdkqJB/CpKVAga+41l7GcvVBpsXoJ9Gvi4Zc1SeOmn2cKp6pDyJySNeBZUguhaUrBSOh0rOxqNeenMag9NedDj5nCeb9D3vf+HQvHxSAdbxzDm/0168qcqVtvXFpHMEanmRqw6DpYf60UKeRtyIcfy6ejRV96Odac7eYNj05nlinCDp5sfVgb+pvy0ijH+73Y29CG7fGKgdOlTYdFX61HLlQ+uKFJH6bjvq3rFpA8zsQQwPJn+Y+fP3lr0JPQjwqR/XblXFGPJ+1/g8U4H0DjuD+nvbyj994Nh4BKyT6GlPQ9aUvaw5D0i0y03s3NwQPJnH67PH6pyia3BJpQhJG/hrgEDUDS+8VSm9i7X/ADK+fJ+UfRZPy5Ms55klOWpZQRMziUtKeWn/AEcJDISp2MjXjUn3UJCtuvrSKrcKAy2FOuNoVxrN+ZsMyZlvF8z4qVCjwqlVPMtH+dqqhZEqkopAJ4fb1lVMk00oqKZaFTfaTVIlIWtPNMgZGxjxGzjgOTMCQDiGOVyKcT1k+xoaRCVT6/EqlkuKfD6KVPq5qUBU2YmT7GQiZPmS5assUglEsy1JZZIJUymHl0phGoOFbBBUUNj43nVVq5ERDpXERLyqreiHXHVqUtZOPITMuO4rmvHsVzHjExU/EcXrJtZUqvwSzMLSqeQkk+zpqSSmXTUsoMJVPJlywPwufffJ+VMGyPljBMpYBTimwjAcPkYfRoYCZMEpLzqqpUP87WVs9U2srZ6nXPq586colSzF1LvIGvgfyGPiezP0Uj3gq+XTeORXe4Pkr5OI/C6Ry60p8gdb216UrXFwlPt6ub9w3e4HdmhodEg+ZJ7WBPe+8cC9zNBsNzpagBB8DWvSuLhJZr36AN6ku/Nm6XEUd3Yk32F9t2Ibk4HfeKZctetNtE+ver6fXEnsw7+d3I07j1Z9OriH/d0FiS55sWd+jv2ikXQb1Fa7VOt7E0pew5cr3kCGGlurDblZ7O5/S1SOZsBoB1ta58xo2oikXfK29yDzoBQHnevhi/gLc+1h6n4gERcByHcnr18hqz9TFJbhIudK0rSnoBStuXkTfEqZZcEJb+R0Ju3YDvtFNjdz0sN9/jc+WkekuBvZM43doKJbcyXld2Ay13h9ozxmgRMmymykrUhYhY5UM9ETqIbUkh6EkMJM4mHJQqLbh2nEOnu3wt+z34l+LU1K8uYIulwUqAnZnxsTsOwCWlylQk1apE2dic5BBC6fCpFfNkkoNQmRLWlUcFzZ4j5VybLUMTr0za5jwYRQcFTiKrOPaSuNCKRCgQUzKtdOiYxEtSyCmM53Zy7BPCDgMuBzFMmRxH4iw3uH2s1ZigmUwEljGlId99lbLxXEwkrebfbbdYmcW7Mp1DrbrBzGDbddYV6leDn2UvDvwpVS4xWShnHOEgypsvHcXppYpcMqJZSv2mBYQVTqehmImpRMlVtRMrcSlLQ9PWU6FrlHUvO3i/mXN6ZtFIX/AFJgszjQrD6KaszquUoFJTiFayJtQhSCUrp5aZFKsFpsmaUoWPcuNoY6mhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPlM75EyVxLyzM8l8Q8pZczxlGdNIamuWs1yeAn0kj0tOJeZMTLpkxEwrjsO+23EQrxb99CxLTUTDuNPtNuJhn08iqlLkVMmVPkzAy5U5CZktQBcOlQIJBAILOCAQQQDGNV0dJiFPMpK6mkVdLNAE2nqZSJ0pYBBHFLmBSSUqAUks6VAKSQoAjB12mvYKcCOIj01zL2dc3zXgfmKIZfiGMmzZEXnHhpEzAIU42zDKi4sZvyszHxJIjIhia5ll8uaUgSjLLTEOmCd4Hivh7h9SVzcNnLoJhDiQsGfSlQBsOI+2lBR/MQuYlP7kphwx1Fj/AINYNXKmVGB1UzCJ6gVClmBVVQKXcgJ4lfeqdK1E8REyolywR7KnATwnAd2g/Zi9tPs3NxExzfwgmmbcpQ7jyVZ34XF3iDlptpgd5cbMWpPD/wCUuW5d3e53I/NeXpFCOOOIYbcVEEsp68xHKmOYYCqdRLnSQT/b0hNRKAGqlBA9rLToypsuWNtS0dM434fZrwEKXU4ZMqqZJP8AlmHcVbICRqqYJSfbyEacKqmRISXAcqcDwKvvsuOMvNuNOtLU262tKkuNOoUULQtC6LQtCklKkKTUKBBAIOOOFNyCGIcEGxDag6EbhtdQ0cLLglJBBBIIIIYixfkehY9IBwW+ICu5+EjyP576Yt4W0JHLcB+4/jrCKgcPiB4Hw0+Kvlz8cUZWjgjr8WHzJvftThB268j6iP0OE8j5EV/XhTFOEuC3+6QG9QPjFOAbEjsYFxNb0FK/vX28PT8sVdtlHmTf0ZxzioDbk94999mnIKZBIHc6TFoCa5lZCJYFI/0sHl8LS42sKc7pSqbPtpiyG6pXBsy9wLJcWhHn59qPxFOPY9JyJhc5RwrLU32+MFKx7OszAtCkewUlHFxowimmKk/jIIrqitlqlA00qar1f+xN4QDLOVp/idjdMgY5nKR93wBEyUr22HZURNRMTUBa0jgmZgq5KKtpYKVYZS4bNTPUKufJl+ni8Dc/MivyJr+rc9TwjlbyIHwjeggHUE/XcfCPxTopalf7VPpT54cPfySfe7e54qE8kljzu/x+vdw970T6KJ9SUm3ifli4IB59Gb5Ew00A8ywHuaPwuk8+Wwt4j6U31519mdgR6nXuBbq505xXmXSegc+l1D3894pd/UinjdRHnU+nqKHF4lq5tz0HK9hp2LxSx2J72HSx19B3tEmAgphNoxmXyqBjZnMIlQRDQMvhn4yLiFqIAQxDQyHX3FKJACUNkk2pW2Myjw6rxCol0dDS1NbVz1BMqmo5E2pqJqyWCZcmShc2YonThSSSdH1hnVEmmlrnVE6VTyUAlc2atEuWhI3VMmFKEDqSAGuoR7h4S+zt7SHE37BHzfL0Pwxy7FqQtyZ58ccgJuiF953XlMZSh0vZhEWlAWqHhpxCyNmIIQTGssuJfG0Xh/8AY78Y86fdarEMIk5IweoUlS63NS10uIJkcYExUrAJSZmLCoCeJUmRiEjDJU4gPUykKE2Op8x+NeSMC9tKpqyZj9dLBCZOFJTOpzN4XQF4itSKL2ZLCZMpZlUuXc+ymKHDGVngr7N/gHwuU1M82Qj3F3MiC0sRWcYRhGWYZxsqKjBZOZciJe8h4lJdRmGJzF3ShP2dUOC4HN8/DX7GvhRkYy63HqeZ4g4yn2ahPzFTyU4LIWh+I0uXZSptHMRNce0Ri87GG4E+xMkGYF69Zp8b834/xSMOmpy3QniHs8MmrNdMSfy+1xNQROSUX4TRoohc8QWyeH3+wwzDMsw0My1Dw8O02xDw7DaGmWGWkBtpllpsJbaaaQlKG20JShCEhKQAAMbaSpUuRLlyZMtEmTJQiVKlSkJly5UuWkIly5ctACUIQkBKEJASlIAAAAEdOrWuYtS1qUta1KWta1FS1rUSVKUoklSlEkqUSSSSSXiri+LYYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPMHGvsW9lbtEPOxvGHgZkHN06ebbZczT+yRIs5rZZQUMMLzllt2UZochmEqPuIV2bLhmiSUMgkk/KrsDwnEjxVtBTzpjAe2KOCewsB7aXwTSA9klZSOUcfxbKmXccJXimD0VVNIANR7L2NUQAwBqpBlVBSnZJmlI2EYr+LX/R++zVmmJiphwk4ncS+E0REOrcRJpp+zeI2VoJspHu4eXw8yEjzU2gKqVvTPN84dIIpShCuJVvh1hc4lVHVVVGSSeBXDUyhyCQr2c0X3VOX2jrrE/BXAKlSl4bX1+GkkkSpns6+nTyCEzPY1AHMrqZhvGPniT/0fftO5ediH+GPFPhDxHlrKCWmJy5mTh/mSKXUd1DUtdleZ5Am3e7y4nN0OAe7QK7x7nHKrw5xSWSaWso6lAFhMMynmqOwCCiZLG7vOHnHCq/wUx+SSqgxHDq5AFhNVPop6jyEsy50kd1VIjyFmL2QHtD8uB1S+AEXOWmQVKdy5nzhzOCtI3ahms2iMdKrd1DcMp292wQoD4szJeZJTvhxmC95dRTL8wBO4j2buI4vO8L87yHJwZU4DeTWUE30SmoCz2CSb3HLr7KPs7e2E7nWWSnOPZm45yySMuqjJvGtcN8zzKDeg4NSFOQEPMJVLo2CXEzBZRCt9yIWttlx6MQ28mGUhXW/iUnO2VspYrX5fyfmPH8fXLFHg9DhGB4niy0V1UFIl1tTKw6kqlpo6BImVc0rCJc5UqVSGbKXVS1jm3hH4QVWbPEHA8IziP2ZytJnKxHMGJYvNlYbTzcNoVIXNwykq6yZIp11+KzFSqGQJcyZNkSp0/EEyZ0uimyzkMb7NvaHabbaa7P3GptppCG222+FGeEobbbSEobQlMjCUoQkBKEpASlICQkAAY8w53g14yz502fP8LPEydOnzFzp06bkjM65k6bNWVzZs1a8MUtcyYtSlzFqUpSlKKlKJJMe0kjOWRKWRIpabNmVaemppMqnp6eRj+DSpEinkoTLkyJMpFYlEqTKlpTLly0BKUISlKQAAIqf+Tj2ituAHG3z4VZ5/+B/rmMWf+xbxg/8A1T+JH/AuZ/lhcTft1kv/AExyz/xHhX/XRfpR2TO05PFpRBcCeJrClEAGcZXmGXkXNPiczA1LW0DmpSgBqTTH1sO+z5414moJpvC7OUoqIA/rDAqzCE3OpVi0uiQkcyogDcxh1PiPkSkBM3NuBLFyfu2Iyq421ZNIZ5J5ABzs8dryX2dXa3nDjaHuHcDI21qAVETvOGVGWmUmvxutS+bzCKUkWqGYZ5yp+6aHHPsM+x34+4itCZuUKXC5aiAqbiWYMBQiWDqpcukxCrnkDcS5MxWv4XDRxuq8a/DqmClJxqZVqAJCaXDMRUpZGgCp1NJlgnbimIH+s2vpHJ/skuI0cEuZ/wCK2TcvJ+FQhsqSmcZreKVAFTbkRNRlFmHdTcKLTca3UEJcWkheO5su/wBH/m6pZeas95ewgfhPscCocRx6YUkAlK5laMvy5UxLkHgTUocMlageIcJxP7RuCy3ThGX8TrTcceIVFLhyAQfzJRTnElqSQLcSpSmN0pNo9c8PfZddnfKhbic4RWcOJccG0hxmczf9gSJLqFVD0NLMsol0xRUfCpmOn0xYUP8A1YNSdgcofYd8IMAKJ+YZ2YM6VQSkLl4jX/1VhYmJLiZJosGTSViX0VLqcVrJRAA4NSet8Z8fM6YgDLw1GG4HKd0rpqf75V8LMErn1xnSLbLk0chbueLRvcWQeE/DPhZAql3DrImVsnQziW0xKpFJ4OCjI/3VQ2uZzFDX7RmjyAopS/MYqKfCaJDndAA2eypkLJWRqU0eT8rYHl2StKEzlYXh1NTVFV7N+BVbWJR97rpiQSEzayfPmAMnjYADqjGMxY7j80TsaxavxJaSoyxV1M2bKk8TcQkSCr2FOlTAlEiXLQTfheOwsctj40MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhH/9k=" x="-182" y="-134" width="365" height="268"/>
-</g>
-</symbol>
-<symbol id="symbol:border_b.3" overflow="visible">
-<line x1="8495" y1="-5" x2="5" y2="-5" stroke-width="6"/>
-<line x1="8495" y1="-5495" x2="8495" y2="-5" stroke-width="6"/>
-<line x1="5" y1="-5495" x2="5" y2="-5" stroke-width="6"/>
-<line x1="8495" y1="-5495" x2="5" y2="-5495" stroke-width="6"/>
-<line x1="8425" y1="-75" x2="75" y2="-75"/>
-<line x1="8425" y1="-5425" x2="8425" y2="-75"/>
-<line x1="75" y1="-75" x2="75" y2="-5425"/>
-<line x1="8425" y1="-5425" x2="75" y2="-5425"/>
-<line x1="70" y1="-70" x2="8430" y2="-70"/>
-<line x1="70" y1="-5430" x2="70" y2="-70"/>
-<line x1="8430" y1="-5430" x2="8430" y2="-70"/>
-<line x1="8430" y1="-5430" x2="70" y2="-5430"/>
-<line x1="8500" stroke-width="6"/>
-<line x1="8500" y1="-5500" x2="8500" stroke-width="6"/>
-<line y2="-5500" stroke-width="6"/>
-<line x1="8500" y1="-5500" y2="-5500" stroke-width="6"/>
-<line x1="5895" y1="-350" x2="8425" y2="-350" stroke-width="6"/>
-<line x1="8425" y1="-225" x2="6270" y2="-225"/>
-<line x1="6270" y1="-350" x2="6270" y2="-75" stroke-width="6"/>
-<line x1="8425" y1="-150" x2="6270" y2="-150"/>
-<line x1="8000" x2="8000" y2="-225"/>
-<line x1="4500" y1="-75" x2="4500"/>
-<line x1="5500" y1="-75" x2="5500"/>
-<line x1="5000" y1="-75" x2="5000"/>
-<line x1="7500" y1="-75" x2="7500"/>
-<line x1="7000" y1="-75" x2="7000"/>
-<line x1="2000" y1="-75" x2="2000"/>
-<line x1="2500" y1="-75" x2="2500"/>
-<line x1="1000" y1="-75" x2="1000"/>
-<line x1="500" y1="-75" x2="500"/>
-<line x1="3000" y1="-75" x2="3000"/>
-<line x1="3500" y1="-75" x2="3500"/>
-<line x1="4000" y1="-75" x2="4000"/>
-<line x1="6500" y1="-75" x2="6500"/>
-<line x1="6000" y1="-75" x2="6000"/>
-<line x1="1500" y1="-75" x2="1500"/>
-<line x1="5257" y1="-233" x2="5257" y2="-75"/>
-<line x1="5895" y1="-350" x2="5895" y2="-75" stroke-width="6"/>
-<line x1="7125" y1="-150" x2="7125" y2="-225"/>
-<line x1="8425" y1="-4500" x2="8500" y2="-4500"/>
-<line x1="8425" y1="-5000" x2="8500" y2="-5000"/>
-<line x1="8425" y1="-3000" x2="8500" y2="-3000"/>
-<line x1="8425" y1="-2500" x2="8500" y2="-2500"/>
-<line x1="8425" y1="-4000" x2="8500" y2="-4000"/>
-<line x1="8425" y1="-3500" x2="8500" y2="-3500"/>
-<line x1="8425" y1="-2000" x2="8500" y2="-2000"/>
-<line x1="8425" y1="-500" x2="8500" y2="-500"/>
-<line x1="8425" y1="-1500" x2="8500" y2="-1500"/>
-<line x1="8425" y1="-1000" x2="8500" y2="-1000"/>
-<line x1="8000" y1="-5495" x2="8000" y2="-5425"/>
-<line x1="7500" y1="-5495" x2="7500" y2="-5425"/>
-<line x1="6500" y1="-5495" x2="6500" y2="-5425"/>
-<line x1="7000" y1="-5495" x2="7000" y2="-5425"/>
-<line x1="6000" y1="-5495" x2="6000" y2="-5425"/>
-<line x1="5500" y1="-5495" x2="5500" y2="-5425"/>
-<line x1="5000" y1="-5495" x2="5000" y2="-5425"/>
-<line x1="4500" y1="-5495" x2="4500" y2="-5425"/>
-<line x1="4000" y1="-5495" x2="4000" y2="-5425"/>
-<line x1="3500" y1="-5495" x2="3500" y2="-5425"/>
-<line x1="2500" y1="-5495" x2="2500" y2="-5425"/>
-<line x1="3000" y1="-5495" x2="3000" y2="-5425"/>
-<line x1="1000" y1="-5495" x2="1000" y2="-5425"/>
-<line x1="500" y1="-5495" x2="500" y2="-5425"/>
-<line x1="2000" y1="-5495" x2="2000" y2="-5425"/>
-<line x1="1500" y1="-5495" x2="1500" y2="-5425"/>
-<line x1="70" y1="-233" x2="5257" y2="-233"/>
-<line x1="5" y1="-4500" x2="70" y2="-4500"/>
-<line x1="5" y1="-5000" x2="70" y2="-5000"/>
-<line x1="5" y1="-4000" x2="70" y2="-4000"/>
-<line x1="5" y1="-3000" x2="70" y2="-3000"/>
-<line x1="5" y1="-2500" x2="70" y2="-2500"/>
-<line x1="5" y1="-3500" x2="70" y2="-3500"/>
-<line x1="5" y1="-2000" x2="70" y2="-2000"/>
-<line x1="5" y1="-1500" x2="70" y2="-1500"/>
-<line x1="5" y1="-500" x2="70" y2="-500"/>
-<line x1="5" y1="-1000" x2="70" y2="-1000"/>
-<text stroke="none" x="150" y="-150" font-size="24">THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 BY LICENSE.</text>
-<text stroke="none" x="250" y="-25" font-size="40" text-anchor="middle">1</text>
-<text stroke="none" x="6279" y="-191" font-size="30">DESIGN:</text>
-<text stroke="none" x="6279" y="-265" font-size="30">TITLE:</text>
-<text stroke="none" x="6282" y="-315" font-size="30">PAGE</text>
-<text stroke="none" x="6250" y="-25" font-size="40" text-anchor="middle">13</text>
-<text stroke="none" x="7154" y="-191" font-size="30">DOC NUMBER:</text>
-<text stroke="none" x="8007" y="-81" font-size="30">FLAT:</text>
-<text stroke="none" x="7750" y="-25" font-size="40" text-anchor="middle">16</text>
-<text stroke="none" x="8250" y="-5450" font-size="40" text-anchor="middle">17</text>
-<text stroke="none" x="8250" y="-25" font-size="40" text-anchor="middle">17</text>
-<text stroke="none" x="4250" y="-5450" font-size="40" text-anchor="middle">9</text>
-<text stroke="none" x="8462" y="-5250" font-size="34" text-anchor="middle">L</text>
-<text stroke="none" x="8462" y="-4750" font-size="34" text-anchor="middle">K</text>
-<text stroke="none" x="8462" y="-4250" font-size="40" text-anchor="middle">J</text>
-<text stroke="none" x="8462" y="-3750" font-size="40" text-anchor="middle">H</text>
-<text stroke="none" x="8462" y="-3250" font-size="40" text-anchor="middle">G</text>
-<text stroke="none" x="8462" y="-2750" font-size="40" text-anchor="middle">F</text>
-<text stroke="none" x="8462" y="-2250" font-size="40" text-anchor="middle">E</text>
-<text stroke="none" x="8462" y="-1750" font-size="40" text-anchor="middle">D</text>
-<text stroke="none" x="8462" y="-1250" font-size="40" text-anchor="middle">C</text>
-<text stroke="none" x="8462" y="-750" font-size="40" text-anchor="middle">B</text>
-<text stroke="none" x="8462" y="-250" font-size="40" text-anchor="middle">A</text>
-<text stroke="none" x="38" y="-5250" font-size="34" text-anchor="middle">L</text>
-<text stroke="none" x="38" y="-3250" font-size="40" text-anchor="middle">G</text>
-<text stroke="none" x="38" y="-2750" font-size="40" text-anchor="middle">F</text>
-<text stroke="none" x="38" y="-2250" font-size="40" text-anchor="middle">E</text>
-<text stroke="none" x="38" y="-1750" font-size="40" text-anchor="middle">D</text>
-<text stroke="none" x="38" y="-1250" font-size="40" text-anchor="middle">C</text>
-<text stroke="none" x="38" y="-750" font-size="40" text-anchor="middle">B</text>
-<text stroke="none" x="250" y="-5450" font-size="40" text-anchor="middle">1</text>
-<text stroke="none" x="750" y="-5450" font-size="40" text-anchor="middle">2</text>
-<text stroke="none" x="1250" y="-5450" font-size="40" text-anchor="middle">3</text>
-<text stroke="none" x="2250" y="-5450" font-size="40" text-anchor="middle">5</text>
-<text stroke="none" x="2750" y="-5450" font-size="40" text-anchor="middle">6</text>
-<text stroke="none" x="3250" y="-5450" font-size="40" text-anchor="middle">7</text>
-<text stroke="none" x="3750" y="-5450" font-size="40" text-anchor="middle">8</text>
-<text stroke="none" x="4750" y="-5450" font-size="40" text-anchor="middle">10</text>
-<text stroke="none" x="5250" y="-5450" font-size="40" text-anchor="middle">11</text>
-<text stroke="none" x="5750" y="-5450" font-size="40" text-anchor="middle">12</text>
-<text stroke="none" x="6250" y="-5450" font-size="40" text-anchor="middle">13</text>
-<text stroke="none" x="6750" y="-5450" font-size="40" text-anchor="middle">14</text>
-<text stroke="none" x="7750" y="-5450" font-size="40" text-anchor="middle">16</text>
-<text stroke="none" x="1750" y="-25" font-size="40" text-anchor="middle">4</text>
-<text stroke="none" x="2250" y="-25" font-size="40" text-anchor="middle">5</text>
-<text stroke="none" x="2750" y="-25" font-size="40" text-anchor="middle">6</text>
-<text stroke="none" x="3250" y="-25" font-size="40" text-anchor="middle">7</text>
-<text stroke="none" x="3750" y="-25" font-size="40" text-anchor="middle">8</text>
-<text stroke="none" x="4250" y="-25" font-size="40" text-anchor="middle">9</text>
-<text stroke="none" x="1750" y="-5450" font-size="40" text-anchor="middle">4</text>
-<text stroke="none" x="750" y="-25" font-size="40" text-anchor="middle">2</text>
-<text stroke="none" x="38" y="-4250" font-size="40" text-anchor="middle">J</text>
-<text stroke="none" x="1250" y="-25" font-size="40" text-anchor="middle">3</text>
-<text stroke="none" x="6750" y="-25" font-size="40" text-anchor="middle">14</text>
-<text stroke="none" x="7250" y="-25" font-size="40" text-anchor="middle">15</text>
-<text stroke="none" x="8007" y="-116" font-size="30">PAGE:</text>
-<text stroke="none" x="8007" y="-192" font-size="30">REV:</text>
-<text stroke="none" x="38" y="-4750" font-size="34" text-anchor="middle">K</text>
-<text stroke="none" x="6279" y="-115" font-size="30">MODIFIED:</text>
-<text stroke="none" x="5250" y="-25" font-size="40" text-anchor="middle">11</text>
-<text stroke="none" x="4750" y="-25" font-size="40" text-anchor="middle">10</text>
-<text stroke="none" x="38" y="-250" font-size="40" text-anchor="middle">A</text>
-<text stroke="none" x="38" y="-3750" font-size="40" text-anchor="middle">H</text>
-<text stroke="none" x="5750" y="-25" font-size="40" text-anchor="middle">12</text>
-<text stroke="none" x="7250" y="-5450" font-size="40" text-anchor="middle">15</text>
-<g transform="translate(6082,-215)">
-<image href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAEzAa4DAREAAhEBAxEB/8QAHwABAAEEAwEBAQAAAAAAAAAAAAQDBQkKAgcIBgEL/8QAVxAAAQIEBAMFBQUFAwgFCQkAAQIDBAURIQAGMUEHUWEIEnGBkQkTIqGxFDLB0fAVQlJi4XKC8RYXIyRXkqKyCiWWwtQYJzNDhtLV4uMmKDQ4RkdTZqX/xAAeAQEAAQQDAQEAAAAAAAAAAAAAAwECBAgGBwkFCv/EAFsRAAECBAQEAwUFBAUJBQUDDQECEQADBCEFBjFBElFhcQeBkROhscHwCBQiMtEWQuHxCRUjUnIkM1ZigpKWotQ2Q7LS4hclJkRGRZPCNDdUV2Rmc3R2g4WGpP/aAAwDAQACEQMRAD8A3+MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR0txH7RnAfhF7xviRxayHlONbbS8ZPMMwwDmYXGVCodYy3BuxU/iWqUq5Dy11AKkAqBWgH4mJZkwHB3GJYvQUiwAr2MyolmpKTummQV1Cx1TKI05iOf5V8K/EfO/CvKmScyY1TqUUff6XC6lOFpWLFEzFp6JOGyl6sibVoUWUQCEqbx5nT2sHZHyuCmSzbPHEJ6qklGUcnxEK0hYJCfeROdIvKTSmiaFTsIYvupNQhah3Dwut8Xcn0tpE6vxFWjUdEpAB5FVaujSRzKCuzsCQRHe2AfYr8b8YY4hQ5dyvLYEHHMdlTpikliQiTgEjG5iVgWCJ4kOqxUlJ4o82Tv20WXkuuJyzwGnEawCfcxE8z1BSx1adi7CS/Lc3QydyERr4GlbX4vUeN9OFKFLl+csD8qqivRKKu6JdNOA6stUdsYd9gTFFIScW8SaCnmEfjlYdlyoq0JO4RPqcVoVLvYcVPL5tqB1nNvbL8SHyoyHg3kWWinwibT+fTspJ07yoJMgC6bgJQT0x8md424qon7vgVBKG3tamoqPUoFM/oI5dRfYJypLAGJZ8zHVkfmNDhmG4cD/AIRPOKN3Kldo+KiPbFdozvEw2QuCTaNkPSHPUQsXOq2+IkOk0FAfgTe9gbYKvGnM7/hw7AUpf96nxBRbyxJA+tOfIZX2EfCpgJuZfEJStzLxLLkoHTRKsqzle8vprFNj2yXaIaV/rvDzgrEpqKphJRnmDVT+27n6OSk2OqTTcYvR405lc8eG4GoA34ZFeg9fzYhM6X72is37B3hasEU+aM/ylbKnV2XZ6QbXKUZapyR0Cn3faPtpX7arO8NQT/gVlSZGwJlGcZvJaXFSERsnnxNq0T3wakVIFz9CT43VyWFRgFJNLgEyK2dJHUsuTUaciod7GOP1v9H/AJemk/1Z4j41SgbV2BUOIdhx09dh27OQgsNnMdqZZ9thw7fiG286cD85yWFqPexWV8zyPM74T++puBm0LlBtRSKd0KmCQs1BUixP2KXxtw5SgK3Aq2SkkAqpKmRVKHMhE1FGPWYL6trHCsW/o/c0y5S14B4h4BXzQ/BKxjCMRwiUT+6F1FDOxxYBNiRSqbYKuB6kyX7VPsY5uZh1R3ECc5FjHyEmW52yhPYV6HKqAfaJhIIfMUhQO8e6VJnC0p7qlKKWx38crovFTJlYlPHiE6hWv/uq2jnoUnqqZTpqKcDr7Yjd2vHTuP8A2NfHvA1zfu+WaDMUiXcVWAY5hs5EzX/NUuJTcLxJRYPwmhSouAAVfhj2pkLi1wu4pwKpjw24iZKz3Bthv37uU8zSeeqhFuoC0MxzMujIh+AiO6fihoxtiIbNUuNJUCBzWgxbC8UQZmG4jRVyA3EaSpkz+AkOEzBLWpUtTfurCVDcR0BmTJWcMnVApc15WzBlyeoq9mjGsIrsNE8IUUqXTrqpEqXUynBAmyFzJStUrIvHYWPoRxiGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEI6B419qTgF2eIdDnF7ibl3Kke/CGNgsuqeemua5jC95baIiBytJmY+fPwrrza2ER32BMAHkqQ7FN9xZT8HGsz4Dl9L4tiVPSrKONFO6ptVMTcBSKaSmZPKCoFImFAl8QIKwxbsrIHg94leJ81SckZRxTGaaXPFPUYoJcujwWlnMlSpVRjFfMpsOlzkS1pmqp/vKqkyyFIkq4kg4c+M3tt3XmoyWdn/hQIZalFENm/inEpeUhkhSHHGcl5ajg0mIv72EiIrN77LKkIMXKYlC3GEdPYz41k8crAMK4XLJrMUU7bHhoqZbBTF0KXVkAgBcpV0je3IX9H0hC5NZ4mZzM0JTxTcCydKMsKWGUlMzH8WpisygRwVEqTgcuYsKPsK2UpKZhxd8Ve212oONinGc98YM1rlTiVtqy3luKRlDLa2VLCw3FSXLDcqg5sEGzT05RMYpoEpS/wBwlOOrsXzpmjGnTX4zVmSXH3emUKOlKSfyzJFKJKJwf8qp4mKFwFC0bgZL+z94QZACF5cyLgya5JCxiuKyVY5iwWkEFcivxhVbPouIFpkqgNLJUQFGUTcebkxClrUtalLUsla1KJUpalEqUoqJJUpRPeV3qkm5rWuOLOSSSS5JJcu5NydQ7kknUkm7NbtkyQEhKQlDMlKUslIAAACQGYAWCQwDWYWNwaiKAX8QbitwOdNtqb1AxQi5Is3PRtTp8TvtpGOuWdxwnR+4Gtn/AFu0TkRKTeqk63H3ehqNABpY86cxcFilxvbWw2vd+bMBvEKpZ3AJ5jX1+jsYrCI71/eC3NOvgScOIBgf5d2+A/SLPZD+6v1H/ljiYnWq1G2iQQehpU6aV1uLEaCQWYPaxZ+h5M99WGxNjFRLGyVHubM+mg6bxFcigAaAXrc609baWNgLaaYoQTclrPz06B+mp9bRKmXzNnDBP8h+pJ1i3OPkg3v1rrob7A8hXbWmKsBf1JYeb/Jrlna8TpllrhgDbrf1Ltbre29udeArfXUnfkFWqkcvmOY679BoS3IuG68xpvGWlNtAAG/gSxOvIAtblFrdcrUmoGw/BVBzFEjXzIqNu55eWgJ9drOYmQknWyRcg7PzYBydG5GKEPNY+WRTcdLI+Ml0bDqC2IyCinoSLYVspmIh1tvNrFAe82sUsAdCbkLmSlBcpapcwMQuWpSFJI04VJYhtyCCNrkCJJ1JT1kldPWU0ipp5o4VU9TKlzpUxJ/dmSpiVIUDYkKBsdbx7R4S+0t7YfBxuFgpbxVjc8SKEcStMh4osf5cwziU90JgxOpk8jN8LBIbSGmoSX5kg4eGaARDNshKac4wnxGzdg6UIlYoutkIIIkYon76kpDDh9tNIq0IADJRLqUJSLJAjoLOn2TPAzPap1RV5Np8vYjOSUnEsnzP2empWokmd9wpUKwSdPKiVrn1WFVE2au81UxyIyzcDvbe8KsxvyyScfOH064aRr4Zh4zOWUnHs4ZPafCCX5jHyUMs5uk8uUpKg3CyuHzpGtKW0ha3UFyIb7WwTxnwypMqTjtBNw1amSqspSauk4mvMXJCRVykFvwolJrFgkAkh1DSvxD/AKPnOWFS6vEPDbM9Bmynl8c2RgWNoRgWOLlP/Z01PXmZMwSuqUgjinVk3AKdYC1JSg8EtWYXhhxg4XcacvDNXCjPuV8/SEOJYiI7LU1hpgqXxS0B1MFNoNtYjpNMC0UumXzWGg41LSkOKYCFpUe2sNxbDcYp/vWF11NXSHCVLp5qZns1EPwTUA8cmY1/ZzUoWAQSliI0ZzdkbOGQcT/qfOeW8Xy1iJQZkqnxainUoqpKVcBqKKepP3eupuMFAqaObPpysKQJhUkgdkY+hHFYYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPNfaL7W/AfstSIzbi5naDlk0iIF2OkeSZX3JrnnMyUKeaaTJcusuof+zxESw7BonEzcluX2IlCm46bwgQtSePY/mnBMtSPa4rWIlzFIK5NHLabW1IBIHsacEK4VKSUe1mGXISoELmpYx2v4XeCniN4w4iKLJOAT6ujlVKKbEcwVnFRZdwlSghaziGKTEKlCbKkzETzQ0iavE5spQVT0U4qSDrsdpn2xfHXi05NMt8FWDwQyHEpchETGXxCI7ibNIZXfQt97NCUoh8rqiE+6eZZytDQ81lrocaTmiPbV3xr/AJk8WsbxX2tNgw/qWiUCj2iCJmIzElwSqpbhpuMMQKVKZ0s2FSu8eonhJ9hjw6yWKPFc/wAweIWY5SkzjSVMpVNlKkmgJUJcvCCVTcX9krjQteMTZtHVoKVnB6daSmMUEfOpnPJhFzeczKOm81j31xMfM5nGREfMI6JWR7yIi4yLcdiYmIVQd9x91biyKlRJx1VMnTJ8xc2dMXNnLKlTJk1apkxSj+ZS1qJUt9SpSi/PlulTYfR4fSyaGgpKaho6aWmTTUlHIlU1LIkp/LKk08lKJUlKAbJlpSkPYMzfrT1PCouOfmKg/LXY4jI87aHYW0A7WLEu2u1qkkP00LegIDF+u9tNrk0+DeugvagtQ6HTQbhPgTTANo/E+vNrC/PvqbM4iBaHGwL2Otybab3sQ48gInNv0pfU+dDvpQi1a2rrf94z6aXsdjt1DdPIDWMdSLfiHK/MBtxZXmxPuiamJFgT61Omt7Hl/EDWgrh3Da31awuCNN9fNtIiMsG1j0IA1dgxbuQDqQQdzITE6XI5c/mBsb36YAvod22Z/cS925npEapHJJBbUFx11e783tuNqoirXWf+H8j8zio4hoW8j/5ot9iLfiUfS3v+EcDE61UTXwprbSv0p4WxQnqPJn73OnkfnFfYXdlKG/N/pvIxQXEgVv8AnflWgueQPzscEWu7fRAYA9XvtoHkEoJ2CdL66e87aBn1e8RXInrzrWvzHdqK70Sm29gcGJbb3n9A22rjXcGQIBNg5O5DcmPMjbTziC68KE10NdtfSxsa0vfWl8NGbo5Pyck9hcOddYmSjm7jQWcDS7OBrdyTYWdhFvdfrau+unyOu4qqgGwSCRhe+vXmO1rc7EvZ3sRkhOxGmgHc3L6HS5u+ju4tzjteg/x056a3oOZwbn3u2z3LFm7b31vGQiW91WcbWsdhyY77++LW8/civOvTmOnVXkL6NbnTXv1PIch5mMtCGA5gWbYWLA8mDEnXoItrjmwNSee/KprVI5epucV1udNnbWzH4gCx+EZEtBVtb3Wa3+Eb8z5AfQ5K4l594W5hhs18OM5ZlyRmSCUksTrK06j5LHlCHEuGHefgXmVRME4UAREDEh6DimiWYlh1pS2lZlFiFbhs9NTh9XU0VSj8s6mmrkrAseElChxJV+8hQUhQspJBEfLzFlTLecMMm4JmnAcJzDhU8K9rQ4xQ01fTlZSpPtUIqZcwSZ8sEmVUSjLnyVtMlTUTEhUZxOy77cfMsmdg8r9q7K4zXLVqhYdnihkKXQUszFCXDT8TmbJzSoSRzltZWIl2LywrL78G0w40xl6bvRLfuO6Mt+MdTKKabM1N95l/hAxKilolz0X4VKqKQFEmaCSCVU/sCgJIEmaVDh89PF/+j1wmvRUYx4M4wcGqkibNXlDMlVPq8Ln24kSsJx1Yn4hQKTwmWiRi4xKXPXMQuZidEiUv2mwxwo4x8LuOeUYTPfCPPOX8+5Vi1BoTSQxgeVBxZYZiVS2by95LMzkU3Zh4iHeiJPOoKAmkM2+yqIhGg4jvd64biuHYxSprMLrJFbTKLe0kr4ihbBRlzUFpkmaApJVKnIRNSCOJAcR5jZzyLm/w8xudl3O2XsSy5jEgFZpMRkcAnyeNcoVVDUyzMpMRolzJcxEquoJ9TRzVS1iVPWUKbsvH0I4nDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEW+bTeVSCVzCdz2Zy+TSWUQUTMZrN5rGQ8vlksl8G0t+LjphHxbjMLBwcKwhb0RExDrbLLSFOOLShJIjmzZUiXMnTpiJUmUhUybNmLSiXLloBUta1qIShCUglSlEAAEktGTRUVZiVZS4fh1JU19fWz5VLR0VHIm1VXV1U9aZUimpqaQhc6fPnTFJlypMpC5kxakpQkqIEa9nbW9tPCSt6bcN+yB9mmUcy5FS6a8bJzL24mVMOoSplZ4dyGPbUzNnGniS1mbMUKuUOFhZl0inEDFQk4T0Zm/wAXEyzNw/KvDMmJKpc3F5qAqWk3STQSFhprK0qZ6TJPCfZyZyVImj028AvsET6yXRZr8bva0tNMTJqqPIFBUqlVk1BImJGaMSplpXRImIACsKwucK1ImJ+9YjQz5U6iOvFmXOuac95gmebM7ZjnebczzqI+0zef5jmkbOZzMogIS2lyMmMwefinlNtNoaZ77pS0y22y0ENNoQnoWqq6qtnzKqsnzquonK45s+omrmzlq0da5hUtQAAAST+EABLAcMen2D4Dg2XMMpMFwDCsPwXB6GX7GjwzC6ORQ0NLLKisok0tMiXJlFS1KmLKUAzFqVMWVLUVRBbd3Brz1rW1lDwA0tXWmoxzcC7H909N2GhB+TxlzJb3sW+gCzNc6i+8T2n6UANvUgAV8+hHxU0BrXFH1e3I7HX07EveMZSHNwR77fDz6X0aLg3EV3vpXenKpFDXrfypUeos+vw7G+vTqIgVLcP0t7yWuxG4Fix7tPQ9epNhvvfQ01A9RS17VEPfrq4BvyI52A0Lb3jHVJbTTz6bO40a14ltxJ1rX0tShJ0PPVQB3NxamjA37uDfkp2fo4tu0QlDOW89jzfQsOxb3xJTFCl/6EaUJAOnhf5CpJ69mf4c+bkdoiMoEX89i77h2PbhIHrFYRKdK0Bvag8LUBr+umDvb8J53+THf0+Nhk9CknRiCe4uAH0ZnjmIogUqelzb5fWuKW5I9f8A0w9kf7yh0OvkygB5vH4YkDc1J3+tx60GK6ahIfkf4D+EPYF78XTi0fyMUjFDb5AgHxHdFxzGv0OSW7aDnu5JDe/0i8SgNgCGdyfh+FzvoTEZUUb6aa69TtTyJIGB1253ueQIF2G7+rXi8S3Fn7aeRuHs17u+sQ1v13qfKl6UpanQgA8hzBvdzJ+AOltz3GrzJlH1Hx3fe2rDoRq8Nx8CtTW1tdq02BO2pHhagPrqTd/K3QB+m/YmMhEoDYHk/L383vzG5D292I7wrXUa+VqUAqBsAQka1w3vci7Db5eZbpGQlDdXt7/W/IW2L2e3rdrXoRU+VgbW8BTcUBoTVuZfcC1uWwJ3+g8ZCJZOum4/W/mw6RbnnwK/FsamtzrqeQ0GpN9CMV199+WnrrsDpGSlLWDM1ybdPIDlfX1tTzwuSdLgaA0JvWlh09epn6DfuXfbzDX9L5KEaM+tz2fUPpfT1e4i3Ou/vKPgnSvIkaV5eHPSptYfm+HO/LmT+XvGQlOw03P1qdgLnSOz+C/aE4v9nTOcNnzg7nmdZLn7K2PtiYCIK5RPoSHWpxMrzLI4gOynMErJccJgZrCRLTK1/aIYMRSG32/q4RjWKYDVJrMKrJtJOSU+0KC8qelJJ9nPkl5c+WXICJqVN+ZJSr8Q4dnzwzyR4o4FOy9nrL1Dj2GLTM+7mpl8Ndh86akJNXhOISuCswyrHCl6iinSVzAn2U0zJBUhW032GPbA8Ku0a9J+GvGtuU8H+M8X3IOAiXYwscOM9xpLaGmZBNZjELfy7PYxxakM5ZnkTENRTqWmZPP5rHRaZZD7H5P8TsOx0yqDFhKwvFSyEqKuGgrF2AEiZMUTInKNhTzlEKLCVOmLUJY8fftD/Ygzj4Wors15BVW54yHJ4p9TKTI9pmnLtOONS14lR0spMvFMOkJSFLxbD5MtclBXMrsOpKeQqrm5l8dpxolDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR03x34+8KuzZw6m/FDi9mmEyzliVJ90wlX+sTefTV1KjBSDLUpbUIqczuPUhQh4OGT3GWUPx8wfgpXBxsdDfLxjGsOwGhm4jidQmnp5dh+9NnTCDwSKeUPxTZyyPwoToAVrKJaVrTzrw68Ns4+K2aKHKGSMHnYti9YeOYR/ZUOG0aCBPxLFa1Q9jQYfTAgzJ808UyYqXTU0uorJ9PTzdO/tze0t4udsmcRmW4NyN4dcC4KLBkvDWXR6vez9MJFCIgp5xCjoYtpzBNy61DRcNKAVZckDsPDCWQ0VM2ImfTLVrOWfcTzVNVTpK6HBkq/ssPlrvP4VcSJtctJHt5hZKhK/zEghJlBSwZ033I+zz9lDJfgXQyMVnIkZn8RJ8kivzVVU6eHDTOk+yqMPyxTzgo4ZRhC50mdWFsUxKXNm/e5smlmSsNpcdjbwNKkA0pWtajW4G/I89KmuOA3HbXiYeY7dN7ux12hKeVxyvppvr1G3aLg09cA69b8/MjXqAb3IwIGx9N9nYvfnbXRwLQKQDcNo2nbv1d7c9zFxaiCKGvhU263NK6mx02odLXdhcdGt1/mCzt0EYypbbB2FnsdmflewOruHie2+DS9KC9BUelPhtrSosLVqQJuxHO2r9iLG3meQa8KpbliAPL3tt5ExObf59L+OuoA8a60p3RW1GbQtfTV/W+2x0jHVKIv57nV9x73sGd9CZaIkgWOl6UH4ingbDU0OHMkEdRfr+puPe0QmW2o+Y+LbDQjTlEoRXPQWrUHahJIFwKUp3vMXwBc6g67s3kNR37veLDLB66/p79y46CJCYoGgrem4qBtyVc05+W4XOzE6nXTmxB+P6RqkhtH00e/lcevxiqIpJ/etzH+O53pvc1rioNnuG5vt3ufreIzJS7Eatbf1c66/zjl9qT/Fbyr9PxxbxD+8fT/0xd7D/ABNy4v4/KOKopINQq2p/wr+FPLFwIZxcDkL+n16Rb7BIIDeRu/m7RTVFC97EWIFBvb7oF60qT5nTFOdne4f+JLeQH6SCSOTX0vbtoD6/xjqixcjn5a3Gh0prUDY2xU6XYON767cree8XiW3IXPy9x5OGiMuJJ33ItQnfSgNeYvzA3GKO+jq06Bxv6jr5AxIEasH1976377h+8RFv6XrS177C42150NQOZw7lg2g28xf0A0bm8yZRPIX2vz3Fr3ve452MJyIFNb35gX60qdxal9b1IrYWD9h/HnzOu0TJlAbcu+2/e1rcrxAdia2FKCvLTwvSgprf0FHfcaM/y09G31EZCUGw9B0HnbkN32i2uP8AUlWo0sbm1b60+I78jQmoD6lunnz+LPvZQ0yEyxvttyNrvv0OzDqIgOvU1uaig5G/qrwA1BoK3qHOhsDrsL+TsRvfrYNOlPTqBz/QbP6RbnXtSTUn1FPW3hcU7wtfADYeZt2fQFrOdBoOpnRLe5Ftg+xOpfQdSXIJ0sItjz9KitTy5aXJGxrTQi1jW+Lm6MO5JJLOAzO/Nj0LM2WmXuQwA+hr0sN99CBbXHKVNak/oW0rTQCwHTW4czZOybXe/n0HP35aUaOGa4HwNjryH72pswGdP2eXtk828F35Jwf7Uk0nGfOEQU1LpDxFfEROM9cNYYpbZhoaaLQHphnTJ0ItJqw99qzTI4R1aJVEzeWwMsy2x3DknxPqsLMrDMwzJlXhjiXIrVAzKyhTZKEzCHXVUqSNDxVEpJPslTJaJcgedv2nPsL4LnxGIZ38IKOiy5nYhdViOVpZlUWXc0zXWubNpASmmwHHqgEfjlmTg9fNQlVZKoaqoq8VmbZWWM0Zbzrl6T5tyfPpPmjK+YIBiaSLMMgmMJNpNN5dFIC4eOl0ygXX4SMhnkmqHmHVoNCK1BA2MkVEiqkyqimnSqinnIEyVOkrTMlTEKulaFoJSpJ2IJEeMeLYRiuA4nXYNjeHVuEYvhlTMo8RwzEqWdRV1FVSVcM2nqqWoRLnSJqDZSJiEqFizEGL7iaPnQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEeZ+1b2r+E/Y+4VzHifxTmhSkl2AynlOAcZVmXPOYvcl2HkUghHVpClU7r0zmT/dl8mge/GRzqR7lp/wCDmLMWHZZw+ZiGITLXRT0yCDPq54S4kyUnXnMmH8EpDqWRYHtjwb8Gs5eN+cKXKOT6QEsipxrGqlMwYTl7C/aBE3EcSnoBYOSikpJb1NdUcMinQTxrl6Qna17Y3FztlcS4nP3EyZmHlkEuKhckZClsTEnKuQ5K+tomBk0K6sh+YxqYeFdn2YX2xMJ5GMMqe+zy+Elstl+pmZszYnmmvVW16+FCCpNJRIUv7tSSSQ6JSTZS1sj285X4pykgnhQiWhH6BPBbwMyT4F5TlZaylSe0rJ6ZM7MGY6uVK/rjMdfKStqivmy0/wBnS05mzpeG4dKUaXD5MxYl+1qZ1XV1XmRp8ineJpXWugtrffwoTelaU42bjqbkEb206sebkM4eO21oJsBe22vXQk20I25OXuLb+lTpoR4358x56d4iuLWZ/eNbuw2Fxz063aMaZLBdxcjVnO4uBr0I72ie2/sTVNvCwJNL2/AjUACre1jyPI9+h3f0JIx1oI1BP+tc8m2ueelv7zRObfI0VXoTc33FQDe9qbdKUsQAf487Eb+rEODrEJTzD9W091ux8xExESLCpr/Ca87GlajTY8t6UMRobPd+m73csW3LbjUwqlPYM2rFtQ3yDbBnB5xObiiki+m42v41pQUAI/PFuj7Nz0HZ9tLAjQWERGWRe41sz8+j+XxtEtEWDavmDQ6a2JHjYDkNsVv27HrpcaN1fvERlf6vS1yQzcrAkkgeZGsSUxQ2URcChItToFUAtpT8Kj1AO9wwA8wz+lvWIlSknu99vgzn6N7xVETWg7w61NSegCiKDl41vinCLMS3QlvrtFnsfif5flfYtr+tUxJtcX/m/JR+dMPM+QB+CYtMkjR/R/0j9+19b+Ip6Vwe373fhL/BvdFPZHr/ALp/WPz7Sb3FP7V/TvfQnDzPmAPiIqJJOpPmG/WKZiQL98a6A0VvUnu18z41G+Dbkn1Ye5ou9h138vh1vo3naiqKA1UbEaGh8RVWh8Dv5Aw0A8ruPi58+8XiSnpcht/i/u98R1RdKivKwIIpXqRbla2lBatbuddd25+evUv21iVMo8r9WsPQHvaIbkWTvTauldKam3gBbStDhq372thps47Wu5v12kEo8tG2a2w0cNfbTRrtDcitfiJPIE/SpVrrX64qxO7Cwsz3fUm3OxvpdtJ0y25AcvPn/E9ohORBpc0HKoqNdtE+JNbeJFQwsL7Wvc6ue/q+pcPKlADMG6nduXPsPSILkRYgHfXcn1uelun8ogfvf7o5B7G3qx3dyNZUIJYi1tSzXbTyO79ogOP2N9qE2BN7bACmnTkK0wPL0A6gdzy/hGQiUzNcnV9HDEkancXN9QNmtzr9ahJN979NL3I1vpzsMXAMLhydADc9xytt5xlJltzJ9dXL30Gl7WFrOIgOPU36nQ16/W50Fr2pUjdTPsAOetr7u2z94yUoGp+L2u7OB5ksAX2i2uv1qEkcqg2A3obV6k610oKYuAIDm+4HXncga792JiZKe7bM5Jt+7bf++zagbPbXXtQDrUk67XoQfnvat7YrqfhyG258tXAta5OShAdy3YPz7EsS7q8hzjKB7OX2n2f+xRmmEydmlc1zz2c59MkqzNkkRAiJlkx6MiAqNzdw7+1vNsQsyQVuRc0y4t+Fk+aauIecls2ch53C9hZIz1WZWnppqgzKvBJ0z+3pX4plOpShxVNEFKZCw/FMkcSZU+4JRNInDUX7Uf2SctePeETsdwdNFl7xQw6lIwrH/Z+ypMdRTy+GRgmZvYoVMnUiglMmkxYInV2EHgVLRV0aZmHzt2jhtxJyLxgyLlniXw0zPK845GzhK2Jvl7MMnf8AfwcbCPd5K23EqCIiCmEFEIegJrKo5mGmcnmcNFyuaQkJMISJhmtpaGupMSpJFdQz5dTS1MtM2TOll0qSrYiykLSXRMlrCZktaVS5iUrSpI8Cs1ZVzDkjMOLZUzXhNZgeYMDq5lFieGV0v2c+nnIYpUkgqlz6aolKl1FHWU65tJXUk2RV0k6dTT5U1f3GMqOPwwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR0D2mu0lwy7KHB/M3GXirNfsMhkTX2aVyuGKVzrN2Zopl9Ulyll2FUR9qnM5eYWhsrKIOXQbUZOJrEQUol0fGw/x8dxuhy9hs/E8QmcMmSGly03m1M9QJlU8lP702aQWdkoSFTZikykLWnsjwn8K82eMmd8JyLk6j+8YjiK/a1dXNdNBguEyVyxX41ic4f5mhoZcxKlBPFPqZ65FFRyp9bVU0ibofdrfte8Ue2RxcmvFPiTHFiECoiX5JyXBRLr0gyDlb7Qp2EkMoSpLSYiIKe4/O5y7DtRk9mXvIx9thhMJBQeo2Zcx4hmfEpmIVy2S6kUlMgkyaOn4iUyZYIDki82aUhU2Y61cI4EI/RV4K+CWUPAzJNFlDKsgTJxEuqx/Hp8lCMSzHjHsgifiNYQVmXKB45dBh6Zq5OH0vDIlqmTFTp8/zU0/TRVR0uR89fGxrc0GOPkP0Ojj0v31bnpHaykN08mDHUC1jrYgC2jl4uDT+l97bU3FRXcHqNyBQYt/xbaEWt31BOhdhyL6wlAILgfBux2JY80nyETm3qfdPltS9ed9qjatb4oX0Nw5Lj8wvt56t1iFUvZn6al/gQ4LNd9jE1uJA1NKW2pvSm1DtyA0xaQ9wXfbfzH6d4gVL152J/5dX3tuxc67xObiRqTre1NjXStNa1rptbFL6N5HXTby+XSMdUndiDa6R05M/YAlrA7iJjcTWlSFaa3p1uQfOu/UAGF2JBOr3A+f0LamIVSjsHblYvyIZh5gbXiSiIA/eINKUrUDmLkK8b1A3GFxdgW1Zja50u3kGB56xEUajTooN79PeLxJREkalJ5XoedQDTbS/mdcUZNthvqm/v8AePIRYZb7eYD9eo131ismKvevzpodaEjwofywZtyX5tb0+Y7RaZY7bsQ7RWEWB+/6kA/8wP8Aj6OEsCwPViG82Pu/nZ7Ht0+gB9e7mIux+Ktbgk976rA+WDbkC/Ignz3inse3qf0h9q/nT6YRb7E9fUQMXQfepzNe74aLp8geuKEbgDzLHysTF3se3qf0jgYuv71TrY1r0NCTTT8N8VYs9g7bG/mwGmnK+sV9kOmt9/K4Px9IoqijyPjp6VKRTwv47G6kX6fME+5vhF6ZYGxJPIfFr+/pFFUSdikdK6enjuQCd8Pw9SBp+8/V9fcW3FouEsD91u9hztoPSIy4kH94k6G9K6V0NbbiopvbS697Ad226aaF9ObXiQI0ABPIJHfcsB7/AIRFXE63AF6gGh13oeQ5nWtCLClupO2w9NddreRiRMpXID3qPqO2ib2iG5E9dOZpcVItW1qCtTpfTFb6Dlone7F28zyv1MTpk6G50ub2cC3TdierNpCciamxrqQa2pXx6UoK72NsG5nowufTb5d4yEyujltGc3Ggb4htr3LwXH/4j0pWg0pz2uNTbbF1+wDf49LdrdmD7ROmXpy3FidTvcB2e7nV7awnYim9AAbDXXlXrva+nOoBtw8hci7HZ929G7XmShm66276vuNXOp0dr25187qoPG5/PTpbrbFzMLa8z9CwezG0TJlk7A+Thg/+8Q5/1Q1g0W91+xJPdT6E/P6cvLAB/Q337gAENbpfZnjJTLbvsdd2Y89LAWtfrbXX6ggEhNNtTr1ubbGgvfbF2nUvp1drjnYW7XtGQlF3ZzybqGBt2HCPNtYtzr1rWGutyL0vurWh0Gmwxcx/xE2G4A30sGcdA9umQiW1zcsWcWHlt29GvGUn2YntLs0diHiI3lbOEVMswdm7PM2Y/wAussJXERj2TZlEe5hDxFydBhSgibwjDTCMxyqFbCM1SWFbhnEKm0tkUVB9g5FzpUZWrPu9Utc7BquYDV04dRplqZP32mTtMCQPbISP8plpCWMyXLWjUL7Wv2U8I8f8sqxfA5NLhvipl+jmfs7ixTLky8cpZftJ37L45OYcVFPmKmKwqsmqKsHrpy5qVCiqcRkz957KWbMt57yvl7OuTZ3L8yZTzZJpbmHLc/lMQiKlk5kk3hGo6WzKBiEfC7DRcI+080qx7qwFJSoFI2mp6iTVSJNTTTUTqeolonSZ0shSJkqYkLQtChqlSSCD1j89uM4NiuXcXxPAccoKnCsZwauqsMxTDa2UqTV0NfRTl09VS1EpV0TZE6WuWsXDpcEggn6HE0fMhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPm85Zwyxw+ynmXPWdZ1BZcyjk+RzPMmZp9MnFNwMokcmg3o+ZTCKUhK3C1CwjDrpQ02484Uhtlpx1aEKhqaiRR086qqZqZNPTylzp81ZZEuVLSVrWpnLJSCWAJOgBJAj6uB4Ji2ZcZwrL2A0FRimNY3iFJhWFYdSpCqitxCunopqSmlBRSkLnTpiEBS1IlocqmLQgKUNCX2jHb3zX25uNcTmBpcwkvBzJT0wk3CHJEWoNuQMndebTF5qn8K08/Cqzdmsw0NFzUsuPIlUEzLcvw0TFtSpcxj9Sc65sqM1Yoqc65OG0pXLwymVbhlEjiqJwSpSfvNRwpVMZ/ZpEuSlSgjjX+jX7L32ccG+z5kKVhi001dnrHkU1dnbH5IKkT66WhRk4Ph05cuXOGCYMJs6TRcaUKrKiZV4nNlyV1iaWm8AtPmxSfEHfQ2ob2pWtz1rTHDS99rs/kWdmc3Lkh+mx2SWgj8wbrz0IJ73Lgk66tFwaiATYlJ0psTa3npTX6YtKWfkb2AY7aWZ20tpoLxCpHY2azX1a+4tobsDfV5zcRzNDzGn18DyItca05vvrdxaxvt1DB/K2OqW7tf1s3kCN+mo7Tm4jrUcxep8zTzNPle0pGosfduOXw6FogVLN+Q0dgdNtAeX7pZrOLTURANP3q+up2JrfbXyIpihDM4Nt9/W2lvzDnuLxqQNhfS9jqNCwLaHcM/nKQ/yVytt08vECu+BvuCG/e18jb42di0RKl6NZnNx15gM4dtLEsWiUiJNb3puDS/M3pXpXU7YtIDaEdWcdL6t6+cRKla27FnvewIB7fuuAwsIkoi/5iP7XOo12ANL0rp4YMdmc3cH5M7jW3pERlO9nZ7FiG32dx3ZmiQmKFhUXroaevxU7vQctNiuHJfXRQf4hn9OkRGQNWHMkO/lY3625iK6YobE+RvptcW8zXyxTlZOnb1uL/reIzJ6q0u7KFy7X0Onu86iYutu95X73zWflXywYDUK9fkRaLfYm9rD+8hh/4R8Y5/aa7p/vC/4n1xUEDVS+zhvKwinsTf8AJ5cXnZwB84faerf6/u4q45r9RD2J/wBX/m/WBiqDUD+yNNd7aC9xQYtLFmKzfQkegsTf6eAkl/3OliTfubeUUzF7d+3ME19e/T+u2K8P+qfM2b0A84u9iXYv5It70/MxTMUDbvHxJoDfoTflf02o9tE69yPV+bP6xcJHPj10sB/ugac+ZHrQVF0uSOdzU7XNTfpQfWuK3szl3FgQOwt0csIvEgBrJ3D6vqG0Atvaw2JiMuLuaEnw8OqqbUNPIYMGF0jnd/cAfc8TCVsxBFyNANuQ73dtS4ERlxKq6gV5kk/M9aHWuKtbQ9XZI8+e27nnEqZVzbhboA55mwN7HQ6O1oirfF6qJNDre2umwGtaDxvXFe5A6Is5Gz8+nbmHlEseYvbp1Zz6J20MRHIrr0oLmw6HlzNNCRioBZgANn0P689eHbQOIkSgH1u2j2uTsdTcg2dtohORBvVQSBWlSQT0F9/Ac6jarC5Nz1DAHsWfu/K8TBB5dmZrvdyLtb8ovzNohLf1pbeqvL8OeK3t8dBaxtvt6guYmTK5gDoBb06PcqN3cagRAdidaVUbipNhWo56VFDtS3TFWY3ccyfl5Nbz3jITL3Nn6G45aOpujBuhvAcfuaqqemnK+tRa4237wvi/UE6AbnVruNhd9Bbn1nRLJIYMOZcFuQIFhzAuw8otzz+p73gNuVDU62+7S+ADizgalRtbcW1G/KMhCOQHU2BHpoNTYvraLe8+b1J3oPWm4AH8uvnbF4AH5fXfy09dLaF3jJRL/ugPqTy2tbfn6g7W9x4nW2thpf0t0xcNuXf+frGQEgaX5q0FtQLO9/i5a8Z/vYqe0te4C50lnZV41z/ucEuIU6LPD3MU1fQmE4V5+nMSVJg4mMeWn7DkbOse6GI/3hXBZfzREQs9UICXTXNUyT214aZ0OFVKMBxKb/7sq5rUk6YocNDVzDZJUWKaapWWXqmVPUmaQhEyomR5tfb0+yojxGwKr8YMhYaVZ/yzQBeZcMo5ZM/OOXKGUyp8qRLSfvGYcBp0cdKEAVGJYTLm4ak1NVR4NSHcxxsdHhbDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEai3t7+3/Mc0ZqhexrwtmgGQ8rRjE240TqXxDhZzZniWRKXoDh8HmSGHpTkR4Qs1n7ClRSX84vS6GeagovKCjF6/wDipmpVVO/ZuhmPS06gvEpiFEioqkKdNI4/CZdKoJXNBKuKpKEEJVTni9WP6MDJPh7mCpz/AOJ6cWoMczxknGkZLl4KkJXNyfJxPC5dbNxmaJiSr71mCSqvwegrJASink4TmGhE2dNnVsmj1wYaLS6AtKqcxXQ2sRenjoa1NjfpbZtRsDr6m++9x6AeywCVo4geJJt/rJIsQbuD63u5DRc239AbG1xr1rT71ieSq3OLWO1xuk9NAH72e2hiJUvkxHLtpbnfZ3G0TkP1ArcaVGt9PDlQ2rzoa2M+ljcN9fMWIckWiBUofu668O36HZ7A6dHnNRBtcKHXyG532Oup7tzWhGxt+unpz1vdtGgXLvcMxfdvdcc9xtyMTG4kHQ92lqbddh86HQ60xRrWsG2v/EEndw+1neFUu2ludr+YsexY9dzMREfxAa6imxPIGnlrvhd+eum/kb78tRY7RCqVt7j5PYkp5lwQ1nu0S0RPJQP9oXHrQ1rfXagoMUYEu3LQsdrFvLW/SIjLIsNfo7l2D2ZRbV9olIiik3qOWh33JHjoaaXtTFAkjQ9gRyHPTU8iSzRGUNpsNrH38OnqfjXTFUpcHx+ZFQK9L05Ypw7FI2DgttcnQn05xGqWHDtsC9m83B20F+Z3NcRA1FLjYDTyT+tcU0s5SDzct6gN5E94tMp7t1d9ttSfifS5qCI0+MgfXyNaacqdNcUtq6S/NPvtf1iwy7a6mzjb/e+UVBEqFfj+X5U/HyxUgbpHrwjyBb3WiipWmnmNNLaa8/KP37Ss/v8A1H1wb/U/5ot9l0T6fwjl9pVsoA86p+dACfXDhP8AdJ6FQ+TQ9l27Ekj0NhHH7Uv+P5HAgDVA/wB6HsuifT+EcTEGpJXbnQDXyP6NjhoHZIHV1e8P9d4v9na3nZwPcG159xpFMxFtSdaHUEb7H9a9DgaKHkken84r7K46i3l1KlbdYpqiQKmwrWlh+Vb3HP6lrzVY9A+3T0J7ReJYGoax/e1Iu9iPmxuzRHMWBeo8hWo6Gg0Ntz5UrUAuGAS3Nn63u/S45ReEMxHO4ACQH1DkgX2ILcn2jqiiRWlK0uaDoa0AFN960pSutWfUk9gQC4+nYs+0Xpl9O+7jfca7gkjQsYiLih/FU8gN6HagA06keGKhrs3xPmWtrub83IiRMpx33Oh3fZLtve3URFXEHmEjrr0008rbHBuu/c99hzt6sLRMmULFr8/n7tQDq7m8Q1xA2+Lck+PM0PhUipvsQbmA6ak6G+psGZzsWA90TiX3HxNr2AKn0OwuO8QXIiv3lVpU0BNtbbeYF6Cx5VDtYeZv0YBn32BvqREyJZuwFtCQlvIaaWu5O+rGE5EGpv3dSANd61tbxN9BYgkVAfS5e5Onf4jd2cGJkyu6j1e3635sLk7xBciDse6KG5qa602BJryoBehG1wSHc/iPJ7DTV323ubuxjITL04mJFgAAW6PfezDUb84Dj+tDpqT59La6A1rypTF2vXk2nxLs2pto14nEsMH20SOnx5+93iGtwqNvX6/4m9LYrErNbQA6b7G5bTmHd72uDSwh7oYQjdg9iV7Qd7tLcKXuzzxUnRi+N3BWRQf7GmkcqsbxD4VwqoeVS2bvxBdWuNzJk2IcgpBmV95th+YQEZlqcrdmkzjMwxUNst4Z5uONUBwivm8WJ4ZKT7OYr81ZQJaWiYS54p1MSmVOJYrQqTMJWtU5Q8FPt8/Zql+FWcUeJuT6AScg59xCf9/pKcf2GWc4ThNrKqilyglIp8LxyWioxLCpaFTJdNUyMVoUoo6SThkmbnYx2lHnlDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR4I9oz2uobshdnaeZolMQj/OhnYxOS+FUJ3YZ5UPmONg3Fxea4mGiUuodl2TZeXJutDkJFw0ZN/wBhyaMabh5suJZ4nnLMIy9g82fLI+/VRNLQJ/CSJy0ninkKcFFMh5hdKkqmeylqAExxwPxEzanKOXp9TJUP60riqiwpDJJTUrQSuqUlQUDLo5TzmKFoXO9hJWAmcVDRTz3LIvPEDNXpjFxUyn0VFRE4Eyj4hyMjY6cRDjsRFREdGRTi34l+ZvOvfa4l91Trjz5inVrcSe9q3VcU8KUtRXMWpUwrWorUpaiXKlqJUVLLlSieIkufxOY+f9hH7UVX9l/7QOCZxxSrnKyFm5UvKfihIXNqDxZcxKrQtGY2R7UzsRypiRlY7K45M6bV0cvFsKlLp1Ysupl+UWnHoR1QKVoUhRQ6y4lSFpUhRStC0qopC0KBBCgFJUCDS4x8g2JB2t6fXyj9lNDW09RIpq+gqKeso62nk1dLV0k6XU0dbSVUpM+mqqafJUuTPp6iTMROkVElSpc2UtMyWVIW6voGItLiQpCqg2IOoIoCk7VHQ1NiDocUb3db/rtfXrrH1xwTQFJs731bdiHtyPufVVwbiL6kU0HSx8fWoxQh9Q7eR+WtrWEWLlm5I4g2o131v03t1vE1ERShNb7g9AK7jzsd9NbCk3ANm/KfkSe+2u7h4gVLOgYi7A7e8aC1iNdNIloiK0FQflTexPqTWpppcYoQAzuk+ZGmo823tERlB3/KexL6eZ3/AL3SJSIihFFFJva522FjprU79MUY3txc2fs40c21YjnERlHVgW04SAbau3/l9SHiUiJJ1orS4NPqAa9KfXFGdwe1x7jv7jEJlgPqNQxGg8nHuG8SERQ5qSba3+RFaDwvinDq3xc+QN28ojMvo/bV9WsSP+XSJCYqp+8lVib21526+OKM3S/JvXr6RGZQfRux79U38vOKwiP5TpqFVJ15jrXXrrfC9tfJrdXIB+tOdipQ6HysPNhflc77mKgiqAXUOmv5fj44HdwCOxJ7/LQ84tEp9DfV+I99OJvdptFT7WLVXWlqd38e6fw6YoyW095T32vbtAylbA+/z/d9PoRzEWP4kjxA/wDcJxayb2T/ALx/T4PFplKGpV6J+bfW0fpix/Gg00sPl8GDJ5J/3z+kU9mf7yvRH6xwMWP4gPADrrRNPx64AA6AeSi/I7Rd7JXU9w3wB+to4mL0HfJF/wB2lP1/iMXAJ04fVJ+LfOK+yJ1cdywbv+FttDFNUTXdR86fh+fO2K3br0b5vAyg/Pp+a/rbyAikqJpsBY6q8b0pS16W8N6g/lzOvmAPhEnsgzufhs1/yW6Hv1igqK/n9B+NPxxViSW6ch6k+7SL0yunTzOx8/8AW5RHVEi9ATyJNB5bX6G2DDdreenLb4d4kTLY7PyAfof7xHqAbRGXFE1+IDoAdL2JtSniedMXAE6Am57efI6b9IkTKvoTrd2353N9WcX6mIi4i1bnqTrTpYEepHOmDWuW6emvTcajVr6zJl9QNdBfzOr6NfsBEVyJ5knagsPWmg2sAD0OKhJsWYC7m/u6XawfvEiZQayQANzy33AcdH0eIa4nUV7o1uTf8SKC1afndwvr+I+jC/16bXicS3L/AJjYcm215X6ekQlxHI+Zp4eA8q7Hli5voW+uu3SJghhcsP7o13735687XiIt4qJ1NdeVbeZ+XTFeXbTl8vj31iUBnAHDbuTr6dHOh0O9IknXCGjtZ9buT58ugYdI/MIQwhDCEdy9nzjnnns18ZeH/G7hzHLgs1ZAn8LOIZn3zzMJOZf8UNO8tzX3CkOOybMsnfjpHN2QauQEe+Ed10IWn6WEYpVYLiNJidGvgn0k1MwByEzUXE2RMa5lT5ZVKmDdKjoQCODeJfh9l/xUyNmTIOaKdM/B8yYbNoZq/Zy5k6hqbTaDFaP2gUlFfhVdLp8QophDIqaeWVOjiB/o5dn/AI3ZL7SHBjh1xw4exKojKfEbLkLPYBp1xhyLlcX7x2BnWX5kqGW6wmcZansHMsvzhplxxtmaS2LaQtSUBR3FwnE6bGcNo8UpCTT1klM1AJBUhTlMyUvhJHtJM1K5MwAkCYhQe0fl38ScgY94W57zP4f5llCXjOV8Um4dUrQmYiTVyeFFRQYlSialMw0WK4dPpMToVrSlS6OrkLUlJUQO4cfRjhEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIRpEe067Vjnam7TmZIySTB6J4YcMVxfD3huwiJLsvjIWWRixmLN8O226uFU5m+dsuxkPGtttxMRluDyzCRlXJclKNY8848cdxucqUsqoaHjpKMO6FoQr+1qAASl6mcCpKwyjJTICroAGlHibmo5nzJUzJEwqwzDOPD8NSFPLWiWtqirSASgmrngrSsAKVTIpkLvLjHs1YA+J8SbAeeOGHU/Ttv56x1voO513tt7wfq3QHFTLBl0xRPoRoiBmi+7FhNO4xMgkkqpQFKY5tKnxXvf6w3ElSk+8bRj509P4uIBn/MP9b5AtuTfYOY/Tx/RFfaqHij4VVHgFm/E5UzPfg/QSVZVVULKKzH/C+ZPFNQJSFKUipqMj1s6Rl+eqUmnEvAazKyDJnz5VfWTOq2nVMq7ybg0CkHRQGlOShqD5G2MePYyVNVKU4uP3knQj9eRi9NPBaUqQapOx1FLEHkQbEbeBuj6SVJWkKRoq7tfW4I0caWZx5NJS+QQakU8/nSv4fTCKlIOwVbUEgv236s7epiQiI/xB+opSviDzIrim+v8AH6bbziMywdDfkfT0tqfk8SkRNrK8v1Uc7Uv1xThHLRgCCx7tYBtfpoiVKbVPVwQfTUWfy2iSiJ5jU7G3lqB1JA5DFOFgWNmdiLaa97ObdxEZl21s37wYXFndz8HiuiK/nI+fPcaU8K9BbFOE3dLvu4Bc6+/R4jMlx+XTU/pr6cvWK4ib6g3/ALJJ6i3SvPytRuhTtuXPXm/Tl1iP2QuxULNe/oX2OlgeYG9YRG9DtXunTpoa9b8vE0YbqbbS9uYHxN4sMrqG/wBYMX7295vr25iLIp8RSK3rQemhPjfqcUAfYE9Xf4gfXaKCUW0B2DHfqyjzHKKgi66LJ8k/U/icV4W1H/MB9bRaZJ1KfeD5flJ3jkIv+e24KfrQeeuKFJGx+PwinsjpwH3X/wCWPost5dzXnJ9cLk/LmYM0xTau45D5akkznj7ayAe4tqWQsUtCqEHuqSDQg0xNIpampJTTU8+oULFMiVMmkE6AiWlREfKxbGMFy/LTOx3FcMwSStPEmdi2I0eGy1JduJMysmSUqS4ZwSHDR25B9lvtRzBsOwHZz47RrSrpcheEme321AioIU3IFAgi9dORNsfSTl7Hlh04Hi6xq6cPqyPJpB+POODT/GbwbpVmXU+KvhtTzAWKJ2eMsy1AjYpViILxFmHZl7TcsBVMOz1xxgQNftfCjPMMAACSauSNANNfDpiOdgeNUyFTKjCMSkS0h1LnUNUhKRa5UZSQPPruImpfGLwgqy1L4peHNT//AAM75bm9P3MS+jaPhorhbxWgnzDRvDPiDCRKbqh4rJ+YYZ8A2qpp2WpcAqDcgHa9McIrM4ZRw+pXR4hmnLtBWIuqlrMZw+mqEh2/FJn1KJqQ4I/Eh3Dc4+/KzxkeegTZGc8qTZRICZsrMGEzZZPILRWKST7m5REVw04m/wCzrPI/9lJ8B5gwN/T8sY/7e5GItnPKx2YY/hIF+1Xp3DlttpxnTJQ/+sMsX1bHcK67iqEUVcNeJwB/83ueBrYZSnoHWv8A1eKjrf8AOoz3kc//AFhlYnrmHCR6f5Xr9dRUZ1yTqc3ZZJ64/hdmu4/ys/HrFBXDTid/s6zyf/ZWe9dKQFR5nFRnvJH+meVBd7Zgwgt//wBdvXSL/wBt8kA/9sMrJ0/+3sKJ6v8A5WT5fh19KKuGfFC9OHeeRp/+k56TSh1/6vqaaUqAb3rq/bzIu+c8qk3d8w4Sm7uCR97e/wAGtF4zxkcm+ccsK0/+3sLa2n/zXvDM1zpEZXDHijU/+bnPZNLf/ZKff/D622+Ib1Bxd+32RR/9aZUA/wD6hwjbmTV6N59YlGeMjv8A9scqp01x/CibuP8A9LJu2gY8ndojL4YcUqEf5uM9jnTKU+PUX/Z9NCbkmo0OH7f5Ev8A/GmU+/7RYR0//bLfDTeJBnrIo/8ArHKyj1zBhQDjX/5tyNrPz5xHVws4pH/9uM9jxylPrf8A+fQYft/kTT9tMpvy/aLCP+si/wDbzIwA/wDjLKzasMfwkC77mr62t53MUzwp4ok34cZ7qf8A+pT75f6hiv7fZE/00yp/xDhHl/8ANw/bzI+2ccrB/wD94MK+JqyffH5/mp4of7Oc9f8AZKff+Aw/b7Iv+mmVP+IcI/6uKft5kfT9ssqvy/aDCf8Aq4f5qeKH+znPX/ZOff8AgMP2+yL/AKZ5U/4hwn/q4r+3mR/9Msrcv+0GE68v/wArj8/zVcTxrw6zyP8A2Tn3/gMV/b3Ix0znlU//AOw4T/1cP27yR/pjlb/iDCv+rj8/zWcTf9neeP8AspPf/AYr+3mR/wDTHK3/ABBhP/Vw/bvJH+mOVv8AiDCv+rh/ms4m/wCzzPH/AGUnv/gcP28yP/pjlb/iDCf+rh+3mR/9Mcrf8QYT/wBXH5/mt4mf7PM7/wDZWef+Bw/bvJB0zjlY/wD+fwr/AKuH7d5I/wBMcrf8QYV/1cbIXsAO0Hn/AIe52zl2SuImWc0yzJ/EBMw4g8NJpOJRN4KEk+epNL2BmjLoXGQSIZEPmvLMAicQ5+0w6IWZZViGm4eLicwrch+8fBjxPytVYqrKEjNGX66dihm1OFU1LjWH1NSuskSTMqaeRTyqhcyZ7WkkrqCJaXQaWYopV7RSk+XH9JBkDKOasCwHxkypj+X67H8uKpss5pocOxPDqqpr8vVtTMVhOJ8FPVKnKm4NitQqimgSZqp1JjEuYuZJlYYlM3a7xtFHjzDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhGN72qPaW/8nDsmZxXJphEQPEDix7zhdkVyCd9zGQL0+g4hWZ8wNvodbiYL9iZUZmqoGZQgU/CZijJAlBZL4iWeG56xr+p8AqTLWpNXXvQ0pSQFJM1J9vNdwpIlSBM4VpcpnKki3FxDrnxSzJ+zmU6wyJikYhir4XQlB4Vy1VCVfeagKBC0ewpRNKJiHUioXTtw8XEnSVQBQHeh+Z/p+qY1lP5jyDX5WcjsQDbSNKlmzc/gPoRPbH1AA8AT/Qb1xESwJiFRZPYe8nX4ekUJvJ4aeyqNlUWP9DFslAXSqmHge+xEN0IIWw6EuIvRXd7iwpC1IVirYhjvbW/IcgSC1v0t254CeNWafs8+LmSfFzKE5ZxHKWLyamsw7jCabMGATx91zBluuCgZaqPHMInVVAuYU+1op82TiFHMkV1HS1MrxvMpfFSmPi5bGo93FQT62Hk1qkqQbOIVQd5t1BS40ug7za0qoK0GGoEG/rseo6cunKP23+G/iFlbxXyHlPxIyTiAxPK2c8Docfwaq4TLnCmrpQWqlrZBKlUuI4fPE6gxOjWozKPEKWppZhK5KiY7TymVVF0k1Wnn1H8w0GxFQbaUjncqaZZ5pOo+Y6/HeLwhaXEhaTUHfTxFNQQagg3BGEfSSoKSFJLg6H5dxuI54Rc50/j6cvKOQWodfHCAYWuO3Tp02Zm1vFRL1NRpyJufM2ve2twcIo3FrwnVibEPyO5OhJI6RVEQdK21IVz86inj4X1NCPXR9xrofr1tFpQk24TbdP4m7C7m+ujFoqiJHJJ8Ca6iw+IV9NeYxVn52c8++r/y6RaZY0c8xxA2bcm5BGwZ79DFURIOxGgA5+Nfz1G+9Dp8mf5j6vtFDKJdikuBfn5akaMfcGi/5akOZM5z2WZWyfl+e5rzPOohEJKMu5blMfPJ5NYtZARCy2UyxmKmEdELJHdZhodxw7IO0kimn1c2XT08ibU1Ew8EqRIlrmzpiizJly5SVLWT/dSlRc2ePlYxieEZewysxrHsUw3BMHw6SqfX4ti9fTYbhtFITdU6qrqyZKpaaUAC8yfNQkbmM4fZq9hzxrz61C5i7RWboLgzInmmH2cmyJELmziLFhdFutTJ5l85UyqlLKh7t37fmiPEQHIeNkkCW/eOdq4H4S4nWBM/G58vC5JAIpZPDUVqn1Ewp/yenYMx456+J0qlIZz5yeLv9I94eZaXOwrwpwOp8QMTQuZLXmDElTsDynI4HSmZSS5kn+u8beYCFJ+7YLS+yKJ1PiNSFlCM1/B72W3Yq4PwUC3A8G5RxAm8MlH2rMvFxR4hzGZvooRExMpm0OjJ0KuoSAzJcrSqEFEqVDl0qcX2jhvh9lbDUICcMlVkxIdU/ElGtmLP95cuYkUqTdmlU8tJ14SXJ89c9/bN+0Ln2oqFVOf63K9DO4vY4PkUfsrR0cpQP9jIrqBasfnpuXmYhjVdPuQJvBwoHviU5alUkgISUyWVS+TyqAaSxASuUy+Hl0ugmE17rEHAQTTEJCsJuUtsNIbSSaJGOWy6aVKQmXKly5ctA4US5aRLQgD91KEhKUjoAAI1rrMUrMRqZ9diFZVYhW1SzNqaytqp1ZV1Ew3MyfU1Cpk6dMNnmTJilGzqMXUS9NLNqPShNK7W7tvXpbS72Pbs5+uv00Yv3qwI5tqH+B6D6vVEvNP/AESvPvWPyPlWn1xcJI6e8/HT09YtNQzlwLWGn6dL+7nbJxlGSZigzL5/IpTPYFRJMHOJdCzKGCjUd8MR7ESyFgUIWAFA/dUKCvx8dytlzNNErDMz5fwPMeGqJKqDHsJoMYo+JgCoU2IU9RJTMG0xKAtJAKVAgEZFJjOIYbOFTh+IVeHzwwE6iqp9LNbdJmyJqFlLv+EukvcXjznnfsa8Ic1tOOS2UxeSpoe8pEblqKUiEWpQNERMmjftUuUykkqIgG5bEKJAVElACMaq+If2EvAjO0qZOwjBq/w/xg8SpeIZTrFS6GYpX5ZdZgGI/fcJVToLq4cMk4TVEkBVYZaUyx2RgXjhnTBlpTU1snHKQMDIxSUlU8C/EqVXU/saoTFCwNSuqli5EniU8eHeJ3Y64l5CRFzOTsIz1l6HBdMbI2Hm5zCw6T8Tkfl9anooe6up1cqiJs02wkxL64dtLoa85PGX7D3jJ4XSq/GcvU0rxLynSAz1YhlmlnjMFHRi8ydieVVKn1p9h+JU+ZgtRjcmXTJNZUrpJSZyJHfWU/GvKWZFyKSvmLy/ik0hH3fEJss0M2aSwTT4iyJX4yAEprJdGtUxQlSkzVlBX5ZVBFKlJU33VJUpKkkKCklJKSlQI7yVpUCFA0KTVJAqRjR+ZWqQpaFOlaFLQtKxwKStCilaFJJBCkqCkqBHEFAv+IR28JgUApLFJSOEgcQKSAQUnQgguC7KBe40/Psunwg0OtCNK7DStd9vXFhq1K0e42D+87gw4iXckcxqwvyYaahx73jiYUDVIF61vWhtvSwpzNaabYp7d9Tozv8AHX+QPnFA2zG/1p/O8cTDWNQSRfe1KVoSDoN9gLilsBOAZlalncfJreZHWzwcO4dyx2IuTvrpoTrYO9zxMPXQWsampsb+B08BauLvbANcP09LM7e97m0OfPUBm5e7kQNGtFFUPYilwRoDqNTuRUUoBvXQgYkTPUWKTbRyQLadyzfCxivPbfe7sWbpe931e4ikWCCbCt9a1PLUk3FbEC1rVteiZ16gAu2xHPld769xHJ9ma/U3G1jd79bxRUzetCa6VGx1qTYg7geoqBiQTLgnbdy+oa/qNCG82o3MHQNbk1wHNgxbXTSKC2RyAANagHQU2UaVudh43oZ0zTd1JGx0JvsHubvZvK8VDd99Brpq7kDVt9xEdbQv0PMnewoANNNetd8TIWLC+3QN3Jb0FtG0EV5sNSC7Wu12YlzyYbBthGU1f7tDXS5162t4kEcqa5CFsbkMzu/933W6DU+tL/is/YHpttpyd7ADQRlsKINUUFjsKeZBsfwsSTXEwnJ5vdiQH+Funm/Q3sQ19DdzzuHAJ33fvbS55cnc1yfmORZqkcQIWdZcm8vnkriAVqDUwlcYxGQylgKQVt+9abDrYIDjZWgkpURj7+Xcx4lljHsFzJgs00uLYBitBjGHT9RJrsNqpVZTLKUqHFL9tIT7RHEAtBUgnhURGHiFBS4pQ1uG1iPa0ldSz6Ool6ccirlLkzACXZQQslKmBSoA63G0pwzz5K+J+QMpcQJMktS/NUkg5qiGW4l1yAiXUdyPljzqUpQ5ESuYNxUviFoAQt+GcUj4CDj9Knh1nbDfEjI2Vs9YQky6HM+DUmKIp1LEyZRVE1HBXYdOmJCUrn4bXS6mgnrQAhU6mmFH4SI84Mw4LU5cxzFMDqyFT8MrJtMqYElKZ0tJ4pFQhJJKUVEhUuegEuETEg3ePucc0j40MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhGn97bLj9E8T+1UzwolszRE5R4DZeh5GiFhnGnoVWes1Q8DPs4RxeaTVcSxBHLeW4mFcccEvjcvRrQSxEvRqDr54lYsa3HBQIXxU+FSkygkEFP3qelM2pU4F1BPsJKgSeBUlQDFShGo3jTjysTzSnCpc0KpMDkIkBKSlSTXVKE1FWtwLqQn7rTqSSfZrp1pZKlLBw7oFwOVB6XJ+f60x1oXuR1L8wWDeTx04vUdHLdv5RPbGh5BR8bin0odMRrNu5H6/KIl8uqU+jP8ACJzYJNtzQeQJPy08fMYq9ugfrqAPf8PWBRBHx7k3+I6946a4w5VD0KzmmDaSHYRLcLNghJCnIVS/dwsWog0UqHcKYdxSgVll1kd73cNQQrDh9xbYdS/n2Fy2jR7wf0N32qlYTjmK/ZWzjiVQrDcwLxLNXhJNqp3tZFBj0iSqvzZlGnCyqZTyMbopdRmnDaeTwUUvFMPzCsoFfjqDN88Yhj9FEVmHlMKqKlBPxoFL/wAydPj86KFjsQiaTNMpV7oV+Ycv9YdR79DF4QtK0hSCFJIqCPp0I0I1Bsb4R9EEKAUkuCHB6dtj0NxHLCKwwhDCEMIq55mPb3Yp7B3GTtr5yXLcmQ5yzw5kMbDM584qziEddy/ltDzaogy6Ww4dhl5mzVEQ6KweX4CIb9yX4SKncdJ5Y+iPPK8rZQxPNVSUUqfYUMlYTV4hNSTJkOOLgQl0mfUKTdMlBDOlU1cqWoLjXH7RH2mvD/7O2X01eYJoxnNuJ006bljJNBPloxXF1S1iV97rJxlz04NgkmcpqjFKqUr2ns58nDabEK2UqlG472TOxDwD7HmVW5Nwsyuh7NEdAQsJmziZmFEPMM+Ztcao679smvuW0SqVOxI9+1luQsy6Rsltl1cHFR7Ko13ZnLuVcHyzTiVh9ODULQlNRXzgldZUkXPFN4R7OUVXEiSESQQCUqWCs+BPjf8AaL8T/H3GlYhnbGly8FpqqdPwTJ2FKm0mWcDQt0S/u9CZi1V1ciSfZzMXxOZV4lMCpqET5NMsUyPUOac25QyHJYjMWdMwyfLMlhRV2YTeNahGlukEtwsKhxQejo100SxAwbb8XEuENQ8O44QnHNMLwbE8brJdBhGHVOI1kz8sikkKmqCRrMmFI4JMlGsyfOVLkyx+KYtKQ8a9YnjGG4LSTK7FsQpsPpJQ/FPqpyZSSrZEsE8c6as2RJkpXNmK/DLQokCPC2fvaJZClMS5AcNsqTLOTjfeQueTp45ckynP3DAwZh4ucxzX/wDIYuHkqwQQ171Cg4O7MC8A8YqZaZ2YMSp8JSpiKOkQMQrG3E6aFy6SSv8Au+ymVgILrKCOE9L4548YRTTFScAw6pxUhx98q1mgpCrYypXBMqpqP73tUUirEJCgQqPME+7cfHnMD6lwU5kOU4RRIRA5cy9BKQkfuqXGT4z2Yrc7oAcUiMabKiVJZQCEp7Ho/BjJNAgCbR1uJzAzzq+unBR3ITKovucgB9EmUpQAA4yQ567q/GTOlfMJlVlJhso/lk0NFJIA2Jm1hrJ5UwuRNQklyEAECPj3e03xyi1FbvFDNaFE1IhI5uBbv/C1BNw7aRyCUgDlufqJ8O8nSQEoy5higzEzZJnK81TStT9SX6mPlq8Qs4zi6sxYk5v/AGU72I/3ZSEJa9rAchykQ3an48S8hUPxOzE6RtHKgZmk6WKZhCxQJqBuDemhxZM8N8mVFpmXaFIvaSJ1P6ewmS+Z2b4RdL8Rs5yC6MwVym2nGTUaEa/eJUz4HQnW8dm5V9oDxly64lvMsLlbPEDX/S/b5YmSTYISPuw0fIXISAQSAQVxkkj1Kt8SSFY+FiPghlOvSVUEzEcGnN+H2NQaymc3JmSK1M2cpuUqrkAcjpH3sP8AGvNdEQmvl4fjEh/xe3kGkqW0aXPolSpIYfvTaScbOI9f8NO35wXzopmX5yEbwxnTi0Nd+dqbmGV3VOK7qFIzFCNN/Y0JNDEOzqWymEhUkKMY8gOuJ6tzD4I5swoLn4V7HMNIlJWBSJVIxFIS5KVUE1Svaqb8iaSoqZkwuPZJVwpPaGAeNOVcVKZOKe2y/VKUEvVkTsPUSWBFfKSn2QButVXIppUsX9qsBSh7Yh34OYwrEfL4uFj4KMaQ/Bx0DEsxcJFsOJC2n4SKh1uMRDLiaKQ424ttxJBQsgjHT02VNkTFyZ8qZJnSlFE2TOlrlTZa0llImS1hK0LSbKSpIUk2IBjtyVNlT5aJ0iZLnSZqQuXNkrRNlTEKDpXLmSypC0qBcKSopULgkR5m409mTJnFJuJm8A1DZXzqoe8E9goZIhJo6lBQG5/ANd1EZ3/9GlUxZSiZtdxol2KYb+yOaY/aM+xf4deOUitx7CJVLkbxKmD20vNOHUgTQY3ORLKESM2YXTezRiCZoEtKsYp0oxuR7KSVT66mknD53beQ/FrHsnLk0VSubjGXweFWGz5jzqRBVxFeGVMx1SSklRFLMUqjXxLARJmKE5OKfOvD7M3D+fROW81Sx2XTGHCXEVAchI6FUSG46XxSR7mMg3SlSUPNE9xxtyHdDUQw8y14OeJnhtnnwhzXW5Mz7gk/BMaowJ0srPtKDFKGaVCnxTBsQQBIxLDakoWhFVTqV7OfKn0lUinrqappZO52X8xYRmjDZWLYLVyqukmkoWzpnU04AKVTVUlTzKeolggqlzACUqTNlqXKmS1r+QMKeQ3Gn5DbenyxwATy91dbXLvbUv5amPtW1Z7Wsx9S3O2nmIpqhrXCqeBudvvJr4i9Lcr3ieST1JuTe3JiTr5g+QitjoAOgZ7Xct0OuvNtTSMNSlE7GwFTanMV3rod+WJkzyXdugDXHIB3HuPPSwB7gq5HQa9QSw1Go5GKCoc6AGhtTrXrSp8KX5byoneoPRr2A2uddNLQ63vo9vg+789+0UFMEmw5G9QbilqA0rtY1vcbypmszkMHZ9Oe7aNcEdRZ4DS2/m+/0Aw5RSVBuEGiDp+98Ngb2JrQVrXbUdbxUoBJVMe9+C4u1u45ctelRcsd/N376t79i7RRVBU+8oA3FBcV8SBvQ6G/PTEwqd0pJ5EkA8tA/wARaKltWLEbMNzf97e2o7XvHXDtp1BVUDU7UuDSgpcUxPLnLU9+FiQQl+l3JJfVzbaKhiLh2STe+hsz8tmiC4hIBCQEig0HI3+nmcZMskqDkm5YEk6p4tenv9BAXUz6gkPfVPPz827RAeTZQrqD8jU/W36OMxB18vn9fyipuFFtQkj69fLpFud1Pn/ynGdLLl+Y+Yin7pPQf+I/CMx/syeKSpllvOvCKZR5cictRLeb8sQjzilOJkc3eEJP2INBJDcFLp39ijXkAJH23MrjgKy6vuevH9HP4kqxHLmbvCzEK4zKjL1UnNGXKWcsqmJwXFJiafG5FIlyEUdBjCqSrmpZLVeYJkwFZmr4NT/tEZcFPiWE5op5ATLxCUcMxGahICTWUqTMoVzTqqdPoxOlJVf+yw9KbBKXyo49Lo1shhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPjeIueZFwxyBnfiRmd9UNlzIOUsw5xnjyEFx1Eqy3KYucR/uWgQp6IVDQbiYdhB777ykNNgrWkHHq6mXRUtTWTi0qlkTqiaQHIlyZapi2G54UlhqSwEYeIVsjDaCtxGpUU09BSVFZPUA5EqmlLnTOEbq4UEJSLqLAXMfzxc65vnHEHO+cM/ZheVEz/O+aMwZvnkQtRWt+b5lm0VOZm8pRCSpTsbGvLKiE94qrQVpjUarqJlXVVNVNPFNqZ86fMJOsydMVMWX1upRjz8r6udX11XXVCiufW1NTVz1EuVTqicZ0xRJAJJWsl2HYRZUfeHXX0xhfunkNOdyP0jBXqO3zMTW7U8U/8RUfwGIlmwHf69CYjUXUOpUfcf1ie1qnxUflT8TjGVv0AB8y/wCnvjHVZhzKfkfcIkuwzMXDOQsS2h6GimDDPsrAUh1l5JbebWk2KXELUlQ3BOI1WKj3j62XMyY5k/MeBZsyziNTg+Y8r41h2YMBxakWqXVYZjGD1kjEMMrqeYkhSZ1JWU0mcgggOgAukkHxRm/L7+U8wRsnd7zjKCIiXvrSUGJgHlK+zvCwQpSe6th8t1SIlh5KSe7iwpCmILdLFulgNPpo/bJ9k77Q+B/ag8DcneLGFIp6PEq+RMwfOeCU89M8ZczxhEuRLzBhBIUZiKda51PjGECpCKqdl/FsIrJ0tCqnhj54EEVH69MREMW/X5tGx8V2H1Mq3LZPxJHP+JINu9a4/eHWhwieTOMssboOo5HmOvTcdbxeEqStIUkggioI0PhphH0AQoAguDcERywisMIR779n72FM4dtrikqVh6Ny3whyY9ARvFHPUO2z7+FhIhxS4XKmWvtKXGIjN+Ym2IhuDcdYioKQwLcTPZnDxSIeDlU25lkzKFTmvEDLdcjDKUoXiFWAHSlRJTTyOIFKqmeEqCCQpElAVOmJUEplzNXftTfaYwD7OeSxW+zpsYz7mGXU02S8szVzPZz58pITPxvGPYqRNk4DhK5spVQlE2TU4nUrk4ZRTZCptRXUG7jwq4W5C4MZEy3wz4Y5Yl2UclZUgUS6TSSVtdxppAq7ExkW+sriplNZlErcjpvOJg9FTKbTB+Jj5hExEU846rarD8Po8Lo5FBQSEU1JTI4JUqWLAaqUol1LmLUSuZMWVTJiypa1KUST+dHOec80eIWZsXzjnLGavHsx45UqqsRxKsWCtamCZNPIlICZNHQ0klKKagoKWXJo6GklSqWlkypEpCE+Z+0922cpcDVReTcotwOcOKXulJiJcp1apHlBTsOlcM/mV6GWhcTHKDrb7GXYOIZi1spU5MYuVNOQZje9/DTwbxXOgk4vipnYTlkqSqXUBIFbiwTMKZkvDkTApMuQOBSFYhOQuUFkJp5NUpM32OuPiP4wYXk0zcJwtMnFcycJC5BUo0WFlaAqWvEFy1JVMnHjStFDKmImqRefNpkrkmdhczxxVz1xWzA7mXP+ZZjmKaOfAwYp1KYKXQ/xFMHKJZDpal8qg0HvK+zQMMw244px94ORDrzrm4eC5XwTLNAjDsDw6Rh9Km6xLS86fMs86qqJhVUVU02HtJ0xa0pCUJKZaUITqLjOZcZzNXKxHG8RqK+pNkmYoCTIQD+GVTU6OGRTygS/s5CEBSiqYrimLUtVnhosfCSaHSuxF/xv47jXGRNku9ut7dux+OvOMSVO27+e3TVme/UPF8YjqUv0GnkDQgiupG/LngrktqLDZgH66Hfe/aM5E4NY7Bzr6jfv8dTckTAUA71TyJJP1GvhT1xjmQHcgDn9EfwtGQJ2znycADnp11do4rmAp94Gm1TbkTc/rxxVMgA2AP10HxfSKKnvufNz6ON+vui2REb3rA13ua/971NyDTpjJRJ0tbtcctrfBvOMdc1rktuX1PTZuXwLCLBExQob358qEaX1/wANyT9CVJ6fLv2HvPpGFNmvZ7Ne79Pd07C+vcfBXtScUuAUzbXlSbrmOV3Ylt+b5HnTr0TlyZICkpfXCtFRckkyea+D9qyksPrWiHEc3MIWHEIri2b/AA2y1namUnE6UU+JJlqRS4xSJRKr6csSgTFNw1dOlX4jTVIWhIMz2KpE2YZo5RlPxEzFkqoCsNqlVFAqYldVhFWpUyhqACAsoS5VSVC02FRTFCnCPbJny0CUc7vADtJcO+0Zlpc1ynFmX5iljLJzRkyYvNieZfedUttMQO4EImcniXEK+xTiCQWHkqbZjG4CZB+XsaU568PceyFiApsTle3oKlaxhuL06Vfc65KQFFF3NNVy0qHtqScRMSypklU+n4J69y8j5/wLPdAajDJvsa6nQg4jhM9afvlEpRKQtgwqKWYpP9jVyQZagUompkT+OQj6nirwqy3xUy67JJ4wlmMYDzsknbLTao+Sx6mykOsqNC9BvlLYmEuUtLEay2kFTMSzDRcNqn4+eAeSftBZKqcq5rpk02JUyaipytmmmp5S8Xyxi65JRLqqWYsJVUYdUKTKRjGDTJsulxWmloBXTV1Nh+IUPc+TM6YvknFpeJYbMMyRMKJeI4dMWoUuIUwU5lzAHEuegFRpapKVTKaYo2mSZk+ROw/51yHPchZlmGWJ/DpZj4B0dx1rvOQ8wg3Cr7LMIJwpT76CjG0+8aKkIcQoLh4htmJZeYa/Nj4reGmbvBnPeNeH+dqRNHjGDTv7KokKUvD8YwyaVnD8cwietMtVTheJSUe1p5i5cuokrE2jrZFNX0tVSyN88t5iwzNOD0mNYTMVNpapJ4kLAE6lqEcPtqOpSCUy6inUeFaUqUhSeGdKXMkzJUxfyn7PcOjahUm6qIoO8TUg91XM1oabY66NagX4ypuTqHutf1axtH3mfbpe5vtyY3t00NjHBUtCT8ak6qr3RU1Ar9406bW8Nb0V5IHAk6BuIsNW0D9NdvOAYNvpv7jblFEwjKVAFJVcak7AkWFBTpSnOuJE1M5QP4uHnwvv3JPN7jto1bM4G6h6No7/AKxFWlKUgJSkUSLAAUvfQD9a4yEqUVB1KLvqSdjzJi17jsf/AMPw25RDcFUkdFg87/4188Zqf3fKL9xs/Dp5P7384tbopX+1+dMZksukDcAP5vFPkkg+awYtztiL6pB/Xp+qYzpX7+llfw+u5i9IfXkof+H9T6nnFtd08lYzJf50+X/gVBJuB2b/AHS/y93KID+/9/GdL38vnFdj/gHwVFucFQetL+IUPwFsZsu3D2HvDRa34f8AZPuUD+vrHofsicRUcMu0Lw8ncU4puUzeZf5ITohwNNpl+aQZS3ExClEJ+yy2ZPy+bRAIUS1AK7g953CNkvsp59R4d+OeRcXqZipeGYriX7LYuRMEtCaHMqRhcufUKUQn7th+IzqDFKgEKJl0KuAe04SOAeKmAnMOR8dpJaQqqpaYYpSOkqV7fDSqqVLlgX9pUU8ufSo/1p4c8LxsrY/QrHn3DCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEYqfbLcVmuG3YfzlJGn3GZvxczRlThpK/crCXAy/Gu5un63UA+8MG7lzKc1lr6xRsPTKFZdUQ+lp3g3iJXCjyzUygWmV86RRoY6AqNRNJGpSZNPMQdnWl7Fj1d4wYoMOyVWSUkibitTS4dLbXhUs1c8kC/Aaelmy1GweYkF+LhOl+1oOfdH9fwxrirU9z8Y04V+c/7XxEXBH3h5/Q4g/d8h8VRCv8AMfL4CJze3gj6LpiGZt5/KI1apbX8TekTm9U/2V4xzqt+aYhVqny/8Bi4J0RTmj6jEStFdjECtT3PxjrXi1k85ly6Y6CaW7N5GH4uHQ2ApyJgyEmOgwnVSw2lMTDpTVZeY9y2lSnyDbLWEqY6KYatdmFnYvu/ePT7+i0+1Yn7P/jkjImbMSp6Lww8Zp2HZexeorp5p6PLmcpS1ycoZmXPV/YU1LUT6iblzG508yKeXQ4pS4rWVUqnwIJV47beFRSpGtdyCBe33hSlT941pc1BlUgKdru7jRr9dPR7PsI/WcldyCWIJBBDFwwLg7h/Lo15iHAoddeYI5jne1NdKjECkEH+e3N+ly7b8ok10+vPtcmw1iXDvllV6ltX3huk/wASf+8ka66i9kTSZxlljdB1HI8x821EXhKgoBSSCCKgjQjCPo8iLg3B5jmI7S4K8H868fOKeSeEHDyXmYZsz1O4eTy8LChBy5hQXETOeTV4f/hpNIZWxGTibRN1NQEFEFpDr5aac+hhWGVeM4hSYZRI46mrmplIeyEA3mTph/dlSZYVNmK2QhTAlgeFeIuf8ueF2Scx5+zZVfdMCyzhs3EKspY1FXNBTKosNoZZ/wA9iGKVs2nw+gk2EyqqZQWpEvjWnfR7M3Z7yH2XeDuUODXDyGUmT5dg0OzOcRDTDc1zZmWO92ufZsni2EIQ7NJzFJ75SO83AQLUDKIMol8uhGm9wcCwWjy/hdNhdCn+ykJeZNUAJlTULYzqmbwhjMmqDtcIQESk/glpA/MR4weK2Z/GnxAx7xCzZOBr8Xn8FFh8qZNXRYFg1OpacMwLDRNUpSKLD5CuHiLLqqpdTX1HFVVdRMX5r7cXbJHBeXq4XcOJgyrinPoL3s0mrKkuHIEljEVYigC2tk5nmzKlLlEOtRVK4QidRTSS9J0xmz/gj4QftjUDM2YpChlihnlNLSrBSMerZKvxyiQpKxhtKscNVMAAqpwNFLUeCrMnTPxo8WhlGQctZfnpOZa2SFVNUhl/1FRzQOCaxSUHEapBJpZZJNNK/wAsmIHHSCdgmTMYiKiHoqKiHoqKinnYiKiYl1x+JiYl9anX34iIeUt55955anXnXFrcccWVqWpR7yt41U0uVLRJky0SpUpCZcuVLQlCJctACES0S0gIloQlISlCQlISGADMNKRPVNWubNmLmTJilTJkxalTFzJi1FS5i1rJUta1EqWtRKlKJKiSXi/QsXSl+XnqDfYiu4pWm9h86bK1bX5W7HY31G73fMlzWAc2tf6056aM53N9YjQKXsDz5Wpp5mpFK6m9MJckEszHl77N52Di2gjPRN699bm+u4107aARdmo4ilVH1NfzAFfE74w10/T3DnpyPkR7gIyEzuttObHX4NoOdomJjxrc2FgTUdampr5A/OsJp+bjmwt8SImFQwDnt8AN/R/J4LjxfUE8ya15/TYbmvImm/g4+VvnA1BNweh8+lufI9NIgux381utf8fA64nRT2/L7hft9GIFzjz3332J1059zpvaIiMqCK+Vxr6UtU60BPljMlym0D6eXX16A2taMZc1t7bE69fXmWYWOxiwxEXYgHT9frpyBJxnSpJd2fv8Db3XJ3jBmzX3YPfUnkXfbn8L/iueR+JWbuFmbZPnrI07iZFmSSRAfg4tg95p5pRAiZdMIZRDMwlUwZBhphLolK4aLh1rbcTQIUmHGcuYTmXCqvBcao5dbh9YjgnSpjBSFBzLqJEwDikVMhX9pT1EsiZJWEqSRcGfCMwYplvFKXGMGq5lHX0cwLlTEE8K06TJE6USUT6acAZc+RMdExBKVB7p2V+zD2k8r9pnh0zmiVpYleapOYeXZ6yol5xbkinam1rbfhFvJS5ESKcpadi5LGVdq0h+XxLxmUsj20edviV4eYl4dY+vDagzKrC6sTKjBMUKQlNdRpUApE0JJTLraQqRKrJTJ/EZdRLQKeokKV6CeHHiBh3iDgSMRpgimxKk9nT4zhgUoqoqspJC5ZWAqZRVQSqbSTXU6QuQtRnyJwFy498K2eI2V3X5ewk5rkTb0XInUqS2uMbp72Jkjy1gJLccEn7J31tpYmHuHC61Driw752/bW+zPS/aD8NZ9ZglHLPifkilrMTyXUpVKkzMXkhIqMSyfVTZoEtcjGkSnwtU6bIl0WOoopy6qnoZ+KJqNkvCrPkzJePIlVc1X9QYtMlU+KyyFKTTLJ4JGJy0pdQXSFX+UcCVqm0ZmoEuZORTmXipiEqbUttxKkOILiVoWkoWhYJCkrSoApUlQIUkgFJBBAOPzaqlTZMybJnSlyZ0lapM2TNQqXNlTJRKFy5ktYC5cxCgUrQpIUlQKSAQQN7pagtKFJKVJWUqSpJCkqTqlSSCQQpKgQQWILiLY7tXUlR/4aflXqcZMsMA2jJ96gYfXz+ukW5f3uV9OdqfjXGXL0Pv7bfP6aA0G91F9mcAe9/SLc593+6n64zkfmHn8DFNx2PxTEBwgJPOiz1oDT8KYzkaJOw4Yv8A3k/7PwB+MWx3f+1+eM2WGSObMfJ4p/5C/fjDe6Lc7Wo6JA/Xr+r4zZTfj58R+H84vSW9CfK36Hz7iLa7p5K/XyxmS/zpPb/wGCdRzt3/ACl/l9AtAf3/AL+M6Xv5fOK7H/APgqLc4QK8xS3gCfx8dcZssPw9gfd+sW/u9gfepvkYhB52HebfYWpt5hSHmnEmim3W1d9taTspC0hQOxAOPoU02ZImyp0lZlzZM1E2UtJZSJktSVoWk7FKgCDsRCalKwqWsBSVoUlSTopJStKgehBY9I2p+EudmuI/DHIWemi2FZpypJJvFttKKm4aZRMCyZrBBRuowMyTFwaidVsKudcfpd8Mc3S8++HeSs5S/ZhWZMs4PilTLlKK0U9fUUUo4jSBRuo0deKmlUbuqSS51jzYzNhCsBzDjWDK4iMOxKrpZalhlTKeXOV92nEB29tTmVNA5LEdh451Hw4YQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEI1n/8ApA2fmnJz2b+F7EXV+Dlue8+zaBCyAlqZxUjy7l6LW2DRZWuU5nZaWoVb7jyUH/SLp034r1QKsJokqulFTVTEvstUqVKURv8A5ueByuzvGuHj1XAzcvYYlX4kSq6vmofaYunp5CiHYv7KpAcWYtqY1yWtv7I/DHTitT3PxjXZX5z/ALXxEXBH3h+tsQD8p5HQ9iP1iJevl+sTWzp/c+RUDiGZt5/XuiIg8SehIPdv4RPa1T/eH4/Sv6tjHVbi68J8hb4t6xArY8in5JPzi4I+6joGyfCo/LEa/wB7z+cQkXPVRH16xNbFU16qFPEj8sQK18h8BFFliCCRwlJBBIOgDgi452v2jxRxcycco5lVEwTRTJJ2XY6ACTVuGfKgY2ABoC2IdxxLsOhVUiEiGUJWtTLndyJS+NL/AL6fwqZn3/ERoXbTmC0frt/o1ftWD7SPgPQ4ZmbFJdV4q+FSKHKWdhNdNdjWHIplIytnRaSpaZ6sdw6lm0eLVEpQWvMmEYzUTKWjpaygRN6zaeB3OorY18wNf7QpS17UxeQ7vobOR3ex0uwY9WaPRpE0ixY6N1f6256WJic29oLm1tzToaXHPQ6A74hVL1NtfrTqGv1IfbJCgpy+t3739+nIXi4w0T7o0NS0q5H8B/iTtQ/vDwNr4iLsAdtO3Ly9xcdsiTOMshKroPqk3uLOzm/NizkRtM+wv7LjGX8kZp7VmapQj9u56ejcj8LnoxIU9BZJlMahvNeYYBskoYOZszQYkTUU4hMciCypHJhVIlk8eMfsB4R5eEijqMxVMr+2rCukw8rF00kpQFROQNvb1CfYhRAWE0ywlpc08fjV/SXeNy8XzLgfgfgOIqOF5Zl0uZs6oplNKqsxYjTKVgWFVUwMqaMGwao/rRchClUqqjHaZU5K63DJYpc0XaM43yns9cIczcSZkhiLjoJlqU5VlD7wYTPc3TJLyJJK+9X3hYC2XpnMwwHIlqSy6ZxTKFGHttB4cZJq/EHN2GZbplLlSZylVeKVaEFZocIpVINbUt+ULIXLpqb2hTLXW1NNKWoCZHjt4h5zpchZUxLMVQlE2dJSKXDKRawgVuK1KVijpncKKAULqKn2YMxNHT1M1AJlxqzZgzfPc6ZinObczzSJnOYcxTKKm04mcYtTkRGR0W4XXnFEmiEAkNsMN91mGYQ3DsIbYabQj1IocGocGw6jwnDKaXSYfh9NKpKSmlJCZcmTJSEoSANVG6lzC6psxS5kwqWtSj5mVmL1uM19XimJVMyrxCvqJlVV1M1RVMmzpquNai7gC4ShCQEIQEy0JCEpBqQsXSlT9b/IDnevXxsmSjdw40trYW3+N9riKy52jfG3lv5dxF9YjK0odafiBS3Pem40FsYK5LuWte+1tT8bgxmy52lw+vmW5NpbpvrF4ZjiKX2sL9eleYsKfLGFMp3ezuP5ae52jLROZr/WxF/oHVg4uKI8Cl6AdK032Tr6jGKqnbTXb57n0cfrOmo8+2pHy7EbG8SkzAU+9XkdKeiMWewJ5egv74k+8Nvfu/yIgqYCla08qk+qf64exV9N+sDUO+pto7fIAxDcj7WPhtz6V3voPxkTT23c67cuoHKI1Tzcgt3bydy/TYcuttejSa3+uu40rzNeY8K5SKdmLMPLS/X4a894xlzX1L7/ABbXk4BfmNWaLO/GfzbEHa3PTz6fPGdLkgWLBty3O+9ratc6xiTJ1yHNy439x9Pq1hiYsEKvzB2Op8/r+ebLlOWu3xb5dHYM55DCmTXPfcX9LF+vnpt3N2aO0TO+zhxbkOfpeqJipC481KM8yBl5xtvMGUYx9H7Rh/dijS5jL0gTSRuPIUlqawkMldIV2JbXxPxF8PqLxCypXYHPEuVXpQqrwWtWhJVQ4pKQfu6+I/iFPPJNNWJQQqZTTZhT/aJlqTyzw+z3WZBzRRY3TmZMolKTS4zRJUUiuwuatP3iWQ5SZ8hhVUalAhFTLl8X9mqYFbXkoncpzLJZPmOQxsPM5HmCUy6dyaZQi0uwswlU0hmY+XR0M6glLjEXCRLL7K0mim1pI1x5a1tHVYdWVeH10iZTVtBVVFFWU01JTNp6qlmrkVEiYkgFK5U6WuWsEOFJIj01o6ymxCkpa+inS6mjrqaRWUlRKUFS59NUykzpE6WoEhSJspaFpIJBSoGMbPagyAnKmdxmGXw6GpNnAPxxSyAlqGnkOpv9rMFAr3BGF5mZIUe6HnouMS2gJYUB+eb+kW8DZfhl4wIz5gVDKpMp+LCKzGeClliXT4fnOjXITmimVKT+GQMUVVUeYpSzwS6iqxLFZVPLRLoFpTu94HZuVj+WVYPWTlzcSy3wUrzSVLn4ZOCjh00KP5zTCXNolWKkSqenUtRVNBPll0mljWgPQ0URT1AGvM10pjQJGrczblYG3k4Md2biztfXlr8/4xbnDfvV0qa9AKbdadNcZkoWNtWB63d/QEdxa8Bo3IBPqSfSx5xb3aAm/IdKAV18CmvOlfDNQL6de72HwPrFPkHIvZy3noNLxAetrr3L15qJrptY+FqXxmgWAG5YeQ/iPQxUdNh6cIt8B/JxFsdNCd6d4/qnUXxnI0A6j3sfnA+4Aepct9PvpEB0jvEcqAfT52/DGXJdieZJPezD4+sXCwJ/1fibe74Ra3Tr0AHqfyOM6WPxDk6vcOEfP+TiFwotsCPQFvO3xi3vKNFHofqQfWn61xmIGvl8/wBQfOKmwUOQSB/GLc7qfP8A5afUj1xnS7Hyb4e9h5ttAflI6J95JHq43tFvd/e8APQ1/H9GoGXKGu9yfRI/SKq1L3ZJPpofeQR0flGwP7OzNicydmyUSsqKn8k5ozNlh8qPxFL0SzmiGUBr7tMLmRphKh8JUw4KlSVU90vsJZlTj3gBheHFRVOyjmLMGXJpUfxKTMqJWYqdQBb8CafH5UlJA4SqSsOVJWBo7464YaDP9VUD8mLYdh+IIbQFEtWHTAf9YzKBayOSwdCI9043JjpyGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCNM322GcXs0duzMMnWoLa4fcOeHeToW4+FmJl8Znp1NhUd2OzpFpINSFVOhGNevEioM7Ms+WdKWjpadPZSFVJ/wCapVGoHjLVmpzvUSiXFDhtDRp3YKlqriO4XWr1MYnEG58CPmB9cdefXrHUpsR9WZ9uw+ETUH4q8yD5EAfniEuARsHA9QSfh9a2L1Fr3H6fGJ7ZoANyDToQbedfr6xr0+t7fOI16vpcH129+sTmzQ+Br6gg+la/KorUYq+fMN7wR9fpGOoFtb6+YJ3vy1+MT0EUtsDX+6dvX6YjLvfe/reIle6xHUEf+mJzRNPE19UjTxUD671xAqxblb3lvc3wixbEf7P6kX6Bvh0j5fP2UGc65YjZQQ0mPS39rk8S4e6IaZQ4Pue84EqUlmJSpUJE/CsJZeWsNrcQ2UxoX7OYTs7KB3BPY6G4PTq0bUfYx+0pin2WvHfK/iImbWzMoVswZb8SMGowJpxfJWLTZQxCbKpVqQmfieA1MqlzFg6UTaabOr8Ml4eqql0VfWy52PVxL0LEPQkS0tiJhXnId9lwd1xl5lZaeaXSoC21oUhQNgQoa4+jrd20uDrysXFyS0ftBwfGMNxvDMOxrBq6mxTB8YoaPFMKxKjX7WkxHDMQp5dXQV1LMAHtKarpZsqokTUgFcqYlRDGJLb53IpQVO2t6gXBrYEEDU4oxAIAOmm2+h5alla6MHj7CJhDEcnZ9idue+nO+jR9dk/Ls3ztmrLWTMvtpfn+b8wSfLEkZVUodm0+mMNKpc0sJClKQuMi2EKKQV0Pwg4vk0q6ufIpZABnVM6VTygQf85OmCXLfdipY1GjsdAcfGcdoMvYLi+P4osy8MwPC6/GMQmJI4kUWGUk2sq1h2SFJkSZihxEJBYKtH9Erg5wzy7wX4XcPuE2VELGX+HmUJFlGWuvJQmKj0ySXQ8G7NY4NjuGYziJbfmsyWj/AEa4+NfcSAkhKdysNoJGF4fRYdTA+xoqaTTIJbiWJSEpVMW1uOaoGYtrFa1ER+WHPWcMV8Qc55pzvjaknFM1Y9ieO1ctClKk0ysRq5tRLoaYq/F90oJK5dFSJV+JNNTykqJIJjB17U3je5m7jLJ+EcseUJDwqlbUTNQHFBEZnXNENDzGLWW0qKFNSnL65NBQ7i0pfZjYueN3ZcbK/Rr7LGR04TkyrzfUoBrs11K0Uh4Q8nBcMmzKeSOIhwqrr01s6YkEoXIlUKrLSoDza+01nNWK5wpcqUyyKHK9KhdVc8M3GMTly6iaW/KU0tAaSTLUQFonTa1LlCkmMaMNGXBB0Guvypt56W5Y2YmSm25sNdNG0OjkjXbSNcZc0Br77czYNzB3v83v0PGbVpz2rfSoFq78rDW+MCZId7DS3J92v8tthpmy51g56c72e3QbW3NhreGI2m/Pz/4aa2N+pOmMBdOQSw23D78nPLr3G2YiboxG36WOunS/J3i6NR+xPjv56Vr8r02xirk809iPncX1015CMhE9mv6nXzZm5P8ApE9EeOe24A1vShSPl+OIFSASdPRjbqSH8ifhE4qPNr2bXyPvaJAjhY1FacwD/wAtsW+wHMev/qi8VHU+/wCYMfhjrGhv0IJN/wCzh7Acx6/+qBqBrc+Z91gIjrjxc18bA1FOXdpi9MkDqOQ/V29SPhEap/lycjTe+2uwiA7Hkix6fMC1vLntSgxOiSdks+pPyY6eZ7DeBc539fI3199mDE9otT0brU1/Q2oKc+gFLiuMtFOd7/T7W6bWDNYRjLm63Gt7n3nftFliI3W+lv18NxvodqUvjPlyG2a/e4Omr+v88WZOcFiOnU353PI/DeLFExYIN9q+I2raw6dN9s2XK0DPfuzEddeml+djgLmM/LqbOG7D03jYa9k9xxdz1wczFwknDpdm/CObMrkrynCoxGSs1vRkdAQ5SpSll2TTyGncMpSfdsIlsZJodtvvMOLXoB9qjJKcDzdh+a6RITSZrpVprEBLCVjOFplSZ0xwAAisoZlFMALrNRJrJiiy0hO+H2Ys4qxnKlfleqWV1WVqpBpFlTmZhGJqmzpMsgkq4qStl1kskMgU86klpDoUVe3O0blVrNPC6fqDQVHZdT/lNAOjVv8AZgWJglVLqbdk7scFJrQuhh4gqaTjyT+3h4Z0viP9nDOc4U/tMZyCiV4hYJUJB46f9nkTTjyF8P4l09RleoxpK5RIlipRR1awpVJLEb1+DuPzMCz3hSSvhpcaJwSsQdFitUn7mQ9kzEYhLpClbE+zM2WGE1UYoXVVJ0NSdyD8NhSvXTkTQG1/zdoHw+N+Z2A5c943uIJ82H625s/MWEW9ehFrkDlfUgX8evxa2xmy0sBrufLkdd332i4/r6Cw59dz8zb3D3q21BPrWnhUX8xXQYzZQue4HmLkH0t2LavFA251IHYDUfE6Pr1eA8dRTQ0Brr3B+dqDrpTGWkXSL8/ruB7x53D947mzNuS9vQ+7WLa4b6XsPH9DXwxmpFgHsAS/v5+WsUto/wC8bi9hYH42fvFudP3tKEq+ZoKbadT90864zZQZIO5AP113frFyiW7EB35D9XL9vK3OG58b+QqfoRjNlDmNBr3NvUC/vvFAHB8gOVyPo73veLc7oRofh9bE+tDXGagWDbn5tF6jY7OT5EaevD7+l7e8bE7mtPMgD17o9dgK4zUb20a773HwP08GDs+4H+6Bvpqz6aHtFudNa1tRVPIDXGbKAAuNQfer+O3MxQ6l7hwPUj9COdgO2YP2Vk6dclfGXLy3CWoWYZOnLLP7rbkfDT6BinAP4nUyyDSroyMer/8ARu4tMXhnirgaphMqmr8rYtJlE/hRMrafGaOpmJDazE4fSpUX/wC6T0jVb7SFIlNVlavCWVNk4rSLVuUyJtHNlp7JNRNI5cZjLfj05jWSGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCNFb2oc9GYO312kY1CypEJm6UyNI7wUEKy5k/LcheSNQB9olzyinUKUoGmmNaM7TPbZoxdWwny5X/AN1TyZR96CLRpN4mzhPzzmBYuE1kmR/9xR09Ooa/3pZ5eseEEGhHKtvBW/qT6Y4edvQ9xZvQD1jgC7B97P3BZvQD1icjQc6fIH8K4iP5j1YPazhtOpuWvY84sWLA8j9H3RPbNxzBNPMWp/eoT/WmIVflPaIVgsez9gDp7omtn6VpzI2+vpjHWNNLFn2117W98RLAuNr3/wAQH6W1i4NEd0b1Iv0I/wDer0v1xEdebW9LfBv5xCoEsdPw6dbE+57a26RNaPWoCb73SbeZ1r0PWkKgz937vr6Ee/1sIBH1dxf0b3+s5s0ppZVL7A2+p16+NMdYu/MRCXI7Ai3MF/RtO3r5B7QuSDLJlD51lzQTBTd0Qs5S2juhmbJQSxGKCfhpM2W1BxQCVCKh1uLW45GCmdTTOMezNyi6BZ+E6jiN/wAJLdmDWj9I/wDRAfaoVnTI2JfZszhiE6dmbw3olYx4fVNZUe2mYn4eTalEqswGWZhM/wBpkrE6mUmjllcyWnL+L0FDRyqekwBQPnJp+lyanbcU1sajTc1saigOJyCNBbqGIZtRt01BtcR7YomG3a9+pfr0cMTfXSMmPskOHMHxM7evBBqZQ32uUZEjJ/xPjWSkEJjck5fmEwyrEkqCgkQed3Msxlwe/wC57ie4paVp5l4e0Ka7NuFcYKpdKqdXKSdlU0lcyQeyar2Ci9/wgAh41a+2xnCdlP7NniEqknexrsySMNyfTzAWJp8wYnS0uMygxD+3y8MXkAhmMx1AhJSreUejoeXwsTHxay3CQEM9FxK7VQxCNrfdVcjRltatQDTWhNNqpMmZUTpVPJDzZ8yXJlA7zJqwiWPNSgI/O7OnS6eVNnzS0qRLXOmHlLlpK1nUaJSTqO8aYvEHiDMuJPEPO/ECcOBUyznm3MGZ4tKVlTbC51NYmPRBsFVCmEgGXm4ODaACWoSHaaQEIQAPajLuXqXLeXcDy9RJamwXCcPwuUWZcwUVJKp1TpoDgzp65ap05bkqmzFrUSpRMeOuP47U5ix/GserFPU4zitfic0BRKZZrKmZUJky3ZpUlC0yZKABwSpaEgfh4RZ4eMpS4Btvvbr5jSopagxmTZDvbnbUaG/6nTubxhondunu59zfYkO7WvLEbpfXqK9RSmhNuh0FxjCXJPLdh27l3Yerl2N4zETnAvyZrnXfsb6ciSLxd2Y7kSQAdaX515bEVPOwOMVckFw2vkdfR9b7APyjJRP63+XJrAvfsTFybjhz6VsSa38vXQgg2virp+Y62fp5uzWfbtGQmfo5fc6/CxJJfTzG0S0R4FisAV/l6c7itNfAX1xCqmf93zYv8/jEongvsw13fyfS1vgIr/bU8x/vJxH91P8AdPof1iQT9yq/f5Ew+2pH7w9U4fdTyPof1gZ3JXdz8GMR1xw071aVp938L8tSD6YkFO23oDf0AiNU8bbhww5fz2G9ohuxwNaK8zQV01A8ufPpjITTtYB/XbU9ex6CIlT9htzOzPrfmUtvaLY9Gg1+KvmKHS1vGlR1FgLZCJLNa/Qd/IWe3axMYy5z3vytqA242Op8zZw4tL8YL3rXw6emlhoKA2JFMuXJJ2LM+40bU+rs29mvGKub1Zrtvo1ztb3RZYiMF71FtxYEm5+t+laWOM6VIfa/YhtAPdpv3uIxJk5xbqz207dOTAWHSPevswOJkXkntd5Rk6IkolfEmQ5nyLN2FKPu3veS5eZ5O4hJPcEU3P8ALcsaZeKfeJhomNYbKftS+/0V9prLcnGfCXFqwy+Kry5XYbjlItKfxIKKkYZVpJ1MpVBiNUpaPymZKkTFD+zS3d32cMwzcH8VMLpAvhpsw0WI4NVILsoKpziFKQHCRMFdh9OlKmJEuZNQktMvtIRzDEZDxMHEtpehoth2EiWXBVDzDyFNPtLFbpcQ4ttYBFQqxtjyvr6CjxWgrsLxGnl1mH4nRVWHV9JOHFJq6GukTKWrppqbcUqop5syTMDh0LUHj0xkzptPOk1Ehapc+nmy58mYgsqXOkrTMlTEk2CkLSlSSdCBGEWeQC5PNppKHCVLlcxjZctSqBRMDEuwxJFqFSmq0pqepp+SDM2X52V8z5iyxUKUufl3HsXwOctQZS5mEYhUYetSgAGUpVOSWDOWAA09MMNrE4jQUOIS0gJraOmrEAOQPvclE5IHYLsQ5F35xYHVWAGoHKt1G+96DU8iTuMfPQGfr15fAm9ttIzSwPQe/wCdztre0W9ZFSdgCTUW0oK9TfTrblmygWHPTU6na5s1hyNt3czC/T1N3HRrNfXbSLe8q/yNTuqpPjuDf+IUpjLlg8Tv5t2CW+fcPvDQe/m+wtvd+Z1Yavb3FD4vAkV5moHTc77HGYkP2JCWHJx8LesVFyOQAffqfJyduTxbnCKU0oeegFa/OtdLg6YzkAAW5W2d7fDTfTUxUnRtwT3J19zgbuG5PbnTbW/P+0aGp8KnyPPGZLDOeZDBuQAa3PSCRpbVz5AWI8z8Gi3um41p8Sjf0rz1PpjNQLpH0+vxirflDcydrEh/mNi/lFudpXlUgeBArvsCSL10vvjMRptr/D5P56CKh7O9gSW3d203Z+0W9ymh3rX+8fxOM6WLdmHp/Fj8YoG1bcm+rAA+rkHlq1tcmfstJwpnitxJkPfomZ8P2pwpupuqR5klcElVND3RP1iuo79N8ejP9HNiSpPiNn3BgpkV+SZGJqTupWE47h9MlTb8IxtSXu3Fs99eftGUwXlvL9Y15GNLpgf/AOcoKiaR5miB6tGcLHr5GoMMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEaAXbmjlzDtn9qp9w1LfaA4rwIIr9yW50nEtbGmqEQqRpqmg0rjVvMyuLMONl3bFK5J/2KiYgD0SI0VzuszM3ZnUdU47iiR/8A2aybLHuQ0eYknTw+mteWop05Y46oXJ6/HRvQv19Y4moO55+VlCze9+vPWJqDXyOvQ1oPWhp8qjEStQRu+mvcdxYnYREfxIPZz5XI/T6MTWySAOlvFNaV6WviM2JbTbsbiIy7DkPn59PV4ntq0PLn4UrT1tzBvXGMoaj4d+uj7P3iE2DHX5g2PoWvsUt0nMm9LA0oATuLjTzO9bU6QHy52ffXXty56M0QqFjqzvzLEXb4bMO95zaqEai4URpY2NeVNac611GI1jfmG68ww66fweIxuLdD57c309+jxObIrTb7vPw9QfzNsY6w47X+voxEoXP+8O41a29ifUxDnsjgczySZyGZpKoOawjkM8UgFxpdlMxDRWCgPwsQ2zEsKUCEvNIWQUimLULKCladUnyIL2Ouo4gbaR2H4Q+KWZ/BLxPyV4q5NnplZhyTjlPi1IiZMmyqfEKbhXTYpg1cuQpE7+rMewior8FxREtaVrw/EKlCSFEEYyswyePytPZnl6aI7sbK4pcO4ruqSl9qiXIaKbSr4vcRcMtqKhyDQsuoJNa4+ykpmJCkkjiDgg3Gx8wzGzR+1/we8VcreNXhnkvxUybUioy9nXA6fF6NJnSp8+gnlS6bE8FrlyD7MYpgWK09bg2KSgB7LEaCplFIKWjNx7AaVpmHa/4hzFxAWmRdnrNEW0sgHuxEbxA4ZyxIBuO8uGi4yhGyFihuFdneE8kKzFWLKQPZYPPWG0Cl1dFLYciQpVg4NzaNR/6SLEFU/gflikSoj+sfE7B5K0/3pVPlnNtWSf8ADNkyXIs5Ta4jaY7SWYV5X7OfHzMTDim4mTcGeJ0fBLSTUTBjJc7MuUFA1TWOMOkrp8Ne/U0rjb3wyoE4p4kZAw6YkKlVmdMryJ4LEfd143RfebHVpAmFt2bd48FfEeuVhnh7nvEJZKZtJk7Ms+SQSCKhGDVn3e4uHn+zDjR3jTVh4ugFFct/Cg+9rUeHnj2kmSX0uw110fpe4t10tHj2ic1j5X0bS/MdfIjSL1DxwtVV9zXw/mpavWhF96Ya5OxG3LvruNRfludYzETdLuH+n/XVrbxeWI3Q963j4/zWqNTzB0pXGGundh077227W69YyUzjYufWzevk2w1vFzajyP3j5n8e9Xnev0OMVdOC7i1/P3NdtBr1jJTPu+3dzppz38nuNYntzDT4r+Nr+YrQX33xjGm7nf56MRvfvdonTP2cjTr8eW7PEtEf/NalrmnpX6b761iMgvoPfoNNND9cokE4WLhvN/UW9A3KKojhuoU6G/zXi0yDsn3q/Q/CL/b21/5vr0aPwx4vRQp439Ar6bYewO6f/F+nyHSBnjmf979NfSKS4/8AmseppXwr54vTIL/lHLS/vF3iwzhzAew1fk30NIiOTDfvf8Qtp1NL03GnPEopyGd7dPSzD62aIlTxu56P6v57HybSLe7Hg/vddaC3P4q+BO+thjJRT3snW2ndtgPntYxAuft9cu55873GkWt+OF6q1qKWvborf0IrvjKRTtqNGb9NLe5g12ZsZc7mX18/JvotdtbNER1RTvAUrShPWlq8tN6W0OMyXJ5BtOvnoPXdhfWMZc2zu3NixN/Kz395YuI7a7M+a3MrdpTs/wA9Q4UIl/GnhiuKKSarlr+dJNCTNoUJJL8tfimfBw1ChUHiXiXhScT8N8/USkgmoyZmYSnGlSjBq2bSqJNv7Oplyl7XSzgsY5R4dYmrDvEPI1alRCZGb8uGaQ7mQvGKOVUpcX/HTzJqCdL3BGu6s8qhIrQiqa6WCviV531FNzapPi4LgHnHsKbEjlGHXjFDJgeKXECHAIT/AJVziJSNgiNjHI5CQOQTEhItcUqSbH8u/wBp7CRg32jvG+iQOFH/ALS811stLcIRKxfE5+Ly0JZvwol16UpAuUpTc3VHof4d1BqsiZRnk/i/qDDpKi5PEump00q1E8+KSSeSjpy6rdVtW/1JFehtS1d9TUW6SQLi1umwG3JjuNW6a8x82G/1/EXAiCtVAdBudNE17t7itxTWtNBQVzUhhroGt118tfc8XNcJ6382floBfzvFudVXTfa2/wDS3iKVtfLlJYP6a6egd9+R2vAuXv68gzORYuQ1t2YveIDyrUpvW42Gx8TWleY0qaZcoOR0D2O55dQCH7FwbRVLlyzuW2e7kt5dQO8W51Wt76b35725HWvnjNQOnXpaw+fmA2kUN3630swsOw1826mLe6dwfTS3wjTzNfDnjNlpYAer9bnTfsOtovA1HkNO6m9WsOTgNFvcNSa1pUDyFyfkeeltcZksany+vQesUNySNdr87Wba59x5vbnSb61p4/eNd+VL8wDuRjMQA4Fuemrbt6fxiuxI0sBoGAs+o3dvKLe6fvHlW3hb5E19NMZyAbdfiT+gHqYoA3MOydtTc/He4eMivsvP/wAwGcL1I4Oz8GmlRnTh+fW9D4DTG/n9Hd/+ejM+oB8L8cIfl+1mSB8ifPeOh/tEf9isM1/7VUQv0wnHD83jPJj2WjTOGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCP5+vbah1QvbK7VrSgQVdorjNEAHUJi+IWYItB8FpiAodKa41ZzICnMGOA6/1viCh1C6qaoX6Ai3UtaNFc5oKc25nBDPj+LqvuFV09Q9XfsR5+bGyKV8/Ctulhep5U1x8FYLjqG+bfBhzjiZvbl+Hu36sGHN9N5jRrbxHgbkHXX+tMQq0fl776HodxEY1IvbTkx+m7C2hia0r8xtY6+FqYiO13O937X7Fu4MRsQSPLqd/ewbvaJ7ZtS1rcyKaV2pTX+Y8jiFYv/LoPXTy7RCoXPViH0trZ+THQ2cRMaVfnvTqNjUitRYakioub4x1BvhyBB/Q63YG7MbRKDHcPbrfTt7hfoIuCToda3vQnum/Qa+FhzGIyNt/Qg/KIjY+6zgcrb6M+t+Yiag2F/ukA16Uppp3q3Na1p4YgI9/Lr35afwixYs9ufRruO2zdOV4mtquP5rgbAjXlqK7E2NKi2ICGJF/r6f9IiUHflz3bnpqDZzuw1BMeau0hkL9rShjPEsh1Lj5G39nnCWRVT8lUsrbiykUUVSp9ai4pFT9iinnXT7qCSUZtHN4VGSo/hU5SDsrcf7QHS6Wu8e0P9EP9qYZKztiX2b84YlJkZa8RKxeNeH1RWzPZIw3xAk0wl1+Ay5ymlJlZywunkGilTloCseweko6Ljr8wKlzsg//AEfSZNs9q7i9AKICo7s6TpxhRVSq4Lidwvq33eam4pxyxp3WlVrWuO4/CYgY9iCTqvB5pB6oraFw7t+8SwFmZuXpt/SRylTfBvJM9LkU3ifQIWG0TUZTzcOJ9glclKG3MwaMQdmftgQz0d2Tu0owwFKdRwP4nRoSknvKRLcoTaZutilytTMK4lCE1KyQmh7wGNw/CKoRTeKnhxOmEBAztlqWSdAajFqWnSSdAy5qSSWAZ3DR4O+LElVR4X+IctAJV+xmY5oA1Ip8KqahQDXJKZRAAuSQBrGmpDTCw+LlvQ/83T9UNfZZE7Y30DG+77i/La/dz5ClA21+vr1bYRe2I8Gnxaa1Pht3qdfHyJm/AvoX3/lZ2ufQD920KUn4fXr6Ns0XVmOpSivRWvhVW3I28K4iVI5aM7j+XxDxMmexu999O2nPf5sIuLUwI/eB89deStefyxjGQb2t2Y28rctWblE6Zw3IPMcn68vlyiciYDc8t6mg5fFpy1HzxCZAuOEvt/MD3fQmTOPPo4uOu2vqTuYkpmI/jGtqk1/5rXxEacDlbZv/AExeJwfXTQBwO+hPw0isJgCB8Z/3qfVdfXD7uOl/rk3pF3tyf3gO5L+d4GYAA0WfWv0USOuH3dOtrfWnDeHtj/efsSfgTFBUwT/HpyJ+fx4qKccgen0mLTOGxt2JY9LDXz0iM5MRoDXWwPpX4vy6YlEgacJ8wPn+sWGbu576dLcn8n3iA7MCa/FQeNetAe94/qpxOmQXDjRtveSw+fS8QKnAXfbQfT+nS0W16N1Pe3533t97XfrXUDE6ZATqG3fd32cX7huvOIFTuWvr1fbt0u+0Wp+PAr8d779P7Wg2rpXlTEjoRyJA/TsT5tzaInUv67/q3o8fdcD0vTrjtwRk0N3lxE34x8LpVDoQT31PzHPUhg2UppUhSnHUAUBNdBUEY4lnqtRS5JzlVTCEy6bKWZaiY+gRIwWumrJdgwSg23FtCI5PkqlXU5yyhTS/xTKnNWXKeWA4PHPxmilJZt3VbW7NpfeafcBUs1sVE+Ve93RvW5ruLlNBUY8TBYDsI9lzcnuYxBcbopMRxYz84gghOZItg3BHvIUNQqxufhcZWDyINDUUP5j/ALWlVLrftM+Ns6UXSjPuK0ZIL/2mGy6fDp42uJ9JMSRa4Ym0eg3hnLVK8P8AKKFAgnBaecAR+7UKmVCCO6JqdNY6gWok02H5Ene/+7S2lRQdAykjVuXrt6b7vqTHOufqRo+jX1PUbgekF1dPGmnSnwjal7kVN6m9yMtKXIFmFn2u4O9/TRj0Nb+avr36P/iEW9Zuan/E668uvLwGMxIYdrt8rfLuTqYp0Yudumo/W/TrEB1etNBpypoDqdTXzrU3NMuUki5N1HfZ+dg1m/TSLrB2/wANzoTq/kGBFrRb1qqfOlep8T/jTwGM2WASPJW2gsl/jbRuetBq/IOH3YgD9Lcm5mLe6oXPLptoNCdddKmtRYgDNQPd8d7HcaOLN5xfpzJA6n8SvoevMxAcIpTQ+e9yRroAaDn4Xy5adAe+nncd2B0taKC1xoLnTU2G578rvuGtzqt/FRFedk25HUg6UFN8ZktLnTkB9dPdA2YPoCDqe47a3HI7piA4aevyAqd/EaUJoNjjLQH13v6sBr5P5wFmfk+pFza/k515sNIyL+y6P/3gM3jnwdzAfXO3D63Sm39Mb/8A9HiG8aMz8/8A2X40PTNeSfm5PUmOhvtEf9isLF/+1FEb9cJxs3Hnt1B0jPNj2SjTSGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCNDL2k0jVlzt39pyXLT3DEcSo2fhOgKM0S2W5lSul7uNzYOE2BKqnXGsucJRlZmxhJH5qtS/OchE9JZtxMD7kRpH4hyPu+dcySyGKsRXP8qmXLqAR3E0E9+8eKmlbW5eVtem3hWgtji6g47X+uvLrHB1C56hx30LNu1+4D2ia2qh6n6pr+RxCRqNm9x5+vrESrEEae9iHHnt3LDWJqCAa7a+RrXzrW2ImsRvu+zaN5WGr9ALxrDEHR/lv9conNq0Olu71rqm3yvqTzocRLDjtf8AWI1cwNLjtuH5a928omoOnqKHcC9PpenkcYyxv5Hs/uboD1DREob+lvMeln0azWaJzSwoUqDbl+6RU7AWOtdqb6xkHd9WPfvEKhbvy5iwHWzswHXpNaVSx0sDrvodhrY03vYjESxf1I8mcfMctA+1mobcD1DBwednPTQagCYhR0JoTSnMEX8aEnS1AdjXEC0uH5e/6EREXIZ+VnJG4HUG76i5L713WoeLYehYpluIhYpl2HiYd5PfaeZeSpp5l1JstDralJWk17ySqoNsR31BIUCCDuORHbTzEZWF4rieAYrhuOYLX1WFYxg1fRYrhWKUM0yKzDsTw+ol1dBX0k0AmXU0lTKlVEmYx4JktCmPC0ffeyQa/wAy/tJZJkp5akS3iVw94j5ey0+64CIyDbk3+XjEMXFULkVCJyRGQTzawHHYmFDyEKbdaW52z4WVqU5mp0kgKq6SspSl2/tEShVbk8QUmlJTvcA3EfpVzb46UP2tPsCYd4oSlU6c15PzDlil8ScKp5Xsf6ozfQVErLmJTpVMCtMnDMaRmKhzBhSpUydJk4disuimTU1tFW09Pt5Z2y+3nPJGc8nPAOM5tynmTLDzZIAcZn8mjZS42SqwUpEWpJKqggmpIGNqcFxBWEYzhGLIPCvC8Uw/EkKv+FVDVyapJDXcGUCGvyjzCxnD04tg+LYUscSMUwyvw5aToUV1JOpVA90zSL25xomqefgYuJgYpK2omBiH4SJZWlTbrURDOqYfaWhRC0LbdQpKkKSFIUkgjvAg+19PVInypU6WoKlzkImy1JIUlSJiQtKgQWIKVJPECQQQQWaPGGdTrkzZkmYlSJkmYqVMSoEKTMlqKFoUCxSoFJDFiCCC1mubEwrT4q1pubaX1pawqK9K6DNTOt6nmOz97nR/UmApO4226dtG1ux7GLuzMiB962ouRUHlfYdb89sZKZ7b9Du3nzsNrFjq8RlAOmr2829wfQAcupuTUyr+9YEbn5XsfGmtgbYlEwH8wDl/kC7X2253Ooi3gIYg7WLkP21fTU/rE9EeDQFVCBzVXfrU/LkK4ueWbjm1228hcWt5PB1jc32Z3b3fyfkYkJjhaqqjf71deYJGmnlXlgZaC7Kt6A22sfrTWK+1UPgNbHqDy+jFX7cP4z6n/wB7FvsUbMfQfECK+2X09I/DHAarP/EfW5t42w9ijmPcfgkiHtl8x6RSVHUt3hfl3geupH65a4uEtAuVAD1HY2DdPf1GYouz9rm/TbqxtYxGXH0r8e/81QOu/X8dsHljYH08tBfrodWi38Z5uH6dQ4t8eWj3guzH+a3iRpY0ub1NK3F9RbFpnAaABrdbg7sTtbQ3aAQTvvq293v5adyCYtj0xN/iNthXf+9/Q7d6mIVT3cvz6XG3utfoWGl4QPVwH2tvtvztbTU2d+YG/wAXoTXexuLim1d9wMYyp2v8hps9+9xvs8XpST9dB6nRiSLesevvZ3ZbVnrtsdnyVBCnUSnO3+WrgSCot/5ASuZZ0ZeINQEtxcihrnQ0CSFUx034840MJ8Jc7z+PhVVYQcIS9nGNVMjCVpGl1SayZ3a4YFu3PAzCDi3ivkqSUlQpcW/rZVgQDg1PPxVCuQSmZRovZiRuwjc+ccJqAbU51CQb0reqj5062r5KgOWGpsI9W9IwuZ2mqJxm7NU2QrvomeY53HoWDXvJjJlFPpVW4PfS4CCTShG1MflJ8UscRmvxR8R8yyZgmycw58zdjUqY/EJsrFMfr66UsK3CkTkqcaghnBj0ny3RKw7LuA0CklKqHBsMo1I0IXT0UmUoaW4SguPXVx8e4sAEVFNT4W7oFgL+dRT7wxw5KWA17/E+T/xtH2hfl12uz7OW2Ye4mLe4v1v60pyoQB8xS9KjJloA9x67t+tub6Egix1e9y2oHfdxvzYvrEJ1VAb9COmpOoOn5igqTlITxEC3MnpozsRc+/qLVHM20bk+g12De7eLc6rb09LDTa1dj6DGchPL3bXBO9n0DPuIqeTvqOr7nnfTd76C0QHFH50Nb9SfIWqdCfGmXLSw6nTs1g30fcIqkaPsyraudB1/kNNYDqhuRa58NtNLj5DGYhOgAf17t8tyH3gdhZ7k6b3LvsNW3AHcQHVE2JAvTrcgm/oB1TyF8tA3+uXrc+RHlUc21udWAH5dHA2J5XeLc4oUr/FfrTYX5/M13Jxmy0sL9nHMuSfSw1a3aKO501sDfa537bM76teA6q5G33d/Ek11t8zfXGXLS5FtLiwO7BvMnVtAdou5aMTy2GjkdLh76DYxko9lrBOu8cM9zMD/AEEHwrj4Fw7B2Y5uyi+wOlUSt8i96G2PQf8Ao76OYvxZzfXgf2VL4dVlGthb2ldmXLM6Xf8Aw4fObnc7Rr99oqckZSweQWC5mY5E1Ox4ZGGYmhZblxVKPc8Z28ewsadQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIRpKe2Ty67l/2gPFiKcZLTOaJJw4zJCLUCBEsO5EkUlfeRspKZhJIyHJFfiYWKWONdvECQZeZ65TECdKpJyXGv+TS0EjW3EhY2uI078W6cyM84mtiBUyKCeg2HEDRSJJUD0mSlJ/2dWjGGhXU0018wfO2tr33xwg8+Yf683jrFQs4Fxdtbbj0iag6c/wAqC23K23gRiFQY/W7m+53vv3BiJYcdDvze4ffze4tYgxNQoEa6X8QeYG1tTppbESgxBG7D3+d+QY7lnEWH8SevwI2v6PExtexP5706Hztz2OIzr3uPP4to+8Ra/G/vv7/Vr6zkKre1TWviKWoQK2ptoKnXGOoMSNvr36/KImZ0+nY9NyCbXflyMxpVwa2NbUr4pvufDkACBiEhrcrcn1ZR2a7O78+URENbn31s2nQPZhbW8TkKvXXTTcGh57X3Oh5kYjIcN6d/r6eIiGPd/L3diLCxtExCqgdALjkN+Vq0NgdTawMJGvw+v423MWKD6WOo6d+h8+5YxKQve4071700qOVN9tCSaXhUOEg6jqPj3/VmiMh/kPeU+8ADsG1avJpo/kjiXwh4zyrvt5g4K8RssZ/h1w6HFRUykEpmsI9nDLaQ0FOOs5hy23HwBhkpIiHS1D99pDzro+zl3FDg+M4dXlREunrKebMa/wCBExPtAW2VLK5a+ctaraRuX9i3xzT4Y5xzT4a5nrly/DDx6y5U+HuaUT5qRQYHmGtlT5ORs8zETVIlyTljHapCcQqkzEmRgeIYnWexrJ9DR0x3PpfMYWYwcHMZfFsRsDHwsPHwEdCPNvwsbBxbKYiEjIaIaUpp5iIYcbeh3m1KbeaWhaFFCgRuklSVpSpJCkLSFJUCClSVAFKgRYpUCCCLEFxaO758idSz51NUSplPU006bT1EichUudInyFqlTpM2WsBcubKmJVLmS1gKQtKkqAUCI08PaS8J3+CnbB4oQTUucgMvcQ4//O1lZYQEwkTA55iYqOnggUoSENQ8vzmzmeVtwiUtmEagmm0NiGVDuOep/gJm8Zo8MsuzF1AnV2ByBlzEAS8yXNweXLk0ftiSVKmTsKVQT1TTxCaqaok8ftEp8s/HnKhyt4m5glJkGTQ43POY8PIDS1ysXmTJ9WJLAJTLk4omvp0ywB7JMpKQODgUrxGxMSACDXQnntf7vhUfIk1x3Yie36mz9y/v5ON46ZMsG/qN3521tqB2Di0XVqZbE9aG2m9adOe4qTpjJTPFr9tOfpsT3IZtozK1tz08rjmPVukXJuZDY8tPA9N9zb8MTJndX5v5an378zFnAfre/a3v8onImX83Sh/CqevLamwxKmd101Y2ctr35vr1eLeE+/49dOwfoIkomXUeGv8A3bdbYv8AbfTae/8AWLSkjZvL4bRUEzI/ePz/AARi4Tyd27kj5xRhyHoIGZE6q/XmjAzyN37En5wYch6CKS5l1B/Dy7t/Ei3mcWmfvp5fFz8IuCSRo47Dbv3+miMuZVr8VjsNP+WvyGIzO66XBJ/S53Gv6Q4SdL/XPQ+RMQXJluVeZt8u7rtobHUYiVO6/L3nyHnvF4Qfht387/7PnFsdmOtzvpoB/u/hfrTEKp/XzcHTa57ta4NokEs8r25uGAu7X7dPy2i1PzCoI71NfHW9yOVOVOgxjLn7P5u3vfk2j92iQSwO/r3udXA306sDGer2F/CByZ5s4wdoSZQDhgcvymG4T5SmEQ2DDLnU8el2Z84rgVKTaYymUQGVoVx9HdU1A5ofh+8pMW8lGl/2uc2hGG5ayXTz0+0rKleYsSkoJEwUtIifh+FpmjX2NRUz8QmJQXCp2HoWwMpBO5P2SsqmbiOZM5z5KjKo6ZGXsNnLDy1VVWuTX4mZb/8Af09NJoJalhiJNetBKhMUBn/4qZpOUuH2bJ826GImEk8SzAOlVPdTKYBEuly0/wATiY6LYcCNapOgBJ8rftF5+V4Y+B/iZnORUikxDDcrV1Jg1S7KkY/jfBgWAzpYcFUyTi+JUU5KQbmXf8IJHohkTBBmHOGX8JXL9rIqMSkzauWzhVFRvW1qVaslVLTzkk9bXaMPZPdApyAGuwoVeAGiiRy6j8v0qWEJSkCyQBzLAMB3LdbubtHoqSS5IAJuen8Tqdb2fWILrnXmQT8q/UAeKcZSEOe7cttW3sLXu+ouHbN9HRxb3+VywiEtQ3NgD40H4nnzOtaYykp5Dfyf+A2vYaM7UYmw82Nn92l/edNILi9/IX21AoBzNVG1/nmS0N1Jfb+dm0bbnaL+Tb2GvIORYluWhAG7kRAcVr00G1fl+tNaYykB29f9l99bndm90U17Cw9Q2xYk6nryBEQXFa3tz5getyRseQ2oM1Cd9rN6fIHl2La3aa8wTf8AeO3YdbaX1MW9xViTvrzp+6K6UFL389TjKQk66cje/nqTu3VtQAKC+rEncG7Wd7vyTz184DithvUA77FRJBr0uBztZOMxAuNwNeXT+Xxip0fdRDDp6+ezE6uAYgOq12r+NgOV/Gx6VIzEJsBye/vL66M3O3WKfOwu1tVGxb5MBqGBguq180jXU1JN9fTblplyk2BPfTlYBwex05jYvXY+YGmzsOz6jTmNTGXT2UErC47jZPFIBLUNkeVNOUugPu5mjH2weS/s8MpQoLtpN629QP6OPDQanxWxcoBKKfKWHS5mqkidMx6pnIB5LMiQohv3EuY1g+0jUtKynRg2MzF6hSdiUJoJaCQbgp9pMA/xG7u2ZTHqPGrMMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEaqX/AEgnh9+zeNPAbik2P9HnDhpPMixSUI7qUxGQczOztmIdUEgLfiYfiEWUqWorLMtQindaQMdLeKFIUYhhtaP+/o5lMWDfipZxmpJPNQqynshnEazeOtB7PFsExMWFVh06iUALcVDUKnJUS35lJrykFyWlgMAlxr/tqJGuhpsPA23Na9a2NjjqkhifUfMc7aXva4vbok3A9C/1p200OxM1pVRT/AUF9gBUeNB8o1Dfy9dO7G7e+ISGcNYctSCbW3Y9RtExtWnqNrGv631uCK4iI1B+vr+RiPRRfd+wIA6chq7dImoVQiulj5GtCeuunXnTEJFjfQ++w2G7WPe2piNQYvzv5/Xxia2r8BS1jWx5fOleSdY1Bx2/TsfgYjUN+VwNbEaef8eUTEKuPpfU/PTSo9K1xjqGrfEXGra6c2I7lmiJQcP/ADbR+4Lc9RozRNZXUAbkilTW41pXmKior5CmIiGLfTbP15hhESg4fkC458j2e/ruCIloV3SKaVoOgNa35crgDYVpixQcH6c/XRzo4ER8wfo2bnpfkdRExtehB6U6frQ6E7aYgIex+vrffa0WKB/Uc+WxuDt35l5SF0pQ22IP3a0oPMnnQaVFARCQ1iHB9/1t02YtES0pWCCAoEMoG4ULuS+zWIL3cFzrsnezs4xwnErs+SLLDzndzHwlTDZFmcKpaT3pHCMKOTI6HQmqmoIyJpMlaaVQiMy/HhCUMfZxjavwyx4YzlqRTzFk1uD8OH1AUXKpCUk0M4b8KqcCR+K5mU00/lKY3o8KM61Oc8tiZitXOrcewud9yxWqqZhm1VdxAro8SqJyiZk+fVyQUVVTPUuoqq2nqqicta5pWrpL2unZji+NvANjillCBiY7iBwJ/aWYPsUHD/aoifcPY9tg50l6GW0l9cXI0wMFmqDU2XO7BSudwbcK/ETRhxjc77OHiCjKWb14DiE5ErBs2+wozNmL4EUmMySsYZOKieAIqvazcPmghLzZ9JNMxCKdSV8D+0h4frzZlBGPYdJXNxnKRn1nspSOOZWYNOSg4nJCUjjVMpRJlYhKIJaVT1coS1rnoUjU4ZmVgQq1AQQQfOybgbHS9iNB6MpnX1vyHR9QfN36WvfznMvcfXT4W1F3eLo1MtB3vz/5fy863nTO6tbct878/PWLChQ69ouCJlTflp4f2a/S2Jkz2a5/hzccx3i0jmNemrd/oRMRMqU+Ijobjz+HEgn6OR6/Hme5iwoG1vf8b+hESEzPkR4/07oBxIKjd3POz+4xQoD2tzP8Gv6xU/af86fT/wCXD7z19/8A6oez6+7+MP2n/On0/wDlw+89ff8A+qHs+vu/jFJUz5keP6SR5YGobduelx1c6GHAL9mBd/kPRyIjrmVa/ETvyA8KJ08xiIzze7XuHJ9NLDf9Wi4JG9/QfDXzeIS5jqa3O538u7z1FOtd8Rqn63brp2Or69t4uCeQ6aefbrbvFvdmX8wFtAfHT4f1ep5QqndX7XOvM9vN9IuCC2w6fyiXluUZgzvmbL+TcqSuLnmaM1zqW5ey9JoFpb8bNJzN4tqAl8FDNIQVqciIp9ttJoEoBK1kISpSfm4jilHhdFWYlX1EuloaCmnVlXUzlBMuRT08tU2dMWolgEoQSdywAuQIzsPw2rxSuo8Nw+RNq6+vqZNHR00pJVMn1NRMTKkykJAJKlrUkDYamzxvZ9k/gFKuzBwA4dcGZdENx8dluTiJzVOGUIbTPc6TlxUzzXNWkhIUmCdm8REw0obeLkTDySFlkJEPvusLeV5OeIWcKnPmcMazNPSqVLrqkooKZSio0mGUwEjD6ck29omnQhdQUhKF1UyfMSlKVhI9ZPDzJ9NkPJ+C5ZkKTNmUNNx19SlISKvFKpRqMQqEgXEpVTMWimSoqWillyJa1LUgqPUva1z024qSZBg3ipTKk5gnaUKIbS4UuQ0ohXDWq1htcZGPtLAS2hyXup76lAteKH9Jp4uSJ83J/gphVUta6WYjO+b0yltKlT1S6mgythk4oU8yeJE3FcWqaaaAiVLn4JUpMyZNH3fdf7PWV1oTimbqmWEiYk4PhRUAVKQFInYlUIcfhTxopqaXMSSpSkVcv8ISfaeHXHK13+VdKAW+5yAuceTCU9Ow5aXNteZjZ7m3mfXkSC4+mcmGtVfM+FTt4AbD6k4yUpYNyuT/AA93xsLNO7e7X1I12A66Q3HPSnOlSB96lrbAmxFQbYyZaNzsXTzAOxLuCz22N30i4AAFzprbW4tY9nvZx1iA4utq3/O5Og150HqDjLQO3lz0AG2t9TtpaKa8uulh7hu9jctoYguKFDtb5E+f3gOQoOYOMyWgjub9reVgdD5sS4Nwt1uyR1Gp2sLgkDrreILiqn633JFE7mmldtNaWykp0G3y+F7+h3sXyFzuTqTffmObA6AiC6vTnXXruRbRI0voK7hWMxAa/wANOp897fMCoG176h9Bdk35+Rvfrb3FWN7ECnQD1N/11y5aW729duWlz1YiKOSdeg9znUPodQBbQG0QXFa62Phe3gbDnY2rcAYykJdg1vgBbfmer2OgvFddG5DoB17j3W3UIDq9dKCo2rWlztTlfx01zUi132ezM/PVvQ8gAGYddLCw01IDNawHWzt0jPh7MLKK5LwDnWZ4hkIfzrnybRUI/oXpNIoKXSOGSRStWZxDZgFakUWAAkhVfZv7AWWVYT4OYpj86UEzs1ZvxGop5o1m4ZhFJRYTISbay8TkYzoSn8dgDxE6YfaCxMVec6TDkKdGEYNTSpif7tVVzp9XMOrfjpplGW1cXOwyQY3mjomGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCMJHt3+ErmdeyVlziXAwwdmHBriTKJhMXyuhYyjneHdynNUttgd5x1zM7+SHCQoBuGh4lxQoO+jrzxJoTUYJKq0h1UFWhSjykVAMhbDcmcac9ACeo6f8acLNZlenxFCXmYTiEqYtTtw01Yk0sxhuTUKo+gSFEgxqBNK0rSlKGh/msbDwBIFfC1OhlDdnLuH5Ncb6M7G2w3jVA6sHu3Qudr7XI18zE5CqHbxrpvWt9RenhfEZ9x5/V4sUNDq23N9fSJiFbjmafiLeda0JvamIVBj2Af9flZwNHeIlBx5C+vY3207WuDExtVQPXlXmKc+XLmRrEob+Xbkeje8tZ7xYfxAhmPXY/Xu7xLbUNP0R8jblXQcq4jOr+u9/rsNWsIi6GxHx58gNtRsbtE5Cxp4UF7i1/HoKE21JFIljf1+m+tLBojUGPIPfoevIEgag3G0SkLuDrahqdQdPmefgDYDHUGdu4YaFr6bED9W1MSh8fgbjfyIdueoia2vvAdQa6Co/i1Gm513oajuxmx+v4RGoee29jo2/kNL6j96U2sjka22+IX6fevbY354jUnf6GnubkHHa0WAag7e7nblz38gYloXoQbE9TS4FDUi9Bfn40JiUl7H65Xvz2+ERqSQ/vHXRwBr1exEereyB2hIjs8cX5VmSMeilZJzAhvLefoBhZIXIol5CmZu3DkFD8blqNKJrDAJTEPQqZlLIeIh0TR5eOV5IzKrK2OyaqaVnD6kClxKWg2NMtX4agIuFTKRf8AbIFlqQJslKkCcoxzvw3zivJmZaeumKmKwqtAocYlIJPFSLWCmqCLpXOoZpFQgMFqlifIQtAqFKO0TL5hAzWAhY+CioaYSyYwcPGQcZDutRUHHS+NZQ/CxMO82pbMTCRUO6h5l9srbeaWhSFLQoE7eSpqJiJc6TMSuXMQibKmy1BSVoWAuXMQtJIUlSSFIUkkEEEFjG+kuZKqJMudKWidIny0TZUxCkrlTZU1AWhaFAlK5cxCgpKgSlSSCCQY1FvaidhaYdl7iJE8VOHUoeVwB4jzd6IgUwSHnmOGubZi69ExWSo5z3akQ0jjXPfRmSIlx0gwHv8AL7qlRUmbipn6JeBni3Lzrg0vAsaqU/tXg1OlE0zFJQrGqCSkIl4lKALzKqWOGXiiEpDzSirSOCoVLk+dfjt4STckYzMx7BaZRyljVQpcoSkqUnBMQnLK14ZNUQRLpZpKpuGLUoj2QVSKPtKZMyfipamWnxD1BvzrTQbm1+e+wYqNXJ7X/ju2jlnjXwoG1v57c9+fcARPbmRtem1QRXUgmlPClhbXniZM8XvuNN7Pq+o1a/TaLeDbvy+HL16gRMRM/wCaleov6AEeeJBP6976DZnd+ul4s9mHFhvt8mfZ9PnFYTLmpJ31A6X+Hn15ed3t3A67t/H1tFPZjRutyRZ+rRVTMzSykEf2k1+YqPD5Yu9sOnoYt9mOZ9R+kfipmd1I8O8N+dBfxpTD2w5j0MBLHXzIH6RTVMuSk+RB3HQH62162mfa9tA7X+LRd7MOLe8kdrP6fKI65nWvxC1rEVGmtRXmLH0Othn9S7dBa+mz6bfIxXgF7DVtHbqzONNx5F4iLmRv8QvzItvUig+nLxxGqf1azXPuB6A7WffaL+D46+XL+Om0W56ZgBRKwlKRVVwABrUkgUApUnQbkVtCqe+76s2rdtLizDUltRFwRvsA5fTfct0t7jGzv7HLsER+R4OD7XPGOSvQWa59KohngtleZoch4vLuXZxDFiN4hTSEdaacYm2ZpW87L8rw61qEJliNmE0fYciJ5LHJXpB9onxal4uuZkHL1UJmH0s9CsyVslQVLrKynWFS8JkzApSV09FOSJtasJBmVsuVJSpKaWcJ+8f2c/CSZhMuV4gZipVS8Qqqdact0M8KTMo6OoRwTcXnSylJTUVshSpNCglpdDNmz1IK6qSZGdrOmcZXknLc0zLN1n7HLmStDCFJDsZFuEohICHCjRcRFvqQ0ip7iQpTyyGm1qOhPit4l5d8Icg5j8Qc0TVDDMBozMl0klSE1eLYlPPscMwagEwpQqtxOsVLppJURLkpVMqp5RT086YjdXLWXq/NWN0GBYakGorZvCqaoEyqWnR+OprJzAkSaaUFTFsCVEJloBWtIOIvM+ZJlmqezXMM3eL8xm8W5GRKu8ShHfISzDtBR/0cLCsIbhodofC3DMNNpACRT8xue86Y/wCJOdMx57zRUmrx3M+KVGKVyypRlyTNZFLQUiVMZVBhlHLpsOw+QAEU1DS09OgBMsN6IYLg9Fl/CaDBcNliVRYdTS6aSGAUvhBMydMb806omqmT58xzxzpsxb/jL/MqXX9Ur0A0HIDWlq3OONpS3zLe/ctp6R9QjTo5bzdyLuW1G1nuLRHHNR5WOuthf7w3OgHzyEIduWvf0/d6G5NrMWuAaw13PLff3DzOn4YLixU3rzpudheptXw31IrlpT5W1O3Xlo7N5MA4oSNrcvdf0Jbq5ABMQ1qpv58yNiaggClyK8tbHJQjQkBnsGdurcy/PRtzaoDb2Zy+wPkWJGz3A6hoLi9aUqfDXY05AbV8NcZaUt589hydrP2HXR4uPIWLMOg7au19joLsYhrXTfrWoGlyqthcmnje1MZSEW5Hc62P6+VgAXd4pbXVrMdSdg3vJu7nsLe4uu9LU10SNrbq3000BpjLQlz2PqT/ABuf4wI0BZybn1YOdOQtpcXcRCcWTWmt7eAFL+dfG/Q5aQLcti3PU/Adh1io7ty6B9Ws3FYab2s4EBxXnqBf1PlTw8KkDLlI3LXYkXFth1Yi7+bmDtcXFrCxbtblyuAxcXEBxWo0pU+NK8jzPKtTQXuMtCXI1/m3p73AuwNwYW5P5ki51BYDfkdQA8bTfZbyO/w67PnCfKsYwuGmMNlCXzOawzqAh6Em+Yy5mKaQbyRb3kDHTV+DWampYrU64/Q19n7Kc3JPgx4c5eqZS5FZIy1RV+ISJiAibT4jjZXjdfTTUi3tKWrxCbTLIdzJdzrHnb4h4ujHM7ZkxGUtMyTMxSfT08xJdM2moeGhp5qT/dnSaZE0WH59BpHfuO4o4ZDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhHQfal4OM9oHs68ZeDiywiLz7kDMEnkcRFd4w0DmhEGuOylMYgI+NUPLczQkpjn20FK3WYdbaVJK+8PmYzQDE8Kr6CwVU001EonRM8J4pCy12ROShRa5AIj4mZMJGOYDi2EuAutop8qQpT8KKkJK6WYprlMuoRKWoAglKSAQ7x/PHeh4iBiYiCjGXIeKg33YWKhnklDrD7DpaeYdQaFLjLqFoWkmqVApobjGra0KSSlQKVJJBB2UHBB10Lg+e8aHzEKQpSFJKVJUUrSdUrS4UDyIIY2FwXZorNq2JGlzpW5of1bU1oAMY7bAEbi733Gtm5a/lDRGbjsw+PflzG7DUxNbVtWlSK7eGtRtcWsKUAxYoOH1IBYfXuiIhrbMeHU99Pdyd3tEtCqHpcX2P5Heu1MQkWv3+ux5bve0RENfo562t6aHXfUgRMQrfw9fyJrqa+PexGbWL3LCz25NbSxtba7NFqg/wCIcrjmO46ddNIltuaX011323trsa10G0ZGxuD7/r3d4jLKF7k6hu/v7D3xLQvxBHy+WljcnyAqBCtOr3d9foX36d2eIhnHNz35f7Xbm5fQykLpoTrXrtpbmTc1Ota1OIFAjt7t231AGgDbNzjKWPPUHrzHQ+49mImoWCPqOW5pXWlq8611qTZ9fXKIynceR62seV9OTNyArpWR+B/dIsBUcwNDcmwoRUYsUl/q7308zcaam0Wu7hXXa4PIeeoNuxiWlY1Hhe51III+VRWvM0OIiNjp8dD+kRlPJux0NvdZtn00u+YL2eXbFhpB+zeAHE+aoh5TERPuOGWZo95ppiWxcY8gDJMzinHG0ogo6KcW7lqIdqWI992SOvKhYmTswPdXhlndFL7LLWLzgmnWvhwirmKCUyVrUGw+ctRAEuYoqVSLU5RMUqnUrgXITK2O8GfElFH7DJ2PT+CnWvhwKunKSlEiZMUP/ddRMUpIEqbMUVUMwuUTlqpVK9mumTKzH53yZlDiZlDMOQc+yCW5pyfmqWvyjMEhmzPvoKYQMQBVLiUlDsPEsupbiIKOhXWYyXxrEPGwL8PGQ7DrexuGYniGC4hSYphdXOocQoZyZ9LVSFcMyVMTuNUqSpJKJktYVLmy1LlzELlrUk7K4pheH43h9XhWK0kmuw6vkqp6ulnp4pU2UvUFiFJWlQC5cxCkzJUxKJspaJiEqGoZ7QD2ZXEfsnTKa8ROHELOOIfZ4fiDENz2HYdmGYeGrcS86GZVn5mGQVGVw/8AooaDzy00zJ4t16Gg5uJTNYqDh4/fzwq8bcKzvJkYTjC5GFZsSkJVTqWJVJjCkJTxz8MVMLCev8S5mGqUqolhKl05nyETFyvPbxZ8D8XyHOqMXweXPxfKK1laalKVTavBkrWrhp8VShJJko/CiXiaUpp5ilIl1Ap58yWibiqbmQt8XMipBN6n+Kh9D1x3sJ3XkA77Wdx05n3R0Lwh3bn3vbXX1fozRKTM6f8ArKUO5vvWnxW11p64vE8WuwHX5FrfXN6cAt7+v6ekSBM/5/mDX/j+mLxOJFz2sD6W+NvlQy+RPZh/D5RzEyt979ep+uK+36e7+MU9mDqfUfxgZnS/eHn/AIj64e36N5em8PZtofIAfqI4GaWJ79P7wH/fP0OKGcRoX62Deo6dor7Pq/u/X4RHVNK/+srrpv4/Fiwzhzfk5e/k7esVCBvf3eUUURb8U+xCwrb0VExLzcPCw0Ohbz8REPrS0wwwy2VuvPPOLS2000kuOLUEISpRAxDMqUy0LWtSUIQlSlrUQhKEpBUpalKICUgByolkgOWiSXLUtaZctClrmKCEIQFKWtaiEpSlIdSlEkBKQ5KjYORGyH7Nf2RkyRG5f4/drvLbkE3CLhZzkPgVO4ZaIxyJ921Ey/MPFKAeUPsjcMpwOQnD2NaEaqMZBzgxDtMvZejNQ/GDx9QuVVZXyJWe0MwLp8TzLTLBlhDqROpMFmpssr4QF4rLUZfs1H7gpSlJqpe4vg59n6YmbSZpz9RmWJZl1OF5YqUELK+FK5NXjcpX5Eod5eEzEhZmJH9YISlK6SZsgTqfSjLspmU9nszgJPI5LARMym02mUUzCS6WS2AZXERcdGxb6m4eFhIVhC3nnnVoQ2hBUogfFjTmbNlyJUyfOmIlSpSFTJs2YoJRLQgFS1rUogJSlIJUSWADmNxKiokUkidU1M6VT01PKXOnz5y0y5UmVLSVzJkyYshKEISCpSlEAAEkxi34occ4vjNFQ0fL2YyXZHYWt/K0vjmFQsdMIRYUhjMs1g3FKehYucQ6vtMBARQh4mVSiIhoaNgoKcOThpXgX9uX7Qczxf8AEP8AY7L9YVZA8Paqpo6NMpajJxvNA46bF8dnMfZzU0bLwjCWSsSqeXX1Mmdw4tMSnczwByqvDMqS8011JNpcSzXJlVlLJqpIkVdHl5bTMLROlqedInYmhScUqJE0ypsqVOoKSqpZFZRTwrqNazSpvTc2rpqdNf66E40fSkbW95/Ww+nIB77Dvq5O/JtG389dgBvFW7qB1FdyK0NK2AsAdx1OuQiXoTpy5EXDsXOp79AxioHbq7Fturs+g6Pe0QXHPytsLHui/qrf0Bykp+vmbNtYb9AIP79B3a553056mzCIi161O1+g5eJ21O56zy0uXaz/AO8f0u+l9ra1A5XO5se7X25mxtsfxQ1r18Li3kBTw131NhjLQkAP6eYuer9e93eLuTB7gjVyeZO2+urcohLUdTQk20B/ui3ma0F6+GUhPuOhf1PfQt0S7uDQX+L6NcufXR9CCWEQXF6nra51FgNK90VvpS9STbGUlJsBc3c6a6k+73WiugfYAW772s52+T2hOLpb12qbeNAOXgANMZaEgAfrcC/x+FwRaKNzvufgBzLkB3I0uxiC4quluRtbcm9OtCBYmoNKjGShLntqDudh6s9+TizxUDV9f3r8hYcuhCjzd7GIDqxsRyTyA/8AmG1NLXtjMSGsNhqB723PLfQvZ4E3ex2GmrMSbaDqTz0YjtDgPw9ieLHGbh1w/YbU6zmDNMuRNSkpqxIIBwzTMcSAv4FLg5FBTGIabUU++dbQ0FAugjtXwbyPO8Q/E3JOTpUtUyXjOP0SMQI4XlYLRr+/43UAKZClU+EUtbOQhRAmzEIlghUx441nLG0ZcytjmNLVwqocPnmmd/x1s8fdqFBIuBNrJ0lClgEpC1LAZLnbCSlKEpSkBKUgJSBoEgUAHQAUGP0VJSEpCUgBKQEpAsAAGAA5AWEecBJJJNyS5PMmP3FYpDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEaK/tVeAjXZ+7a/FOUyuEcg8rcRn2OMOU0KQlDSYHPkRHRU9hoRDaEMtQEtztCZqlUuh20hMPL4KFZNSgqOumdcM/q3H6xKE8MmqUK6SGAHBUlRmAMAAlFQmdLQB+VCUjYk6ZeJeBpwLN2Jy5aOGlxApxWmSQAOCtVMVOCWYBEusRUykJAZKEIBI1jHg2si9dzTmRrTlUXpyFQTbHD1JcefSxfrsdD6gPHXxsedg7aH+Btc6m+4ichWlOVddv1pXWxvfEZ9Oe1/rXk+1otIceevvHr5HXSJbaq+I86g1PiSCDStzeoFbRKHp8DoOwI100HQGIhxe12PQ7eRHuAuTrLQuljf8AEfr5ailcREOOX19fziLQ9CbbNbTr0t3OkSkKof1cfO9vl0IEZBIL837W6C40BZmsWILmxQa40PLu/ppExtelDcabVrSo1tv15bVsIdwYsIcP2foeY7+7TRnlpWDcf4G553t5UuLaQKS1tvl9Hy9CYiNj5dRyHUk3O3aJCF0p86ag6AgU89eadwDEUs/mR/EvqP46cURqBHJ9+vMdDZuvWxEtDgVy112N9SNjrSh5AVpawi7Mba9PTbraLCl9D0A30sPhY6XL6xISunXXehF6UNNRal62Fq4sKX0tz3/kbnRvnFhJFue+r77932N7xIS7XpfUHfWtrpIIJqN7g2AMZSR/LytsdR1vpFCkHr2Fx2PmOt7jWMw/Y69oWiTw0q4Xcf5o+uXsIZgMscT4pTkS7BMtobZhZXnl5S1vvwraUqahs0hLz7J9y3PW1w32idQ/dmRvEwU6JOD5kmqMpIEukxdZK1S0gAIk4iSSpSAAyKwcS0/hFSCniqE7IeGvjGKVFPgGcJ61SUBMmgx6Y61SkpCUy6fFlFRWuWACEYgApaTwpq0lHHVIzSsRUBNYFDrLsHM5ZMYULbdZcYjoCYQUU2Clba21vQsZCRLK+8hbanWX2lhQK0LBX3zLmgiXOkzAoEJmSpspYIILKRMlzEEgg2UhaSxsQdDGziVSqiUFIVKnyJ0t0qSpE2TOlTE2KVJKkTJa0lwQVJWkuCQYwtdrf2KnBTjLFR+cuz7NoXgJnyLXGRUZlxEC9H8JJ3GPqcfQUyGCpM8irXEL7jruVxGyKEgwlEFkwvNlx3YnI32h8x4AiVQZnlTMy4bLEuWirM0Sscp5aWSXqV/2WJAIDpTWezqVzLzK8pICdcc+/Zvy1mJc7EMqzZeV8UmFa5lIJSpuBVExXEoNTS2nYYVLLKVRCZTIlgCVh4UCV68nHzsCdsDs2ftCN4jcHcyRmVZc48l7P2R2XM85HTDNLKG5hGTmQIiHsvwUWO6uFObIDL8WoLS07CMxIcYRtNlnxXyTmv2UvC8epUVs1KeHDcQUMOxDjIBMpEip4U1UxFws0cypQGKkrUghR1NzT4SZ7ygZ8zFcv1cygkFROK4eP6ww72aVcKZy6im41UiJgIUkVyKaZfhUhK0qSPGH7SUhRQtSkrSSFINUlJBoQpJUCkg6g7645+KjRrvcbgjYggX90dcmUxYgg8h6aXPqY5ftP+f/AIv/AKmLvbn+6Iey6K9P4Q/af8//ABf/AFMPbn+6PUw9l0V6fwivBOR81i2JfK4WMmUfFOoZhoGBhn42MiHnVhtpmHhYZLr7zri1JQ222ha1rUlCUlSgDFMrJcpC5s2YiVLQCpa5qky5aEpDqKlrYJCQHJJYC5MXyqabOmIlSZcybNWoJRKloUuYtSiAEoQgcSlEkABIJci14yednb2R3bQ49xsrjJ5kdzgZkeMSiJi82cXWYqQTNuC7yFH9mcPwhWdY+YxDKi5L2ZlK5DKIrupMVPoBl1t9XUOafHfIuXJc5FNiIzFiCCUoosEUiolGY1va4kSKCVKSphNMmdUz0X4aaYoFMd0ZT8APEDM02VMqsNOWsOWApddjgVTzeBw/scMD4hNmKSSZQmyaenmWCqmUhQWNlPsa+zC7OPY/MtzVBQL/ABP4yQzLvveKed4aDXESmIiW/cxCch5bbMRK8nMe478OiObcmmaVMRUfDP5ldl8auAb1Mz74x5sz0J1FNnDCMBWoNg2HzJgRPQg8SP6yqyUzq9XEyzKIk0QUmWtNIJssTTuB4feC2UMgGTWyZJxnMCEEKxvEZaCuQpaQlf8AVtGOORh6SkFPtUmdWlK5yFVhkzTJHvDP3EbJfC/Ks1ztxBzLKsq5WkzPvo+bzaJ90wlSiEsQsM38URHzCMdKWICWQDMVHzCJWiHg4V95aW1dN1tdSYdTTayuqJVNTSQ65s1QSL2SlI/MuYs/hRLQFTFqIShKlECO0MSxPD8Hop2IYnVyaKjp08U2fPXwpBJZKEC65k2Ypky5MtK5s1ZCJaFKIEYK+JnaozP23+JH+RWWoOZ5Y7NeSI2GnU6l0UsQs34ix8HFuLkKM1iGedbalsXFw7cbCZTZeeh4aGg4qPmcZETUSlMq8+vtg/aMn5QyHV0OBVCqHFcyKn4TlySGNWohKRiOP1KQSmXKwqlmpVRSlGZKRitThy58upSlaJPwvBrB6z7Q/iXIoZlHUSPCzJs2mxvMkuYr2K8enSpy1YNhNcpBV/ZYpVyPaTMOlqZOGUeITZtQmr+5+y7aU4kWtSlABQeASkaDSlKUrpY08OglSiSSSol1E3JJLlSidSSSSTqbk3D+toSwAACUgAAAcKQALBhYW0AFhYABojOOa0NjyNB53qo3Jpzte2MhEvR7nYat2DNsL6EbB4v0bXoG/FyNhoLPa5a6haIi3Otdxp5c7Dbn9MhKRvzvy2t3Je/nuDFpL232AZg/Tnrf01BEVbm5Ph1roE/ncDeuJ0S31FruD11Km62YfoIqA/zL2HN2AZ3/ACuDz2iG44fACulTQ3vzJOmpqOW2UlA8tGPlq/b6Ac3WA3bS4ubWDWt01Lk6OTDWvc2poNe7X6qOw8hbXJSh9dPR2dx0axv3OwFLk/AbAf8Al5ka6C0QnXNRWnnWnofiUbaaWxkpTpuf4drfRPStrubaknU8v9nlz00d4ji9didq6culTb89MZUtDX58xqR3D8I3fyuYHrqxa+3M7Bg787toIguL1Gwsabi9h42rqdx0ykpuG1JJHd9T8B1DGFurai13L3L+4lha+xMJxeulz8VzvsN7b08dajGXLQw00H168/N2Nh6HSxYNYD3X0YFrkbiIDiya/wCFa/gNDXStDpXGVLQ5BOjB/V/0ZjsTAbbOAN7DVnve7bPZmIjKz7LHhYJvnTPHGCYNqVCZSlyMpZe77ZLbk8zAlMVN4xp7vDuxErksKzBKaKVhbOY1LV3VNoKvRz+j88PhiGZ81+JNZLeny5Qoy5g3FLPArFcZAqMRqZc1wEzaDC5EumMtlBcrHCpXCpEsnXD7Q+Yvu2F4TlmQoCZiU9WI1vCpiKSiJl00pSN0VFVNVN4iQQuhYBlKjOHj1djUmGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQjBz7dPs2xHFDs55e455dgWojMfAKcRD8/922RGxXDfOLsvls6WgtNrdjFZfzBDZcmyGXyGJfJ3czzBC2j75ET174h4UqswuViEpIVNw2YTMYfiVSzylExmBKjLmplLANkoM5Qa4PTvjLl9WJYDIxiQgKqMEmqVOAH410FWZcucQwJWZE9NPNAP4Zco1EwEfiCtQZKqdNDrpyPPmLjnY0v0WpLHodP0jVYjUem7g6/AO933Dhpja6U8qgD7t7baG9NDqDqaQKSQ5HvL8Q3LE6iz82sHaI+muwP11N7tve0TULof0dd+oP63BsIfqDof5aHf0MWKD3GrevToQdDziWhVdNdTpvQ1BrpfavjXWFSW7ba7DTv7vLSJQcX00u+2xtY2HLpbSShdbf189KcvG29Diwh+/wBW+tOoJBs0se199Axc66uGvqLuIlJXTz228jzoPLcWxEQbg7Al9wOXb4O4La2qDXH8nt/B997gEym3N9Ot79Dcb9RQ737xsIex+u0RkAj1t8x29d+bS0r8RSu9x9LUqbWGmthEpLdR2/if115PEZDa3vY8+/IlyHfmWe8V0r8K130NOfXba1qWAxEU8nb3ja3Q7jc6m5IsKe4PvG9xv5i3IOIlIcN6/wCGml7iwsdBqqgIMR+vrnz91osIG/8AA6+hv77OWIkJVW4qLg2F/wC8DXp/ShwI2P1tEZS389e2np7y4iqlwjfmLXTyun16VsTQA4sKOX8fX01B5i+tH5j4vfr17G3VyfXPZ37ZnFvs8uQ8rlUajNmQREpdi8h5giH3Jey2s0iFZcmKQ7HZYi3kFS0mDTESlUVSKj5LHud7vcwyznnG8sKTJkzBWYbxhS8Nq1KMoAn8f3ScxXSLIJIKOKQpbLmU8wx2HkzxLzHkxSKemmpxDB/aBUzB65ajJSD/AJw0M8BUygmEEn+zC6ZUxpk6knKcHNZwW7eXALi8xBwb+ZG+HmbX1oh3cs57fhpUhyJc7qG0ynMa3UyKZtRLqg1CNmMg5s64O67KIfvsB3vjAfEXLeNpRLVVDC61RCTSYipMkFZsPY1RP3aclRsgGZLnE2VIS6eLZ7LHi1lDMiZcpdanBcRUQhVDiy0UyVLUwT93rSoUdQlajwy0mbKqFKsqmQ6OL2o3EGxSok0+8D3hRQIpYhQBG5NFDU0OOd6x2cDyPpyP6iOjeIfZg7NfFz3q+JvAThDniLfSULmuYOHuV4+ftpqSTC5iXLET+BUa/EuCmTCiD3akKpjkWGZvzVgvCMKzHjdAhJcSabE6tFMT/rUvtTTL7LlKA2jjeKZOynjRUrFstYHiExaSkz6nDKRdUEkuQmr9kKmWCbn2c5LnWPLEx9kd7O6ZvriVdnOXwLjqitxEs4icXpfD946+7g2c/iDh0DRLcMyw0kCyBcnmMrxr8TpSAgZomzAkMDNwzBZi26rVhvGo9VKUescIneBXhVOWqYcpypalElQk4rjstBJ5ITifAkdEJSByi9Zc9lN7PTLEW3GwXZnyvMopsgp/ylzTxEzdCGhqA5KczZymkndGv/pZevvCoVUWxBV+MfiXWIMuZmusloOopKTC6NflOpaGTPHlNHSMii8E/C2hmCdJyjRzJidDV1uLVqPOTV4hOkKH+KUdS9rR7KyHwk4R8K2EwvDDhVw64cQyRQMZDyNlbKDVe73CpSMvy2XpWtSahbiwpxdSVqUVEng+I45jWLq48WxjFcUUf3sRxCrrTq4Y1M6awB0AYCzAMI59huBYHgyeHCMGwrCk3JGG4dR0Lk6lX3WTK4lH95SnKiSSSSY+1nE+lEglkbO8wTSXSSTS1hcXMpvOY6Clkrl8K3T3kTHTGOfYhIOHRUd96IebbSSApQJGPjzZsmnlLnT5sqRJlJKpk2dMRKlS0DVS5iylCEjcqIA5xn1FRIpZMypqp8mmp5KTMnVFRNlyZMpA1XNmzVJly0jdS1ADnGNTj57Urgxw3aiZPwpZc4v5uS0+hEVBLdleQpbEAKQyY2fuNiMnhS4UP/ZstwkRBxMOFtKzBL4hSSnrvG/EvB6AKk4Wk4vVAEcaCqXQylXA46gjinMWVw06ShSQR94lqaOoMzeNGXsJC6fA0nH68JUPaSiqThcldwn2lUoBdSXZXBSIVLWl0/e5S9MEnGztB8Y+0nmqGm3EfMcXPn0P/Zsu5XlrRgMtSRcW73EwkgkLK1MtREQ44lhcfFLjZzHISw1HTOLSwwEdJZgzNW4p7bEcbr0IpqSVNqFcZ9hQUFPKQqZOmhDlEtEuUlSps5ZXNKEvMmKCQ2uuM5hzLnfE6ZNdOnV9XUT5dLhuGUqCmQifUzBKk09DRoJBnT5i0SgtRmVM4mWiZNmcKWyP8F+HMPwsyJLZAUMKncUP2nmWMYqsxM4ikNh5pDyqKXCy5ptqXwlEoQtuHVFBlDsS97zxG8cvEqo8V8/4ljyJs8YDQvhOV6SaPZ+wwalmzDLqVyBZFVik5c3EarjK50sz5VGqcqVRyBL9xPs++ElN4O+G2E5dmSqc5hrmxnNtbKPtPvOO1kqUJtNLnllTaPCZCJOGUfAJciaimmViZKZ9bUKX2it3W++t6V3qa3050Jpvc9SJQBoNPXyG5uS/e7Wju1xqPU6joAC3PkNgxERVOa00/wABbfbXXoTTEyUXAZ+n6nRtBycPzgz9ty4t37WYWdrAGIy3KV15nUGtK/Edq1Fhc1rWmMhMsb3I0DeRZPYEgk6FrRcBboX6uTY8I1sAbm7PaIrjl689uelfDau2pvjIShm57W+n6e/QNXQMQP8ADfvc3fdufcMIil8zcV8rbVuoj1O9MZCUbl25cx15X9Ip7z1e3Q7gM5vdW/IxHHNem2wvfvG9SRc/7u9DkpTpzLfJuX87m7NXQdNzuS1m0tsG8m1iGtdOp9OdzS2u3XmSTkoRz/jtYXY99tTFN/gBdhfRjd9202ZrQ3F61r43tWlTcU0JAB8qb5KU9PL4DYtzPUmzxXa+hO1+yRzvq1nsLO0Ja6VPSw5DUkjnWutT51xlS0WBIB5m9zsBpYenwFb8rnQdR8SBqXANhEFxeo2uCdaVpvzqRQVobXtXGUhJJbnd32+W+wIvd7RQcjcXvqC1w3bkN9NDEUJcecQyy24666tLTTTaS4644tXcbbbQkFSlrUoAJSkqUpXdpW2M6VKXMXLlS0qmTJi0oQhCSpcxaiAlCEJBUpalEJSlIKlEhIckQJShJUtQSlKVKWoqCUpABJUSTYAAkk2sVG942meypwg/zI8C8kZJi4NmEzEuB/b+cfdhsuOZqnoRGTJqJeaUpuJdlTZhZA1EIUpLkHKIUIUpCUk/oF+z54bDwq8Jsq5VqKaXTY0qkOMZl4PZla8wYtw1NdLnzZRUifMw9Bp8IROQpSV02HSOBSkBJPnj4i5m/azN2LYtLmqm0InfcsLfiCU4dRvKp1S0KAVLTUK9pWKQQCJlTM4gFEiPROO6Y4RDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIR8/mzKuXs9ZWzHkrNsqhp7lbN0im2WsxyWNCzCTaRzyBfls1l0SG1tuBmMgYl+HcU0426lLhU24hYSoRT5MqpkzaeegTJM+WuTNlq0XLmJKFpLXZSSQWIN7GIKqmkVlNUUlVLTOpqqTNp58pb8MyTOQqXMQpiCy0KKSxBD2IN4/nydq/s85k7LHaA4jcE8xtxKxlWePOZZm0QEEZkyTM/wDrDKWYW3mUIhnVzKSREIuYNw/wS+ctzKUv+7i5fFMt6z43hczCMSqsPmufYzD7JZH+ckL/ABSJoIYHjllPEB+VYWg3SY0czRgNRl3G6/CZ4U9NOV93mqb+3pJrrpagFICSZsgpMwJsicJktQCpZA8+oX4351uN0/kLX3vf4hS1j5b+Y6xx0h+mr6a87bX/ABHcMW0Imtr0Fa60J5bg21sK8tb3rCoNtaztsdiB/dufgW2sLmzX+i/8dGv1iUhfWnI10J50286XruCLSNj9fX1eLFA6i/Mcx+v10MtK6+OpB873OlBpT8cRKS3y/QsNSdC8RkAi1xt5NYsNX0LxJbXsf67XFtfn5iuIyH0sRp/H6+YMbtY3B0P6/ozcuQkpUefK96E8jp/XpUDEZ34rch06a+mmvJxaU7p76+jdtt++0lDg8KctRfUGl/xsDa2LSG10PoYsLHodxty5W87cy8SEroNSbgVpY7abWGltQSRYCIo5M1uh9bv3bbeLCkjRm0bQjz73vvpeJCVeHgb+Y+o6Gtq4iKe4PS3117MdIj4QQe7Ho/MWa/JwA/K9ZLlKUOnqB49Dfw+I3BxGUkfVn7bPbTe2hEWkH153HXt1G2rc5CXRvroaGhF7VFADbTQUOhFsWtZ/TkdN/Pl01iwh7adDdy3O/nvZxzNcLFbGpGux6Cm5/wAU4oRz0Pv+t4t4Trpy3HUvqAdtevOOXe1CiCNPiFut7AnnShO9cW8Iv1+tC4bkCGG0Uvyd9RbTtezaOGD2jubh32huNvChcOOH/E3NuXYSFAS1J0zIzXLhSP3XcsTpuY5eeoPhQp2WKW0Cr3SkE1x9vDMx4/g3D/VmL1lMhH5ZHtPa0jbA0k8TaZTXbilEh7MXMckwXOWaMvFH9T47iFFLR+WmE729CQGYKoaoT6NTbFUhRT+6Q5Mevcu+1F7RUoSy1OJbw5zYlASHXZrl2aS6LdA+8sO5fnsqhGnVCp7wgVtJJsxoBzOl8Wc0yGE+ThdaBZSptNNlLUOYNNUSUBXX2ZT/AKsdi0XjznOmCU1MjBcRAYKVPo58maobkKpKunlpV19iU/6hjt2A9rjmVpsJmfA7L8a7T4ly/iDM5W0pVqkMxWUp0sJqD8JiFWNCo0JP2pfjLWBP9rl2mWprmViUyUkm37q6OeW1txb62vyOV9oiuCQJ+VKSYprqk4xPkJJt+5Mw6pIGtuM94hzf2uGd3m1/sPgxk+Wu90lC5zm2dT9tBAJqpmAk+WVrSLVAfbJofiFbWTvGTEVAinwGjlKP5TPrZ9SBydMuTSE9WUOQiGo+0NiqwRSZYw6Qo/lNTiNVWAHqmTT0JV1AWl9ARrHQObfaedqKftOsyiZ5KyQXAoe+yxlCGiohoEEENLzfE5paSdSFqaUtBHeSpJAI+RU+J+a6lJEqZQ0JUNaWkQtQBbQ1i6sXBsWcPq4eOO13jbnmsSpMidhuFuPzUWHomKAIYkHEF14Sb2dJI1Bdo8PZ/wCKnEjiZGGN4hZ7zbnWIDyoho5ln0xmrEM4sE/6lCRT7kHANoqQ0xAw8PDsNkNMNNtpSkcQrMSxLElceIV1XWrB4gamdNnBJL2loUoolgBwlKEpSkWSkANHXmI43jONTBMxfFK/E5nEVA1tVOnpQp/+6RMWZcoDRKZaUISmyUpAAHWTqjcCxOu+lrGlLctb1roMQJDJL7/AgP8Ap6+WDcHpbcHUgHkdmFttL29edkrhkJ7mCI4iziGSuU5YeMNI232++iLzGtpK1RaQurfdksK8l5s91SxMIqDfZW27BKxpr9sDxSOXsuU/hxg9StGMZrkfeccmSJnAujywicqX92UUlMzixyrkrpVjiCFYdS18icFy6xIO/P2H/BwZkzRUeKeOUyJmC5NqDR5dlTpPtEVua1yZcw1ifaJMtScvUdQiplqIMyXilZh1TTrlzaBRORpTta79dB/gPz51PmgEXHP1N+TWHS2rdo9ZdTz6ve9rcgNQ4tY7gRQU5zNdh89BqdNrHniVMs7uOYdzrubtrtudeYB9b8+mhLkju4Fx6xHU7y1FaHU0r0000FbE0pWgnTLbZhv31Nn1c9b6u0XN/tNrqwLcrufU87xFU5yvSt+XnvcGutzXc4nCeQv8v00bowvaKO5bU3v7rat3D6Al2IiOpwXvU0ra59Nhbe1bUNcTol87nsw31LOXHqC5ZrUuegcOX8tSbs/QOPw3iItw86bVFSQL0AFTQW5m4vUaZCU8tbfp07Pb1Je5gxHIEsTcnmrTvruHawiItwjX0rpy51J3/GtTkol7n158wNttS0ULlrNZmGo67Nozbiw1LQ3HNfMmum9Sq1unXrpkJTp6MPgH15k+Z2EVA7c7G3+zyH970HSIte58QDqb6nwrYbDrplIljfXcjQdB8epvo3FUltB2Hp6FjYdb3LRCcXUa66m+nO1/C9Ba9SAMlCX25e46b7bWO2mtNr35n/8ACN9rgl9zcxBWuu+/TS+vpppTyploTwjS++/l/Kz6bRdp56bcmDchc8xexvHuf2fXAxXF3jfA5knEA5E5K4WmEzXNnXE0hYzMbcQVZSkrhqfel6Yw7s5iIdaFw8RL5HFQUXREahLu332N/CU+IvilSY5idGudlfIRpswYhMUP8mqcalzQrLmFrOkwzaySvE58kpXInUmFVFPUcKamWmZ07405v/ZrKk6gpZwRimYfa4dTgf5yXRKQ2J1SRqkJkTE0iFhQWidVSpkpzKUU7HuPbSNGoYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQjBj7bnsaq4x8G4TtIZFlLb/EXgZLok5vahk92NzHwiLjsdNFfC2v7TFZBj3X8ywra3IVDcgjs4LLkVFolsGvr3P8AgX3+hGK06HqsPQROAsqbRE8S9i5plEzU3S0pU+5JSk9O+L2U/wCtsKTj9HKCq/B5ahVBIHHPwskrmaj8SqJZVUJcp4ZC6supXAk6g6F+u45jkL0qK/dHOnInpBSXtuI1ZUkguNdL/WurFmN7cpTa77EEfo6W7o8DtUDSBSdjb9Hv3B626RGoOHHz5s17uTryvufxTEL05GtK2qAdx/S2oGqcQkNZrBtP3X0a1x3OzHYizXv8fkANv00lIXSnLprp4/nbS1MWkecWFLOWudrMfUG/wOu8SkLqdq8ga63r51r4eF4lJb9fgPQM/Pm9oyHG/chhYafLvze0hDlKfXTfQgfPTTFhD2P11HyMRl08yPgG56kaXANnJeJKVdetzca3v/Q68gMRkEdrafpuToP9n8TvFCkKuDfnsYrpc686nx2PKnKnLTXFpTy+trHe/Qai14s0sofR5H1O4fZ7xIS513qakkHmLXA2ppTWpAxYUg6i9x2+vdFpSD5bjb9eY1tfnFcOC1d7XNq1tfr89QNcRlBuR9a7fD6MWEEdeu/WzsQWb3aANVCxb9U5XGhtatxyxGU67H6sQdi9xZ/WLWG22p0sBexL/C7u2sVQ51oNwfiH0rXxxYUkX1N7ixc87s3v20izh1a3u52Y+bgA36sYqpdI001qDXTc94EDoKHcilK4oRq+ugDc+RBu3NvKLSDvfV3t5aE+9+fKOYeF+9SvMpKb8goGv9ByxRn0+IPus3m3KKNbQgche3MguOtn5xzDw5Vr/MT8yBQeflvijWOtuYPye/du8WlI3U1uTe6xO+g89o/fe+P+8j8cGHMe/wDSKhIOjFt2P/mb0ik89RBFTUmmqTbU6U5bm+lDi+WAVXO2z/pfXRjvFwQHcsALnX5k9/KLU65SprvXXnehA5HrW9DUC+UlgGGotcEbW7WA925idAHn2u7kWNjfS3LRyYtzihegrWvPw38a/kDUSp5M93GnY7jo3zZolFi5tqQ1n/g3q4i45Zy7NM5ZilGWZO0XZjOo1qEh6pUpDIUSuIi3wgVRDQUOhyMinKgNwzDq1KSlJOPjZozJheT8u4xmfGpwkYXglDOrqtQUhK5gQAiTSyDMISuqrahcqjo5RLzaqfKlJBUsA8syXlHGM95pwLJ+ASPbYvj+ISMPo08C5iJQmErn1lSJYKkUeH0qJ9dXTfyyKSnnzlqCEKUMyOUctSvJOWZPlWTpKYCSwaIRpa0pDsS6VKdio2IDYS2IiOi3X4t8p+H3zywkd2mPFPOuasTz3mrGs24yp6/GqxdUuSha1yqSQlKZNJQSFrPGqmoKSVJpJBUxMuSlSgFKVH6B8g5Jwfw6yfgGTMCQU4bgGHy6SXOmIlyp1ZUFSp9diNSiV+D71iNbNqK+oCTwidPWEMlKYvxdtqa+p8rCnkDeh+KluNpl2YMB+m/Vxpp+vMGsP3g9tgPLVW/N/WKCnOtTfSu/W/PT5a4kCRyf+HPbqet+TUJF9w46AAer69X5MA8da61rsLitvAml9NOulNJkoLh7X7/R7dGL6Lk31LW56bdL3LjW2sR1u089LX1vRJGwBub9AK4nTLZmt8+Rsez79dIrq79yBYP1Pm/IMdWiKtyv1IJHzpXqKG9Kg7HEyUHYWtf618t35xVw53I0DORzYdQ13Z+WkRlL2BqdK+ug+df8cZKEAbd/Tc7dtegF4tJ5+etmvazAiwFzcsSXtEW5rtz3N6aDcmvp5gzpS7W225B9eQF+vLV4u5ci1xZ+5uw2A1ewiI4v8wDvT95VPkNh1FsmXL3OulvgPgXF976Uv0J0A2Df3R8TZvIxEccvc6nzrUX6U5beNhkJS9hft+u/xJcsRqYbl+Z5HuNTsH013AiEtdev46dPufM30FcZaEcOuv0+939dnJgx1NuQ9bturvpqYQcHGzWPgpXLIWIj5lMYuGgYCBg2VxEXGxsW83DwkLCsNJU48/EPuNssNNpUtxxaUISSUg59DRVWIVdNQ0VNOq62tnyaWkpaaUufUVFTUTEyZNPIkywpc2fOmrRKlSkpKlrUlIBJaLJ06VTyps+fNlyJEiWubPnTVhEuVKlpUtcxa1EJQlCEqWpaiAEgqVYCNo7socB4Ts98HZDk9xpo5qmVMxZ6jW3Ev/ac0TGHYTFQrT6CptcDJoZmGk8F7gpYebglR/dMTHRLrvvr9nvwlpvBzw1wjLS5cs4/W/8AvnNdUhYne3x6slShPkInJKkLpcMkS5GG0xlcMmailVVhPtqqetfnx4jZwmZ0zPWYmlShh0j/ACHCJKklHs8PkLWZcxSCyhNqpiplVN43WlU0SSeCUhKfSmO744JDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEUIqFho6GiIKNh2IuDi2HoWLhIpluIhoqGiG1NPw8Qw6lbT7D7S1tPMuoU242pSFpUlRBoQFApUAUkEEEAgghiCDYgixBsRFqkpWlSFpStCklKkqAUlSVBlJUkuCkgkEEEEFjaNGr2ofYjjuxzx8jXctS58cEeKERMMzcMJg208YSRqW+XZ3w9iIhSVJTG5UiYhH7NSp11yMyxFyaLW65G/tNqG19zdl9WCYioyUn7hVlU2kUyiEX/tKYkhgqSSOAOeKSqWX4+IDT3xFygvK2NLNOg/1RiKplRhy2VwSnU86hUdPaUyikS3USunVJUT7QL4cayFX662/ep+8KnXn63sTxBSXHXY/LtHXSk7jzFuRseRvr6ixAkoWPHw31uDWgI29BUGghI2NiPrzB+tjEZD+T+WnctzuWdza6paHOtRzppU6Hp5gGtjuYiltA/MPcsC5HPtqNgx4Yt5A2+F9++xb4i8pK6Uofn15/oiugJxY3mPr663aLVJvyPMjUdRof1HSJKXARty02rptzoKWqRfc2FHL478/g/bezRlN2Otyz+8au5/2mGh1isldKX52r9PrWlaHriMgj6+Pw7uIsKSHbubWvz5GzHq+piQlwGhNa+NxWleh6bEnmcWFPJvSxbT65WDC0Wu7gjn59udm035WeuFcjtt06XvuN9dCMWNo40tv00L/qkE8ja0o5en8YrJcpT62I8frp5a4tZ9Pr5chq7lmiw21Bf60tflvYdmrJXyNOo0qLC1KDc1ArW4xaQDqP16/wAYoUgjnt8yx5cy/e0VQ5yobUtqTzodSdyTYV1xaUDbn9abfTjWLSg6Pbkbhuh1ZtGPnvHP3gFa+RNq+J08Kcji3gPft/FvreLeEjbux2vZjrzu/cbVA4RpXyuBXny61GLCgbgX9fXfyJihAGpvexSQP+X5PrHL3h518AD9AcW8CRt7z5bxRh08lN/4h8zDvj+Ef7h/LDh/1lesUbt/vD9YiPugrCR3RRO1rmta8iBz56WxNLSQkm5fRyHPLrEqE22ux1H69+e2jxDdXUG9a3pSmhFOXT/C2JAn8tmD+4uAzWfptptEnCByYG4u4D9LPzG22sQnV1qN6bnQ2pewv0pTE6UgNprctdnc8ywHN9IlDKFuTC3d9dLdC+h0j332UeGwlEqiOI02h1ImM9ZcgsvNup7q4eSIdAio8N/eC5rFMpbYccSlQgYUPMFUNMSpXnf9rzxQGKYrS+GeEVCV0GBzZWI5lmSVFSZ+NLlFVFhhmD8BRhdNPNRVS0KWn7/VS5U32dThykD1W+wz4N/1LglX4uY9SzJeJ5ikz8MylJnp4TTZflzwmuxZMpQ40TMZrJAp6SbMTLUMNo1z5BmUmLJmK9iKdJ28yQBtoB6HTnfGlIQ2gbv83u1u3nHoODqUjmx1Oh5787u2xiipyouajmfhGv6r6dMSCXe79t/5NobP0aDE9Tu2nrYP1uQ24sKK3ABbSngNxQAUJ8DTcUrQYlTLbSwfffS+453uDYaCAABbQ8gHO2pOl+TM4L7xHW6TvSwAsajwAsLHW1wQbVJlSjkH3f8AU+T3s9w1oqGYDQGzC+rC51326XuBEdTmvn1J0udQN7cieoxMmW4c307D4E9m8ooTZhYWADjXnZ+egvZ3FnjLcsbgC9tv631POu9sZCUsdH8i/pt7z20gPjdr37tYFmtu7WBDR1uHrcWpqbUqTsBU8gdhcjEqEvYWFg5u3IAXJ27b7RUb8w1rsGsDs/ndg40DxFuU8f8AhTW1BzIHoNSBbGUiWA1rnV7knr9dbXBPdtSWdxz6bbqIs/MaRDcc19bm29/QGtDypc1xOlJJtq/Ueb2HXsTcbB593c/7OlrEuNRpewiqXyr56kAine05aUJpS4tTKSgJ6n6+u1gAIq2nTQbDuemgJ05ExDW4Njf9bU+7alBc0p45CUF9L8tuTuNDdxty6HGxve521OhOvPezmMtXs0ezKcwTg9oXOkuSuSSCKiIHhtAxjCltzLMTClQ8xzWlLoDLkJl5XvZfJ3QiISqfqjItpcHG5dYW96NfYe8Cv61xH/2xZmokrwzCJ06lyTTVMpRTXYzKKpNbmAJWEyl0+DkLo8OmcE5KsXVU1MtVNVYNIVM1r8d8/fc6X9isKnlNTWoROx2bLWOKRRLAmSMOdP40rrnTPqUkoP3MSpahMk1y0oziY9UY1NhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQjzd2sOzFkHtc8E808Gs/NfZ2Zq0JjlfMjMOmImOS85QLMQmQ5qlrZdYLrkA6+6zHwP2iHbm8niplJ332mI9xxHy8ZwmmxqgnUNSGCxxSpoDqkT0giXOSHDlJJCkkgLQpcskBRMfAzNl2hzRhFThVcGE0cdNUBPFMpKtAV7Gplh0uUFRC0cSRNlKmSlEJWSNBrjhwW4hdnXinm/g9xQlBk+cMmTJyBjUsl5yXTOEWkPSyfyKMfh4VcfIZ7AuMTKURyodhb8FEI+0Q0NFJiIVnXLEcPqcMq51HVo9nPkLKVM5QsaomIUQCqXMSQtC2DpUOIAvGlmMYRXYFiNVheJSvZVdLMMtRHEZc1GsudKUpKTMkzpZTMlLZJUkhwlYUkdYJXXqaXpaut9OlOgFbjT56kv0On19e5wfkqSdRY6B/W/rq3zEV0OHUE7DWnkT+OvI3riBSWsR7vg4aIyAduHXVz6ebaWLjUhhKQ5S2vNPp90ix5jQioHTEZTckWPPY/4hqORN+ZEWENrfl07jyIb0dolIXXS3+B1B8+ZsagYj9x+mZn117RQpBF7/H3dGe+7bGJCXCLE+VBTw/pqeZJAxQpBvvzGsWFN3Z+ofi7636cn0IEV0r0oeetjXal78tuZN8RlLe7TTqTa3PzYaRYQC++mgcNu4a2jt5ARWS4Rap+iqV+Y26898WEdAR6j37/VosII0uNLu3PXnpqLdLiKyXAdT+fkL1ttShtvXFhSNrdNvrrqxI0tFHB1Dd9NOZtzFu+kVAvetLc6EdOtedqb4oxGz9g4LdNBZ+V2Cd4oUDY6+n16xUDhFa7c9vMWPqcWsC2z/Wh15ai+gLXtKVDZ9NOnofTvFUOnWp9aj54o36XcX5OQ3vi09Q3ldvcPcNO8cw9pcedfnenp/TBi7Nccr/CH4eo9D+kcg7/MfJZ+hJxQpG6fURaw5D0EfvvbffV8iB/h5eWKMOQ9BFeAEOw9Db/liGtwKUpROp1qnTS9Dy1+eJQg200bR79mvy9D0ioSQOXQg+gs3a/TpEZ1YFaUqDuo/nSht09MXhNwwYPy6HRhdteY7ERIA6ebjUC769yXsd+mpj73hTkKI4kZ0luX0BaJc2r7fPolCi2qFksM419qKHBVSYmLUtqCg+6lSkxMS24pIZbdcR1z4teINJ4ZZIxTMk0y14gU/cMBo5ifaCtxyqlzfucpct0g01NwTa2tJWkfdKWclBM5cqWvuTwM8Kq3xg8RcGylKTNRhIV/WmZ66XM9kaDL1FMl/f5kubwqKaqqMyXh1BwpWfvtXImLSmnlz5svLbCswsvhIaBgmGoOCgodmEhIZhIbZhoaHbSzDsNIqSltppCW0JoKJSBUmhPjlW1VZiVbV4jX1E2srq+pnVlbVz1cU6pqqmaqdPqJqgAlUybNWpayAzqsBYD3ww/D6HCqCiwvDKWRRYdhtJTUNBRUyGk0tHSSUU9NTSUl+GXJky0S5YLnhSOIliTULxAsTfdPqTU2HjQVvrriAIG+nx+Y9T5Rltu1/wDX/Qc9h6RQU8aGhrtUVUo23JNBTkfOgOLwi/5fMhm/l0v3hbm+tk2Hazkud9L3Y2NJTnWm1jVWlN7CngKbcjKmW7O9z2B9b/A62irnQMA/zawcPudC+m7Cgp3XrW9b9d9elzyxOlDeR8vSxPu896M+rA8zfUnQX13cs7kbkxlO7ih31trap30OgN9gQDiQIvpftfyFmFwNrc4rZzs+5/Ny5MNQ2hbbcR1OnUk2qBU32Fh1NflrQHE6ZT6+nwJNnsQ3wIJhYB9ObO/m+7ka/AkCOtzrTUm9z41uNdPwFp0oA5emnbU2HdmtDkHYNtqdbgMTcc+92vEW515gAb66DkKC9TcUNqHGQmXxbW6v8u7eTgMbG0cWvawHN1N5dLdWiKpwnfyOnIXqb86WvSmoOQlITYeZ36/rc9zFQ+9zcO7atpuxO+r6BtIq3L0HrUjzPT8bUJ0nQh+XXfyHMhr8nDkB3o528zvbVhyHP0c6+k+yp2b592lOJMPl5n7VL8lyQwszz7mJgBBlsnW8oNy+AddadY/bk7LL0JKW3G3g33IqZOsPQsviEL7++z94I4r41Z1kYPKE+kyzhSpFbm3GpQAVQ4apZCKOlmzJcyWcVxQy5lPh6FomBHBUVsyTMp6Kcg8B8RM80mRcCXWr9nNxSrEyRg1AokifUhI4p05KVBRpKTiRNqFAoKuKXJStMyegp2g8vZfk2VJFJ8s5dl0PKZDIJbByiTyyFSpMPAy6AYRDQkM131LcUlpltCSt1bjrigXHXFuKUtXu3g+EYZl/CsOwPBqOTh2E4RRU2HYbQ04Ik0lFSSkyKeRL4ipZEuWhKStalzFl1zFrWpSjoFW1tViNZU19dPXU1lZPm1NTUTCCudPnLMyZMUwABUpRLJASkfhSAkAC8Y+lGLDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEYxfaYez2y/22eGjc2yw3L5Hx/4fwEW7w9zM/RiHzFLwH4uI4dZmiO+hv9izeLX7+UTSIS47lidLMbDqTLZhP4OZcTzVlqXj1JxyeGXiVMlRpppsJqbk0s4uPwLVeWs3kzPxAhC5qV9e5/yPIzdh/tKcS5ONUSFGiqFfhE+X+JSqGoU4HspizxSpinNPNJWlkTJ6ZmkTmrK2ZciZmn2TM5SSY5azXleaxkkzDIJvDOQUzlE2l764aNgYyGdAW08w6hSFapWnuutqU2ptaugp8ibTzZkifLVJnSVqlzZSxwrRMSWKVJLXBfQF9RqANRKqlqKKfOpauTMp59PMVJnyZqSmbKmoUykTEG4UlTnlqzhQizpcBpU30rSlqXrzG/ysTXEBGx+vlrGKUnUBuxB30+AYvcPtaulZtXpvatToRodeorUXFcQqQR1F/o+X1dojbn1u1vP3W3ZnLtElLm9TUCtQKGo/iAtSt6i9+hOIyl7eRB25tuD006RaUkG1ntrYvsDbzB5dQIkJdFL0tao0r4W+dN/vUxGUkbE6f4m07ejtaw0i3XXU9hc6F+X0NbSEr3BtzOnz0pXela6EYo3K/Tf0/R4tKQe/MfV/OK6Xda01qK/nbb8upsKQem1rdfjFhSe40/D+nU8rbtFULHPkb9dBXXzOt9MWlH0Pi1teQZrM8WsD8wNetiz7uAwFme8VQs7Go9RbwNvlXrixiP00Pv18n6xaUtdyDqRp0diGPk/WOaXeumlDb0r+uWKFPMa8xeKMoG7abuD30P1y0ioHR0B3qKV8aW/XrbwjmRyvp27xR9iD1s4+fTn7o5hwcyOgIV9b/r1t4COR7hh6DU9T/Kn4NwB7j+o93pHLvjkf15jAJUNCPU/DT1EOFJ0PoX/WOK3KJJChWlBYi5sL1wSFOHdt7+vPbpDgHM+79Ii962iR1p/X6+eJeI8z6/Xu8orw9VHo7vFFazempNa6X5nlQg10OlOtwBtfsGc31YXdw1ri5sIvCQGLpG3UDdj2PUXLxk27PvDsZCyW1GTBhLeZM0Jh5lNCtKkvQkIEKVK5SsqAUlUKw8qIi0JSjuR0VEMKLyIZlw+WP2kvEtXiBniZhmGVKpmWMpKqcMw1KC8mtxErSnFsXCU2WmdPkpo6KYpUwKoaWXUS0yVVk+WfbH7JPg6PC7w5k4ri9GiXnHO6KXGcX4pZ+8YdhnAteCYGpawFoVTU9Quur5aUS+HEq2dTTTPTQ002O9y7zIqNKXN+psfkfGt9eBK0d9RrYa+vdie0bVObiwsAGPPewN3vZvO0Ui5YipO57xrz2FvzxIJYB08wL+pbns+8GO77asB2+G190gtFNTttQNgNNuQ100NOtMSBAvbY9T35D084MG2a/wCV92dyT19zOzg0VObabXtXmQNdK2qa7XFReEktqddLnnroH924Aitxc+4OXI322Hu0FjRU5zpy+I0HkAeZ5img5mVMon5MxvYhzZvTXswachzL/i2bX520cD8sR1O6mp318dhbnrppWuJ0ywNh5WcAHW93Gvp3dtrudLPZ3HqOrkuYjLd1ua+pp62uenia2lSglgB5D6s2+uujgiHDvd+o7sw7sSSe5/MIjLcubjpa3O3O5sRprTXGQiU11emnL9B17GKgejamxb5M3TW4cRHWvcknxNzb0FgdKV0ucTBOwsP5D5iK6aBte/Rn6mz25Bi8RHHKa6bXtYmo6n53xkIQCOXPmX07DdtbB2vFt9n7DdjuT0F99js/ZPB3hDnbjpn6UcPsjS8xc0mK/fR0e8h79k5ek7LjaI+fz6KZbd+xyuBDzaVK7qn4qKdhZdANRMxjYKFf7F8NPDbMvinmzDsoZVozPra1XtKqrmJmCgwfDZa0JqsWxSfLlzDTUFIFoBVwqmT6iZIoqWXOrKqnkTOP5nzNhWUcHqcaxeeJciQOCTIQUfeK2pUlRkUdGhak+1qJvCoi4RLlJmzppRIkzJiNofgVwSydwA4eSrh/k5gqZhv9dnc5fbCJhmXMD7DDUwnkwotwIdifs7TUPCocWzL4FiFgGFKah0qV7t+FPhflvwiydQZQy3KeXJ/yrFMSmICKvG8XmypUusxWsZSgmZP9lLlyZCVql0lLKkUsolEkKOgObs14nnLGqjGcUWApf9lSUqC8mhokKWqTSSbJdMvjUqZMKQudOXMnLAUsgdxY7IjjEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEYffae+zDkPbAkERxV4VQ0sy52kctSwNsvOGHl0o4sSeXsL+z5XzPE9xDUNmaGaQ3C5SzZFuJaYbS1l7MTv7CMtmeVuFZsynKxuWayjSiVikpDAlkIrEJFpM5TMJoYCTOVYMJU0+z4VSur/EHw9k5okqxLDRLp8ekS2BJCJOJSpaTw09SWZNQkMmmqlH8IAkTz7HgXT6ZuaMr5lyLmWd5OzlI5rljNOWplFSaf5fncE/LptKJpAulqKgZhBRKEPQ8Qy4khSFpood1aCpspUroydImyJsyRPlLlTpS1omS5gKVoWk3SoKYhQYguG3cjhB1TqaSfRz51LUyJlPUyJi5U+nnJVLmSpiSUrQtCgClQ0YsNxZos6F228Dp/Sx89q944gIN20+n9Ow6sbRjEcV2Lb2v1BG9+Vr6gJiQldaU8aE32pQ1odeZ8QTQRlAOlu1h8IjKSNDyBG29tHG9iD0FhFZLnjzqCQelR1oNuovfEZSRYj57X9N/wBIsKXtp0IHm2+pJ1Poz10uEUIttavd5XBIIN9ietiTiMpfru+hfuBpszadgItIPudidRqWaxHWz7XESEu6VpytSmtNNf8Al5E1xYUkPuL3NjoCeh0O/YbxS29vX+Oupt25RVS4DodDsfnQ/QVN6Yo1+X+K3l/Gw3ihAOoB2f6uP5tFUOEU2ttY0tt5aW6EYoRzDh+4f4Rbw9X6KuP1H1rFQO+o0JF/Cv589cW8I6gcgbd2+tIt4TuLbhJt6Hfkx8tjUDg5mw0B71et7jwH+NpRybvow8rHu38KEdGvYkEfC3dwG67cu+Dv6g/UE/S3XFOA8n6gj4ED4+kU4QzFj2UG9CB8fSP0L5ECvJX5C/rinD/i/wB3+MU4B/dP+5/GOK3NB3t664uQncjoxi9EvU8I5M1/PlFJS7XVXX979XNbYv4RyHoIuUiws1xt39w38ucd89nnh5/ltnFubzFlLmXsqLYmEYlxv3jUdM+8pcqlpC6tqQXWlR0YlSXe/DQghnG0pjUOp16+0f4lHIWSZmGYdPVKzJm1NThmHLlzDLnUGHhCUYviiVIaYiZJkz5dHRrQqUtFZWS6lEx6RaVbX/ZF8G0+JviLLxnF6UTso5FmUmM4qidITNkYniypi14FgqhMHsVyZtRTzMQr5cxM6XMoaGZRzZQFfLmoyVl2orc1uTpv/NY151N/KvlqENYWbYEkegcD0HSPagu92J1/Eoqcnf4vbz1bgXTsR43J8O7oNuR+dbgg68JF+QAPnvvoDDnfk/CG31e79b6bRTLlRuB5AfmPC2pFcXiWQTpY6an5B/XR2sYNr2Aclz2a99xbUi0Ui51vb7uvmTr68rb4lEodSH/e08kjTtrrdMVt3Y6DYbizm2xte1hFFTtNKX0OppW9TX8786YkCALNowuwvpp+unckmjm2g0F9n6B9e+2gZ4oKdtqdaVrUgVv9dNR1rUSJQSzdNrXvp8m3fRnMTe5/xaciyR33Da33igpwHetR5UuLmouaDrsf3jidMrQm3x58ufPe7WAFWf0a/kbBt+bG/QMaC3K3sNegvXrfz9KWEyUgWA/X+UNOvUtqPeNOps50vHU5S9ak1t6moHpz6hN8SJS/bV9rbE+ul/8AFaGnXzs46XJNhzNjpEVbmv52Ap+8b7aXv1xkpls25ttv0GzvyfqNIaks/dtw4s/Unto7GOwuE3CbPfG7O0syFw+lDk0nMwUHop9ffZlkjlTbzLMZPp5GpbdEuk8AX2vtEQUOvvvOQ8BL4eMmUZBQcRz3w98Os1eJ+ZqHKmUcOXX4lVkTJ01XEigwuhRMly6nFcXqghaaPDqQzZftppSubNmTJVLSSamtqKemnfBzJmTCMqYTUYxjNSKelkumWkELqKyoUhapVHRyiUmfUzgg8CHCEJSudOXLkSZs1GzN2aOzVkrs1ZHby5l5CJpmWaJh4rOecoiGbZmWY5m0hQShABcXAyKXKcebkkmQ861BNOvRD7sXM42YR8X7geCXgnljwTysjBcHSmuxquEmfmXMk6QiXW4zWy0nhQkArVS4VRlc1GGYamauXSy1zJs1c+tqayrqND8956xXPWLKrq0mnoacrl4XhiFlUiikKIcqLJTOrJwSg1VUUJVNUlCEJlyJUmTL9HY7njg8MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhGL/ANod7Mzhv22ZA5mmSOS/h/2gpHLwxlviAiF7sszLDQwQIfLPEWHhIdyLmkpDSFQ8qnMOlydZaccbehUzKWNxMgj+J5lyrS49LM1HBT4ihDSqhvwTgPyyqoJBUpGyJgeZJJdPGkGWrr3PGQKDNsk1Ekoosako4ZFbw/2dQlLNT1yUgqmS2HDLnJBnU5IKRMlhUlel9xo4KcUuzxxCnHC/jBlCaZMzjJVBbsvmLaVQ0wgHHn2YSdSKZMKcgJ5IpgqGiPsE5lcRFS+KUy+0h4vw77TXRlfh9XhlTMpKyQuTOl3KF7pchMyWsEpmS1MoIWglJIsXCm1SxfB8QwSum4filLMpaqTcpWPwrQSQmbJmB0TpKyDwTZalIUxD8SVJHWCHPltv5amwt5mgFcYJSNm9dLPd+V+TDmbR8oixfrcP7wPV+gd9DXS6TQVrv18bCh1JPS5rcGwjn9dO4iwpBDtbtZ78ySC3e55ERVSvkamun3SB59P8SL4sKBtaLSkjqDsb+hu7Hvy2isHDemvOlD9NgeW4r1jKSNRb1ixhZ3HQ3A8+7b9LGKqXTfTyHdPTSxI1oKVqKEXGLCkFtbc3PxO+nLpFOHy7aDvoQGO9xd3sYqh4ilSLUA7w031AIqB4E600raUHZxbYuOzEg33vyu2lGOrPva3TSxbsOji8Vg7XUUpyoR8q18KjXzxYQ3IvzdPmx9zltYpb6+vke+0cg4k6EV5Go5+JHPf8hDaggerelj5RRu3r9P5RzCzUAH5gjyrfTW1RhbmObF3+Y98UKRuPkf1+ukcu+rn6AH8PpimsU4E8vef1imVoJua0tTumg1romlb3xeEqa3qCL+/07mLwCBYkPe6v1MSIKFiZjGwcvl8O7FR0dEswcJDMtqU9ERMS4llhlpHd+JxxxSUpFdTe1SMesq6bD6KsxDEKiVSUNDTT62rqqiYmXJpqWllLnVE+bMUQlEuTJQuYtRsEpJJDRm4dhtfjGIUGE4ZSzq/EsTraXD8PoqZJnVFXXVs9FNS00iUl1TJs6fNRLlpAJKlDvGVvhrkyF4eZOleXIchyKaR9rm8UnugRk4ikIVHRAKaD3KFIRCwoNVpg4aHStS3AtavIbxWz3U+JWdcVzJOeXQqX9xwOlUCTR4LSrmCilK4i4nT+OZW1YACfvlVUcATLCEp97vBLwuofCDw7wTJ9PwT8RSj+scx1yAnhxDMNbLlHEZ6ClISqmpzLlYfQEuv+r6Kk9quZNC5ivui6L1APnX1FPDHXQQBuX6W+vJrR2yX/ALoYcym3xt6RxL19daWA89/p41xdwi5bk7kmx77ae6D3IcDRgA50e1hb17iKRdr1O+9L/KmtT1scXhJ5bW2Hbbbl0uIo3MEuBqW9Q5Ol9+3Kmp0ixIGovep2sNK2pS52G+L0ylEP9fEdi3rtFRsOmiR5am/QksxFyIoqdvzBpruDra56/Ikm2JRKAZ7+T+8/p+sVZn0Gt9fj1vq2tjrFJThoa0pTwHLT5Ct+dqAShI0AuYr2D33t19NNHc35mKCneZrQa6C/Ifha/XEgQT66b66OWH8L8oo9+dhowDc9e7P7tTHU7t6ab05U0GvI9MTJl899db93uXPaxu5NqOTZntYBwByvbRujH/ljqd1uDTaorSliTS9K60O/96dKWazDR7t5D5DzirbG9iwaz9rA6Wdhy1t332e+zZxK7SGahI8mQAhJHAutnMuc5ky8jLuW4ZY95R51tPej5q+gES+TQhVGRbhS46qClzcXMYXuTwf8Ec5+M2OjC8tUv3bDKWYg43matRMThGDSVAqabMQOKpr5yQRR4ZTE1M9SkTJppqNNRWSOGZ0z3geR8P8AveKTTNq5yCKHC5CkGtrlgs6UktKp5ZLzqqYBKlh0oE2eqXIXsm8A+z3w77O2Tm8qZFl5VFRRZiMyZnj0NOT/ADPMWkFCYqZRSEJDcLDhTiJbKYYNy+WtOOlhlUVFR0XF+1PhN4QZO8HMuJwDK1IVT55lzsZxyrTLXi+OViEcIn1s9KRwSJLrTRUEngpKNC5hlyzUT6qoqNGc450xvO2JnEcXnNLl8SKHD5JUmjoJCi5lyJZJ4pi2Bn1EzinT1JSFqEuXJly+88dpxxKGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEI8ydqTsi8EO2BkJeROMmWER5hffvZYzfKvs0BnbJUe+EByOyxPXIaKXCh8tM/tCVxbEbJJslhhM0lsX9nhiz8rFsGoMap/u9dK4uFzJnoZM+Qos6pUwgs7DiQoKlrYcaFcKW4/mLLOEZnojR4rTiZwuaeql8KKukWWddPOKVFPEw45agqVNZImS18KW05O297MXj92MpjHz+Kl73EngmqIcMr4sZXlz6oSWQ64r3ELB5/k7aomJyXNVByESIiJdistR78U3DSnMEdGpioOD6Tx/KeI4IpU0pNVQueCskpLIBLJFQgOZK7gOoqlKKmRMUXSNXM3eH2NZVmLnFBr8J4j7PEqdCimWkq4UprZQ4lUky6fxKKqdZUEy5yl8SE43gs6G+u/4+VqitjYXxxUg7h9fLXZ76i24sdo4CUg9D9ajQ8i+1orBwGgr5aefjpS5p4VxbwjYv8WdubHuGGuu1rEbP13bkQdX3Y311vFcOWobgaAio6X1sNTry5YtIPz8ufbqHHWLCAdGI3PRnLjRthoNjzioHBzIv/aFBqa606ig2IGuLCkHb6594tKG0tv2J6Gz9BdtC0VErNqX3sR9D/WmxOLSjkfrv/CLSDuHa3I+t/O46vHL3nOxO5+E+op86ivOmLeBXL4RRgNiABobh/f8R01MVQ6bUJA6EH0qD8qfLFhSNx8vWLQkbEF9AXHwL+6P0LG9DbTukH1Bv5nBupHv+Lt5QKDoB5uCPgDHL3o2v/eUNOhBr6308bSnqP8AdD+rBvSASobkX2b1sflHD3p6+v8ATF3COQ9Iu4T/AHz7/wBY9fdl/h+YyNiOIc1YV9ml6npfltDneKXo9TZbmEyDYAK0QTLpgodaqsmKfiVIrEQKVN6c/as8RxQYbT+HOEVCRW4tLk4hmRUpiumwtE0TKDDlTPyy5mIz5X3qfLBE4UdPJStP3fEPx+hX2HPBtWJ4vV+LuPUsxWH4HNn4Xk+XO/DLq8ZmSTKxTF0y1F50nCqWeaGlmqCpCsQqqlUs/e8KeV7hLlRqTQWoB+JV8saD+xvcv5n9B8Y9RyLixI5lRt5PHD3o5A+KhX/hB+gpivsU8/j+sG6BxoWfTm+nS/uEcC7oRQHe1T6kg/rli8S0jb5fBobn8XYDUeV39LRwLpIvzrc057Du3/WuLwlrAel/fFSOjvz5O93v7i0UlOADXWtgKHTwtppQ+GLgm/p15ctm3sOsUJ2fbQBz5HT3c9NqRd3FNt9ddK0G96U8dsSCWbjv9EBztZyL7bw3dgL6kv5DkefziiXa18iacxzOltKWtW4GJRKDXvr2boB2e5LbubxTUOz3Gttm09x1d7PoKCndbjqBTY0I7xpYClhoadKyhGlrbO/LYdeYHPrFWuxvbRmA+JGm5AfQOLUC4TYVudBXW2+puLdOptKlF2Ac2G2/TTcavfQaPWwZ2Ac2s/0Ab/FnfJn2XPZzZ34ouS7OXGRuZ8PuHyj9phpCtv7HnjNDQp7n3cHFMrOWZS8rvFUdNIczSKh2gJfK0wsdCzpneLwL+xpmbPC6PMniQiuyjlJTTpOFFH3fNGOSwE+zCZE9CjgmHzVcRVVV0n79PlI/ySgTIqpGJS+hs/8AjfhWAJnYXlg0+M4yPwLqwfa4Vh6v3+KbLWBX1KRYSadf3eWtRM+pMyVMpFZ5MkZFyhw2y1Lcn5Fy9Lss5blLKWYGVyxkttJolKVxES84pyKj4+IKQ5GTKPfiZhHPlURGRL761uK9WssZVy7kvBKLLmVsIo8EwXD5Yl0tBRSyiWlgAqdOmLK59VVTikLqa2rmz6uqmlU6pnzZqlLOoWK4viWOV0/E8WrZ9fXVKiqbUT1cSjckIQkBMuTJQ5EqRJRLkyksiVLQgBI+sx9+PnQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIRFj4CBmkDGSyZwcJMZbMYSIgJhL4+HZjIGPgYxlcPFwcZCRCHGIqEimHHGIiHfbWy+ytbTqFIUpJopKVpUhaQpKgUqSoBSVJUGKVAuCCCQQQQQWMWrQiYhcuYhMyXMSpC0LSFIWhQKVIWlQKVJUkkKSQQQSCCDGB7tn+w24T8WVTjPnZemMu4KcQH+9GPZBjGX18I8xRRWtTyIJmEbiJnw9i4gOe8S5JYabZcSYZmDYyvLPtURNWOvscyDR1nHUYSpNDUH8Rp1AmjmncJCXVTE6/gC5VgkSkOVjpzNfhDhuJe1rMvTJeE1pdZolhRwyeok8QQEgzKFSncGUmbIHCEJp5fEZidYrj92YePPZgzS9lPjdw2zDkqLEStiWziIhTGZTzEhKEupics5qgftEhnrCmSHHUy6PeioFfvIaZQ8FHMREKz1ViOEYhhc4ya+lmSVOyFkcUmbuDKnJeXMBAdkqJB/CpKVAga+41l7GcvVBpsXoJ9Gvi4Zc1SeOmn2cKp6pDyJySNeBZUguhaUrBSOh0rOxqNeenMag9NedDj5nCeb9D3vf+HQvHxSAdbxzDm/0168qcqVtvXFpHMEanmRqw6DpYf60UKeRtyIcfy6ejRV96Odac7eYNj05nlinCDp5sfVgb+pvy0ijH+73Y29CG7fGKgdOlTYdFX61HLlQ+uKFJH6bjvq3rFpA8zsQQwPJn+Y+fP3lr0JPQjwqR/XblXFGPJ+1/g8U4H0DjuD+nvbyj994Nh4BKyT6GlPQ9aUvaw5D0i0y03s3NwQPJnH67PH6pyia3BJpQhJG/hrgEDUDS+8VSm9i7X/ADK+fJ+UfRZPy5Ms55klOWpZQRMziUtKeWn/AEcJDISp2MjXjUn3UJCtuvrSKrcKAy2FOuNoVxrN+ZsMyZlvF8z4qVCjwqlVPMtH+dqqhZEqkopAJ4fb1lVMk00oqKZaFTfaTVIlIWtPNMgZGxjxGzjgOTMCQDiGOVyKcT1k+xoaRCVT6/EqlkuKfD6KVPq5qUBU2YmT7GQiZPmS5assUglEsy1JZZIJUymHl0phGoOFbBBUUNj43nVVq5ERDpXERLyqreiHXHVqUtZOPITMuO4rmvHsVzHjExU/EcXrJtZUqvwSzMLSqeQkk+zpqSSmXTUsoMJVPJlywPwufffJ+VMGyPljBMpYBTimwjAcPkYfRoYCZMEpLzqqpUP87WVs9U2srZ6nXPq586colSzF1LvIGvgfyGPiezP0Uj3gq+XTeORXe4Pkr5OI/C6Ry60p8gdb216UrXFwlPt6ub9w3e4HdmhodEg+ZJ7WBPe+8cC9zNBsNzpagBB8DWvSuLhJZr36AN6ku/Nm6XEUd3Yk32F9t2Ibk4HfeKZctetNtE+ver6fXEnsw7+d3I07j1Z9OriH/d0FiS55sWd+jv2ikXQb1Fa7VOt7E0pew5cr3kCGGlurDblZ7O5/S1SOZsBoB1ta58xo2oikXfK29yDzoBQHnevhi/gLc+1h6n4gERcByHcnr18hqz9TFJbhIudK0rSnoBStuXkTfEqZZcEJb+R0Ju3YDvtFNjdz0sN9/jc+WkekuBvZM43doKJbcyXld2Ay13h9ozxmgRMmymykrUhYhY5UM9ETqIbUkh6EkMJM4mHJQqLbh2nEOnu3wt+z34l+LU1K8uYIulwUqAnZnxsTsOwCWlylQk1apE2dic5BBC6fCpFfNkkoNQmRLWlUcFzZ4j5VybLUMTr0za5jwYRQcFTiKrOPaSuNCKRCgQUzKtdOiYxEtSyCmM53Zy7BPCDgMuBzFMmRxH4iw3uH2s1ZigmUwEljGlId99lbLxXEwkrebfbbdYmcW7Mp1DrbrBzGDbddYV6leDn2UvDvwpVS4xWShnHOEgypsvHcXppYpcMqJZSv2mBYQVTqehmImpRMlVtRMrcSlLQ9PWU6FrlHUvO3i/mXN6ZtFIX/AFJgszjQrD6KaszquUoFJTiFayJtQhSCUrp5aZFKsFpsmaUoWPcuNoY6mhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPlM75EyVxLyzM8l8Q8pZczxlGdNIamuWs1yeAn0kj0tOJeZMTLpkxEwrjsO+23EQrxb99CxLTUTDuNPtNuJhn08iqlLkVMmVPkzAy5U5CZktQBcOlQIJBAILOCAQQQDGNV0dJiFPMpK6mkVdLNAE2nqZSJ0pYBBHFLmBSSUqAUks6VAKSQoAjB12mvYKcCOIj01zL2dc3zXgfmKIZfiGMmzZEXnHhpEzAIU42zDKi4sZvyszHxJIjIhia5ll8uaUgSjLLTEOmCd4Hivh7h9SVzcNnLoJhDiQsGfSlQBsOI+2lBR/MQuYlP7kphwx1Fj/AINYNXKmVGB1UzCJ6gVClmBVVQKXcgJ4lfeqdK1E8REyolywR7KnATwnAd2g/Zi9tPs3NxExzfwgmmbcpQ7jyVZ34XF3iDlptpgd5cbMWpPD/wCUuW5d3e53I/NeXpFCOOOIYbcVEEsp68xHKmOYYCqdRLnSQT/b0hNRKAGqlBA9rLToypsuWNtS0dM434fZrwEKXU4ZMqqZJP8AlmHcVbICRqqYJSfbyEacKqmRISXAcqcDwKvvsuOMvNuNOtLU262tKkuNOoUULQtC6LQtCklKkKTUKBBAIOOOFNyCGIcEGxDag6EbhtdQ0cLLglJBBBIIIIYixfkehY9IBwW+ICu5+EjyP576Yt4W0JHLcB+4/jrCKgcPiB4Hw0+Kvlz8cUZWjgjr8WHzJvftThB268j6iP0OE8j5EV/XhTFOEuC3+6QG9QPjFOAbEjsYFxNb0FK/vX28PT8sVdtlHmTf0ZxzioDbk94999mnIKZBIHc6TFoCa5lZCJYFI/0sHl8LS42sKc7pSqbPtpiyG6pXBsy9wLJcWhHn59qPxFOPY9JyJhc5RwrLU32+MFKx7OszAtCkewUlHFxowimmKk/jIIrqitlqlA00qar1f+xN4QDLOVp/idjdMgY5nKR93wBEyUr22HZURNRMTUBa0jgmZgq5KKtpYKVYZS4bNTPUKufJl+ni8Dc/MivyJr+rc9TwjlbyIHwjeggHUE/XcfCPxTopalf7VPpT54cPfySfe7e54qE8kljzu/x+vdw970T6KJ9SUm3ifli4IB59Gb5Ew00A8ywHuaPwuk8+Wwt4j6U31519mdgR6nXuBbq505xXmXSegc+l1D3894pd/UinjdRHnU+nqKHF4lq5tz0HK9hp2LxSx2J72HSx19B3tEmAgphNoxmXyqBjZnMIlQRDQMvhn4yLiFqIAQxDQyHX3FKJACUNkk2pW2Myjw6rxCol0dDS1NbVz1BMqmo5E2pqJqyWCZcmShc2YonThSSSdH1hnVEmmlrnVE6VTyUAlc2atEuWhI3VMmFKEDqSAGuoR7h4S+zt7SHE37BHzfL0Pwxy7FqQtyZ58ccgJuiF953XlMZSh0vZhEWlAWqHhpxCyNmIIQTGssuJfG0Xh/8AY78Y86fdarEMIk5IweoUlS63NS10uIJkcYExUrAJSZmLCoCeJUmRiEjDJU4gPUykKE2Op8x+NeSMC9tKpqyZj9dLBCZOFJTOpzN4XQF4itSKL2ZLCZMpZlUuXc+ymKHDGVngr7N/gHwuU1M82Qj3F3MiC0sRWcYRhGWYZxsqKjBZOZciJe8h4lJdRmGJzF3ShP2dUOC4HN8/DX7GvhRkYy63HqeZ4g4yn2ahPzFTyU4LIWh+I0uXZSptHMRNce0Ri87GG4E+xMkGYF69Zp8b834/xSMOmpy3QniHs8MmrNdMSfy+1xNQROSUX4TRoohc8QWyeH3+wwzDMsw0My1Dw8O02xDw7DaGmWGWkBtpllpsJbaaaQlKG20JShCEhKQAAMbaSpUuRLlyZMtEmTJQiVKlSkJly5UuWkIly5ctACUIQkBKEJASlIAAAAEdOrWuYtS1qUta1KWta1FS1rUSVKUoklSlEkqUSSSSSXiri+LYYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCGEIYQhhCPMHGvsW9lbtEPOxvGHgZkHN06ebbZczT+yRIs5rZZQUMMLzllt2UZochmEqPuIV2bLhmiSUMgkk/KrsDwnEjxVtBTzpjAe2KOCewsB7aXwTSA9klZSOUcfxbKmXccJXimD0VVNIANR7L2NUQAwBqpBlVBSnZJmlI2EYr+LX/R++zVmmJiphwk4ncS+E0REOrcRJpp+zeI2VoJspHu4eXw8yEjzU2gKqVvTPN84dIIpShCuJVvh1hc4lVHVVVGSSeBXDUyhyCQr2c0X3VOX2jrrE/BXAKlSl4bX1+GkkkSpns6+nTyCEzPY1AHMrqZhvGPniT/0fftO5ediH+GPFPhDxHlrKCWmJy5mTh/mSKXUd1DUtdleZ5Am3e7y4nN0OAe7QK7x7nHKrw5xSWSaWso6lAFhMMynmqOwCCiZLG7vOHnHCq/wUx+SSqgxHDq5AFhNVPop6jyEsy50kd1VIjyFmL2QHtD8uB1S+AEXOWmQVKdy5nzhzOCtI3ahms2iMdKrd1DcMp292wQoD4szJeZJTvhxmC95dRTL8wBO4j2buI4vO8L87yHJwZU4DeTWUE30SmoCz2CSb3HLr7KPs7e2E7nWWSnOPZm45yySMuqjJvGtcN8zzKDeg4NSFOQEPMJVLo2CXEzBZRCt9yIWttlx6MQ28mGUhXW/iUnO2VspYrX5fyfmPH8fXLFHg9DhGB4niy0V1UFIl1tTKw6kqlpo6BImVc0rCJc5UqVSGbKXVS1jm3hH4QVWbPEHA8IziP2ZytJnKxHMGJYvNlYbTzcNoVIXNwykq6yZIp11+KzFSqGQJcyZNkSp0/EEyZ0uimyzkMb7NvaHabbaa7P3GptppCG222+FGeEobbbSEobQlMjCUoQkBKEpASlICQkAAY8w53g14yz502fP8LPEydOnzFzp06bkjM65k6bNWVzZs1a8MUtcyYtSlzFqUpSlKKlKJJMe0kjOWRKWRIpabNmVaemppMqnp6eRj+DSpEinkoTLkyJMpFYlEqTKlpTLly0BKUISlKQAAIqf+Tj2ituAHG3z4VZ5/+B/rmMWf+xbxg/8A1T+JH/AuZ/lhcTft1kv/AExyz/xHhX/XRfpR2TO05PFpRBcCeJrClEAGcZXmGXkXNPiczA1LW0DmpSgBqTTH1sO+z5414moJpvC7OUoqIA/rDAqzCE3OpVi0uiQkcyogDcxh1PiPkSkBM3NuBLFyfu2Iyq421ZNIZ5J5ABzs8dryX2dXa3nDjaHuHcDI21qAVETvOGVGWmUmvxutS+bzCKUkWqGYZ5yp+6aHHPsM+x34+4itCZuUKXC5aiAqbiWYMBQiWDqpcukxCrnkDcS5MxWv4XDRxuq8a/DqmClJxqZVqAJCaXDMRUpZGgCp1NJlgnbimIH+s2vpHJ/skuI0cEuZ/wCK2TcvJ+FQhsqSmcZreKVAFTbkRNRlFmHdTcKLTca3UEJcWkheO5su/wBH/m6pZeas95ewgfhPscCocRx6YUkAlK5laMvy5UxLkHgTUocMlageIcJxP7RuCy3ThGX8TrTcceIVFLhyAQfzJRTnElqSQLcSpSmN0pNo9c8PfZddnfKhbic4RWcOJccG0hxmczf9gSJLqFVD0NLMsol0xRUfCpmOn0xYUP8A1YNSdgcofYd8IMAKJ+YZ2YM6VQSkLl4jX/1VhYmJLiZJosGTSViX0VLqcVrJRAA4NSet8Z8fM6YgDLw1GG4HKd0rpqf75V8LMErn1xnSLbLk0chbueLRvcWQeE/DPhZAql3DrImVsnQziW0xKpFJ4OCjI/3VQ2uZzFDX7RmjyAopS/MYqKfCaJDndAA2eypkLJWRqU0eT8rYHl2StKEzlYXh1NTVFV7N+BVbWJR97rpiQSEzayfPmAMnjYADqjGMxY7j80TsaxavxJaSoyxV1M2bKk8TcQkSCr2FOlTAlEiXLQTfheOwsctj40MIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhDCEMIQwhH/9k=" x="-182" y="-134" width="365" height="268"/>
-</g>
-</symbol>
-<symbol id="symbol:fpf2895.1:m" overflow="visible">
-<line x1="-250" y1="350" x2="250" y2="350"/>
-<line x1="-250" y1="-450" x2="-250" y2="350"/>
-<line x1="-250" y1="-450" x2="250" y2="-450"/>
-<line x1="250" y1="-450" x2="250" y2="350"/>
-<line x1="300" y1="-200" x2="250" y2="-200"/>
-<line x1="-300" y1="-200" x2="-250" y2="-200"/>
-<line x1="300" y1="-50" x2="250" y2="-50"/>
-<line x1="-300" y1="-100" x2="-250" y2="-100"/>
-<line x1="-300" y1="200" x2="-250" y2="200"/>
-<line x1="-300" y1="50" x2="-250" y2="50"/>
-<line x1="300" y1="100" x2="250" y2="100"/>
-<line x1="300" y1="50" x2="250" y2="50"/>
-<line x1="300" y1="250" x2="250" y2="250"/>
-<line x1="300" y1="300" x2="250" y2="300"/>
-<line x1="300" y1="-350" x2="250" y2="-350"/>
-<line x1="-300" y1="-350" x2="-250" y2="-350"/>
-<g transform="translate(0,-411)">
-<text stroke="none" font-size="32" text-anchor="middle" transform="scale(-1 1) ">fpf2895</text>
-</g>
-<g transform="translate(240,-200)">
-<text stroke="none" font-size="24" transform="scale(-1 1) ">NC</text>
-</g>
-<g transform="translate(-240,-201)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">ON</text>
-</g>
-<g transform="translate(240,-50)">
-<text stroke="none" font-size="24" transform="scale(-1 1) ">FLAGB</text>
-</g>
-<g transform="translate(-240,-101)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">POL</text>
-</g>
-<g transform="translate(-240,199)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">ISET</text>
-</g>
-<g transform="translate(-240,49)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">OC_MODE</text>
-</g>
-<g transform="translate(240,100)">
-<text stroke="none" font-size="24" transform="scale(-1 1) ">OV1</text>
-</g>
-<g transform="translate(240,50)">
-<text stroke="none" font-size="24" transform="scale(-1 1) ">OV2</text>
-</g>
-<g transform="translate(240,250)">
-<text stroke="none" font-size="24" transform="scale(-1 1) ">GND1</text>
-</g>
-<g transform="translate(240,300)">
-<text stroke="none" font-size="24" transform="scale(-1 1) ">GND2</text>
-</g>
-<g transform="translate(240,-350)">
-<text stroke="none" font-size="24" transform="scale(-1 1) ">VOUT[0..6]</text>
-</g>
-<g transform="translate(-240,-350)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">VIN[0..6]</text>
-</g>
-</symbol>
-<symbol id="symbol:pmos.1:m:s" overflow="visible">
-<line x1="-39" y1="-42" x2="-39" y2="42" stroke-width="6"/>
-<line x1="-25" y1="15" x2="-25" y2="-15" stroke-width="6"/>
-<line x1="-25" x2="10"/>
-<line x1="10" x2="10" y2="40"/>
-<line x1="10" x2="-5" y2="-10"/>
-<line x1="10" x2="-5" y2="10"/>
-<line x1="50" y1="40" x2="-25" y2="40"/>
-<line x1="50" y1="5" x2="40" y2="-10"/>
-<line x1="60" y1="-10" x2="50" y2="5"/>
-<line x1="60" y1="-10" x2="40" y2="-10"/>
-<line x1="60" y1="5" x2="40" y2="5"/>
-<line x1="-25" y1="50" x2="-25" y2="30" stroke-width="6"/>
-<line x1="-25" y1="-50" x2="-25" y2="-30" stroke-width="6"/>
-<line x1="-25" y1="-40" x2="50" y2="-40"/>
-<line x1="-39" y1="43" x2="-39" y2="50"/>
-<line x1="50" y1="100" x2="50" y2="5"/>
-<line x1="-100" y1="50" x2="-39" y2="50"/>
-<line x1="50" y1="-10" x2="50" y2="-100"/>
-<circle cx="-2" r="67" fill="none"/>
-<g transform="translate(20,99)">
-<text stroke="none" font-size="24" transform="scale(-1 1) rotate(180)">?</text>
-</g>
-<g transform="translate(-101,45)">
-<text stroke="none" font-size="24" transform="scale(-1 1) rotate(180)">?</text>
-</g>
-<g transform="translate(20,-70)">
-<text stroke="none" font-size="24" transform="scale(-1 1) rotate(180)">?</text>
-</g>
-</symbol>
-<symbol id="symbol:usb_mux.3" overflow="visible">
-<line x1="-200" y1="-225" x2="-200" y2="275"/>
-<line x1="-200" y1="-225" x2="200" y2="-225"/>
-<line x1="-200" y1="275" x2="200" y2="275"/>
-<line x1="200" y1="-225" x2="200" y2="275"/>
-<line x1="-250" y1="-100" x2="-200" y2="-100"/>
-<line x1="250" y1="-100" x2="200" y2="-100"/>
-<line x1="250" x2="200"/>
-<line x1="-250" y1="-50" x2="-200" y2="-50"/>
-<line x1="250" y1="-150" x2="200" y2="-150"/>
-<line x1="250" y1="50" x2="200" y2="50"/>
-<line x1="250" y1="200" x2="200" y2="200"/>
-<line x1="-250" y1="-200" x2="-200" y2="-200"/>
-<line x1="-250" y1="150" x2="-200" y2="150"/>
-<line x1="-250" y1="100" x2="-200" y2="100"/>
-<text stroke="none" x="190" y="200" font-size="29" text-anchor="end">GND</text>
-<text stroke="none" x="195" y="-146" font-size="29" text-anchor="end">D1_P</text>
-<text stroke="none" x="195" y="-96" font-size="29" text-anchor="end">D1_N</text>
-<text stroke="none" x="195" y="4" font-size="29" text-anchor="end">D2_P</text>
-<text stroke="none" x="195" y="54" font-size="29" text-anchor="end">D2_N</text>
-<text stroke="none" x="-190" y="100" font-size="29">OE_L</text>
-<text stroke="none" x="-187" y="-45" font-size="29">D_N</text>
-<text stroke="none" x="-190" y="-185" font-size="29">VCC</text>
-<text stroke="none" x="-187" y="-94" font-size="29">D_P</text>
-<text stroke="none" x="-190" y="150" font-size="29">S</text>
-</symbol>
-<symbol id="symbol:dual_nfet.18" overflow="visible">
-<line x1="-25" y1="-40" x2="100" y2="-40"/>
-<line x1="100" y1="-40" x2="100" y2="-100"/>
-<line x1="50" y1="-10" x2="50" y2="-100"/>
-<line x1="50" y1="-10" x2="60" y2="5"/>
-<line x1="40" y1="5" x2="50" y2="-10"/>
-<line x1="40" y1="5" x2="60" y2="5"/>
-<line y1="-12" x2="-25"/>
-<line x1="-25" x2="25"/>
-<line y1="11" x2="-25"/>
-<line x1="25" y1="40" x2="25"/>
-<line x1="-25" y1="30" x2="-25" y2="50" stroke-width="6"/>
-<line x1="50" y1="100" x2="50" y2="5"/>
-<line x1="-25" y1="40" x2="50" y2="40"/>
-<line x1="-25" y1="-30" x2="-25" y2="-50" stroke-width="6"/>
-<line x1="40" y1="-10" x2="60" y2="-10"/>
-<line x1="-25" y1="-10" x2="-25" y2="10" stroke-width="6"/>
-<line x1="-100" y1="50" x2="-39" y2="50"/>
-<line x1="-39" y1="43" x2="-39" y2="50"/>
-<line x1="-39" y1="-42" x2="-39" y2="42" stroke-width="6"/>
-<circle cx="-2" r="67" fill="none"/>
-<g transform="translate(41,-107)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32" text-anchor="end">D1</text>
-</g></g>
-<text stroke="none" x="-107" y="40" font-size="32">G1</text>
-<g transform="translate(46,95)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32">S1</text>
-</g></g>
-</symbol>
-<symbol id="symbol:dual_nfet.19" overflow="visible">
-<line x1="-25" y1="-40" x2="100" y2="-40"/>
-<line x1="100" y1="-40" x2="100" y2="-100"/>
-<line x1="25" y1="40" x2="25"/>
-<line x1="-25" x2="25"/>
-<line y1="-12" x2="-25"/>
-<line y1="11" x2="-25"/>
-<line x1="40" y1="5" x2="60" y2="5"/>
-<line x1="-25" y1="30" x2="-25" y2="50" stroke-width="6"/>
-<line x1="50" y1="100" x2="50" y2="5"/>
-<line x1="-25" y1="40" x2="50" y2="40"/>
-<line x1="-25" y1="-30" x2="-25" y2="-50" stroke-width="6"/>
-<line x1="50" y1="-10" x2="50" y2="-100"/>
-<line x1="40" y1="-10" x2="60" y2="-10"/>
-<line x1="-25" y1="-10" x2="-25" y2="10" stroke-width="6"/>
-<line x1="50" y1="-10" x2="60" y2="5"/>
-<line x1="40" y1="5" x2="50" y2="-10"/>
-<line x1="-100" y1="50" x2="-39" y2="50"/>
-<line x1="-39" y1="43" x2="-39" y2="50"/>
-<line x1="-39" y1="-42" x2="-39" y2="42" stroke-width="6"/>
-<circle cx="-2" r="67" fill="none"/>
-<g transform="translate(42,-100)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32" text-anchor="end">D2</text>
-</g></g>
-<text stroke="none" x="-115" y="40" font-size="32">G2</text>
-<g transform="translate(42,95)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32">S2</text>
-</g></g>
-</symbol>
-<symbol id="symbol:ferrite_bead.1" overflow="visible">
-<line x1="-30" y1="-28" x2="80" y2="-28"/>
-<line x1="-30" y1="-22" x2="80" y2="-22"/>
-<line x1="100" x2="82"/>
-<line x1="-50" x2="-32"/>
-<path fill="none" d="M 12 10 A 16 16 0 1 0 -12 10"/>
-<path fill="none" d="M -13 9 A 13 13 0 1 0 -31 0"/>
-<path fill="none" d="M 37 10 A 16 16 0 1 0 12 10"/>
-<path fill="none" d="M 62 10 A 16 16 0 1 0 37 10"/>
-<path fill="none" d="M 81 0 A 13 13 0 1 0 63 9"/>
-</symbol>
-<symbol id="symbol:smbus_io_xpander.7" overflow="visible">
-<line x1="300" y1="500" x2="250" y2="500"/>
-<line x1="300" y1="450" x2="250" y2="450"/>
-<line x1="250" y1="550" x2="250" y2="-550"/>
-<line x1="-250" y1="-550" x2="-250" y2="550"/>
-<line x1="300" y1="-200" x2="250" y2="-200"/>
-<line x1="300" y1="-100" x2="250" y2="-100"/>
-<line x1="300" y1="-150" x2="250" y2="-150"/>
-<line x1="300" y1="-250" x2="250" y2="-250"/>
-<line x1="300" y1="-350" x2="250" y2="-350"/>
-<line x1="300" y1="-400" x2="250" y2="-400"/>
-<line x1="300" y1="-500" x2="250" y2="-500"/>
-<line x1="300" y1="-300" x2="250" y2="-300"/>
-<line x1="300" y1="-50" x2="250" y2="-50"/>
-<line x1="300" y1="350" x2="250" y2="350"/>
-<line x1="300" y1="300" x2="250" y2="300"/>
-<line x1="300" y1="250" x2="250" y2="250"/>
-<line x1="300" y1="200" x2="250" y2="200"/>
-<line x1="300" y1="150" x2="250" y2="150"/>
-<line x1="300" y1="100" x2="250" y2="100"/>
-<line x1="300" y1="50" x2="250" y2="50"/>
-<line x1="300" y1="400" x2="250" y2="400"/>
-<line x1="-300" y1="-250" x2="-250" y2="-250"/>
-<line x1="-300" y1="-500" x2="-250" y2="-500"/>
-<line x1="-300" y1="-100" x2="-250" y2="-100"/>
-<line x1="-300" y1="-400" x2="-250" y2="-400"/>
-<line x1="-300" y1="-350" x2="-250" y2="-350"/>
-<line x1="-300" y1="-200" x2="-250" y2="-200"/>
-<line x1="-250" y1="-550" x2="250" y2="-550"/>
-<line x1="250" y1="550" x2="-250" y2="550"/>
-<text stroke="none" x="240" y="-50" font-size="29" text-anchor="end">P07</text>
-<text stroke="none" x="-240" y="-350" font-size="29">SDA</text>
-<text stroke="none" x="-240" y="-400" font-size="29">SCL</text>
-<text stroke="none" x="-240" y="-500" font-size="29">VCCI</text>
-<text stroke="none" x="240" y="400" font-size="29" text-anchor="end">P17</text>
-<text stroke="none" x="240" y="-500" font-size="29" text-anchor="end">VCCP</text>
-<text stroke="none" x="240" y="-350" font-size="29" text-anchor="end">P01</text>
-<text stroke="none" x="240" y="-400" font-size="29" text-anchor="end">P00</text>
-<text stroke="none" x="240" y="-300" font-size="29" text-anchor="end">P02</text>
-<text stroke="none" x="240" y="-250" font-size="29" text-anchor="end">P03</text>
-<text stroke="none" x="240" y="-200" font-size="29" text-anchor="end">P04</text>
-<text stroke="none" x="240" y="-100" font-size="29" text-anchor="end">P06</text>
-<text stroke="none" x="240" y="-150" font-size="29" text-anchor="end">P05</text>
-<text stroke="none" x="240" y="50" font-size="29" text-anchor="end">P10</text>
-<text stroke="none" x="240" y="100" font-size="29" text-anchor="end">P11</text>
-<text stroke="none" x="240" y="150" font-size="29" text-anchor="end">P12</text>
-<text stroke="none" x="240" y="200" font-size="29" text-anchor="end">P13</text>
-<text stroke="none" x="240" y="250" font-size="29" text-anchor="end">P14</text>
-<text stroke="none" x="240" y="300" font-size="29" text-anchor="end">P15</text>
-<text stroke="none" x="240" y="350" font-size="29" text-anchor="end">P16</text>
-<text stroke="none" x="-240" y="-250" font-size="29">INT_L</text>
-<text stroke="none" x="-240" y="-100" font-size="29">A0</text>
-<text stroke="none" x="-240" y="-200" font-size="29">RESET_L</text>
-<text stroke="none" x="240" y="500" font-size="29" text-anchor="end">GND</text>
-<text stroke="none" x="240" y="450" font-size="29" text-anchor="end">PAD</text>
-</symbol>
-<symbol id="symbol:usb_type_micro_b.1:m" overflow="visible">
-<line x1="-100" y1="-300" x2="-100" y2="250"/>
-<line x1="100" y1="-300" x2="-100" y2="-300"/>
-<line x1="100" y1="250" x2="-100" y2="250"/>
-<line x1="100" y1="-300" x2="100" y2="250"/>
-<line x1="-150" y1="-50" x2="-100" y2="-50"/>
-<line x1="-150" y1="200" x2="-100" y2="200"/>
-<line x1="-150" y1="-150" x2="-100" y2="-150"/>
-<line x1="-150" y1="-250" x2="-100" y2="-250"/>
-<line x1="-150" y1="-200" x2="-100" y2="-200"/>
-<line x1="-150" y1="50" x2="-100" y2="50"/>
-<line x1="-150" y1="150" x2="-100" y2="150"/>
-<line x1="-150" y1="100" x2="-100" y2="100"/>
-<line x1="-150" y1="-100" x2="-100" y2="-100"/>
-<g transform="translate(50,-9)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="29" text-anchor="middle" transform="scale(-1 1) ">USB MICRO-B</text>
-</g></g>
-<g transform="translate(-90,-50)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">GND</text>
-</g>
-<g transform="translate(-90,200)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">G4</text>
-</g>
-<g transform="translate(-90,-150)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">D+</text>
-</g>
-<g transform="translate(-90,-250)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">VBUS</text>
-</g>
-<g transform="translate(-90,-200)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">D-</text>
-</g>
-<g transform="translate(-90,50)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">G1</text>
-</g>
-<g transform="translate(-90,150)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">G3</text>
-</g>
-<g transform="translate(-90,100)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">G2</text>
-</g>
-<g transform="translate(-90,-100)">
-<text stroke="none" font-size="23" text-anchor="end" transform="scale(-1 1) ">ID</text>
-</g>
-</symbol>
-<symbol id="symbol:usb_type_a.9" overflow="visible">
-<line x1="-100" y1="-200" x2="150" y2="-200"/>
-<line x1="-100" y1="200" x2="-100" y2="-200"/>
-<line x1="150" y1="-200" x2="150" y2="200"/>
-<line x1="-100" y1="200" x2="150" y2="200"/>
-<line x1="-150" y1="150" x2="-100" y2="150"/>
-<line x1="-150" y1="-50" x2="-100" y2="-50"/>
-<line x1="-150" y1="100" x2="-100" y2="100"/>
-<line x1="-150" x2="-100"/>
-<line x1="-150" y1="-100" x2="-100" y2="-100"/>
-<line x1="-150" y1="-150" x2="-100" y2="-150"/>
-<text stroke="none" x="-25" y="25" font-size="29">USB TYPE A RA</text>
-<text stroke="none" x="-90" y="150" font-size="23">SHIELD2</text>
-<text stroke="none" x="-90" y="-50" font-size="23">DP1</text>
-<text stroke="none" x="-90" y="100" font-size="23">SHIELD1</text>
-<text stroke="none" x="-90" font-size="23">GND</text>
-<text stroke="none" x="-90" y="-100" font-size="23">DM1</text>
-<text stroke="none" x="-90" y="-150" font-size="23">VBUS1</text>
-</symbol>
-<symbol id="symbol:stm32f072xx.1" overflow="visible">
-<line x1="-300" y1="-1450" x2="350" y2="-1450"/>
-<line x1="-300" y1="-1450" x2="-300" y2="900"/>
-<line x1="350" y1="-1450" x2="350" y2="900"/>
-<line x1="-300" y1="900" x2="350" y2="900"/>
-<line x1="400" y1="-1400" x2="350" y2="-1400"/>
-<line x1="-300" y1="-975" x2="350" y2="-975"/>
-<line x1="-300" y1="-475" x2="350" y2="-475"/>
-<line x1="-350" y1="-1300" x2="-300" y2="-1300"/>
-<line x1="-350" y1="-1400" x2="-300" y2="-1400"/>
-<line x1="-350" y1="-1250" x2="-300" y2="-1250"/>
-<line x1="-350" y1="-1150" x2="-300" y2="-1150"/>
-<line x1="-350" y1="-100" x2="-300" y2="-100"/>
-<line x1="-350" y1="-400" x2="-300" y2="-400"/>
-<line x1="-350" y1="-900" x2="-300" y2="-900"/>
-<line x1="-350" y1="250" x2="-300" y2="250"/>
-<line x1="-350" y1="300" x2="-300" y2="300"/>
-<line x1="-350" y1="650" x2="-300" y2="650"/>
-<line x1="-350" y1="700" x2="-300" y2="700"/>
-<line x1="-350" y1="750" x2="-300" y2="750"/>
-<line x1="-350" y1="850" x2="-300" y2="850"/>
-<line x1="-350" y1="800" x2="-300" y2="800"/>
-<line x1="400" y1="-1300" x2="350" y2="-1300"/>
-<line x1="400" y1="-1350" x2="350" y2="-1350"/>
-<line x1="400" y1="-1050" x2="350" y2="-1050"/>
-<line x1="400" y1="-1100" x2="350" y2="-1100"/>
-<line x1="400" y1="-1150" x2="350" y2="-1150"/>
-<line x1="400" y1="-1200" x2="350" y2="-1200"/>
-<line x1="400" y1="-1250" x2="350" y2="-1250"/>
-<line x1="400" y1="-850" x2="350" y2="-850"/>
-<line x1="400" y1="-900" x2="350" y2="-900"/>
-<line x1="400" y1="-800" x2="350" y2="-800"/>
-<line x1="400" y1="-750" x2="350" y2="-750"/>
-<line x1="400" y1="-700" x2="350" y2="-700"/>
-<line x1="400" y1="-550" x2="350" y2="-550"/>
-<line x1="400" y1="-600" x2="350" y2="-600"/>
-<line x1="400" y1="-650" x2="350" y2="-650"/>
-<line x1="400" y1="-400" x2="350" y2="-400"/>
-<line x1="400" y1="-350" x2="350" y2="-350"/>
-<line x1="400" y1="-300" x2="350" y2="-300"/>
-<line x1="400" y1="-250" x2="350" y2="-250"/>
-<line x1="400" y1="-200" x2="350" y2="-200"/>
-<line x1="400" y1="-150" x2="350" y2="-150"/>
-<line x1="400" y1="-100" x2="350" y2="-100"/>
-<line x1="400" y1="-50" x2="350" y2="-50"/>
-<line x1="400" x2="350"/>
-<line x1="400" y1="50" x2="350" y2="50"/>
-<line x1="400" y1="100" x2="350" y2="100"/>
-<line x1="400" y1="200" x2="350" y2="200"/>
-<line x1="400" y1="150" x2="350" y2="150"/>
-<line x1="400" y1="250" x2="350" y2="250"/>
-<line x1="400" y1="500" x2="350" y2="500"/>
-<line x1="400" y1="300" x2="350" y2="300"/>
-<line x1="400" y1="350" x2="350" y2="350"/>
-<line x1="400" y1="850" x2="350" y2="850"/>
-<line x1="400" y1="550" x2="350" y2="550"/>
-<text stroke="none" x="340" y="-400" font-size="32" text-anchor="end">PB0</text>
-<text stroke="none" x="-290" y="-1400" font-size="32">VBAT</text>
-<text stroke="none" x="-290" y="-1300" font-size="32">VDD</text>
-<text stroke="none" x="340" y="-1100" font-size="32" text-anchor="end">PA6</text>
-<text stroke="none" x="-290" y="-1250" font-size="32">VDD</text>
-<text stroke="none" x="340" y="-650" font-size="32" text-anchor="end">PA13</text>
-<text stroke="none" x="340" y="-300" font-size="32" text-anchor="end">PB2</text>
-<text stroke="none" x="340" y="-350" font-size="32" text-anchor="end">PB1</text>
-<text stroke="none" x="340" y="-100" font-size="32" text-anchor="end">PB6</text>
-<text stroke="none" x="340" y="-49" font-size="32" text-anchor="end">PB7</text>
-<text stroke="none" x="340" y="51" font-size="32" text-anchor="end">PB9</text>
-<text stroke="none" x="340" y="1" font-size="32" text-anchor="end">PB8</text>
-<text stroke="none" x="340" y="101" font-size="32" text-anchor="end">PB10</text>
-<text stroke="none" x="340" y="151" font-size="32" text-anchor="end">PB11</text>
-<text stroke="none" x="340" y="251" font-size="32" text-anchor="end">PB13</text>
-<text stroke="none" x="340" y="301" font-size="32" text-anchor="end">PB14</text>
-<text stroke="none" x="340" y="351" font-size="32" text-anchor="end">PB15</text>
-<text stroke="none" x="340" y="-600" font-size="32" text-anchor="end">PA14</text>
-<text stroke="none" x="340" y="-900" font-size="32" text-anchor="end">PA8</text>
-<text stroke="none" x="340" y="-700" font-size="32" text-anchor="end">PA12</text>
-<text stroke="none" x="340" y="-750" font-size="32" text-anchor="end">PA11</text>
-<text stroke="none" x="340" y="-550" font-size="32" text-anchor="end">PA15</text>
-<text stroke="none" x="340" y="201" font-size="32" text-anchor="end">PB12</text>
-<text stroke="none" x="-290" y="-1150" font-size="32">VDDA</text>
-<text stroke="none" x="-290" y="-900" font-size="32">VDDIO2</text>
-<text stroke="none" x="340" y="-1400" font-size="32" text-anchor="end">PA0</text>
-<text stroke="none" x="340" y="-1350" font-size="32" text-anchor="end">PA1</text>
-<text stroke="none" x="340" y="-200" font-size="32" text-anchor="end">PB4</text>
-<text stroke="none" x="340" y="-150" font-size="32" text-anchor="end">PB5</text>
-<text stroke="none" x="-290" y="-100" font-size="32">PF1/OSC_OUT</text>
-<text stroke="none" x="340" y="500" font-size="32" text-anchor="end">PC13</text>
-<text stroke="none" x="-290" y="300" font-size="32">NRST</text>
-<text stroke="none" x="-290" y="250" font-size="32">BOOT0</text>
-<text stroke="none" x="-290" y="849" font-size="32">PAD</text>
-<text stroke="none" x="-290" y="799" font-size="32">VSSA</text>
-<text stroke="none" x="-290" y="749" font-size="32">VSS</text>
-<text stroke="none" x="-290" y="699" font-size="32">VSS</text>
-<text stroke="none" x="-290" y="649" font-size="32">VSS</text>
-<text stroke="none" x="340" y="-1050" font-size="32" text-anchor="end">PA7</text>
-<text stroke="none" x="340" y="-850" font-size="32" text-anchor="end">PA9</text>
-<text stroke="none" x="340" y="-800" font-size="32" text-anchor="end">PA10</text>
-<text stroke="none" x="340" y="-250" font-size="32" text-anchor="end">PB3</text>
-<text stroke="none" x="-290" y="-400" font-size="32">PF0/OSC_IN</text>
-<text stroke="none" x="340" y="550" font-size="32" text-anchor="end">PC14/OSC32_IN</text>
-<text stroke="none" x="340" y="850" font-size="32" text-anchor="end">PC15/OSC32_OUT</text>
-<text stroke="none" x="340" y="-1150" font-size="32" text-anchor="end">PA5</text>
-<text stroke="none" x="340" y="-1200" font-size="32" text-anchor="end">PA4</text>
-<text stroke="none" x="340" y="-1250" font-size="32" text-anchor="end">PA3</text>
-<text stroke="none" x="340" y="-1300" font-size="32" text-anchor="end">PA2</text>
-</symbol>
-<symbol id="symbol:esd_array.5" overflow="visible">
-<line x1="-150" y1="-50" x2="-150" y2="100"/>
-<line x1="-150" y1="-50" x2="250" y2="-50"/>
-<line x1="250" y1="100" x2="-150" y2="100"/>
-<line x1="250" y1="100" x2="250" y2="-50"/>
-<line x1="-75" y1="25" x2="-125" y2="-25"/>
-<line x1="-125" y1="25" x2="-75" y2="25"/>
-<line x1="-75" y1="-25" x2="-125" y2="-25"/>
-<line x1="-75" y1="-25" x2="-125" y2="25"/>
-<line x1="-75" x2="-75" y2="-5"/>
-<line x1="-75" x2="-125"/>
-<line x1="-125" x2="-125" y2="4"/>
-<line x1="-25" x2="-25" y2="4"/>
-<line x1="25" x2="-25"/>
-<line x1="25" x2="25" y2="-5"/>
-<line x1="25" y1="25" x2="-25" y2="25"/>
-<line x1="25" y1="25" x2="-25" y2="-25"/>
-<line x1="25" y1="-25" x2="-25" y2="25"/>
-<line x1="-25" y1="-25" x2="25" y2="-25"/>
-<line x1="125" y1="-25" x2="75" y2="25"/>
-<line x1="125" y1="-25" x2="75" y2="-25"/>
-<line x1="75" y1="25" x2="125" y2="25"/>
-<line x1="125" y1="25" x2="75" y2="-25"/>
-<line x1="100" y1="25" x2="100" y2="75"/>
-<line x1="200" y1="75" x2="-100" y2="75"/>
-<line x1="200" y1="25" x2="200" y2="75"/>
-<line x1="-100" y1="25" x2="-100" y2="75"/>
-<line x1="225" y1="25" x2="175" y2="25"/>
-<line x1="175" y1="-25" x2="225" y2="-25"/>
-<line y1="25" y2="75"/>
-<line x1="75" x2="75" y2="4"/>
-<line x1="125" x2="75"/>
-<line x1="125" x2="125" y2="-5"/>
-<line x1="175" x2="175" y2="4"/>
-<line x1="225" x2="175"/>
-<line x1="225" x2="225" y2="-5"/>
-<line x1="225" y1="-25" x2="175" y2="25"/>
-<line x1="225" y1="25" x2="175" y2="-25"/>
-<line x1="200" y1="-100" x2="200" y2="-25"/>
-<line x1="-100" y1="-100" x2="-100" y2="-25"/>
-<line x1="100" y1="-100" x2="100" y2="-25"/>
-<line y1="-100" y2="-25"/>
-<line x1="50" y1="150" x2="50" y2="75"/>
-</symbol>
-<symbol id="symbol:res.5:m" overflow="visible">
-<line x1="-22" y1="-14" x2="18" y2="-34"/>
-<line x1="19" y1="6" x2="-22" y2="-14"/>
-<line x1="-22" y1="-54" x2="18" y2="-34"/>
-<line x1="18" y1="-74" x2="-22" y2="-54"/>
-<line x1="-23" y1="25" x2="19" y2="6"/>
-<line y1="36" x2="-23" y2="25"/>
-<line y1="-84" x2="18" y2="-74"/>
-<line y1="50" y2="36"/>
-<line y1="-100" y2="-84"/>
-</symbol>
-<symbol id="symbol:aces_50699.1:m" overflow="visible">
-<line x1="150" y1="-800" x2="150" y2="850"/>
-<line x1="-200" y1="-800" x2="150" y2="-800"/>
-<line x1="-200" y1="850" x2="150" y2="850"/>
-<line x1="-200" y1="-800" x2="-200" y2="850"/>
-<line x1="50" y1="900" x2="50" y2="850"/>
-<line x1="-50" y1="900" x2="-50" y2="850"/>
-<line x1="-250" y1="-750" x2="-200" y2="-750"/>
-<line x1="-250" y1="-700" x2="-200" y2="-700"/>
-<line x1="-250" y1="-650" x2="-200" y2="-650"/>
-<line x1="-250" y1="-600" x2="-200" y2="-600"/>
-<line x1="-250" y1="-550" x2="-200" y2="-550"/>
-<line x1="-250" y1="-500" x2="-200" y2="-500"/>
-<line x1="-250" y1="-450" x2="-200" y2="-450"/>
-<line x1="-250" y1="-400" x2="-200" y2="-400"/>
-<line x1="-250" y1="-350" x2="-200" y2="-350"/>
-<line x1="-250" y1="-300" x2="-200" y2="-300"/>
-<line x1="-250" y1="-250" x2="-200" y2="-250"/>
-<line x1="-250" y1="-200" x2="-200" y2="-200"/>
-<line x1="-250" y1="-150" x2="-200" y2="-150"/>
-<line x1="-250" y1="-100" x2="-200" y2="-100"/>
-<line x1="-250" y1="-50" x2="-200" y2="-50"/>
-<line x1="-250" x2="-200"/>
-<line x1="-250" y1="100" x2="-200" y2="100"/>
-<line x1="-250" y1="50" x2="-200" y2="50"/>
-<line x1="-250" y1="250" x2="-200" y2="250"/>
-<line x1="-250" y1="200" x2="-200" y2="200"/>
-<line x1="-250" y1="150" x2="-200" y2="150"/>
-<line x1="-250" y1="350" x2="-200" y2="350"/>
-<line x1="-250" y1="300" x2="-200" y2="300"/>
-<line x1="-250" y1="500" x2="-200" y2="500"/>
-<line x1="-250" y1="450" x2="-200" y2="450"/>
-<line x1="-250" y1="400" x2="-200" y2="400"/>
-<line x1="-250" y1="700" x2="-200" y2="700"/>
-<line x1="-250" y1="650" x2="-200" y2="650"/>
-<line x1="-250" y1="600" x2="-200" y2="600"/>
-<line x1="-250" y1="550" x2="-200" y2="550"/>
-<g transform="translate(0,-100)">
-<text stroke="none" font-size="32" text-anchor="middle" transform="scale(-1 1) ">aces_50699</text>
-</g>
-<g transform="translate(50,840)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">G2</text>
-</g></g>
-<g transform="translate(-51,840)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">G1</text>
-</g></g>
-<g transform="translate(-190,700)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">30</text>
-</g>
-<g transform="translate(-190,650)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">29</text>
-</g>
-<g transform="translate(-190,600)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">28</text>
-</g>
-<g transform="translate(-190,550)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">27</text>
-</g>
-<g transform="translate(-190,500)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">26</text>
-</g>
-<g transform="translate(-190,450)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">25</text>
-</g>
-<g transform="translate(-190,400)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">24</text>
-</g>
-<g transform="translate(-190,350)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">23</text>
-</g>
-<g transform="translate(-190,300)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">22</text>
-</g>
-<g transform="translate(-190,250)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">21</text>
-</g>
-<g transform="translate(-190,200)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">20</text>
-</g>
-<g transform="translate(-190,150)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">19</text>
-</g>
-<g transform="translate(-190,100)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">18</text>
-</g>
-<g transform="translate(-190,50)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">17</text>
-</g>
-<g transform="translate(-190,0)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">16</text>
-</g>
-<g transform="translate(-190,-50)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">15</text>
-</g>
-<g transform="translate(-190,-150)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">13</text>
-</g>
-<g transform="translate(-190,-250)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">11</text>
-</g>
-<g transform="translate(-190,-300)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">10</text>
-</g>
-<g transform="translate(-190,-350)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">9</text>
-</g>
-<g transform="translate(-190,-400)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">8</text>
-</g>
-<g transform="translate(-190,-450)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">7</text>
-</g>
-<g transform="translate(-190,-500)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">6</text>
-</g>
-<g transform="translate(-190,-550)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">5</text>
-</g>
-<g transform="translate(-190,-600)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">4</text>
-</g>
-<g transform="translate(-190,-650)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">3</text>
-</g>
-<g transform="translate(-190,-700)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">2</text>
-</g>
-<g transform="translate(-190,-750)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">1</text>
-</g>
-<g transform="translate(-190,-200)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">12</text>
-</g>
-<g transform="translate(-190,-100)">
-<text stroke="none" font-size="24" text-anchor="end" transform="scale(-1 1) ">14</text>
-</g>
-</symbol>
-<symbol id="symbol:nmos.1" overflow="visible">
-<line x1="-39" y1="-42" x2="-39" y2="42" stroke-width="6"/>
-<line x1="-25" y1="10" x2="-25" y2="-10" stroke-width="6"/>
-<line x1="-25" y1="50" x2="-25" y2="30" stroke-width="6"/>
-<line x1="60" y1="5" x2="40" y2="5"/>
-<line x1="-25" y1="40" x2="50" y2="40"/>
-<line x1="-25" y1="-50" x2="-25" y2="-30" stroke-width="6"/>
-<line x1="60" y1="-10" x2="40" y2="-10"/>
-<line x1="-25" x2="25"/>
-<line y1="-12" x2="-25"/>
-<line y1="11" x2="-25"/>
-<line x1="40" y1="5" x2="50" y2="-10"/>
-<line x1="50" y1="-10" x2="60" y2="5"/>
-<line x1="-25" y1="-40" x2="50" y2="-40"/>
-<line x1="25" y1="40" x2="25"/>
-<line x1="-39" y1="43" x2="-39" y2="50"/>
-<line x1="50" y1="-100" x2="50" y2="-10"/>
-<line x1="-100" y1="50" x2="-39" y2="50"/>
-<line x1="50" y1="100" x2="50" y2="5"/>
-<circle cx="-2" r="67" fill="none"/>
-<text stroke="none" x="24" y="-76" font-size="24">?</text>
-<text stroke="none" x="-94" y="41" font-size="24">?</text>
-<text stroke="none" x="24" y="92" font-size="24">?</text>
-</symbol>
-<symbol id="symbol:cap.1" overflow="visible">
-<line x1="30" y1="10" x2="-30" y2="10"/>
-<line x1="30" y1="-10" x2="-30" y2="-10"/>
-<line y1="50" y2="10"/>
-<line y1="-50" y2="-10"/>
-</symbol>
-<symbol id="symbol:cap.3" overflow="visible">
-<line x1="-30" y1="-10" x2="30" y2="-10"/>
-<line x1="-30" y1="10" x2="30" y2="10"/>
-<line y1="-50" y2="-10"/>
-<line y1="50" y2="10"/>
-</symbol>
-<symbol id="symbol:gnd.1" overflow="visible">
-<line x1="37" y1="-19" x2="63" y2="-19"/>
-<line x1="43" y1="-12" x2="57" y2="-12"/>
-<line x1="31" y1="-26" x2="69" y2="-26"/>
-<line x1="25" y1="-33" x2="75" y2="-33"/>
-<line x1="50" y1="-50" x2="50" y2="-33"/>
-</symbol>
-<symbol id="symbol:gnd.2" overflow="visible">
-<line x1="-13" y1="-19" x2="13" y2="-19"/>
-<line x1="-7" y1="-12" x2="7" y2="-12"/>
-<line x1="-19" y1="-26" x2="19" y2="-26"/>
-<line x1="-25" y1="-33" x2="25" y2="-33"/>
-<line y1="-50" y2="-33"/>
-</symbol>
-<symbol id="symbol:dual_nfet.19:m:s" overflow="visible">
-<line x1="-25" y1="-40" x2="100" y2="-40"/>
-<line x1="100" y1="-40" x2="100" y2="-100"/>
-<line x1="25" y1="40" x2="25"/>
-<line x1="-25" x2="25"/>
-<line y1="-12" x2="-25"/>
-<line y1="11" x2="-25"/>
-<line x1="40" y1="5" x2="60" y2="5"/>
-<line x1="-25" y1="30" x2="-25" y2="50" stroke-width="6"/>
-<line x1="50" y1="100" x2="50" y2="5"/>
-<line x1="-25" y1="40" x2="50" y2="40"/>
-<line x1="-25" y1="-30" x2="-25" y2="-50" stroke-width="6"/>
-<line x1="50" y1="-10" x2="50" y2="-100"/>
-<line x1="40" y1="-10" x2="60" y2="-10"/>
-<line x1="-25" y1="-10" x2="-25" y2="10" stroke-width="6"/>
-<line x1="50" y1="-10" x2="60" y2="5"/>
-<line x1="40" y1="5" x2="50" y2="-10"/>
-<line x1="-100" y1="50" x2="-39" y2="50"/>
-<line x1="-39" y1="43" x2="-39" y2="50"/>
-<line x1="-39" y1="-42" x2="-39" y2="42" stroke-width="6"/>
-<circle cx="-2" r="67" fill="none"/>
-<g transform="translate(42,-100)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32" text-anchor="end" transform="scale(-1 1) rotate(180)">D2</text>
-</g></g>
-<g transform="translate(-115,40)">
-<text stroke="none" font-size="32" transform="scale(-1 1) rotate(180)">G2</text>
-</g>
-<g transform="translate(42,95)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32" transform="scale(-1 1) rotate(180)">S2</text>
-</g></g>
-</symbol>
-<symbol id="symbol:synonym.1:m" overflow="visible">
-<line x1="-50" y1="25" x2="50" y2="25"/>
-<line x1="-50" y1="-25" x2="50" y2="-25"/>
-<line x1="-50" x2="50"/>
-</symbol>
-<symbol id="symbol:testpoint.1" overflow="visible">
-<line x1="100"/>
-<line y1="10" x2="10" stroke-width="6"/>
-<line x1="10" y2="-10" stroke-width="6"/>
-<line y1="-5" x2="5" stroke-width="6"/>
-<line x1="5" y2="5" stroke-width="6"/>
-<line x1="-5" y2="-5" stroke-width="6"/>
-<line y1="5" x2="-5" stroke-width="6"/>
-<line x1="-10" y2="10" stroke-width="6"/>
-<line y1="-10" x2="-10" stroke-width="6"/>
-<circle r="5" fill="none"/>
-<circle r="10" fill="none"/>
-<circle r="10" fill="none"/>
-</symbol>
-<symbol id="symbol:ffc_6pin.1" overflow="visible">
-<line x1="150" y1="150" x2="-100" y2="150"/>
-<line x1="100" y1="200" x2="100" y2="150"/>
-<line x1="50" y1="200" x2="50" y2="150"/>
-<line x1="-150" y1="-150" x2="-100" y2="-150"/>
-<line x1="-150" y1="-100" x2="-100" y2="-100"/>
-<line x1="-150" y1="-50" x2="-100" y2="-50"/>
-<line x1="-150" x2="-100"/>
-<line x1="-150" y1="50" x2="-100" y2="50"/>
-<line x1="-150" y1="100" x2="-100" y2="100"/>
-<line x1="-101" y1="-200" x2="-100" y2="150"/>
-<line x1="150" y1="-200" x2="150" y2="150"/>
-<line x1="-100" y1="-200" x2="150" y2="-200"/>
-<text stroke="none" x="161" y="-225" font-size="34" text-anchor="middle">FFC_6PIN</text>
-<text stroke="none" x="-90" y="-150" font-size="34">1</text>
-<text stroke="none" x="-90" y="-100" font-size="34">2</text>
-<text stroke="none" x="-90" y="-50" font-size="34">3</text>
-<text stroke="none" x="-90" font-size="34">4</text>
-<text stroke="none" x="-90" y="50" font-size="34">5</text>
-<text stroke="none" x="-90" y="100" font-size="34">6</text>
-<g transform="translate(100,140)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="34">G1</text>
-</g></g>
-<g transform="translate(50,140)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="34">G2</text>
-</g></g>
-</symbol>
-<symbol id="symbol:stm32f051xx.4" overflow="visible">
-<line x1="300" y1="-850" x2="300" y2="900"/>
-<line x1="-300" y1="-850" x2="-300" y2="900"/>
-<line x1="-300" y1="300" x2="300" y2="300"/>
-<line x1="-300" y1="-300" x2="300" y2="-300"/>
-<line x1="-300" y1="-850" x2="300" y2="-850"/>
-<line x1="-300" y1="900" x2="300" y2="900"/>
-<line x1="400" y1="-450" x2="300" y2="-450"/>
-<line x1="400" y1="-500" x2="300" y2="-500"/>
-<line x1="400" y1="550" x2="300" y2="550"/>
-<line x1="400" y1="600" x2="300" y2="600"/>
-<line x1="400" y1="50" x2="300" y2="50"/>
-<line x1="400" x2="300"/>
-<line x1="-400" y1="-200" x2="-300" y2="-200"/>
-<line x1="-400" y1="-650" x2="-300" y2="-650"/>
-<line x1="400" y1="-400" x2="300" y2="-400"/>
-<line x1="400" y1="700" x2="300" y2="700"/>
-<line x1="400" y1="650" x2="300" y2="650"/>
-<line x1="400" y1="500" x2="300" y2="500"/>
-<line x1="400" y1="450" x2="300" y2="450"/>
-<line x1="400" y1="400" x2="300" y2="400"/>
-<line x1="400" y1="200" x2="300" y2="200"/>
-<line x1="400" y1="100" x2="300" y2="100"/>
-<line x1="400" y1="-50" x2="300" y2="-50"/>
-<line x1="400" y1="-100" x2="300" y2="-100"/>
-<line x1="400" y1="-200" x2="300" y2="-200"/>
-<line x1="400" y1="-150" x2="300" y2="-150"/>
-<line x1="400" y1="-600" x2="300" y2="-600"/>
-<line x1="400" y1="-550" x2="300" y2="-550"/>
-<line x1="400" y1="-650" x2="300" y2="-650"/>
-<line x1="400" y1="-700" x2="300" y2="-700"/>
-<line x1="400" y1="800" x2="300" y2="800"/>
-<line x1="400" y1="750" x2="300" y2="750"/>
-<line x1="400" y1="-750" x2="300" y2="-750"/>
-<line x1="-400" y1="-100" x2="-300" y2="-100"/>
-<line x1="-400" y1="-550" x2="-300" y2="-550"/>
-<line x1="-400" y1="500" x2="-300" y2="500"/>
-<line x1="-400" y1="400" x2="-300" y2="400"/>
-<line x1="-400" y1="750" x2="-300" y2="750"/>
-<line x1="-400" y1="-750" x2="-300" y2="-750"/>
-<text stroke="none" x="25" y="-775" font-size="32" text-anchor="middle">STM32F051K8U</text>
-<text stroke="none" x="275" y="-450" font-size="32" text-anchor="end">PA6</text>
-<text stroke="none" x="275" y="-500" font-size="32" text-anchor="end">PA5</text>
-<text stroke="none" x="275" y="550" font-size="32" text-anchor="end">PB3</text>
-<text stroke="none" x="275" y="600" font-size="32" text-anchor="end">PB4</text>
-<text stroke="none" x="275" y="50" font-size="32" text-anchor="end">PA13_SWDIO</text>
-<text stroke="none" x="275" font-size="32" text-anchor="end">PA12</text>
-<text stroke="none" x="-275" y="-200" font-size="32">PF0-OSC_IN</text>
-<text stroke="none" x="-275" y="-650" font-size="32">VDD</text>
-<text stroke="none" x="275" y="-400" font-size="32" text-anchor="end">PA7</text>
-<text stroke="none" x="275" y="700" font-size="32" text-anchor="end">PB6</text>
-<text stroke="none" x="275" y="650" font-size="32" text-anchor="end">PB5</text>
-<text stroke="none" x="275" y="500" font-size="32" text-anchor="end">PB2</text>
-<text stroke="none" x="275" y="450" font-size="32" text-anchor="end">PB1</text>
-<text stroke="none" x="275" y="400" font-size="32" text-anchor="end">PB0</text>
-<text stroke="none" x="275" y="200" font-size="32" text-anchor="end">PA15</text>
-<text stroke="none" x="275" y="100" font-size="32" text-anchor="end">PA14_SWCLK</text>
-<text stroke="none" x="275" y="-50" font-size="32" text-anchor="end">PA11</text>
-<text stroke="none" x="275" y="-100" font-size="32" text-anchor="end">PA10</text>
-<text stroke="none" x="275" y="-200" font-size="32" text-anchor="end">PA8</text>
-<text stroke="none" x="275" y="-150" font-size="32" text-anchor="end">PA9</text>
-<text stroke="none" x="275" y="-600" font-size="32" text-anchor="end">PA3</text>
-<text stroke="none" x="275" y="-550" font-size="32" text-anchor="end">PA4</text>
-<text stroke="none" x="275" y="-650" font-size="32" text-anchor="end">PA2</text>
-<text stroke="none" x="275" y="-700" font-size="32" text-anchor="end">PA1</text>
-<text stroke="none" x="275" y="800" font-size="32" text-anchor="end">PB8</text>
-<text stroke="none" x="275" y="750" font-size="32" text-anchor="end">PB7</text>
-<text stroke="none" x="275" y="-750" font-size="32" text-anchor="end">PA0</text>
-<text stroke="none" x="-275" y="-100" font-size="32">PF1-OSC_OUT</text>
-<text stroke="none" x="-275" y="-550" font-size="32">VDDA</text>
-<text stroke="none" x="-275" y="500" font-size="32">NRST</text>
-<text stroke="none" x="-275" y="400" font-size="32">BOOT0</text>
-<text stroke="none" x="-275" y="750" font-size="32">VSS</text>
-<text stroke="none" x="-278" y="-750" font-size="32">VDD</text>
-</symbol>
-<symbol id="symbol:cap.1:m" overflow="visible">
-<line x1="30" y1="10" x2="-30" y2="10"/>
-<line x1="30" y1="-10" x2="-30" y2="-10"/>
-<line y1="50" y2="10"/>
-<line y1="-50" y2="-10"/>
-</symbol>
-<symbol id="symbol:al_toc.2" overflow="visible">
-<line y2="3225" stroke-width="6"/>
-<line x1="2725" stroke-width="6"/>
-<line x1="2725" y1="3225" y2="3225" stroke-width="6"/>
-<line x1="2725" x2="2725" y2="3225" stroke-width="6"/>
-<line y1="3025" x2="2725" y2="3025"/>
-<line y1="3125" x2="2725" y2="3125"/>
-<line y1="1825" x2="2725" y2="1825"/>
-<line y1="1925" x2="2725" y2="1925"/>
-<line y1="2125" x2="2725" y2="2125"/>
-<line y1="2325" x2="2725" y2="2325"/>
-<line x1="475" x2="475" y2="3225" stroke-width="6"/>
-<line y1="1725" x2="2725" y2="1725"/>
-<line y1="2025" x2="2725" y2="2025"/>
-<line y1="2225" x2="2725" y2="2225"/>
-<line y1="2425" x2="2725" y2="2425"/>
-<line y1="2525" x2="2725" y2="2525"/>
-<line y1="2625" x2="2725" y2="2625"/>
-<line y1="2725" x2="2725" y2="2725"/>
-<line y1="2825" x2="2725" y2="2825"/>
-<line y1="2925" x2="2725" y2="2925"/>
-<line y1="1625" x2="2725" y2="1625"/>
-<line y1="1525" x2="2725" y2="1525"/>
-<line y1="1425" x2="2725" y2="1425"/>
-<line y1="625" x2="2725" y2="625"/>
-<line y1="725" x2="2725" y2="725"/>
-<line y1="525" x2="2725" y2="525"/>
-<line y1="825" x2="2725" y2="825"/>
-<line y1="1325" x2="2725" y2="1325"/>
-<line y1="1225" x2="2725" y2="1225"/>
-<line y1="1125" x2="2725" y2="1125"/>
-<line y1="1025" x2="2725" y2="1025"/>
-<line y1="925" x2="2725" y2="925"/>
-<line y1="425" x2="2725" y2="425"/>
-<line y1="325" x2="2725" y2="325"/>
-<line y1="200" x2="2725" y2="200" stroke-width="6"/>
-<text stroke="none" x="25" y="150" font-size="47">SHEET NO.</text>
-<text stroke="none" x="775" y="150" font-size="47">SHEET NAME</text>
-<text stroke="none" x="532" y="-51" font-size="93">TABLE OF CONTENTS</text>
-</symbol>
-<symbol id="symbol:hrs_bm24.3:m" overflow="visible">
-<line x1="100" y1="-900" x2="-250" y2="-900"/>
-<line x1="-250" y1="-900" x2="-250" y2="-100"/>
-<line x1="100" y1="-900" x2="100" y2="-100"/>
-<line x1="100" y1="-100" x2="-250" y2="-100"/>
-<line x1="-100" y1="-950" x2="-100" y2="-900"/>
-<line x1="150" y1="-850" x2="100" y2="-850"/>
-<line x1="150" y1="-800" x2="100" y2="-800"/>
-<line x1="150" y1="-750" x2="100" y2="-750"/>
-<line x1="150" y1="-700" x2="100" y2="-700"/>
-<line x1="150" y1="-650" x2="100" y2="-650"/>
-<line x1="150" y1="-600" x2="100" y2="-600"/>
-<line x1="150" y1="-550" x2="100" y2="-550"/>
-<line x1="150" y1="-350" x2="100" y2="-350"/>
-<line x1="150" y1="-300" x2="100" y2="-300"/>
-<line x1="150" y1="-500" x2="100" y2="-500"/>
-<line x1="150" y1="-450" x2="100" y2="-450"/>
-<line x1="150" y1="-400" x2="100" y2="-400"/>
-<line x1="150" y1="-200" x2="100" y2="-200"/>
-<line x1="150" y1="-150" x2="100" y2="-150"/>
-<line x1="150" y1="-250" x2="100" y2="-250"/>
-<line x1="-300" y1="-550" x2="-250" y2="-550"/>
-<line x1="-300" y1="-600" x2="-250" y2="-600"/>
-<line x1="-300" y1="-650" x2="-250" y2="-650"/>
-<line x1="-300" y1="-700" x2="-250" y2="-700"/>
-<line x1="-300" y1="-750" x2="-250" y2="-750"/>
-<line x1="-300" y1="-800" x2="-250" y2="-800"/>
-<line x1="-300" y1="-850" x2="-250" y2="-850"/>
-<line x1="-300" y1="-250" x2="-250" y2="-250"/>
-<line x1="-300" y1="-150" x2="-250" y2="-150"/>
-<line x1="-300" y1="-200" x2="-250" y2="-200"/>
-<line x1="-300" y1="-300" x2="-250" y2="-300"/>
-<line x1="-300" y1="-350" x2="-250" y2="-350"/>
-<line x1="-300" y1="-400" x2="-250" y2="-400"/>
-<line x1="-300" y1="-500" x2="-250" y2="-500"/>
-<line x1="-300" y1="-450" x2="-250" y2="-450"/>
-<line x1="-100" y1="-50" x2="-100" y2="-100"/>
-<g transform="translate(110,-300)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">24</text>
-</g>
-<g transform="translate(110,-350)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">22</text>
-</g>
-<g transform="translate(110,-450)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">18</text>
-</g>
-<g transform="translate(110,-400)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">20</text>
-</g>
-<g transform="translate(-75,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">P2</text>
-</g></g>
-<g transform="translate(-75,-910)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">P1</text>
-</g></g>
-<g transform="translate(110,-550)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">14</text>
-</g>
-<g transform="translate(110,-150)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">30</text>
-</g>
-<g transform="translate(110,-200)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">28</text>
-</g>
-<g transform="translate(110,-250)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">26</text>
-</g>
-<g transform="translate(110,-700)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">8</text>
-</g>
-<g transform="translate(110,-650)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">10</text>
-</g>
-<g transform="translate(110,-500)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">16</text>
-</g>
-<g transform="translate(110,-600)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">12</text>
-</g>
-<g transform="translate(110,-750)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">6</text>
-</g>
-<g transform="translate(110,-800)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">4</text>
-</g>
-<g transform="translate(-240,-800)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">3</text>
-</g>
-<g transform="translate(-240,-750)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">5</text>
-</g>
-<g transform="translate(-240,-700)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">7</text>
-</g>
-<g transform="translate(-240,-650)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">9</text>
-</g>
-<g transform="translate(-240,-600)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">11</text>
-</g>
-<g transform="translate(-240,-550)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">13</text>
-</g>
-<g transform="translate(-240,-500)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">15</text>
-</g>
-<g transform="translate(-240,-450)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">17</text>
-</g>
-<g transform="translate(-240,-400)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">19</text>
-</g>
-<g transform="translate(-240,-250)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">25</text>
-</g>
-<g transform="translate(-240,-200)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">27</text>
-</g>
-<g transform="translate(-240,-150)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">29</text>
-</g>
-<g transform="translate(-240,-850)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">1</text>
-</g>
-<g transform="translate(-240,-350)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">21</text>
-</g>
-<g transform="translate(-240,-300)">
-<text stroke="none" font-size="34" text-anchor="end" transform="scale(-1 1) ">23</text>
-</g>
-<g transform="translate(110,-850)">
-<text stroke="none" font-size="34" transform="scale(-1 1) ">2</text>
-</g>
-</symbol>
-<symbol id="symbol:led.1:m:s" overflow="visible">
-<line x1="25" y1="25" x2="-25" y2="25" stroke-width="6"/>
-<line x1="60" y1="-50" x2="70" y2="-40"/>
-<line x1="25" y1="-25" x2="-25" y2="-25" stroke-width="6"/>
-<line x1="75" y1="-25" x2="85" y2="-15"/>
-<line x1="50" y1="10" x2="80" y2="-20"/>
-<line y1="-25" y2="-50"/>
-<line x1="25" y1="25" y2="-25" stroke-width="6"/>
-<line y1="-25" x2="-25" y2="25" stroke-width="6"/>
-<line x1="35" y1="-15" x2="65" y2="-45"/>
-<line y1="25" y2="50"/>
-<line x1="95" y1="-35" x2="85" y2="-15"/>
-<line x1="75" y1="-25" x2="95" y2="-35"/>
-<line x1="80" y1="-60" x2="70" y2="-40"/>
-<line x1="60" y1="-50" x2="80" y2="-60"/>
-</symbol>
-<symbol id="symbol:gnd.1:m" overflow="visible">
-<line x1="37" y1="-19" x2="63" y2="-19"/>
-<line x1="43" y1="-12" x2="57" y2="-12"/>
-<line x1="31" y1="-26" x2="69" y2="-26"/>
-<line x1="25" y1="-33" x2="75" y2="-33"/>
-<line x1="50" y1="-50" x2="50" y2="-33"/>
-</symbol>
-<symbol id="symbol:dual_nfet.18:m:s" overflow="visible">
-<line x1="-25" y1="-40" x2="100" y2="-40"/>
-<line x1="100" y1="-40" x2="100" y2="-100"/>
-<line x1="50" y1="-10" x2="50" y2="-100"/>
-<line x1="50" y1="-10" x2="60" y2="5"/>
-<line x1="40" y1="5" x2="50" y2="-10"/>
-<line x1="40" y1="5" x2="60" y2="5"/>
-<line y1="-12" x2="-25"/>
-<line x1="-25" x2="25"/>
-<line y1="11" x2="-25"/>
-<line x1="25" y1="40" x2="25"/>
-<line x1="-25" y1="30" x2="-25" y2="50" stroke-width="6"/>
-<line x1="50" y1="100" x2="50" y2="5"/>
-<line x1="-25" y1="40" x2="50" y2="40"/>
-<line x1="-25" y1="-30" x2="-25" y2="-50" stroke-width="6"/>
-<line x1="40" y1="-10" x2="60" y2="-10"/>
-<line x1="-25" y1="-10" x2="-25" y2="10" stroke-width="6"/>
-<line x1="-100" y1="50" x2="-39" y2="50"/>
-<line x1="-39" y1="43" x2="-39" y2="50"/>
-<line x1="-39" y1="-42" x2="-39" y2="42" stroke-width="6"/>
-<circle cx="-2" r="67" fill="none"/>
-<g transform="translate(41,-107)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32" text-anchor="end" transform="scale(-1 1) rotate(180)">D1</text>
-</g></g>
-<g transform="translate(-107,40)">
-<text stroke="none" font-size="32" transform="scale(-1 1) rotate(180)">G1</text>
-</g>
-<g transform="translate(46,95)">
-<g transform="rotate(-90)">
-<text stroke="none" font-size="32" transform="scale(-1 1) rotate(180)">S1</text>
-</g></g>
-</symbol>
-<symbol id="symbol:res.1" overflow="visible">
-<line x1="19" y1="6" x2="-22" y2="-14"/>
-<line x1="-23" y1="25" x2="19" y2="6"/>
-<line x1="-22" y1="-14" x2="18" y2="-34"/>
-<line x1="-22" y1="-54" x2="18" y2="-34"/>
-<line y1="36" x2="-23" y2="25"/>
-<line x1="18" y1="-74" x2="-22" y2="-54"/>
-<line y1="-84" x2="18" y2="-74"/>
-<line y1="-100" y2="-84"/>
-<line y1="50" y2="36"/>
-</symbol>
-<symbol id="symbol:res.4" overflow="visible">
-<line x1="-25" y1="-20" x2="-35"/>
-<line x1="-5" y1="20" x2="-25" y2="-20"/>
-<line x1="15" y1="-20" x2="-5" y2="20"/>
-<line x1="15" y1="-20" x2="35" y2="20"/>
-<line x1="35" y1="20" x2="55" y2="-20"/>
-<line x1="55" y1="-20" x2="75" y2="20"/>
-<line x1="75" y1="20" x2="85"/>
-<line x1="-50" x2="-35"/>
-<line x1="85" x2="100"/>
-</symbol>
-<use href="#symbol:border_b.3" fill="green" stroke="green"/>
-<text stroke="none" x="600" y="-4400" fill="orange" font-size="75.000015">
-<title>CUSTOM_TXT_CDS</title>PCB: 651-02269-02</text>
-<text stroke="none" x="600" y="-4550" fill="orange" font-size="75.000015">
-<title>CUSTOM_TXT_CDS</title>ASSY:650-02269-02</text>
-<text stroke="none" x="600" y="-4700" fill="orange" font-size="75.000015">
-<title>CUSTOM_TXT_CDS</title>SCH: 650-02269-02-SCH</text>
-<text stroke="none" x="600" y="-4950" fill="orange" font-size="117.999986">
-<title>CUSTOM_TXT_CDS</title>Chocodile USB Type-C Charge-Through Vconn-Powered Device</text>
-<text stroke="none" x="6570" y="-95" fill="green" font-size="26.999996">
-<title>CUSTOM_TXT_CDS</title>Tue Nov 13 16:23:52 2018</text>
-<text stroke="none" x="6500" y="-170" fill="green" font-size="33.999988">
-<title>CUSTOM_TXT_CDS</title>chocodile</text>
-<text stroke="none" x="7500" y="-175" fill="green" font-size="30.000006">
-<title>CUSTOM_TXT_CDS</title>650-02269-02-SCH</text>
-<text stroke="none" x="8265" y="-175" fill="green" font-size="33.999988" text-anchor="middle">
-<title>CUSTOM_TXT_CDS</title>0.00</text>
-<text stroke="none" x="8427" y="-84" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>1 OF 4</text>
-<text stroke="none" x="8427" y="-119" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>1 OF 4</text>
-<text stroke="none" x="7212" y="-260" fill="orange" font-size="67.999976" text-anchor="middle">
-<title>PAGE_TITLE</title>TABLE OF CONTENTS</text>
-<g transform="translate(500,-4000)">
-<use href="#symbol:al_toc.2" fill="green" stroke="green"/>
-<a href="#page4">
-<text stroke="none" x="550" y="600" fill="orange">
-<title>CUSTOM_TXT_CDS</title>DEBUG</text>
-</a>
-<text stroke="none" x="550" y="700" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<a href="#page1">
-<text stroke="none" x="75" y="300" fill="orange">
-<title>CUSTOM_TXT_CDS</title>1</text>
-</a>
-<text stroke="none" x="550" y="800" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<a href="#page2">
-<text stroke="none" x="75" y="400" fill="orange">
-<title>CUSTOM_TXT_CDS</title>2</text>
-</a>
-<text stroke="none" x="550" y="900" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<a href="#page3">
-<text stroke="none" x="75" y="500" fill="orange">
-<title>CUSTOM_TXT_CDS</title>3</text>
-</a>
-<text stroke="none" x="550" y="1000" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<a href="#page4">
-<text stroke="none" x="75" y="600" fill="orange">
-<title>CUSTOM_TXT_CDS</title>4</text>
-</a>
-<text stroke="none" x="550" y="1100" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="700" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1200" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="800" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1300" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="900" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1400" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1000" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1500" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1100" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1600" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1200" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1700" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1300" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1800" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1400" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="1900" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1500" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2000" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1600" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2100" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1700" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2200" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1800" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2300" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="1900" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2400" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2000" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2500" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2100" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2600" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2200" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2700" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2300" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2800" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2400" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="2900" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2500" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="3000" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2600" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="3100" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2700" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="550" y="3200" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2800" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="2900" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="3000" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="3100" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<text stroke="none" x="75" y="3200" fill="orange">
-<title>CUSTOM_TXT_CDS</title></text>
-<a href="#page3">
-<text stroke="none" x="550" y="500" fill="orange">
-<title>CUSTOM_TXT_CDS</title>EXAMPLE USB DEVICE</text>
-</a>
-<a href="#page2">
-<text stroke="none" x="550" y="400" fill="orange">
-<title>CUSTOM_TXT_CDS</title>CHARGE-THROUGH VPD</text>
-</a>
-<a href="#page1">
-<text stroke="none" x="550" y="300" fill="orange">
-<title>CUSTOM_TXT_CDS</title>TABLE OF CONTENTS</text>
-</a>
-</g>
-<filter id="highlight"> <feMorphology operator="dilate" radius="20"/> <feComponentTransfer result="highlight"> <feFuncR type="discrete" tableValues="1"/> <feFuncG type="discrete" tableValues="1"/> <feFuncB type="discrete" tableValues="0"/> <feFuncA type="table" tableValues="0 0.5 0.5 0.5 0.5 0.5 0.5 0.5"/> </feComponentTransfer> <feComposite in="SourceGraphic" in2="highlight" operator="over"/> </filter>
-</svg>
-
-</div>
-</div>
-<hr/>
-<div id="page2">
-<h1>chocodile/page2: CHARGE-THROUGH VPD</h1>
-<div>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-800,-5500,8500,5500" width="14.87500in" height="9.62500in" font-family="monospace" font-size="47.000000" stroke-width="3" style="background-color:white">
-<g transform="translate(-800,0)">
-<use href="#symbol:border_b.3" fill="green" stroke="green"/>
-<text stroke="none" x="6570" y="-95" fill="green" font-size="26.999996">
-<title>CUSTOM_TXT_CDS</title>Tue Nov 13 16:24:24 2018</text>
-<text stroke="none" x="6500" y="-170" fill="green" font-size="33.999988">
-<title>CUSTOM_TXT_CDS</title>chocodile</text>
-<text stroke="none" x="7500" y="-175" fill="green" font-size="30.000006">
-<title>CUSTOM_TXT_CDS</title>650-02269-02-SCH</text>
-<text stroke="none" x="8265" y="-175" fill="green" font-size="33.999988" text-anchor="middle">
-<title>CUSTOM_TXT_CDS</title>0.00</text>
-<text stroke="none" x="8427" y="-84" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>2 OF 4</text>
-<text stroke="none" x="8427" y="-119" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>2 OF 4</text>
-<text stroke="none" x="7212" y="-260" fill="orange" font-size="67.999976" text-anchor="middle">
-<title>PAGE_TITLE</title>CHARGE-THROUGH VPD</text>
-</g>
-<g id="I10" transform="translate(2950,-3750)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I12" transform="translate(3800,-3900)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="R13.1" transform="translate(2450,-2700)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R13</text>
-<text stroke="none" x="30" y="30" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="orange" font-size="28.999987">
-<title>VALUE</title>1.0K</text>
-<text stroke="none" x="30" fill="orange" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="C9.1" transform="translate(5150,-4650)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C9</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1.0uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="FB1.1" transform="translate(4650,-4750)">
-<use href="#symbol:ferrite_bead.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-65" fill="green" font-size="28.999987" text-anchor="middle">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="30" y="-35" fill="green" font-size="28.999987" text-anchor="middle">
-<title>VALUE</title>600@100MHZ</text>
-<text stroke="none" x="30" y="-95" fill="green" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>FB1</text>
-</g>
-<g id="I52" transform="translate(5100,-4800)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="C12.1" transform="translate(5400,-4650)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C12</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.01uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C11.1" transform="translate(5100,-4900)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C11</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C8.1" transform="translate(4850,-4900)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C8</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>4.7uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I119" transform="translate(100,-3750)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="J3.3" transform="translate(-50,-3900)">
-<g transform="scale(-1,1)">
-<use href="#symbol:hrs_bm24.3:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" y="-950" fill="orange" font-size="28.999987" text-anchor="end">
-<title>PATH</title>I121</text>
-<text stroke="none" x="50" y="150" fill="orange" font-size="28.999987" text-anchor="end">
-<title>AGILE_PN</title>210-00412-00</text>
-<text stroke="none" y="-1000" fill="dodgerblue" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>J3</text>
-<text stroke="none" x="50" y="50" fill="orange" font-size="28.999987" text-anchor="end">
-<title>MFGR_PN</title>BM24-30DS/2-0.35V(51)</text>
-<text stroke="none" x="50" fill="orange" font-size="28.999987" text-anchor="end">
-<title>MFGR</title>HIROSE ELECTRIC USA INC</text>
-<text stroke="none" x="50" y="100" fill="orange" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>32PIN</text>
-<text stroke="none" x="-160" y="-160" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>30</text>
-<text stroke="none" x="-160" y="-210" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>28</text>
-<text stroke="none" x="-160" y="-260" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>26</text>
-<text stroke="none" x="-160" y="-310" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>24</text>
-<g transform="translate(148,-40)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>G2</text>
-</g></g>
-<text stroke="none" x="-160" y="-360" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>22</text>
-<text stroke="none" x="-160" y="-410" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>20</text>
-<text stroke="none" x="-160" y="-460" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>18</text>
-<text stroke="none" x="-160" y="-510" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>16</text>
-<text stroke="none" x="-160" y="-560" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>14</text>
-<text stroke="none" x="-160" y="-610" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>12</text>
-<text stroke="none" x="310" y="-160" fill="black" font-size="38.000017">
-<title>$PN</title>29</text>
-<text stroke="none" x="-160" y="-660" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>10</text>
-<text stroke="none" x="310" y="-210" fill="black" font-size="38.000017">
-<title>$PN</title>27</text>
-<text stroke="none" x="-160" y="-710" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>8</text>
-<text stroke="none" x="310" y="-260" fill="black" font-size="38.000017">
-<title>$PN</title>25</text>
-<text stroke="none" x="-160" y="-760" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="310" y="-310" fill="black" font-size="38.000017">
-<title>$PN</title>23</text>
-<text stroke="none" x="-160" y="-810" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>4</text>
-<text stroke="none" x="310" y="-360" fill="black" font-size="38.000017">
-<title>$PN</title>21</text>
-<text stroke="none" x="-160" y="-860" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>2</text>
-<text stroke="none" x="310" y="-410" fill="black" font-size="38.000017">
-<title>$PN</title>19</text>
-<text stroke="none" x="310" y="-460" fill="black" font-size="38.000017">
-<title>$PN</title>17</text>
-<text stroke="none" x="310" y="-510" fill="black" font-size="38.000017">
-<title>$PN</title>15</text>
-<text stroke="none" x="310" y="-560" fill="black" font-size="38.000017">
-<title>$PN</title>13</text>
-<text stroke="none" x="310" y="-610" fill="black" font-size="38.000017">
-<title>$PN</title>11</text>
-<text stroke="none" x="310" y="-660" fill="black" font-size="38.000017">
-<title>$PN</title>9</text>
-<text stroke="none" x="310" y="-710" fill="black" font-size="38.000017">
-<title>$PN</title>7</text>
-<g transform="translate(148,-960)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>G1</text>
-</g></g>
-<text stroke="none" x="310" y="-760" fill="black" font-size="38.000017">
-<title>$PN</title>5</text>
-<text stroke="none" x="310" y="-810" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-<text stroke="none" x="310" y="-860" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-</g>
-<g id="I152" transform="translate(400,-3950)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I153" transform="translate(-250,-3950)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I155" transform="translate(5400,-4550)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I157" transform="translate(2450,-2250)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="R6.1" transform="translate(500,-1550)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="green" font-size="28.999987">
-<title>$LOCATION</title>R6</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>32.4K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R2.5" transform="translate(150,-1250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.5:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-26" fill="orange" font-size="31.999997" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-26" y="-35" fill="orange" font-size="31.999997" text-anchor="end">
-<title>VALUE</title>110</text>
-<text stroke="none" x="-30" y="-70" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R2</text>
-<text stroke="none" x="-26" y="30" fill="orange" font-size="31.999997" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I172" transform="translate(2000,-850)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="R10.1" transform="translate(1800,-1050)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R10</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R7.1" transform="translate(950,-1000)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R7</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I180" transform="translate(950,-900)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="C3.1" transform="translate(650,-1350)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C3</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>200pF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>16V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X7R</text>
-</g>
-<g id="I182" transform="translate(650,-1250)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I184" transform="translate(1900,-4600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R11.1" transform="translate(1850,-4250)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R11</text>
-<text stroke="none" x="30" y="30" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="orange" font-size="28.999987">
-<title>VALUE</title>1.0K</text>
-<text stroke="none" x="30" fill="orange" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I186" transform="translate(1900,-4100)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I187" transform="translate(1100,-4200)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R15.1" transform="translate(2900,-1100)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R15</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I193" transform="translate(2900,-1000)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I194" transform="translate(3050,-400)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="R16.1" transform="translate(3050,-500)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R16</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R19.1" transform="translate(4450,-1050)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R19</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>5.11K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I197" transform="translate(4450,-950)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="R20.1" transform="translate(4450,-450)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R20</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>5.11K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I201" transform="translate(4450,-350)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="R12.1" transform="translate(2000,-1300)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="green" font-size="28.999987">
-<title>$LOCATION</title>R12</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>4.32K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="D1.3" transform="translate(500,-3250)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:schottky.3:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="193" y="4" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>BAT54CM</text>
-<text stroke="none" x="-148" y="157" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D1</text>
-<g transform="translate(-10,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>3</text>
-</g></g>
-<g transform="translate(-60,-60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-</g></g>
-<g transform="translate(40,-60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-</g></g>
-<text stroke="none" x="193" y="54" fill="green" font-size="28.999987">
-<title>VF</title>800MV</text>
-<text stroke="none" x="193" y="103" fill="green" font-size="28.999987">
-<title>$VR</title>?</text>
-<text stroke="none" x="193" y="153" fill="green" font-size="28.999987">
-<title>IF</title>200mA</text>
-</g>
-<g id="U1.7" transform="translate(750,-2650)">
-<use href="#symbol:ldo_adj_en.7" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="400" fill="orange" font-size="31.999997">
-<title>AGILE_PN</title>313-04238-00</text>
-<text stroke="none" x="-150" y="486" fill="orange" font-size="31.999997">
-<title>MFGR_PN</title>TPS7A1901DRBR</text>
-<text stroke="none" y="-308" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>U1</text>
-<text stroke="none" x="-150" y="443" fill="orange" font-size="31.999997">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="210" y="240" fill="black" font-size="31.999997">
-<title>$PN</title>5</text>
-<text stroke="none" x="210" y="290" fill="black" font-size="31.999997">
-<title>$PN</title>9</text>
-<text stroke="none" x="-210" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="-210" y="240" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-<text stroke="none" x="210" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>4</text>
-<text stroke="none" x="-210" y="-260" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>7</text>
-<text stroke="none" x="210" y="140" fill="black" font-size="31.999997">
-<title>$PN</title>8</text>
-<text stroke="none" x="210" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-<text stroke="none" x="210" y="-260" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-<text stroke="none" x="-150" y="529" fill="orange" font-size="31.999997">
-<title>PACK_TYPE</title>SON8</text>
-</g>
-<g id="I211" transform="translate(500,-2350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I212" transform="translate(1100,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R8.1" transform="translate(1250,-2750)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R8</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>59K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R9.1" transform="translate(1250,-2500)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R9</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>41.2K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I215" transform="translate(1300,-2400)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I217" transform="translate(4000,-2300)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I219" transform="translate(0,-5050)">
-<use href="#symbol:vdd_bar_generic.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-10" fill="orange" font-size="28.999987" text-anchor="middle">
-<title>HDL_POWER</title>HOST_VBUS</text>
-</g>
-<g id="I220" transform="translate(2850,-5050)">
-<use href="#symbol:vdd_bar_generic.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-10" fill="orange" font-size="28.999987" text-anchor="middle">
-<title>HDL_POWER</title>CHARGE_VBUS</text>
-</g>
-<g id="U3.17" transform="translate(3650,-2650)">
-<use href="#symbol:ldo_fixed.17" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="558" fill="green" font-size="31.999997">
-<title>VOUT</title>VOUT=3.0V</text>
-<text stroke="none" x="-150" y="350" fill="orange" font-size="31.999997">
-<title>AGILE_PN</title>313-04975-00</text>
-<text stroke="none" x="-150" y="436" fill="orange" font-size="31.999997">
-<title>MFGR_PN</title>LP5912-3.0DRVR</text>
-<text stroke="none" y="-300" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>U3</text>
-<text stroke="none" x="-150" y="393" fill="orange" font-size="31.999997">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="210" y="240" fill="black" font-size="31.999997">
-<title>$PN</title>7</text>
-<text stroke="none" x="-210" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-<text stroke="none" x="-210" y="-210" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="210" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>5</text>
-<text stroke="none" x="210" y="140" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-<text stroke="none" x="210" y="40" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-<text stroke="none" x="210" y="-210" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-<text stroke="none" x="-150" y="479" fill="orange" font-size="31.999997">
-<title>PACK_TYPE</title>WSON6</text>
-</g>
-<g id="R14.1" transform="translate(2950,-2500)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R14</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I224" transform="translate(0,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="C5.1" transform="translate(3150,-2750)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C5</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>25V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I226" transform="translate(3200,-2650)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="C6.1" transform="translate(3950,-2750)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C6</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1.0UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I228" transform="translate(4000,-2650)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="U4.4" transform="translate(6100,-4200)">
-<use href="#symbol:stm32f051xx.4" fill="green" stroke="green"/>
-<text stroke="none" x="350" y="883" fill="orange" font-size="31.999997">
-<title>AGILE_PN</title>313-02344-00</text>
-<text stroke="none" x="350" y="1050" fill="orange" font-size="31.999997">
-<title>JEDEC_TYPE</title>QFN33P50_510X510X60T350L</text>
-<text stroke="none" x="350" y="1000" fill="orange" font-size="31.999997">
-<title>MFGR_PN</title>STM32F051K8U6TR</text>
-<text stroke="none" x="-325" y="-875" fill="green" font-size="31.999997">
-<title>$LOCATION</title>U4</text>
-<text stroke="none" x="350" y="933" fill="orange" font-size="31.999997">
-<title>MFGR</title>ST MICROELECTRONICS</text>
-<text stroke="none" x="410" y="440" fill="black" font-size="31.999997">
-<title>$PN</title>15</text>
-<text stroke="none" x="410" y="490" fill="black" font-size="31.999997">
-<title>$PN</title>16</text>
-<text stroke="none" x="410" y="540" fill="black" font-size="31.999997">
-<title>$PN</title>26</text>
-<text stroke="none" x="-410" y="-210" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>2</text>
-<text stroke="none" x="410" y="590" fill="black" font-size="31.999997">
-<title>$PN</title>27</text>
-<text stroke="none" x="410" y="640" fill="black" font-size="31.999997">
-<title>$PN</title>28</text>
-<text stroke="none" x="-410" y="-110" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>3</text>
-<text stroke="none" x="410" y="690" fill="black" font-size="31.999997">
-<title>$PN</title>29</text>
-<text stroke="none" x="410" y="740" fill="black" font-size="31.999997">
-<title>$PN</title>30</text>
-<text stroke="none" x="410" y="790" fill="black" font-size="31.999997">
-<title>$PN</title>32</text>
-<text stroke="none" x="-410" y="390" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>31</text>
-<text stroke="none" x="-410" y="490" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-<text stroke="none" x="-410" y="740" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>33</text>
-<text stroke="none" x="410" y="390" fill="black" font-size="31.999997">
-<title>$PN</title>14</text>
-<text stroke="none" x="-410" y="-560" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-<text stroke="none" x="410" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>25</text>
-<text stroke="none" x="-410" y="-660" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>17</text>
-<text stroke="none" x="410" y="90" fill="black" font-size="31.999997">
-<title>$PN</title>24</text>
-<text stroke="none" x="-410" y="-760" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-<text stroke="none" x="410" y="40" fill="black" font-size="31.999997">
-<title>$PN</title>23</text>
-<text stroke="none" x="410" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>22</text>
-<text stroke="none" x="410" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>21</text>
-<text stroke="none" x="410" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>20</text>
-<text stroke="none" x="410" y="-160" fill="black" font-size="31.999997">
-<title>$PN</title>19</text>
-<text stroke="none" x="410" y="-210" fill="black" font-size="31.999997">
-<title>$PN</title>18</text>
-<text stroke="none" x="410" y="-410" fill="black" font-size="31.999997">
-<title>$PN</title>13</text>
-<text stroke="none" x="410" y="-460" fill="black" font-size="31.999997">
-<title>$PN</title>12</text>
-<text stroke="none" x="410" y="-510" fill="black" font-size="31.999997">
-<title>$PN</title>11</text>
-<text stroke="none" x="410" y="-560" fill="black" font-size="31.999997">
-<title>$PN</title>10</text>
-<text stroke="none" x="410" y="-610" fill="black" font-size="31.999997">
-<title>$PN</title>9</text>
-<text stroke="none" x="410" y="-660" fill="black" font-size="31.999997">
-<title>$PN</title>8</text>
-<text stroke="none" x="410" y="-710" fill="black" font-size="31.999997">
-<title>$PN</title>7</text>
-<text stroke="none" x="410" y="-760" fill="black" font-size="31.999997">
-<title>$PN</title>6</text>
-</g>
-<g id="I230" transform="translate(4850,-4800)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I231" transform="translate(5150,-4550)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I232" transform="translate(5600,-3300)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I233" transform="translate(7400,-3550)">
-<g transform="rotate(-90)">
-<use href="#symbol:synonym.1" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R1.4" transform="translate(0,-1450)">
-<use href="#symbol:res.4" fill="green" stroke="green"/>
-<text stroke="none" x="25" y="-55" fill="black" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R1</text>
-<text stroke="none" x="30" y="-25" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="20" y="-25" fill="orange" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>182</text>
-</g>
-<g id="C1.1" transform="translate(250,-1250)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C1</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1500pF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>16V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="R5.1" transform="translate(500,-2750)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R5</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R4.1" transform="translate(450,-2450)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R4</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="C2.1" transform="translate(350,-2950)">
-<g transform="scale(-1,1)">
-<use href="#symbol:cap.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-50" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>C2</text>
-<text stroke="none" x="-50" y="29" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="-50" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1UF</text>
-<text stroke="none" x="-50" y="60" fill="green" font-size="28.999987" text-anchor="end">
-<title>VOLT</title>25V</text>
-<text stroke="none" x="-50" y="91" fill="orange" font-size="28.999987" text-anchor="end">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I239" transform="translate(400,-2850)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I240" transform="translate(1400,-2700)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="C4.1" transform="translate(1350,-2800)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C4</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>4.7UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="R22.1" transform="translate(5350,-2600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R22</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I244" transform="translate(5400,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R23.1" transform="translate(5350,-2350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R23</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>15.8K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I246" transform="translate(5150,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="C7.1" transform="translate(5100,-2400)">
-<g transform="scale(-1,1)">
-<use href="#symbol:cap.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-50" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>C7</text>
-<text stroke="none" x="-50" y="29" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-50" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1000PF</text>
-<text stroke="none" x="-50" y="60" fill="green" font-size="28.999987" text-anchor="end">
-<title>VOLT</title>25V</text>
-<text stroke="none" x="-50" y="91" fill="orange" font-size="28.999987" text-anchor="end">
-<title>DIELECTRIC</title>X7R</text>
-</g>
-<g id="R24.1" transform="translate(6150,-2600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R24</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I249" transform="translate(5950,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I250" transform="translate(6200,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R25.1" transform="translate(6150,-2350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R25</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>15.8K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="C13.1" transform="translate(5900,-2400)">
-<g transform="scale(-1,1)">
-<use href="#symbol:cap.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-50" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>C13</text>
-<text stroke="none" x="-50" y="29" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-50" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1000PF</text>
-<text stroke="none" x="-50" y="60" fill="green" font-size="28.999987" text-anchor="end">
-<title>VOLT</title>25V</text>
-<text stroke="none" x="-50" y="91" fill="orange" font-size="28.999987" text-anchor="end">
-<title>DIELECTRIC</title>X7R</text>
-</g>
-<g id="R26.1" transform="translate(6800,-2600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R26</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I254" transform="translate(6850,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R27.1" transform="translate(6800,-2350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R27</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>118K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="C14.1" transform="translate(6550,-2400)">
-<g transform="scale(-1,1)">
-<use href="#symbol:cap.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-50" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>C14</text>
-<text stroke="none" x="-50" y="29" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-50" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1000PF</text>
-<text stroke="none" x="-50" y="60" fill="green" font-size="28.999987" text-anchor="end">
-<title>VOLT</title>25V</text>
-<text stroke="none" x="-50" y="91" fill="orange" font-size="28.999987" text-anchor="end">
-<title>DIELECTRIC</title>X7R</text>
-</g>
-<g id="I257" transform="translate(6600,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R28.1" transform="translate(7450,-2600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R28</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="C15.1" transform="translate(7200,-2400)">
-<g transform="scale(-1,1)">
-<use href="#symbol:cap.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-50" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>C15</text>
-<text stroke="none" x="-50" y="29" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-50" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1000PF</text>
-<text stroke="none" x="-50" y="60" fill="green" font-size="28.999987" text-anchor="end">
-<title>VOLT</title>25V</text>
-<text stroke="none" x="-50" y="91" fill="orange" font-size="28.999987" text-anchor="end">
-<title>DIELECTRIC</title>X7R</text>
-</g>
-<g id="I260" transform="translate(7250,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I261" transform="translate(7500,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R29.1" transform="translate(7450,-2350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R29</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>7.15K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="C10.1" transform="translate(5350,-3600)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C10</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I264" transform="translate(5300,-3500)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I265" transform="translate(5000,-3450)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="R21.1" transform="translate(5050,-3550)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>47K</text>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R21</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="D11.3" transform="translate(3050,-3100)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:schottky.3:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="193" y="4" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>BAT54CM</text>
-<text stroke="none" x="-148" y="125" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D11</text>
-<g transform="translate(-10,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>3</text>
-</g></g>
-<g transform="translate(-60,-60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-</g></g>
-<g transform="translate(40,-60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-</g></g>
-<text stroke="none" x="193" y="54" fill="green" font-size="28.999987">
-<title>VF</title>800MV</text>
-<text stroke="none" x="200" y="100" fill="green" font-size="28.999987">
-<title>$VR</title>?</text>
-<text stroke="none" x="193" y="153" fill="green" font-size="28.999987">
-<title>IF</title>200MA</text>
-</g>
-<g id="R51.4" transform="translate(3350,-3200)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.4:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-25" y="-55" fill="black" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R51</text>
-<text stroke="none" x="-30" y="-25" fill="orange" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-20" y="-25" fill="orange" font-size="28.999987">
-<title>VALUE</title>41.2K</text>
-</g>
-<g id="R17.1" transform="translate(4100,-600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R17</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="Q1.1" transform="translate(4400,-1300)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:pmos.1:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="80" y="9" fill="green" font-size="28.999987">
-<title>VDS</title>-20V</text>
-<text stroke="none" x="80" y="39" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>PMZB670UPE,315</text>
-<text stroke="none" x="80" y="99" fill="black" font-size="28.999987">
-<title>$LOCATION</title>Q1</text>
-<text stroke="none" x="80" y="69" fill="green" font-size="28.999987">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-<text stroke="none" x="-101" y="-21" fill="black" font-size="23.999986">
-<title>$PN</title>G</text>
-<text stroke="none" x="20" y="94" fill="black" font-size="23.999986">
-<title>$PN</title>D</text>
-<text stroke="none" x="20" y="-75" fill="black" font-size="23.999986">
-<title>$PN</title>S</text>
-<text stroke="none" x="80" y="-21" fill="green" font-size="28.999987">
-<title>RDS</title>850MOHM</text>
-<text stroke="none" x="80" y="-81" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="80" y="-51" fill="green" font-size="28.999987">
-<title>ID</title>-680MA</text>
-<text stroke="none" x="250" y="9" fill="green" font-size="28.999987">
-<title>QG</title>1.14NC</text>
-</g>
-<g id="I272" transform="translate(4100,-500)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="Q10.1" transform="translate(4400,-700)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:pmos.1:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="80" y="9" fill="green" font-size="28.999987">
-<title>VDS</title>-20V</text>
-<text stroke="none" x="80" y="39" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>PMZB670UPE,315</text>
-<text stroke="none" x="100" y="100" fill="green" font-size="30.000006">
-<title>$LOCATION</title>Q10</text>
-<text stroke="none" x="80" y="69" fill="green" font-size="28.999987">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-<text stroke="none" x="-101" y="-21" fill="black" font-size="23.999986">
-<title>$PN</title>G</text>
-<text stroke="none" x="20" y="94" fill="black" font-size="23.999986">
-<title>$PN</title>D</text>
-<text stroke="none" x="20" y="-75" fill="black" font-size="23.999986">
-<title>$PN</title>S</text>
-<text stroke="none" x="80" y="-21" fill="green" font-size="28.999987">
-<title>RDS</title>850MOHM</text>
-<text stroke="none" x="80" y="-81" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="80" y="-51" fill="green" font-size="28.999987">
-<title>ID</title>-680MA</text>
-<text stroke="none" x="250" y="9" fill="green" font-size="28.999987">
-<title>QG</title>1.14NC</text>
-</g>
-<g id="R53.1" transform="translate(4200,-1550)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R53</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>32.4K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R54.1" transform="translate(4200,-950)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R54</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>32.4K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R18.1" transform="translate(4100,-1550)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R18</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>4.32K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R52.1" transform="translate(4100,-950)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R52</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>4.32K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R55.1" transform="translate(7400,-4250)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R55</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I279" transform="translate(7450,-4150)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="U2.1" transform="translate(1450,-4600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:fpf2895.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="250" y="400" fill="orange" font-size="23.999986" text-anchor="end">
-<title>AGILE_PN</title>400-00194-00</text>
-<text stroke="none" x="-200" y="-462" fill="green" font-size="23.999986" text-anchor="end">
-<title>$LOCATION</title>U2</text>
-<text stroke="none" x="250" y="480" fill="orange" font-size="23.999986" text-anchor="end">
-<title>MFGR_PN</title>FPF2895</text>
-<text stroke="none" x="250" y="440" fill="orange" font-size="23.999986" text-anchor="end">
-<title>MFGR</title>FAIRCHILD SEMICONDUCTOR</text>
-<text stroke="none" x="-310" y="-210" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A1</text>
-<text stroke="none" x="-310" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A3</text>
-<text stroke="none" x="-310" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>C4</text>
-<text stroke="none" x="-310" y="90" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B3</text>
-<text stroke="none" x="-310" y="240" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B1</text>
-<text stroke="none" x="-310" y="290" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B4</text>
-<text stroke="none" x="310" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>C1</text>
-<text stroke="none" x="310" y="40" fill="black" font-size="31.999997">
-<title>$PN</title>B2</text>
-<text stroke="none" x="310" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>A4</text>
-<text stroke="none" x="310" y="-210" fill="black" font-size="31.999997">
-<title>$PN</title>A2</text>
-<text stroke="none" x="250" y="520" fill="orange" font-size="23.000014" text-anchor="end">
-<title>PACK_TYPE</title>WLCSP24</text>
-</g>
-<g id="I281" transform="translate(5350,-4800)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="C45.1" transform="translate(5350,-4900)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C45</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="Q4.18" transform="translate(-100,-2400)">
-<use href="#symbol:dual_nfet.18" fill="green" stroke="green"/>
-<text stroke="none" x="115" y="-15" fill="orange" font-size="21.000023">
-<title>AGILE_PN</title>480-00226-00</text>
-<text stroke="none" x="115" y="71" fill="orange" font-size="21.000023">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-<text stroke="none" x="131" y="-70" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>Q4</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-</g></g>
-<text stroke="none" x="-110" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>2</text>
-<g transform="translate(40,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>7</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>6</text>
-</g></g>
-<text stroke="none" x="115" y="114" fill="orange" font-size="21.000023">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-<text stroke="none" x="115" y="28" fill="orange" font-size="21.000023">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-</g>
-<g id="Q4.19" transform="translate(2400,-2450)">
-<use href="#symbol:dual_nfet.19" fill="green" stroke="green"/>
-<text stroke="none" x="115" y="-15" fill="orange" font-size="21.000023">
-<title>AGILE_PN</title>480-00226-00</text>
-<text stroke="none" x="115" y="71" fill="orange" font-size="21.000023">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-<text stroke="none" x="131" y="-70" fill="black" font-size="31.999997" text-anchor="middle">
-<title>LOCATION</title>Q4</text>
-<text stroke="none" x="115" y="28" fill="orange" font-size="21.000023">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-110" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-<g transform="translate(40,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>8</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-</g></g>
-<text stroke="none" x="115" y="114" fill="orange" font-size="21.000023">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-</g>
-<g id="Q5.18" transform="translate(1000,-1400)">
-<g transform="rotate(-270)">
-<g transform="scale(-1,1)">
-<use href="#symbol:dual_nfet.18:m:s" fill="green" stroke="green"/>
-</g></g>
-<g transform="translate(15,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="21.000023">
-<title>AGILE_PN</title>480-00226-00</text>
-</g></g>
-<g transform="translate(-71,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="21.000023">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-</g></g>
-<g transform="translate(70,-131)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>Q5</text>
-</g></g>
-<g transform="translate(-28,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="21.000023">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-</g></g>
-<g transform="translate(-114,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="21.000023">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-</g></g>
-<text stroke="none" x="-110" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-<g transform="translate(-60,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>2</text>
-</g></g>
-<text stroke="none" x="110" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>7</text>
-<text stroke="none" x="110" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>6</text>
-</g>
-<g id="Q5.19" transform="translate(1950,-1000)">
-<use href="#symbol:dual_nfet.19" fill="green" stroke="green"/>
-<text stroke="none" x="115" y="-15" fill="orange" font-size="21.000023">
-<title>AGILE_PN</title>480-00226-00</text>
-<text stroke="none" x="115" y="71" fill="orange" font-size="21.000023">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-<text stroke="none" x="131" y="-70" fill="black" font-size="31.999997" text-anchor="middle">
-<title>LOCATION</title>Q5</text>
-<text stroke="none" x="115" y="28" fill="orange" font-size="21.000023">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-110" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-<g transform="translate(40,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>8</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-</g></g>
-<text stroke="none" x="115" y="114" fill="orange" font-size="21.000023">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-</g>
-<g id="Q3.18" transform="translate(3000,-1400)">
-<g transform="rotate(-90)">
-<use href="#symbol:dual_nfet.18" fill="green" stroke="green"/>
-</g>
-<g transform="translate(-15,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>AGILE_PN</title>480-00226-00</text>
-</g></g>
-<g transform="translate(71,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-</g></g>
-<g transform="translate(-70,-131)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>Q3</text>
-</g></g>
-<g transform="translate(28,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-</g></g>
-<g transform="translate(114,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-</g></g>
-<text stroke="none" x="-110" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>7</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>2</text>
-</g></g>
-<text stroke="none" x="-110" y="-110" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="110" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-</g>
-<g id="Q3.19" transform="translate(3300,-1400)">
-<g transform="rotate(-270)">
-<g transform="scale(-1,1)">
-<use href="#symbol:dual_nfet.19:m:s" fill="green" stroke="green"/>
-</g></g>
-<g transform="translate(15,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>AGILE_PN</title>480-00226-00</text>
-</g></g>
-<g transform="translate(-71,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-</g></g>
-<g transform="translate(70,-131)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="middle">
-<title>LOCATION</title>Q3</text>
-</g></g>
-<g transform="translate(-28,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-</g></g>
-<text stroke="none" x="-110" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-<g transform="translate(-60,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-</g></g>
-<text stroke="none" x="110" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>8</text>
-<text stroke="none" x="110" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-<g transform="translate(-114,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-</g></g>
-</g>
-<g id="Q2.18" transform="translate(3000,-800)">
-<g transform="rotate(-90)">
-<use href="#symbol:dual_nfet.18" fill="green" stroke="green"/>
-</g>
-<g transform="translate(-15,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>AGILE_PN</title>480-00226-00</text>
-</g></g>
-<g transform="translate(71,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-</g></g>
-<g transform="translate(-70,-131)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>Q2</text>
-</g></g>
-<g transform="translate(28,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-</g></g>
-<g transform="translate(114,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-</g></g>
-<text stroke="none" x="-110" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>7</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>2</text>
-</g></g>
-<text stroke="none" x="-110" y="-110" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="110" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-</g>
-<g id="Q2.19" transform="translate(3300,-800)">
-<g transform="rotate(-270)">
-<g transform="scale(-1,1)">
-<use href="#symbol:dual_nfet.19:m:s" fill="green" stroke="green"/>
-</g></g>
-<g transform="translate(15,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>AGILE_PN</title>480-00226-00</text>
-</g></g>
-<g transform="translate(-71,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR_PN</title>PMDXB600UNEZ</text>
-</g></g>
-<g transform="translate(70,-131)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="middle">
-<title>LOCATION</title>Q2</text>
-</g></g>
-<g transform="translate(-28,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-</g></g>
-<text stroke="none" x="-110" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-<g transform="translate(-60,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-</g></g>
-<text stroke="none" x="110" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>8</text>
-<text stroke="none" x="110" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-<g transform="translate(-114,-115)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="orange" font-size="16.999994">
-<title>PACK_TYPE</title>SOT1216_SPLIT</text>
-</g></g>
-</g>
-<g id="J1.8" transform="translate(3400,-3850)">
-<use href="#symbol:usb_type_c.8" fill="green" stroke="green"/>
-<text stroke="none" x="-250" y="50" fill="orange" font-size="31.999997">
-<title>AGILE_PN</title>210-03560-00</text>
-<text stroke="none" x="-250" y="136" fill="orange" font-size="31.999997">
-<title>MFGR_PN</title>239FC16-00105T-H</text>
-<text stroke="none" y="-1050" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>J1</text>
-<text stroke="none" x="-310" y="-410" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A1</text>
-<text stroke="none" x="-310" y="-460" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A12</text>
-<text stroke="none" x="-310" y="-560" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A8</text>
-<text stroke="none" x="-310" y="-660" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A7</text>
-<text stroke="none" x="-310" y="-710" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A6</text>
-<text stroke="none" x="310" y="-160" fill="black" font-size="31.999997">
-<title>$PN</title>SH4</text>
-<text stroke="none" x="-310" y="-810" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A5</text>
-<text stroke="none" x="310" y="-210" fill="black" font-size="31.999997">
-<title>$PN</title>SH3</text>
-<text stroke="none" x="310" y="-260" fill="black" font-size="31.999997">
-<title>$PN</title>SH2</text>
-<text stroke="none" x="-310" y="-910" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A4</text>
-<text stroke="none" x="310" y="-310" fill="black" font-size="31.999997">
-<title>$PN</title>SH1</text>
-<text stroke="none" x="-310" y="-960" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A9</text>
-<text stroke="none" x="310" y="-410" fill="black" font-size="31.999997">
-<title>$PN</title>B1</text>
-<text stroke="none" x="310" y="-460" fill="black" font-size="31.999997">
-<title>$PN</title>B12</text>
-<text stroke="none" x="310" y="-560" fill="black" font-size="31.999997">
-<title>$PN</title>B8</text>
-<text stroke="none" x="310" y="-660" fill="black" font-size="31.999997">
-<title>$PN</title>B7</text>
-<text stroke="none" x="310" y="-710" fill="black" font-size="31.999997">
-<title>$PN</title>B6</text>
-<text stroke="none" x="310" y="-810" fill="black" font-size="31.999997">
-<title>$PN</title>B5</text>
-<text stroke="none" x="310" y="-910" fill="black" font-size="31.999997">
-<title>$PN</title>B4</text>
-<text stroke="none" x="310" y="-960" fill="black" font-size="31.999997">
-<title>$PN</title>B9</text>
-<text stroke="none" x="-250" y="179" fill="orange" font-size="31.999997">
-<title>PACK_TYPE</title>SKT_4SH_2</text>
-<text stroke="none" x="-250" y="93" fill="orange" font-size="31.999997">
-<title>MFGR</title>ASTRON</text>
-</g>
-<text stroke="none" x="1700" y="-800" fill="purple" font-size="38.000017">VGS_MAX &lt; 1V</text>
-<text stroke="none" x="1050" y="-1600" fill="purple" font-size="38.000017">VGS_MAX &lt; 1V</text>
-<text stroke="none" x="2500" y="-300" fill="purple" font-size="30.000006">POTENTIAL MUX PARTS: DG3257 OR FSA3051</text>
-<text stroke="none" x="600" y="-2550" fill="purple" font-size="30.000006">&gt;1.7V</text>
-<text stroke="none" x="700" y="-2700" fill="purple" font-size="30.000006">1.233V</text>
-<text stroke="none" x="3150" y="-550" fill="purple" font-size="38.000017">VGS_MAX &lt; 1V</text>
-<text stroke="none" x="950" y="-3000" fill="purple" font-size="30.000006">CAPS TO STABILIZE LDO (10UF)</text>
-<text stroke="none" x="950" y="-3050" fill="purple" font-size="30.000006">SMALL BOARD--EXPECT NEARBY</text>
-<text stroke="none" x="450" y="-3700" fill="purple" font-size="48.000019">CC = HOST-SIDE</text>
-<text stroke="none" x="50" y="-4300" fill="purple" font-size="30.000006">A5</text>
-<text stroke="none" x="50" y="-4400" fill="purple" font-size="30.000006">B5</text>
-<text stroke="none" x="-100" y="-4650" fill="purple" font-size="30.000006">PLUG</text>
-<text stroke="none" x="-100" y="-4700" fill="purple" font-size="30.000006">USB-C</text>
-<text stroke="none" x="50" y="-4550" fill="purple" font-size="30.000006">A6</text>
-<text stroke="none" x="50" y="-4600" fill="purple" font-size="30.000006">A7</text>
-<text stroke="none" x="1150" y="-3900" fill="purple" font-size="48.000019">MINIMIZE DCR</text>
-<text stroke="none" x="1400" y="-3700" fill="purple" font-size="48.000019">CC1/CC2 = CHARGE-THROUGH SIDE</text>
-<text stroke="none" x="4600" y="-550" fill="purple" font-size="38.000017">VGS_MAX &lt; 1.3V</text>
-<text stroke="none" x="600" y="-5000" fill="purple" font-size="38.000017" text-anchor="end">5-20V, 3A</text>
-<text stroke="none" x="750" y="-5000" fill="purple" font-size="30.000006">MINIMIZE DCR</text>
-<text stroke="none" x="2550" y="-3350" fill="purple" font-size="30.000006">THERE IS AN INTERNAL DIODE+45K FROM EN TO IN</text>
-<text stroke="none" x="1600" y="-4350" fill="purple" font-size="38.000017">4A</text>
-<text stroke="none" x="2550" y="-3400" fill="purple" font-size="48.000019">ENABLE CHIP TO AVOID DISCHARGE</text>
-<text stroke="none" x="1350" y="-5100" fill="purple" font-size="23.999986">39 MOHM</text>
-<text stroke="none" x="1750" y="-4850" fill="purple" font-size="38.000017">INTERNAL PD</text>
-<text stroke="none" x="2000" y="-5000" fill="purple" font-size="30.000006">MINIMIZE DCR</text>
-<text stroke="none" x="4850" y="-2600" fill="purple" font-size="48.000019">22-&gt;3V</text>
-<text stroke="none" x="5650" y="-2600" fill="purple" font-size="48.000019">22-&gt;3V</text>
-<text stroke="none" x="6300" y="-2600" fill="purple" font-size="48.000019">5.5-&gt;3V</text>
-<text stroke="none" x="7050" y="-2600" fill="purple" font-size="48.000019">0.2V</text>
-<text stroke="none" x="4500" y="-5250" fill="purple" font-size="75.000015">CHARGE-THROUGH VPD CONTROLLER (CHOCODILE)</text>
-<g transform="translate(1100,-1500)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1150,-1450)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1150,-1500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1800,-1450)">
-<line y2="300" stroke="goldenrod"/>
-</g>
-<g transform="translate(1800,-1450)">
-<line x2="-650" stroke="goldenrod"/>
-</g>
-<g transform="translate(1800,-1450)">
-<line x2="200" stroke="goldenrod"/>
-</g>
-<g transform="translate(2000,-1450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2000,-1450)">
-<line x2="350" stroke="goldenrod"/>
-</g>
-<g transform="translate(2700,-850)">
-<line x2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(2850,-850)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2850,-900)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2350,-1450)">
-<line y2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(2350,-1450)">
-<line x2="350" stroke="goldenrod"/>
-</g>
-<g transform="translate(2900,-900)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2350,-1600)">
-<line x2="-650" stroke="goldenrod"/>
-<text stroke="none" x="-610" y="-10" fill="orange" font-size="40.000008">
-<title>SIG_NAME</title>CC</text>
-<text stroke="none" x="-714" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(2700,-1450)">
-<line y2="600" stroke="goldenrod"/>
-</g>
-<g transform="translate(2850,-1450)">
-<line x2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(2850,-1500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2900,-1450)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2900,-1500)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(650,-4300)">
-<line x2="-400" stroke="goldenrod"/>
-<text stroke="none" x="-40" y="-10" fill="orange" font-size="30.000006" text-anchor="end">
-<title>SIG_NAME</title>CC</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3400,-1450)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3400,-1500)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3450,-1450)">
-<line x2="650" stroke="goldenrod"/>
-</g>
-<g transform="translate(3450,-1500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4100,-1500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4200,-1450)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4200,-1500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4450,-1450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4450,-1450)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(4700,-1450)">
-<line x2="-250" stroke="goldenrod"/>
-<text stroke="none" x="-160" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC1</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3100,-4650)">
-<line x2="-350" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-336" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC1</text>
-<text stroke="none" x="-384" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3800,-750)">
-<line x2="300" stroke="goldenrod"/>
-<text stroke="none" x="-10" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_CC2_DB_EN_L</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(4100,-750)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4100,-750)">
-<line x2="200" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-1350)">
-<line x2="500" stroke="goldenrod"/>
-<text stroke="none" x="-10" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_CC2_DB_EN_L</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-4000)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_CC2_DB_EN_L</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(4100,-1650)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4100,-1700)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_RP3A0_RD_L</text>
-<text stroke="none" x="-534" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-4750)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_RP3A0_RD_L</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(4200,-1650)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4200,-1750)">
-<line x2="-600" stroke="goldenrod"/>
-<text stroke="none" x="-560" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_RPUSB_ODH</text>
-<text stroke="none" x="-634" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-3800)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_RPUSB_ODH</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(2900,-1250)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2900,-1250)">
-<line x2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(3050,-1250)">
-<line x2="200" stroke="goldenrod"/>
-</g>
-<g transform="translate(3050,-1300)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3250,-1250)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3250,-1250)">
-<line x2="400" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC1_SEL</text>
-<text stroke="none" x="430" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5200,-4400)">
-<line x2="500" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC1_SEL</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3450,-850)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3450,-850)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3450,-900)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4100,-850)">
-<line x2="-650" stroke="goldenrod"/>
-</g>
-<g transform="translate(4100,-850)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4100,-900)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4200,-850)">
-<line x2="250" stroke="goldenrod"/>
-<text stroke="none" x="340" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC2</text>
-<text stroke="none" x="530" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(4200,-900)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4450,-850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4700,-850)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(4050,-4650)">
-<line x2="-350" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-110" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC2</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(4100,-1050)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4100,-1100)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC2_RP3A0_RD_L</text>
-<text stroke="none" x="-534" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-4700)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC2_RP3A0_RD_L</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(4200,-1050)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4200,-1150)">
-<line x2="-600" stroke="goldenrod"/>
-<text stroke="none" x="-560" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC2_RPUSB_ODH</text>
-<text stroke="none" x="-634" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-3750)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC2_RPUSB_ODH</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3050,-650)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3050,-650)">
-<line x2="200" stroke="goldenrod"/>
-</g>
-<g transform="translate(3050,-700)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3250,-650)">
-<line x2="400" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC2_SEL</text>
-<text stroke="none" x="430" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3250,-700)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5200,-4300)">
-<line x2="500" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC2_SEL</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(1150,-950)">
-<line x2="650" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC_DB_EN_OD</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(1800,-950)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1800,-1000)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1800,-2400)">
-<line x2="500" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CC_DB_EN_OD</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-4200)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC_DB_EN_OD</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(1150,-1200)">
-<line x2="850" stroke="goldenrod"/>
-<text stroke="none" x="10" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC_RP3A0_RD_L</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(2000,-1150)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2000,-1150)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2000,-1200)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2050,-1150)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2000,-1250)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4850)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC_RP3A0_RD_L</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(500,-1650)">
-<line y2="-100" stroke="goldenrod"/>
-<text stroke="none" x="-476" y="-110" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC_RPUSB_ODH</text>
-<text stroke="none" x="-534" y="-100" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(500,-1750)">
-<line x2="-500" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4150)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC_RPUSB_ODH</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(150,-1400)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(200,-1400)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(200,-1400)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(200,-1450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(200,-1450)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(200,-1450)">
-<line x2="300" stroke="goldenrod"/>
-</g>
-<g transform="translate(250,-1400)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(500,-1500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(650,-1450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(650,-1450)">
-<line x2="-150" stroke="goldenrod"/>
-<text stroke="none" x="-10" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>CC_T</text>
-</g>
-<g transform="translate(900,-1450)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(-50,-1450)">
-<line x2="-450" stroke="goldenrod"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>CC_TX_DATA</text>
-<text stroke="none" x="-514" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-3600)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC_TX_DATA</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(-500,-1150)">
-<line x2="650" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>CC_VPDMCU</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(150,-1200)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(250,-1150)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(250,-1200)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4900)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CC_VPDMCU</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(550,-3300)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(550,-3350)">
-<line x2="450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>CHARGE_VBUS</text>
-<text stroke="none" x="488" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5550,-2750)">
-<line x2="600" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="48.000019">
-<title>SIG_NAME</title>CHARGE_VBUS</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6150,-2750)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6150,-2750)">
-<line x2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1750,-4950)">
-<line x2="1150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-4750)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-4800)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-4800)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2900,-4950)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2900,-4950)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-4950)">
-<line y2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3700,-4800)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3800,-4750)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3800,-4800)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3800,-4950)">
-<line y2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3800,-4950)">
-<line x2="-800" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5900,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5900,-2500)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CHARGE_VBUS_VSENSE</text>
-<text stroke="none" x="-384" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6150,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6150,-2500)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(6150,-2550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4600)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>CHARGE_VBUS_VSENSE</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-3450)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_LED_G_ODL</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6500,-3550)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_LED_R_ODL</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(950,-2350)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(950,-2450)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-2350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-2350)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-2400)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-2450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4050)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4050)">
-<line y2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(-200,-4050)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(50,-3800)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(-300,-4200)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4200)">
-<line y2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(50,-3850)">
-<line y2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(50,-3850)">
-<line x2="2900" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(-300,-4350)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4350)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4400)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4400)">
-<line y2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4550)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4550)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4600)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4600)">
-<line y2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4050)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4050)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(-300,-4750)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4200)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4200)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4250)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4250)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4350)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4350)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(2450,-2300)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4450)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4450)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4500)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(250,-4750)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4650)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4650)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-4750)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-4300)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-4350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1150,-4300)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1150,-4350)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-4500)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-4550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1150,-4500)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1150,-4550)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1850,-4200)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3950,-2400)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3950,-2400)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3950,-2450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3950,-2450)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1750,-4700)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1850,-4700)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2950,-3850)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2950,-4250)">
-<line y2="400" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2950,-4250)">
-<line x2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2950,-4300)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3100,-4300)">
-<line x2="-150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5100,-2350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3700,-4050)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4000)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4000)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4000)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3700,-4150)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4050)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4100)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4100)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3700,-4250)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4250)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4300)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4300)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5900,-2350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6550,-2350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5600,-3450)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5600,-3450)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7200,-2350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(0,-3350)">
-<line x2="450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>HOST_VBUS</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(450,-3300)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4750,-2750)">
-<line x2="600" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="48.000019">
-<title>SIG_NAME</title>HOST_VBUS</text>
-<text stroke="none" x="680" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5350,-2750)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5350,-2750)">
-<line x2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(50,-4850)">
-<line y2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(50,-4950)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1150,-4950)">
-<line x2="-1100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5100,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5100,-2500)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>HOST_VBUS_VSENSE</text>
-<text stroke="none" x="-384" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5350,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5350,-2500)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(5350,-2550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4650)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>HOST_VBUS_VSENSE</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-3650)">
-<line x2="900" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PD_TX_CLK_IN</text>
-</g>
-<g transform="translate(7400,-3650)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-3400)">
-<line x2="900" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PD_TX_CLK_OUT</text>
-</g>
-<g transform="translate(7400,-3500)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(950,-2900)">
-<line x2="300" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="190" y="-10" fill="orange" font-size="48.000019">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="640" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="700" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(1250,-2900)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1250,-2900)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1350,-2900)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1350,-2900)">
-<line x2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3400,-3200)">
-<line x2="400" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="490" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="430" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="550" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(3950,-2850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3950,-2850)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4350,-2850)">
-<line x2="-400" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="48.000019">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="150" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(4500,-4750)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4450,-5000)">
-<line x2="50" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="4" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="-124" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="-184" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(4500,-5000)">
-<line y2="250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4850,-4950)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4850,-5000)">
-<line x2="-350" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5100,-5000)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5100,-5000)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5350,-5000)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5350,-5000)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5600,-4850)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5600,-4950)">
-<line y2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5600,-4950)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5600,-5000)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5600,-5000)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4750,-4750)">
-<line x2="400" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7000,-2750)">
-<line x2="450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="48.000019">
-<title>SIG_NAME</title>PP3000A</text>
-<text stroke="none" x="530" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5150,-4750)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5400,-4750)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5400,-4750)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-210" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000A</text>
-<text stroke="none" x="-244" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5400,-4750)">
-<line x2="300" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7450,-2750)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7450,-2750)">
-<line x2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6500,-4400)">
-<line x2="900" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PRESENT_BILLBOARD</text>
-<text stroke="none" x="1030" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(7400,-4400)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7400,-4400)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7200,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7200,-2500)">
-<line x2="-200" stroke="goldenrod"/>
-</g>
-<g transform="translate(7450,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7450,-2500)">
-<line x2="-250" stroke="goldenrod"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>RDCONNECT_REF</text>
-<text stroke="none" x="-484" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(7450,-2550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4800)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>RDCONNECT_REF</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-4300)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="23.999986">
-<title>SIG_NAME</title>UART_DEBUG_TX_VPDMCU_RX</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6500,-4350)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="23.999986">
-<title>SIG_NAME</title>UART_VPDMCU_TX_DEBUG_RX</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(2450,-2550)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2450,-2600)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2450,-2600)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2500,-2600)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3100,-1450)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3100,-850)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1750,-4400)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1850,-4400)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1250,-2650)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1250,-2650)">
-<line x2="-300" stroke="goldenrod"/>
-</g>
-<g transform="translate(1250,-2700)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(350,-3000)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(350,-3050)">
-<line x2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(500,-2900)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(500,-2900)">
-<line x2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(500,-3050)">
-<line y2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(500,-3150)">
-<line y2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4450,-1200)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4450,-550)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3100,-3150)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3100,-3200)">
-<line x2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(650,-4600)">
-<line x2="-400" stroke="goldenrod"/>
-<text stroke="none" x="-40" y="-10" fill="orange" font-size="30.000006" text-anchor="end">
-<title>SIG_NAME</title>USB2_N</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(650,-4550)">
-<line x2="-400" stroke="goldenrod"/>
-<text stroke="none" x="-40" y="-10" fill="orange" font-size="30.000006" text-anchor="end">
-<title>SIG_NAME</title>USB2_P</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(1750,-4800)">
-<line x2="550" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VBUS_PASS_EN</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6500,-3700)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VBUS_PASS_EN</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(650,-4400)">
-<line x2="-400" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-40" y="-10" fill="orange" font-size="30.000006" text-anchor="end">
-<title>SIG_NAME</title>VCONN</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(2450,-2850)">
-<line x2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2450,-2850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2950,-2850)">
-<line y2="250" stroke="goldenrod"/>
-</g>
-<g transform="translate(2950,-2850)">
-<line x2="-500" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-510" y="-10" fill="orange" font-size="48.000019">
-<title>SIG_NAME</title>VCONN</text>
-<text stroke="none" x="-584" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3150,-2850)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3150,-2850)">
-<line x2="-200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3150,-2850)">
-<line x2="300" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-3150)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-3200)">
-<line x2="-350" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>VCONN</text>
-<text stroke="none" x="-414" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6350,-2750)">
-<line x2="450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="48.000019">
-<title>SIG_NAME</title>VCONN</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6800,-2750)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6800,-2750)">
-<line x2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3050,-2600)">
-<line y2="-400" stroke="goldenrod"/>
-</g>
-<g transform="translate(3450,-2600)">
-<line x2="-400" stroke="goldenrod"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>VCONN_EN</text>
-</g>
-<g transform="translate(-200,-2350)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>VCONN_PG</text>
-<text stroke="none" x="-394" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(2950,-2400)">
-<line x2="450" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>VCONN_PG</text>
-<text stroke="none" x="480" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(2950,-2450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4350,-2600)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>VCONN_PG</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(-50,-2550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(-50,-2550)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(-50,-2600)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(-50,-2600)">
-<line x2="-200" stroke="goldenrod"/>
-<text stroke="none" x="-210" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>VCONN_PWR_SEL_ODL</text>
-<text stroke="none" x="-264" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(0,-2550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(450,-2600)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(450,-2600)">
-<line x2="-500" stroke="goldenrod"/>
-</g>
-<g transform="translate(500,-2600)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(500,-2600)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(500,-2700)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-3500)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VCONN_PWR_SEL_ODL</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6550,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6550,-2500)">
-<line x2="-200" stroke="goldenrod"/>
-<text stroke="none" x="-160" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VCONN_VSENSE</text>
-<text stroke="none" x="-234" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6800,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6800,-2500)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(6800,-2550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4950)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VCONN_VSENSE</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5050,-3650)">
-<line y2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(5050,-3800)">
-<line x2="-50" stroke="goldenrod"/>
-<text stroke="none" x="-10" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VPDMCU_BOOT0</text>
-<text stroke="none" x="-84" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5700,-3800)">
-<line x2="-650" stroke="goldenrod"/>
-</g>
-<g transform="translate(950,-1150)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(950,-1150)">
-<line x2="-450" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>VPDMCU_CC_EN</text>
-<text stroke="none" x="-514" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(950,-1300)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(6500,-4250)">
-<line x2="750" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VPDMCU_CC_EN</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5200,-3700)">
-<line x2="150" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VPDMCU_RST_ODL</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5350,-3700)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5700,-3700)">
-<line x2="-350" stroke="goldenrod"/>
-</g>
-<circle cx="1150" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="1800" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="2000" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="2850" cy="-850" r="10" stroke="black" fill="black"/>
-<circle cx="2350" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="2700" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="2850" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="3450" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="4100" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="4200" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="4450" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="4100" cy="-750" r="10" stroke="black" fill="black"/>
-<circle cx="3050" cy="-1250" r="10" stroke="black" fill="black"/>
-<circle cx="3250" cy="-1250" r="10" stroke="black" fill="black"/>
-<circle cx="3450" cy="-850" r="10" stroke="black" fill="black"/>
-<circle cx="4100" cy="-850" r="10" stroke="black" fill="black"/>
-<circle cx="4200" cy="-850" r="10" stroke="black" fill="black"/>
-<circle cx="4450" cy="-850" r="10" stroke="black" fill="black"/>
-<circle cx="3050" cy="-650" r="10" stroke="black" fill="black"/>
-<circle cx="3250" cy="-650" r="10" stroke="black" fill="black"/>
-<circle cx="1800" cy="-950" r="10" stroke="black" fill="black"/>
-<circle cx="2000" cy="-1150" r="10" stroke="black" fill="black"/>
-<circle cx="2000" cy="-1200" r="10" stroke="black" fill="black"/>
-<circle cx="200" cy="-1400" r="10" stroke="black" fill="black"/>
-<circle cx="200" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="500" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="650" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="150" cy="-1150" r="10" stroke="black" fill="black"/>
-<circle cx="6150" cy="-2750" r="10" stroke="black" fill="black"/>
-<circle cx="3000" cy="-4800" r="10" stroke="black" fill="black"/>
-<circle cx="2900" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="3000" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="3800" cy="-4800" r="10" stroke="black" fill="black"/>
-<circle cx="5900" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="6150" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="1050" cy="-2350" r="10" stroke="black" fill="black"/>
-<circle cx="1050" cy="-2400" r="10" stroke="black" fill="black"/>
-<circle cx="-300" cy="-4050" r="10" stroke="black" fill="black"/>
-<circle cx="-300" cy="-4200" r="10" stroke="black" fill="black"/>
-<circle cx="50" cy="-3850" r="10" stroke="black" fill="black"/>
-<circle cx="-300" cy="-4350" r="10" stroke="black" fill="black"/>
-<circle cx="-300" cy="-4400" r="10" stroke="black" fill="black"/>
-<circle cx="-300" cy="-4550" r="10" stroke="black" fill="black"/>
-<circle cx="-300" cy="-4600" r="10" stroke="black" fill="black"/>
-<circle cx="350" cy="-4050" r="10" stroke="black" fill="black"/>
-<circle cx="350" cy="-4200" r="10" stroke="black" fill="black"/>
-<circle cx="350" cy="-4250" r="10" stroke="black" fill="black"/>
-<circle cx="350" cy="-4350" r="10" stroke="black" fill="black"/>
-<circle cx="350" cy="-4450" r="10" stroke="black" fill="black"/>
-<circle cx="350" cy="-4500" r="10" stroke="black" fill="black"/>
-<circle cx="350" cy="-4650" r="10" stroke="black" fill="black"/>
-<circle cx="1050" cy="-4300" r="10" stroke="black" fill="black"/>
-<circle cx="1050" cy="-4350" r="10" stroke="black" fill="black"/>
-<circle cx="1050" cy="-4500" r="10" stroke="black" fill="black"/>
-<circle cx="3950" cy="-2400" r="10" stroke="black" fill="black"/>
-<circle cx="2950" cy="-3850" r="10" stroke="black" fill="black"/>
-<circle cx="2950" cy="-4250" r="10" stroke="black" fill="black"/>
-<circle cx="3800" cy="-4000" r="10" stroke="black" fill="black"/>
-<circle cx="3800" cy="-4050" r="10" stroke="black" fill="black"/>
-<circle cx="3800" cy="-4100" r="10" stroke="black" fill="black"/>
-<circle cx="3800" cy="-4150" r="10" stroke="black" fill="black"/>
-<circle cx="3800" cy="-4250" r="10" stroke="black" fill="black"/>
-<circle cx="5350" cy="-2750" r="10" stroke="black" fill="black"/>
-<circle cx="50" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="5100" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="5350" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="1250" cy="-2900" r="10" stroke="black" fill="black"/>
-<circle cx="1350" cy="-2900" r="10" stroke="black" fill="black"/>
-<circle cx="3950" cy="-2850" r="10" stroke="black" fill="black"/>
-<circle cx="4500" cy="-5000" r="10" stroke="black" fill="black"/>
-<circle cx="4850" cy="-5000" r="10" stroke="black" fill="black"/>
-<circle cx="5100" cy="-5000" r="10" stroke="black" fill="black"/>
-<circle cx="5350" cy="-5000" r="10" stroke="black" fill="black"/>
-<circle cx="5600" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="5150" cy="-4750" r="10" stroke="black" fill="black"/>
-<circle cx="5400" cy="-4750" r="10" stroke="black" fill="black"/>
-<circle cx="7450" cy="-2750" r="10" stroke="black" fill="black"/>
-<circle cx="7400" cy="-4400" r="10" stroke="black" fill="black"/>
-<circle cx="7200" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="7450" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="2450" cy="-2600" r="10" stroke="black" fill="black"/>
-<circle cx="1250" cy="-2650" r="10" stroke="black" fill="black"/>
-<circle cx="500" cy="-2900" r="10" stroke="black" fill="black"/>
-<circle cx="500" cy="-3050" r="10" stroke="black" fill="black"/>
-<circle cx="2450" cy="-2850" r="10" stroke="black" fill="black"/>
-<circle cx="2950" cy="-2850" r="10" stroke="black" fill="black"/>
-<circle cx="3150" cy="-2850" r="10" stroke="black" fill="black"/>
-<circle cx="6800" cy="-2750" r="10" stroke="black" fill="black"/>
-<circle cx="-50" cy="-2550" r="10" stroke="black" fill="black"/>
-<circle cx="-50" cy="-2600" r="10" stroke="black" fill="black"/>
-<circle cx="450" cy="-2600" r="10" stroke="black" fill="black"/>
-<circle cx="500" cy="-2600" r="10" stroke="black" fill="black"/>
-<circle cx="6550" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="6800" cy="-2500" r="10" stroke="black" fill="black"/>
-<circle cx="5050" cy="-3800" r="10" stroke="black" fill="black"/>
-<circle cx="950" cy="-1150" r="10" stroke="black" fill="black"/>
-<circle cx="5350" cy="-3700" r="10" stroke="black" fill="black"/>
-</svg>
-
-</div>
-</div>
-<hr/>
-<div id="page3">
-<h1>chocodile/page3: EXAMPLE USB DEVICE</h1>
-<div>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0,-5500,8500,5500" width="14.87500in" height="9.62500in" font-family="monospace" font-size="47.000000" stroke-width="3" style="background-color:white">
-<use href="#symbol:border_b.1" fill="green" stroke="green"/>
-<text stroke="none" x="6570" y="-95" fill="green" font-size="26.999996">
-<title>CUSTOM_TXT_CDS</title>Tue Nov 13 16:24:24 2018</text>
-<text stroke="none" x="6565" y="-170" fill="green" font-size="33.999988">
-<title>CUSTOM_TXT_CDS</title>chocodile</text>
-<text stroke="none" x="7500" y="-175" fill="green" font-size="30.000006">
-<title>CUSTOM_TXT_CDS</title>650-02269-02-SCH</text>
-<text stroke="none" x="8265" y="-175" fill="green" font-size="33.999988" text-anchor="middle">
-<title>CUSTOM_TXT_CDS</title>0.00</text>
-<text stroke="none" x="8427" y="-84" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>3 OF 4</text>
-<text stroke="none" x="8427" y="-119" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>3 OF 4</text>
-<text stroke="none" x="7212" y="-260" fill="orange" font-size="67.999976" text-anchor="middle">
-<title>PAGE_TITLE</title>EXAMPLE USB DEVICE</text>
-<g id="C27.1" transform="translate(7650,-1600)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C27</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I2" transform="translate(7600,-1450)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I3" transform="translate(7350,-1450)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C26.1" transform="translate(7400,-1600)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C26</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1.0UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="J5.1" transform="translate(8150,-1050)">
-<use href="#symbol:ffc_6pin.1" fill="green" stroke="green"/>
-<text stroke="none" x="-50" y="500" fill="green" font-size="23.999986">
-<title>AGILE_PN</title>210-00721-00</text>
-<text stroke="none" x="-50" y="601" fill="green" font-size="23.999986">
-<title>MFGR_PN</title>503480-0600</text>
-<text stroke="none" x="-61" y="-225" fill="green" font-size="23.999986" text-anchor="middle">
-<title>$LOCATION</title>J5</text>
-<text stroke="none" x="-50" y="550" fill="green" font-size="23.999986">
-<title>MFGR</title>MOLEX</text>
-<text stroke="none" x="-160" y="-110" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>2</text>
-<text stroke="none" x="-160" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>3</text>
-<g transform="translate(90,210)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>G1</text>
-</g></g>
-<text stroke="none" x="-160" y="-10" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-<g transform="translate(40,210)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>G2</text>
-</g></g>
-<text stroke="none" x="-160" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-<text stroke="none" x="-160" y="90" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="-160" y="-160" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-<text stroke="none" x="-50" y="649" fill="green" font-size="23.999986">
-<title>PACK_TYPE</title>MOLEX_503480</text>
-</g>
-<g id="I6" transform="translate(8150,-650)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I7" transform="translate(7850,-650)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C25.1" transform="translate(7150,-1600)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C25</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>10uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I10" transform="translate(7100,-1450)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="R38.1" transform="translate(7050,-1350)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>4.7K</text>
-<text stroke="none" x="30" y="-60" fill="green" font-size="28.999987">
-<title>$LOCATION</title>R38</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R37.1" transform="translate(6950,-1350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>4.7K</text>
-<text stroke="none" x="-30" y="-60" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R37</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="C24.1" transform="translate(6100,-1600)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C24</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.47uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="Q6.1" transform="translate(5950,-1650)">
-<g transform="rotate(-270)">
-<g transform="scale(-1,1)">
-<use href="#symbol:pmos.1:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" y="-100" fill="green" font-size="28.999987" text-anchor="end">
-<title>MFGR_PN</title>PMZB670UPE,315</text>
-<g transform="translate(70,-80)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="green" font-size="28.999987">
-<title>$LOCATION</title>Q6</text>
-</g></g>
-<g transform="translate(-99,-20)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="23.999986">
-<title>$PN</title>S</text>
-</g></g>
-<g transform="translate(-45,101)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="23.999986">
-<title>$PN</title>G</text>
-</g></g>
-<g transform="translate(70,-20)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="23.999986">
-<title>$PN</title>D</text>
-</g></g>
-</g>
-<g id="R32.1" transform="translate(5450,-1500)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="green" font-size="28.999987">
-<title>$LOCATION</title>R32</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R31.1" transform="translate(5300,-1350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>47K</text>
-<text stroke="none" x="-30" y="-60" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R31</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R34.4" transform="translate(5950,-950)">
-<use href="#symbol:res.4" fill="green" stroke="green"/>
-<text stroke="none" x="25" y="-55" fill="green" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R34</text>
-<text stroke="none" x="30" y="-25" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="20" y="-25" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>2.0K</text>
-</g>
-<g id="D8.2" transform="translate(4250,-800)">
-<use href="#symbol:esd_diode_bidir.2" fill="green" stroke="green"/>
-<text stroke="none" x="-100" y="100" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="300" y="100" fill="orange" font-size="23.999986" text-anchor="middle">
-<title>MFGR_PN</title>TPD1E6B06DPLR</text>
-<text stroke="none" x="95" y="-73" fill="green" font-size="28.999987">
-<title>$LOCATION</title>D8</text>
-<text stroke="none" x="301" y="74" fill="orange" font-size="23.999986" text-anchor="middle">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(40,-160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-</g></g>
-</g>
-<g id="I19" transform="translate(4250,-600)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I20" transform="translate(4450,-350)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="D9.2" transform="translate(4450,-500)">
-<use href="#symbol:esd_diode_bidir.2" fill="green" stroke="green"/>
-<text stroke="none" x="100" y="100" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="-200" fill="orange" font-size="23.999986" text-anchor="middle">
-<title>MFGR_PN</title>TPD1E6B06DPLR</text>
-<text stroke="none" x="95" y="-73" fill="green" font-size="28.999987">
-<title>$LOCATION</title>D9</text>
-<text stroke="none" x="-199" y="-26" fill="orange" font-size="23.999986" text-anchor="middle">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(40,-160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-</g></g>
-</g>
-<g id="D7.5" transform="translate(3850,-750)">
-<use href="#symbol:esd_array.5" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="200" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="-150" y="260" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>TPD4E101DPWR</text>
-<text stroke="none" x="250" y="160" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D7</text>
-<g transform="translate(40,160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>5</text>
-</g></g>
-<g transform="translate(-110,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(-10,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-</g></g>
-<g transform="translate(190,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-150" y="300" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>TPD4E101</text>
-</g>
-<g id="I23" transform="translate(3850,-550)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="D6.5" transform="translate(3400,-750)">
-<use href="#symbol:esd_array.5" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="200" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="-150" y="260" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>TPD4E101DPWR</text>
-<text stroke="none" x="100" y="170" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D6</text>
-<g transform="translate(40,160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>5</text>
-</g></g>
-<g transform="translate(-110,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(-10,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-</g></g>
-<g transform="translate(190,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-150" y="300" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>TPD4E101</text>
-</g>
-<g id="I25" transform="translate(3400,-550)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="D5.5" transform="translate(2950,-750)">
-<use href="#symbol:esd_array.5" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="200" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="-150" y="250" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>TPD4E101DPWR</text>
-<text stroke="none" x="100" y="150" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D5</text>
-<g transform="translate(40,160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>5</text>
-</g></g>
-<g transform="translate(-110,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(-10,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-</g></g>
-<g transform="translate(190,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-150" y="290" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>TPD4E101</text>
-</g>
-<g id="I27" transform="translate(2950,-550)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="D4.5" transform="translate(2500,-750)">
-<use href="#symbol:esd_array.5" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="200" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="-150" y="250" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>TPD4E101DPWR</text>
-<text stroke="none" x="100" y="150" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D4</text>
-<g transform="translate(40,160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>5</text>
-</g></g>
-<g transform="translate(-110,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(-10,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-</g></g>
-<g transform="translate(190,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-150" y="300" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>TPD4E101</text>
-</g>
-<g id="I29" transform="translate(2050,-550)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I30" transform="translate(2500,-550)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="D3.5" transform="translate(2050,-750)">
-<use href="#symbol:esd_array.5" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="200" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="-150" y="250" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>TPD4E101DPWR</text>
-<text stroke="none" x="100" y="150" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D3</text>
-<g transform="translate(40,160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>5</text>
-</g></g>
-<g transform="translate(-110,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(-10,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-</g></g>
-<g transform="translate(90,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-</g></g>
-<g transform="translate(190,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-150" y="290" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>TPD4E101</text>
-</g>
-<g id="D2.2" transform="translate(1000,-550)">
-<use href="#symbol:esd_diode_bidir.2" fill="green" stroke="green"/>
-<text stroke="none" x="100" y="100" fill="orange" font-size="40.000008">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="300" y="50" fill="orange" font-size="23.999986" text-anchor="middle">
-<title>MFGR_PN</title>TPD1E6B06DPLR</text>
-<text stroke="none" x="95" y="-73" fill="green" font-size="28.999987">
-<title>$LOCATION</title>D2</text>
-<text stroke="none" x="300" fill="orange" font-size="23.999986" text-anchor="middle">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-</g></g>
-<g transform="translate(40,-160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-</g></g>
-</g>
-<g id="I33" transform="translate(1000,-400)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I35" transform="translate(350,-350)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C23.1" transform="translate(3800,-4450)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C23</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C22.1" transform="translate(3550,-4450)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C22</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>4.7uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C20.1" transform="translate(3350,-4700)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C20</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.01uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I40" transform="translate(3300,-4550)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C19.1" transform="translate(3100,-4700)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C19</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C18.1" transform="translate(2850,-4850)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C18</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I43" transform="translate(3050,-4550)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I44" transform="translate(2800,-4700)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C17.1" transform="translate(2600,-4850)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C17</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I46" transform="translate(2550,-4700)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C16.1" transform="translate(2350,-4850)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C16</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>4.7uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I48" transform="translate(2300,-4700)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I57" transform="translate(3750,-4300)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I58" transform="translate(3500,-4300)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="U10.1" transform="translate(4350,-3650)">
-<use href="#symbol:stm32f072xx.1" fill="green" stroke="green"/>
-<text stroke="none" x="349" y="1088" fill="orange" font-size="31.999997" text-anchor="end">
-<title>AGILE_PN</title>313-00875-00</text>
-<text stroke="none" x="348" y="1041" fill="orange" font-size="31.999997" text-anchor="end">
-<title>PACK_TYPE</title>QFN48</text>
-<text stroke="none" x="344" y="994" fill="orange" font-size="31.999997" text-anchor="end">
-<title>MFGR_PN</title>STM32F072CBU6TR</text>
-<text stroke="none" x="-299" y="-1465" fill="green" font-size="31.999997">
-<title>$LOCATION</title>U10</text>
-<text stroke="none" x="351" y="-1458" fill="orange" font-size="31.999997" text-anchor="end">
-<title>PATH</title>I59</text>
-<text stroke="none" x="345" y="946" fill="orange" font-size="31.999997" text-anchor="end">
-<title>MFGR</title>ST MICROELECTRONICS</text>
-<text stroke="none" x="410" y="490" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-<text stroke="none" x="410" y="540" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-<text stroke="none" x="-360" y="-110" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="410" y="840" fill="black" font-size="31.999997">
-<title>$PN</title>4</text>
-<text stroke="none" x="-360" y="240" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>44</text>
-<text stroke="none" x="-360" y="290" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>7</text>
-<text stroke="none" x="-360" y="640" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>23</text>
-<text stroke="none" x="-360" y="690" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>35</text>
-<text stroke="none" x="-360" y="740" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>47</text>
-<text stroke="none" x="-360" y="790" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>8</text>
-<text stroke="none" x="-360" y="840" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>49</text>
-<text stroke="none" x="-360" y="-410" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-<text stroke="none" x="410" y="340" fill="black" font-size="31.999997">
-<title>$PN</title>28</text>
-<text stroke="none" x="410" y="290" fill="black" font-size="31.999997">
-<title>$PN</title>27</text>
-<text stroke="none" x="410" y="240" fill="black" font-size="31.999997">
-<title>$PN</title>26</text>
-<text stroke="none" x="410" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>25</text>
-<text stroke="none" x="410" y="140" fill="black" font-size="31.999997">
-<title>$PN</title>22</text>
-<text stroke="none" x="410" y="90" fill="black" font-size="31.999997">
-<title>$PN</title>21</text>
-<text stroke="none" x="410" y="40" fill="black" font-size="31.999997">
-<title>$PN</title>46</text>
-<text stroke="none" x="410" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>45</text>
-<text stroke="none" x="410" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>43</text>
-<text stroke="none" x="410" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>42</text>
-<text stroke="none" x="-360" y="-910" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>36</text>
-<text stroke="none" x="410" y="-160" fill="black" font-size="31.999997">
-<title>$PN</title>41</text>
-<text stroke="none" x="410" y="-210" fill="black" font-size="31.999997">
-<title>$PN</title>40</text>
-<text stroke="none" x="410" y="-260" fill="black" font-size="31.999997">
-<title>$PN</title>39</text>
-<text stroke="none" x="410" y="-310" fill="black" font-size="31.999997">
-<title>$PN</title>20</text>
-<text stroke="none" x="410" y="-360" fill="black" font-size="31.999997">
-<title>$PN</title>19</text>
-<text stroke="none" x="-360" y="-1160" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>9</text>
-<text stroke="none" x="410" y="-410" fill="black" font-size="31.999997">
-<title>$PN</title>18</text>
-<text stroke="none" x="-360" y="-1260" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>48</text>
-<text stroke="none" x="-360" y="-1310" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>24</text>
-<text stroke="none" x="410" y="-560" fill="black" font-size="31.999997">
-<title>$PN</title>38</text>
-<text stroke="none" x="410" y="-610" fill="black" font-size="31.999997">
-<title>$PN</title>37</text>
-<text stroke="none" x="-360" y="-1410" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-<text stroke="none" x="410" y="-660" fill="black" font-size="31.999997">
-<title>$PN</title>34</text>
-<text stroke="none" x="410" y="-710" fill="black" font-size="31.999997">
-<title>$PN</title>33</text>
-<text stroke="none" x="410" y="-760" fill="black" font-size="31.999997">
-<title>$PN</title>32</text>
-<text stroke="none" x="410" y="-810" fill="black" font-size="31.999997">
-<title>$PN</title>31</text>
-<text stroke="none" x="410" y="-860" fill="black" font-size="31.999997">
-<title>$PN</title>30</text>
-<text stroke="none" x="410" y="-910" fill="black" font-size="31.999997">
-<title>$PN</title>29</text>
-<text stroke="none" x="410" y="-1060" fill="black" font-size="31.999997">
-<title>$PN</title>17</text>
-<text stroke="none" x="410" y="-1110" fill="black" font-size="31.999997">
-<title>$PN</title>16</text>
-<text stroke="none" x="410" y="-1160" fill="black" font-size="31.999997">
-<title>$PN</title>15</text>
-<text stroke="none" x="410" y="-1210" fill="black" font-size="31.999997">
-<title>$PN</title>14</text>
-<text stroke="none" x="410" y="-1260" fill="black" font-size="31.999997">
-<title>$PN</title>13</text>
-<text stroke="none" x="410" y="-1310" fill="black" font-size="31.999997">
-<title>$PN</title>12</text>
-<text stroke="none" x="410" y="-1360" fill="black" font-size="31.999997">
-<title>$PN</title>11</text>
-<text stroke="none" x="410" y="-1410" fill="black" font-size="31.999997">
-<title>$PN</title>10</text>
-</g>
-<g id="I60" transform="translate(3850,-2650)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C21.1" transform="translate(3500,-3200)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C21</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I62" transform="translate(3450,-2950)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="R30.1" transform="translate(3300,-3150)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>47K</text>
-<text stroke="none" x="30" y="-60" fill="green" font-size="28.999987">
-<title>$LOCATION</title>R30</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I64" transform="translate(3250,-2950)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="R35.4" transform="translate(6200,-4450)">
-<use href="#symbol:res.4" fill="green" stroke="green"/>
-<text stroke="none" y="-100" fill="orange" font-size="48.000019">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="25" y="-55" fill="black" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R35</text>
-<text stroke="none" x="30" y="-25" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="20" y="-25" fill="orange" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>0</text>
-</g>
-<g id="R36.4" transform="translate(6200,-4300)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.4:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" y="150" fill="orange" font-size="48.000019">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="25" y="84" fill="black" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R36</text>
-<text stroke="none" x="30" y="54" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="20" y="54" fill="orange" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>0</text>
-</g>
-<g id="R33.1" transform="translate(5650,-3750)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R33</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R50.4" transform="translate(5350,-4300)">
-<use href="#symbol:res.4" fill="green" stroke="green"/>
-<text stroke="none" x="-150" fill="black" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R50</text>
-<text stroke="none" x="30" y="-25" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="20" y="-25" fill="orange" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-</g>
-<g id="R49.4" transform="translate(2350,-5050)">
-<use href="#symbol:res.4" fill="green" stroke="green"/>
-<text stroke="none" x="-50" y="-100" fill="orange" font-size="48.000019">
-<title>BOM_IGNORE</title>DNS</text>
-<text stroke="none" x="25" y="-55" fill="black" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R49</text>
-<text stroke="none" x="30" y="-25" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0603</text>
-<text stroke="none" x="20" y="-25" fill="orange" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>0.0</text>
-</g>
-<g id="J4.1" transform="translate(450,-1450)">
-<g transform="scale(-1,1)">
-<use href="#symbol:aces_50699.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="500" y="900" fill="green" font-size="35.999979" text-anchor="end">
-<title>AGILE_PN</title>210-00781-00</text>
-<text stroke="none" x="300" y="1050" fill="orange" font-size="48.000019" text-anchor="end">
-<title>PACK_TYPE</title>30PIN</text>
-<text stroke="none" x="-100" y="-800" fill="green" font-size="55.999983">
-<title>LOCATION</title>J4</text>
-<text stroke="none" x="260" y="290" fill="black" font-size="31.999997">
-<title>$PN</title>22</text>
-<text stroke="none" x="260" y="340" fill="black" font-size="31.999997">
-<title>$PN</title>23</text>
-<text stroke="none" x="260" y="390" fill="black" font-size="31.999997">
-<title>$PN</title>24</text>
-<text stroke="none" x="260" y="440" fill="black" font-size="31.999997">
-<title>$PN</title>25</text>
-<text stroke="none" x="260" y="490" fill="black" font-size="31.999997">
-<title>$PN</title>26</text>
-<text stroke="none" x="260" y="540" fill="black" font-size="31.999997">
-<title>$PN</title>27</text>
-<text stroke="none" x="260" y="590" fill="black" font-size="31.999997">
-<title>$PN</title>28</text>
-<text stroke="none" x="260" y="640" fill="black" font-size="31.999997">
-<title>$PN</title>29</text>
-<text stroke="none" x="260" y="690" fill="black" font-size="31.999997">
-<title>$PN</title>30</text>
-<g transform="translate(40,910)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>G1</text>
-</g></g>
-<g transform="translate(-60,910)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>G2</text>
-</g></g>
-<text stroke="none" x="260" y="240" fill="black" font-size="31.999997">
-<title>$PN</title>21</text>
-<text stroke="none" x="260" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>20</text>
-<text stroke="none" x="260" y="140" fill="black" font-size="31.999997">
-<title>$PN</title>19</text>
-<text stroke="none" x="260" y="90" fill="black" font-size="31.999997">
-<title>$PN</title>18</text>
-<text stroke="none" x="260" y="40" fill="black" font-size="31.999997">
-<title>$PN</title>17</text>
-<text stroke="none" x="260" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>16</text>
-<text stroke="none" x="260" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>15</text>
-<text stroke="none" x="260" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>14</text>
-<text stroke="none" x="260" y="-160" fill="black" font-size="31.999997">
-<title>$PN</title>13</text>
-<text stroke="none" x="260" y="-210" fill="black" font-size="31.999997">
-<title>$PN</title>12</text>
-<text stroke="none" x="260" y="-260" fill="black" font-size="31.999997">
-<title>$PN</title>11</text>
-<text stroke="none" x="260" y="-310" fill="black" font-size="31.999997">
-<title>$PN</title>10</text>
-<text stroke="none" x="260" y="-360" fill="black" font-size="31.999997">
-<title>$PN</title>9</text>
-<text stroke="none" x="260" y="-410" fill="black" font-size="31.999997">
-<title>$PN</title>8</text>
-<text stroke="none" x="260" y="-460" fill="black" font-size="31.999997">
-<title>$PN</title>7</text>
-<text stroke="none" x="260" y="-510" fill="black" font-size="31.999997">
-<title>$PN</title>6</text>
-<text stroke="none" x="260" y="-560" fill="black" font-size="31.999997">
-<title>$PN</title>5</text>
-<text stroke="none" x="260" y="-610" fill="black" font-size="31.999997">
-<title>$PN</title>4</text>
-<text stroke="none" x="260" y="-660" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-<text stroke="none" x="260" y="-710" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-<text stroke="none" x="260" y="-760" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-</g>
-<g id="R56.4" transform="translate(5750,-3500)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.4:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" y="100" fill="black" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>R56</text>
-<text stroke="none" x="30" y="54" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="20" y="54" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>2.0K</text>
-</g>
-<g id="TP1.1" transform="translate(6800,-950)">
-<use href="#symbol:testpoint.1" fill="green" stroke="green"/>
-<text stroke="none" x="-10" y="14" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>TP1</text>
-</g>
-<text stroke="none" x="850" y="-850" fill="purple" font-size="30.000006">TBR: KBD LOCK BTN GND</text>
-<text stroke="none" x="1200" y="-950" fill="purple" font-size="30.000006">TBR: KBD LOCK BTN ODL</text>
-<text stroke="none" x="250" y="-2650" fill="purple" font-size="48.000019">STUFF R35/R36/R49 WHEN IMPLEMENTING WITHOUT THE DEBUG PAGE</text>
-<text stroke="none" x="2200" y="-2300" fill="purple" font-size="99.000001">KEYBOARD</text>
-<text stroke="none" x="5400" y="-1200" fill="purple" font-size="40.000008">0-3.3V&lt;30MS</text>
-<text stroke="none" x="1400" y="-5250" fill="purple" font-size="117.999986">EXAMPLE DEVICE: KEYBOARD/TRACKPAD CONTROLLER (HAMMER)</text>
-<text stroke="none" x="5400" y="-1250" fill="purple" font-size="40.000008">1MS&gt;0-2.3V&gt;300US</text>
-<text stroke="none" x="4950" y="-2300" fill="purple" font-size="99.000001">TRACKPAD CONNECTOR AND LOAD SWITCH</text>
-<text stroke="none" x="5400" y="-1850" fill="purple" font-size="30.000006">NOTE:IF RISE TIME TOO SLOW CHANGE C(GD) TO 0.22UF</text>
-<text stroke="none" x="6800" y="-750" fill="purple" font-size="40.000008">25-45 MA POWER CONSUMPTION</text>
-<text stroke="none" x="6200" y="-3300" fill="purple" font-size="30.000006">3. DEASSERT DISAMBIGUATION SIGNAL AND WAIT FOR FALLING EDGE</text>
-<text stroke="none" x="6200" y="-3350" fill="purple" font-size="30.000006">2B. IF LOW, SOURCE IS CONNECTED, BUT HOST DOESN'T SUPPORT CTVPD</text>
-<text stroke="none" x="6200" y="-3400" fill="purple" font-size="30.000006">2A. IF STILL HIGH, SINK IS CONNECTED TO CHARGE PORT</text>
-<text stroke="none" x="6200" y="-3450" fill="purple" font-size="30.000006">1. ON RISING EDGE, ASSERT DISAMBIGUATION SIGNAL BY DRIVING LOW</text>
-<text stroke="none" x="6200" y="-3500" fill="purple" font-size="30.000006">LOW: DON'T PRESENT BILLBOARD</text>
-<text stroke="none" x="6200" y="-3550" fill="purple" font-size="30.000006">PRESENT_BILLBOARD:</text>
-<g transform="translate(3300,-3250)">
-<line y2="-150" stroke="goldenrod"/>
-</g>
-<g transform="translate(3250,-3400)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3300,-3400)">
-<line x2="700" stroke="goldenrod"/>
-<text stroke="none" x="208" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_BOOT0</text>
-<text stroke="none" x="-114" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(3500,-3350)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3500,-3350)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(4000,-3350)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-512" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_RST_ODL</text>
-<text stroke="none" x="-814" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(4750,-4400)">
-<line x2="1350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_USB2_N</text>
-<text stroke="none" x="1580" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6100,-4400)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-4400)">
-<line x2="200" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-4450)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-4300)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-4350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-4350)">
-<line x2="-1350" stroke="goldenrod"/>
-<text stroke="none" x="-1260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_USB2_P</text>
-<text stroke="none" x="230" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6300,-4350)">
-<line x2="-200" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-4300)">
-<line x2="550" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_WP_L</text>
-</g>
-<g transform="translate(4750,-3500)">
-<line x2="950" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DISAMBIGUATE_BILLBOARD_ODL</text>
-</g>
-<g transform="translate(5200,-950)">
-<line x2="700" stroke="goldenrod"/>
-<text stroke="none" x="8" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>EN_PP3000_TP_ODL</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4750,-4250)">
-<line x2="1100" stroke="goldenrod"/>
-<text stroke="none" x="110" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>EN_PP3000_TP_ODL</text>
-<text stroke="none" x="1130" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(5450,-1400)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5450,-1400)">
-<line x2="450" stroke="goldenrod"/>
-<text stroke="none" x="-60" y="40" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>EN_PP3000_TP_R_ODL</text>
-</g>
-<g transform="translate(6050,-950)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-950)">
-<line y2="-450" stroke="goldenrod"/>
-</g>
-<g transform="translate(5900,-1550)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-1400)">
-<line x2="-200" stroke="goldenrod"/>
-</g>
-<g transform="translate(6100,-1550)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(400,-450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(400,-450)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(400,-450)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(500,-450)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4300,-700)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3300,-3100)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3500,-3150)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(3900,-2800)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3900,-2850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3900,-2900)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4000,-2800)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3900,-2950)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4000,-2850)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3900,-3000)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4000,-2900)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4000,-2950)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4000,-3000)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(2350,-4800)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2600,-4800)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2850,-4800)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3100,-4650)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3550,-4400)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3350,-4650)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3800,-4400)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7900,-700)">
-<line y2="-350" stroke="goldenrod"/>
-</g>
-<g transform="translate(7150,-1550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(8200,-700)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7400,-1550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(8200,-800)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(8000,-1050)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(8200,-850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(8250,-850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7650,-1550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6800,-1100)">
-<line x2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(6950,-1100)">
-<line y2="-200" stroke="goldenrod"/>
-</g>
-<g transform="translate(6950,-1100)">
-<line x2="1050" stroke="goldenrod"/>
-<text stroke="none" x="420" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>I2C1_TP_SCL</text>
-<text stroke="none" x="-184" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4750,-3750)">
-<line x2="550" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>I2C1_TP_SCL</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(7050,-1150)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(7050,-1150)">
-<line x2="950" stroke="goldenrod"/>
-<text stroke="none" x="320" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>I2C1_TP_SDA</text>
-<text stroke="none" x="-284" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(7050,-1300)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3700)">
-<line x2="550" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>I2C1_TP_SDA</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(5650,-3600)">
-<line x2="-900" stroke="goldenrod"/>
-<text stroke="none" x="-810" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KB_BL_PRESENT_L</text>
-</g>
-<g transform="translate(5650,-3700)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3600,-850)">
-<line y2="-750" stroke="goldenrod"/>
-</g>
-<g transform="translate(3600,-1600)">
-<line x2="-2900" stroke="goldenrod"/>
-<text stroke="none" x="-2760" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_00</text>
-<text stroke="none" x="1030" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1600)">
-<line x2="-1000" stroke="goldenrod"/>
-</g>
-<g transform="translate(5100,-4850)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_00</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2150,-850)">
-<line y2="-200" stroke="goldenrod"/>
-</g>
-<g transform="translate(2150,-1050)">
-<line x2="-1450" stroke="goldenrod"/>
-<text stroke="none" x="-1310" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_01</text>
-<text stroke="none" x="2480" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1050)">
-<line x2="-2450" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3900)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_01</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3150,-850)">
-<line y2="-550" stroke="goldenrod"/>
-</g>
-<g transform="translate(3150,-1400)">
-<line x2="-2450" stroke="goldenrod"/>
-<text stroke="none" x="-2310" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_02</text>
-<text stroke="none" x="1480" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1400)">
-<line x2="-1450" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-4050)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_02</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-1000)">
-<line x2="1550" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_03</text>
-<text stroke="none" x="1630" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-1450)">
-<line x2="2350" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_03</text>
-<text stroke="none" x="3930" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2250,-1000)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(2250,-1000)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3050,-850)">
-<line y2="-600" stroke="goldenrod"/>
-</g>
-<g transform="translate(3050,-1450)">
-<line x2="1550" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-4700)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_03</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2600,-850)">
-<line y2="-400" stroke="goldenrod"/>
-</g>
-<g transform="translate(2600,-1250)">
-<line x2="-1900" stroke="goldenrod"/>
-<text stroke="none" x="-1760" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_04</text>
-<text stroke="none" x="2030" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1250)">
-<line x2="-2000" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3450)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_04</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2500,-850)">
-<line y2="-450" stroke="goldenrod"/>
-</g>
-<g transform="translate(2500,-1300)">
-<line x2="-1800" stroke="goldenrod"/>
-<text stroke="none" x="-1660" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_05</text>
-<text stroke="none" x="2130" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1300)">
-<line x2="-2100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3950)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_05</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2400,-850)">
-<line y2="-300" stroke="goldenrod"/>
-</g>
-<g transform="translate(2400,-1150)">
-<line x2="-1700" stroke="goldenrod"/>
-<text stroke="none" x="-1560" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_06</text>
-<text stroke="none" x="2230" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1150)">
-<line x2="-2200" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3350)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_06</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2050,-850)">
-<line y2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(2050,-1100)">
-<line x2="-1350" stroke="goldenrod"/>
-<text stroke="none" x="-1210" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSI_07</text>
-<text stroke="none" x="2580" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1100)">
-<line x2="-2550" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3300)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSI_07</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2850,-850)">
-<line y2="-500" stroke="goldenrod"/>
-</g>
-<g transform="translate(2850,-1350)">
-<line x2="-2150" stroke="goldenrod"/>
-<text stroke="none" x="-2010" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_00</text>
-<text stroke="none" x="1780" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1350)">
-<line x2="-1750" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-4000)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_00</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3300,-850)">
-<line y2="-700" stroke="goldenrod"/>
-</g>
-<g transform="translate(3300,-1550)">
-<line x2="-2600" stroke="goldenrod"/>
-<text stroke="none" x="-2460" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_01</text>
-<text stroke="none" x="1330" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1550)">
-<line x2="-1300" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-4800)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_01</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-1650)">
-<line x2="2800" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_02</text>
-<text stroke="none" x="3930" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3500,-850)">
-<line y2="-800" stroke="goldenrod"/>
-</g>
-<g transform="translate(3500,-1650)">
-<line x2="1100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5100,-4900)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_02</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-1700)">
-<line x2="2700" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_03</text>
-<text stroke="none" x="3930" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3400,-850)">
-<line y2="-850" stroke="goldenrod"/>
-</g>
-<g transform="translate(4600,-1700)">
-<line x2="-1200" stroke="goldenrod"/>
-</g>
-<g transform="translate(5100,-4950)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_03</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2950,-850)">
-<line y2="-650" stroke="goldenrod"/>
-</g>
-<g transform="translate(2950,-1500)">
-<line x2="-2250" stroke="goldenrod"/>
-<text stroke="none" x="-2110" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_04</text>
-<text stroke="none" x="1680" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1500)">
-<line x2="-1650" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-4750)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_04</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4050,-850)">
-<line y2="-1000" stroke="goldenrod"/>
-</g>
-<g transform="translate(4050,-1850)">
-<line x2="-3350" stroke="goldenrod"/>
-<text stroke="none" x="-3210" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_05</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-1850)">
-<line x2="-550" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-5050)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_05</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3750,-850)">
-<line y2="-950" stroke="goldenrod"/>
-</g>
-<g transform="translate(3750,-1800)">
-<line x2="-3050" stroke="goldenrod"/>
-<text stroke="none" x="-2910" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_06</text>
-<text stroke="none" x="880" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3750,-1800)">
-<line x2="850" stroke="goldenrod"/>
-</g>
-<g transform="translate(5100,-5000)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_06</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-1200)">
-<line x2="2000" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_07</text>
-<text stroke="none" x="3930" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2700,-850)">
-<line y2="-350" stroke="goldenrod"/>
-</g>
-<g transform="translate(2700,-1200)">
-<line x2="1900" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3400)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_07</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-2150)">
-<line x2="3600" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_08</text>
-<text stroke="none" x="3930" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4300,-2150)">
-<line y2="1200" stroke="goldenrod"/>
-</g>
-<g transform="translate(4600,-2150)">
-<line x2="-300" stroke="goldenrod"/>
-</g>
-<g transform="translate(5100,-3100)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_08</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-900)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_09</text>
-<text stroke="none" x="430" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(1050,-700)">
-<line y2="-200" stroke="goldenrod"/>
-</g>
-<g transform="translate(1100,-900)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(700,-2100)">
-<line x2="1250" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_09</text>
-<text stroke="none" x="3930" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(1950,-850)">
-<line y2="-1250" stroke="goldenrod"/>
-</g>
-<g transform="translate(4600,-2100)">
-<line x2="-2650" stroke="goldenrod"/>
-</g>
-<g transform="translate(5100,-2800)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_09</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3950,-2000)">
-<line y2="1150" stroke="goldenrod"/>
-</g>
-<g transform="translate(3950,-2000)">
-<line x2="-3250" stroke="goldenrod"/>
-<text stroke="none" x="-3110" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_10</text>
-<text stroke="none" x="680" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4600,-2000)">
-<line x2="-650" stroke="goldenrod"/>
-</g>
-<g transform="translate(3600,-3750)">
-<line x2="400" stroke="goldenrod"/>
-<text stroke="none" x="54" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_10</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3850,-850)">
-<line y2="-1200" stroke="goldenrod"/>
-</g>
-<g transform="translate(3850,-2050)">
-<line x2="-3150" stroke="goldenrod"/>
-<text stroke="none" x="-3010" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_11</text>
-<text stroke="none" x="780" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3850,-2050)">
-<line x2="750" stroke="goldenrod"/>
-</g>
-<g transform="translate(3600,-4050)">
-<line x2="400" stroke="goldenrod"/>
-<text stroke="none" x="54" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_11</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(700,-2200)">
-<line x2="3800" stroke="goldenrod"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>KSO_12</text>
-<text stroke="none" x="3930" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4500,-2200)">
-<line y2="1550" stroke="goldenrod"/>
-</g>
-<g transform="translate(4600,-2200)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-3150)">
-<line x2="350" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>KSO_12</text>
-<text stroke="none" x="380" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(2300,-5050)">
-<line x2="-350" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="-444" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="-384" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5200,-1700)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="18" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="-94" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5300,-1700)">
-<line y2="250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5450,-1600)">
-<line y2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5450,-1700)">
-<line x2="-150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2350,-4950)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2350,-4950)">
-<line x2="-150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2500,-4950)">
-<line x2="-150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2500,-4950)">
-<line y2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2600,-4900)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2500,-5050)">
-<line x2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2600,-4950)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5850,-1700)">
-<line x2="-400" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2850,-4900)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2850,-4950)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3100,-4800)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3350,-4750)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3550,-4550)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3350,-4800)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3800,-4500)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3800,-4550)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="-384" y="-10" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="-324" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(4000,-4550)">
-<line x2="-200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3900,-4900)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4000,-4800)">
-<line x2="-650" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-510" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="-634" y="-10" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="-574" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(3900,-4950)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3900,-4950)">
-<line x2="-1050" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="-1794" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="-1734" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(4000,-4950)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4000,-5050)">
-<line x2="-550" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-510" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="-674" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="-614" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5650,-3850)">
-<line y2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5650,-3950)">
-<line x2="400" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="490" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="430" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5450,-4300)">
-<line x2="500" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="590" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="530" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6050,-1700)">
-<line x2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6100,-1700)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7050,-1450)">
-<line y2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6950,-1700)">
-<line y2="250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6950,-1700)">
-<line x2="-850" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7050,-1700)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7150,-1700)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7150,-1700)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7150,-1700)">
-<line x2="250" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="140" y="-10" fill="orange" font-size="40.000008">
-<title>SIG_NAME</title>PP3000_TP</text>
-</g>
-<g transform="translate(7400,-1700)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7400,-1700)">
-<line x2="250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(8000,-1200)">
-<line x2="-150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7650,-1650)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7850,-1700)">
-<line x2="-200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7850,-1700)">
-<line y2="500" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4750,-3550)">
-<line x2="1200" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PRESENT_BILLBOARD</text>
-<text stroke="none" x="1330" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5850,-3500)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5950,-3500)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5950,-3550)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(8000,-950)">
-<line x2="-1100" stroke="goldenrod"/>
-<text stroke="none" x="-610" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>TP_BTN_L</text>
-</g>
-<g transform="translate(5200,-1100)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5300,-1300)">
-<line y2="200" stroke="goldenrod"/>
-</g>
-<g transform="translate(5850,-1100)">
-<line x2="-550" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="33.000016">
-<title>SIG_NAME</title>TP_INT_ODL</text>
-<text stroke="none" x="-684" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(6800,-1000)">
-<line x2="1200" stroke="goldenrod"/>
-<text stroke="none" x="590" y="-10" fill="orange" font-size="31.999997">
-<title>SIG_NAME</title>TP_INT_ODL</text>
-<text stroke="none" x="-34" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(4750,-3650)">
-<line x2="550" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>TP_INT_ODL</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(5850,-4500)">
-<line x2="-1100" stroke="goldenrod"/>
-<text stroke="none" x="-1010" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART_BEC_TX_DEBUG_RX</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(4750,-4450)">
-<line x2="1100" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART_DEBUG_TX_BEC_RX</text>
-<text stroke="none" x="1130" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6300,-4450)">
-<line x2="300" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USB2_N</text>
-<text stroke="none" x="390" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="330" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6300,-4300)">
-<line x2="300" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USB2_P</text>
-<text stroke="none" x="390" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="330" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(100,-2450)">
-<line x2="4650" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-300)">
-<line y2="-2150" stroke="goldenrod"/>
-</g>
-<g transform="translate(4750,-2450)">
-<line x2="3650" stroke="goldenrod"/>
-</g>
-<circle cx="3300" cy="-3400" r="10" stroke="black" fill="black"/>
-<circle cx="3500" cy="-3350" r="10" stroke="black" fill="black"/>
-<circle cx="6100" cy="-4400" r="10" stroke="black" fill="black"/>
-<circle cx="6100" cy="-4350" r="10" stroke="black" fill="black"/>
-<circle cx="5900" cy="-1400" r="10" stroke="black" fill="black"/>
-<circle cx="6100" cy="-1400" r="10" stroke="black" fill="black"/>
-<circle cx="400" cy="-450" r="10" stroke="black" fill="black"/>
-<circle cx="3900" cy="-2800" r="10" stroke="black" fill="black"/>
-<circle cx="3900" cy="-2850" r="10" stroke="black" fill="black"/>
-<circle cx="3900" cy="-2900" r="10" stroke="black" fill="black"/>
-<circle cx="3900" cy="-2950" r="10" stroke="black" fill="black"/>
-<circle cx="8200" cy="-800" r="10" stroke="black" fill="black"/>
-<circle cx="6950" cy="-1100" r="10" stroke="black" fill="black"/>
-<circle cx="7050" cy="-1150" r="10" stroke="black" fill="black"/>
-<circle cx="3600" cy="-1600" r="10" stroke="black" fill="black"/>
-<circle cx="2150" cy="-1050" r="10" stroke="black" fill="black"/>
-<circle cx="3150" cy="-1400" r="10" stroke="black" fill="black"/>
-<circle cx="2250" cy="-1000" r="10" stroke="black" fill="black"/>
-<circle cx="3050" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="2600" cy="-1250" r="10" stroke="black" fill="black"/>
-<circle cx="2500" cy="-1300" r="10" stroke="black" fill="black"/>
-<circle cx="2400" cy="-1150" r="10" stroke="black" fill="black"/>
-<circle cx="2050" cy="-1100" r="10" stroke="black" fill="black"/>
-<circle cx="2850" cy="-1350" r="10" stroke="black" fill="black"/>
-<circle cx="3300" cy="-1550" r="10" stroke="black" fill="black"/>
-<circle cx="3500" cy="-1650" r="10" stroke="black" fill="black"/>
-<circle cx="3400" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="2950" cy="-1500" r="10" stroke="black" fill="black"/>
-<circle cx="4050" cy="-1850" r="10" stroke="black" fill="black"/>
-<circle cx="3750" cy="-1800" r="10" stroke="black" fill="black"/>
-<circle cx="2700" cy="-1200" r="10" stroke="black" fill="black"/>
-<circle cx="4300" cy="-2150" r="10" stroke="black" fill="black"/>
-<circle cx="1050" cy="-900" r="10" stroke="black" fill="black"/>
-<circle cx="1950" cy="-2100" r="10" stroke="black" fill="black"/>
-<circle cx="3950" cy="-2000" r="10" stroke="black" fill="black"/>
-<circle cx="3850" cy="-2050" r="10" stroke="black" fill="black"/>
-<circle cx="4500" cy="-2200" r="10" stroke="black" fill="black"/>
-<circle cx="5300" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="5450" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="2350" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="2500" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="2600" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="2850" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="3350" cy="-4800" r="10" stroke="black" fill="black"/>
-<circle cx="3800" cy="-4550" r="10" stroke="black" fill="black"/>
-<circle cx="3900" cy="-4950" r="10" stroke="black" fill="black"/>
-<circle cx="6100" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="6950" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="7050" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="7150" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="7400" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="7650" cy="-1700" r="10" stroke="black" fill="black"/>
-<circle cx="5950" cy="-3550" r="10" stroke="black" fill="black"/>
-<circle cx="5300" cy="-1100" r="10" stroke="black" fill="black"/>
-<circle cx="4750" cy="-2450" r="10" stroke="black" fill="black"/>
-</svg>
-
-</div>
-</div>
-<hr/>
-<div id="page4">
-<h1>chocodile/page4: DEBUG</h1>
-<div>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0,-5500,8500,5500" width="14.87500in" height="9.62500in" font-family="monospace" font-size="47.000000" stroke-width="3" style="background-color:white">
-<use href="#symbol:border_b.1" fill="green" stroke="green"/>
-<text stroke="none" x="6570" y="-95" fill="green" font-size="26.999996">
-<title>CUSTOM_TXT_CDS</title>Tue Nov 13 16:24:24 2018</text>
-<text stroke="none" x="6565" y="-170" fill="green" font-size="33.999988">
-<title>CUSTOM_TXT_CDS</title>chocodile</text>
-<text stroke="none" x="7500" y="-175" fill="green" font-size="30.000006">
-<title>CUSTOM_TXT_CDS</title>650-02269-02-SCH</text>
-<text stroke="none" x="8265" y="-175" fill="green" font-size="33.999988" text-anchor="middle">
-<title>CUSTOM_TXT_CDS</title>0.00</text>
-<text stroke="none" x="8427" y="-84" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>4 OF 4</text>
-<text stroke="none" x="8427" y="-119" fill="green" font-size="26.999996" text-anchor="end">
-<title>CUSTOM_TXT_CDS</title>4 OF 4</text>
-<text stroke="none" x="7212" y="-260" fill="orange" font-size="67.999976" text-anchor="middle">
-<title>PAGE_TITLE</title>DEBUG</text>
-<g id="R46.1" transform="translate(7800,-2750)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R46</text>
-<text stroke="none" x="30" y="30" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="orange" font-size="28.999987">
-<title>VALUE</title>576</text>
-<text stroke="none" x="30" fill="orange" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="CN1.1" transform="translate(825,-4600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:usb_type_micro_b.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-125" y="-75" fill="green" font-size="28.999987" text-anchor="end">
-<title>AGILE_PN</title>210-00266-00</text>
-<text stroke="none" x="-125" y="-175" fill="green" font-size="28.999987" text-anchor="end">
-<title>MFGR_PN</title>1981568-1</text>
-<text stroke="none" x="-125" y="-275" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>CN1</text>
-<text stroke="none" x="-125" y="-225" fill="green" font-size="28.999987" text-anchor="end">
-<title>MFGR</title>TE CONNECTIVITY</text>
-<text stroke="none" x="160" y="190" fill="black" font-size="38.000017">
-<title>$PN</title>G4</text>
-<text stroke="none" x="160" y="140" fill="black" font-size="38.000017">
-<title>$PN</title>G3</text>
-<text stroke="none" x="160" y="90" fill="black" font-size="38.000017">
-<title>$PN</title>G2</text>
-<text stroke="none" x="160" y="40" fill="black" font-size="38.000017">
-<title>$PN</title>G1</text>
-<text stroke="none" x="160" y="-60" fill="black" font-size="38.000017">
-<title>$PN</title>5</text>
-<text stroke="none" x="160" y="-110" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-<text stroke="none" x="160" y="-160" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-<text stroke="none" x="160" y="-210" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-<text stroke="none" x="160" y="-260" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-<text stroke="none" x="-125" y="-125" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>RA_SMT</text>
-</g>
-<g id="I28" transform="translate(1025,-4250)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I29" transform="translate(1775,-4150)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="D10.1" transform="translate(1825,-4450)">
-<use href="#symbol:esd_array.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="310" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>TPD2E001DRLR</text>
-<text stroke="none" x="50" y="225" fill="green" font-size="31.999997">
-<title>$LOCATION</title>D10</text>
-<text stroke="none" x="50" y="270" fill="green" font-size="28.999987">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="-160" y="-10" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>3</text>
-<g transform="translate(0,125)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>4</text>
-</g></g>
-<text stroke="none" x="-160" y="90" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>2</text>
-<g transform="translate(-10,-160)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-</g></g>
-<text stroke="none" x="160" y="-10" fill="black" font-size="38.000017">
-<title>$PN</title>5</text>
-<text stroke="none" x="50" y="350" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>DRL</text>
-</g>
-<g id="Q7.1" transform="translate(1000,-1050)">
-<use href="#symbol:nmos.1" fill="green" stroke="green"/>
-<text stroke="none" x="80" y="10" fill="green" font-size="18.000013">
-<title>VDS</title>20V</text>
-<text stroke="none" x="80" y="70" fill="green" font-size="18.000013">
-<title>ID</title>1A</text>
-<text stroke="none" x="80" y="-20" fill="green" font-size="18.000013">
-<title>MFGR_PN</title>PMZB290UNE</text>
-<text stroke="none" x="80" y="-80" fill="green" font-size="18.000013">
-<title>$LOCATION</title>Q7</text>
-<text stroke="none" x="24" y="92" fill="green" font-size="15.000003">
-<title>$PN</title>S</text>
-<text stroke="none" x="-94" y="41" fill="green" font-size="15.000003">
-<title>$PN</title>G</text>
-<text stroke="none" x="24" y="-76" fill="green" font-size="15.000003">
-<title>$PN</title>D</text>
-<text stroke="none" x="80" y="40" fill="green" font-size="18.000013">
-<title>RDS</title>0.380OHM</text>
-<text stroke="none" x="80" y="100" fill="green" font-size="18.000013">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="80" y="-50" fill="green" font-size="18.000013">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-</g>
-<g id="I33" transform="translate(1050,-850)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I34" transform="translate(1675,-500)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="I35" transform="translate(1550,-900)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="C35.1" transform="translate(1550,-1050)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C35</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="R39.1" transform="translate(750,-1300)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="30" fill="green" font-size="18.000013">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="18.000013">
-<title>VALUE</title>51.1K</text>
-<text stroke="none" x="30" y="-60" fill="green" font-size="18.000013">
-<title>$LOCATION</title>R39</text>
-<text stroke="none" x="30" fill="green" font-size="18.000013">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="R40.1" transform="translate(1050,-1300)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="30" fill="green" font-size="18.000013">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="18.000013">
-<title>VALUE</title>51.1K</text>
-<text stroke="none" x="30" y="-60" fill="green" font-size="18.000013">
-<title>$LOCATION</title>R40</text>
-<text stroke="none" x="30" fill="green" font-size="18.000013">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="FB2.1" transform="translate(875,-2650)">
-<use href="#symbol:ferrite_bead.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-65" fill="green" font-size="28.999987" text-anchor="middle">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="30" y="-35" fill="green" font-size="28.999987" text-anchor="middle">
-<title>VALUE</title>600@100MHZ</text>
-<text stroke="none" x="30" y="-95" fill="green" font-size="28.999987" text-anchor="middle">
-<title>$LOCATION</title>FB2</text>
-</g>
-<g id="I40" transform="translate(1475,-2075)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="C30.1" transform="translate(1225,-2250)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C30</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>4.7uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C31.1" transform="translate(1325,-2550)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C31</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C33.1" transform="translate(1475,-2250)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C33</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I44" transform="translate(1525,-2375)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="C34.1" transform="translate(1525,-2550)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C34</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>100pF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>16V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X7R</text>
-</g>
-<g id="I46" transform="translate(675,-3200)">
-<use href="#symbol:vdd_bar_generic.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-10" fill="orange" font-size="28.999987" text-anchor="middle">
-<title>HDL_POWER</title>PP3000_DEBUG</text>
-</g>
-<g id="C28.1" transform="translate(975,-3000)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C28</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>4.7uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>6.3V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C29.1" transform="translate(1225,-3000)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C29</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I49" transform="translate(1475,-2825)">
-<use href="#symbol:gnd.2" fill="green" stroke="green"/>
-</g>
-<g id="C32.1" transform="translate(1475,-3000)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C32</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I51" transform="translate(2575,-4650)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C36.1" transform="translate(2625,-4750)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C36</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>2.2uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="I54" transform="translate(3525,-4300)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I55" transform="translate(3625,-4650)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C37.3" transform="translate(3675,-4750)">
-<use href="#symbol:cap.3" fill="green" stroke="green"/>
-<text stroke="none" x="5" y="-20" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C37</text>
-<text stroke="none" x="38" y="36" fill="green" font-size="23.999986">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="38" y="1" fill="green" font-size="23.999986">
-<title>VALUE</title>10UF</text>
-<text stroke="none" x="41" y="65" fill="green" font-size="18.999985">
-<title>VOLT</title>10V</text>
-</g>
-<g id="I57" transform="translate(3825,-4650)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C38.1" transform="translate(3875,-4750)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C38</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1uF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X5R</text>
-</g>
-<g id="C39.1" transform="translate(4150,-4750)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C39</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>1000PF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>25V</text>
-<text stroke="none" x="50" y="91" fill="orange" font-size="28.999987">
-<title>DIELECTRIC</title>X7R</text>
-</g>
-<g id="I60" transform="translate(4100,-4650)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I69" transform="translate(4175,-4900)">
-<use href="#symbol:vdd_bar_generic.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-10" fill="orange" font-size="28.999987" text-anchor="middle">
-<title>HDL_POWER</title>PP3000_DEBUG</text>
-</g>
-<g id="U11.1" transform="translate(2125,-1450)">
-<use href="#symbol:stm32f072xx.1" fill="green" stroke="green"/>
-<text stroke="none" x="349" y="1088" fill="green" font-size="31.999997" text-anchor="end">
-<title>AGILE_PN</title>313-00875-00</text>
-<text stroke="none" x="348" y="1041" fill="green" font-size="31.999997" text-anchor="end">
-<title>PACK_TYPE</title>QFN48</text>
-<text stroke="none" x="344" y="994" fill="green" font-size="31.999997" text-anchor="end">
-<title>MFGR_PN</title>STM32F072CBU6TR</text>
-<text stroke="none" x="-299" y="-1465" fill="green" font-size="31.999997">
-<title>$LOCATION</title>U11</text>
-<text stroke="none" x="351" y="-1458" fill="orange" font-size="31.999997" text-anchor="end">
-<title>PATH</title>I72</text>
-<text stroke="none" x="345" y="946" fill="green" font-size="31.999997" text-anchor="end">
-<title>MFGR</title>ST MICROELECTRONICS</text>
-<text stroke="none" x="410" y="490" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-<text stroke="none" x="410" y="540" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-<text stroke="none" x="-360" y="-110" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="410" y="840" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-<text stroke="none" x="-360" y="240" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>44</text>
-<text stroke="none" x="-360" y="290" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>7</text>
-<text stroke="none" x="-360" y="640" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>23</text>
-<text stroke="none" x="-360" y="690" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>35</text>
-<text stroke="none" x="-360" y="740" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>47</text>
-<text stroke="none" x="-360" y="790" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>8</text>
-<text stroke="none" x="-360" y="840" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>49</text>
-<text stroke="none" x="-360" y="-410" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>5</text>
-<text stroke="none" x="410" y="340" fill="black" font-size="38.000017">
-<title>$PN</title>28</text>
-<text stroke="none" x="410" y="290" fill="black" font-size="38.000017">
-<title>$PN</title>27</text>
-<text stroke="none" x="410" y="240" fill="black" font-size="38.000017">
-<title>$PN</title>26</text>
-<text stroke="none" x="410" y="190" fill="black" font-size="38.000017">
-<title>$PN</title>25</text>
-<text stroke="none" x="410" y="140" fill="black" font-size="38.000017">
-<title>$PN</title>22</text>
-<text stroke="none" x="410" y="90" fill="black" font-size="38.000017">
-<title>$PN</title>21</text>
-<text stroke="none" x="410" y="40" fill="black" font-size="38.000017">
-<title>$PN</title>46</text>
-<text stroke="none" x="410" y="-10" fill="black" font-size="38.000017">
-<title>$PN</title>45</text>
-<text stroke="none" x="410" y="-60" fill="black" font-size="38.000017">
-<title>$PN</title>43</text>
-<text stroke="none" x="410" y="-110" fill="black" font-size="38.000017">
-<title>$PN</title>42</text>
-<text stroke="none" x="-360" y="-910" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>36</text>
-<text stroke="none" x="410" y="-160" fill="black" font-size="38.000017">
-<title>$PN</title>41</text>
-<text stroke="none" x="410" y="-210" fill="black" font-size="38.000017">
-<title>$PN</title>40</text>
-<text stroke="none" x="410" y="-260" fill="black" font-size="38.000017">
-<title>$PN</title>39</text>
-<text stroke="none" x="410" y="-310" fill="black" font-size="38.000017">
-<title>$PN</title>20</text>
-<text stroke="none" x="410" y="-360" fill="black" font-size="38.000017">
-<title>$PN</title>19</text>
-<text stroke="none" x="-360" y="-1160" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>9</text>
-<text stroke="none" x="410" y="-410" fill="black" font-size="38.000017">
-<title>$PN</title>18</text>
-<text stroke="none" x="-360" y="-1260" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>48</text>
-<text stroke="none" x="-360" y="-1310" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>24</text>
-<text stroke="none" x="410" y="-560" fill="black" font-size="38.000017">
-<title>$PN</title>38</text>
-<text stroke="none" x="410" y="-610" fill="black" font-size="38.000017">
-<title>$PN</title>37</text>
-<text stroke="none" x="-360" y="-1410" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>1</text>
-<text stroke="none" x="410" y="-660" fill="black" font-size="38.000017">
-<title>$PN</title>34</text>
-<text stroke="none" x="410" y="-710" fill="black" font-size="38.000017">
-<title>$PN</title>33</text>
-<text stroke="none" x="410" y="-760" fill="black" font-size="38.000017">
-<title>$PN</title>32</text>
-<text stroke="none" x="410" y="-810" fill="black" font-size="38.000017">
-<title>$PN</title>31</text>
-<text stroke="none" x="410" y="-860" fill="black" font-size="38.000017">
-<title>$PN</title>30</text>
-<text stroke="none" x="410" y="-910" fill="black" font-size="38.000017">
-<title>$PN</title>29</text>
-<text stroke="none" x="410" y="-1060" fill="black" font-size="38.000017">
-<title>$PN</title>17</text>
-<text stroke="none" x="410" y="-1110" fill="black" font-size="38.000017">
-<title>$PN</title>16</text>
-<text stroke="none" x="410" y="-1160" fill="black" font-size="38.000017">
-<title>$PN</title>15</text>
-<text stroke="none" x="410" y="-1210" fill="black" font-size="38.000017">
-<title>$PN</title>14</text>
-<text stroke="none" x="410" y="-1260" fill="black" font-size="38.000017">
-<title>$PN</title>13</text>
-<text stroke="none" x="410" y="-1310" fill="black" font-size="38.000017">
-<title>$PN</title>12</text>
-<text stroke="none" x="410" y="-1360" fill="black" font-size="38.000017">
-<title>$PN</title>11</text>
-<text stroke="none" x="410" y="-1410" fill="black" font-size="38.000017">
-<title>$PN</title>10</text>
-</g>
-<g id="U12.17" transform="translate(3275,-4650)">
-<use href="#symbol:ldo_fixed.17" fill="green" stroke="green"/>
-<text stroke="none" x="-150" y="558" fill="green" font-size="31.999997">
-<title>VOUT</title>VOUT=3.0V</text>
-<text stroke="none" x="-150" y="350" fill="orange" font-size="31.999997">
-<title>AGILE_PN</title>313-04975-00</text>
-<text stroke="none" x="-150" y="436" fill="orange" font-size="31.999997">
-<title>MFGR_PN</title>LP5912-3.0DRVR</text>
-<text stroke="none" y="-300" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>U12</text>
-<text stroke="none" x="-150" y="393" fill="orange" font-size="31.999997">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="210" y="240" fill="black" font-size="31.999997">
-<title>$PN</title>7</text>
-<text stroke="none" x="-210" y="40" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-<text stroke="none" x="-210" y="-210" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>6</text>
-<text stroke="none" x="210" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>5</text>
-<text stroke="none" x="210" y="140" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-<text stroke="none" x="210" y="40" fill="black" font-size="31.999997">
-<title>$PN</title>3</text>
-<text stroke="none" x="210" y="-210" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-<text stroke="none" x="-150" y="479" fill="orange" font-size="31.999997">
-<title>PACK_TYPE</title>WSON6</text>
-</g>
-<g id="I74" transform="translate(5425,-575)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="R42.1" transform="translate(4200,-1750)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R42</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>4.7K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I76" transform="translate(4450,-1700)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C40.1" transform="translate(4500,-1800)">
-<g transform="scale(-1,1)">
-<use href="#symbol:cap.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-50" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>C40</text>
-<text stroke="none" x="-50" y="29" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-50" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>0.1UF</text>
-<text stroke="none" x="-50" y="60" fill="green" font-size="28.999987" text-anchor="end">
-<title>VOLT</title>10V</text>
-</g>
-<g id="I78" transform="translate(4675,-1200)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I79" transform="translate(5700,-1700)">
-<g transform="scale(-1,1)">
-<use href="#symbol:gnd.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="C41.1" transform="translate(5650,-1800)">
-<use href="#symbol:cap.1" fill="green" stroke="green"/>
-<text stroke="none" x="50" y="-30" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C41</text>
-<text stroke="none" x="50" y="29" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="50" fill="green" font-size="28.999987">
-<title>VALUE</title>0.1UF</text>
-<text stroke="none" x="50" y="60" fill="green" font-size="28.999987">
-<title>VOLT</title>10V</text>
-</g>
-<g id="U6.7" transform="translate(5100,-1200)">
-<use href="#symbol:smbus_io_xpander.7" fill="green" stroke="green"/>
-<text stroke="none" x="225" y="-580" fill="green" font-size="28.999987" text-anchor="end">
-<title>AGILE_PN</title>313-00942-00</text>
-<text stroke="none" x="225" y="-610" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>QFN24</text>
-<text stroke="none" x="250" y="620" fill="green" font-size="28.999987" text-anchor="end">
-<title>MFGR_PN</title>TCA6416ARTWR</text>
-<text stroke="none" x="-240" y="-580" fill="green" font-size="28.999987">
-<title>$LOCATION</title>U6</text>
-<text stroke="none" x="-240" y="-610" fill="orange" font-size="28.999987">
-<title>PATH</title>I92</text>
-<text stroke="none" x="250" y="587" fill="green" font-size="28.999987" text-anchor="end">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="-310" y="-260" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>22</text>
-<text stroke="none" x="310" y="340" fill="black" font-size="38.000017">
-<title>$PN</title>16</text>
-<text stroke="none" x="-310" y="-210" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>24</text>
-<text stroke="none" x="310" y="390" fill="black" font-size="38.000017">
-<title>$PN</title>17</text>
-<text stroke="none" x="310" y="440" fill="black" font-size="38.000017">
-<title>$PN</title>25</text>
-<text stroke="none" x="-310" y="-110" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>18</text>
-<text stroke="none" x="310" y="490" fill="black" font-size="38.000017">
-<title>$PN</title>9</text>
-<text stroke="none" x="310" y="290" fill="black" font-size="38.000017">
-<title>$PN</title>15</text>
-<text stroke="none" x="-310" y="-360" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>20</text>
-<text stroke="none" x="310" y="240" fill="black" font-size="38.000017">
-<title>$PN</title>14</text>
-<text stroke="none" x="-310" y="-410" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>19</text>
-<text stroke="none" x="310" y="190" fill="black" font-size="38.000017">
-<title>$PN</title>13</text>
-<text stroke="none" x="310" y="140" fill="black" font-size="38.000017">
-<title>$PN</title>12</text>
-<text stroke="none" x="-310" y="-510" fill="black" font-size="38.000017" text-anchor="end">
-<title>$PN</title>23</text>
-<text stroke="none" x="310" y="90" fill="black" font-size="38.000017">
-<title>$PN</title>11</text>
-<text stroke="none" x="310" y="40" fill="black" font-size="38.000017">
-<title>$PN</title>10</text>
-<text stroke="none" x="310" y="-60" fill="black" font-size="38.000017">
-<title>$PN</title>8</text>
-<text stroke="none" x="310" y="-110" fill="black" font-size="38.000017">
-<title>$PN</title>7</text>
-<text stroke="none" x="310" y="-160" fill="black" font-size="38.000017">
-<title>$PN</title>6</text>
-<text stroke="none" x="310" y="-210" fill="black" font-size="38.000017">
-<title>$PN</title>5</text>
-<text stroke="none" x="310" y="-260" fill="black" font-size="38.000017">
-<title>$PN</title>4</text>
-<text stroke="none" x="310" y="-310" fill="black" font-size="38.000017">
-<title>$PN</title>3</text>
-<text stroke="none" x="310" y="-360" fill="black" font-size="38.000017">
-<title>$PN</title>2</text>
-<text stroke="none" x="310" y="-410" fill="black" font-size="38.000017">
-<title>$PN</title>1</text>
-<text stroke="none" x="310" y="-510" fill="black" font-size="38.000017">
-<title>$PN</title>21</text>
-</g>
-<g id="R41.1" transform="translate(3950,-1750)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="green" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R41</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>4.7K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="U8.3" transform="translate(5650,-4250)">
-<use href="#symbol:usb_mux.3" fill="green" stroke="green"/>
-<text stroke="none" x="-174" y="-229" fill="orange" font-size="28.999987">
-<title>PATH</title>I94</text>
-<text stroke="none" x="80" y="-229" fill="orange" font-size="28.999987">
-<title>AGILE_PN</title>232-00004-00</text>
-<text stroke="none" x="180" y="346" fill="orange" font-size="28.999987" text-anchor="end">
-<title>MFGR_PN</title>TS3USB30ERSWR</text>
-<text stroke="none" x="-174" y="-264" fill="dodgerblue" font-size="28.999987">
-<title>$LOCATION</title>U8</text>
-<text stroke="none" x="180" y="311" fill="orange" font-size="28.999987" text-anchor="end">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="-260" y="-210" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>9</text>
-<text stroke="none" x="-260" y="-110" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>3</text>
-<text stroke="none" x="-260" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>5</text>
-<text stroke="none" x="-260" y="90" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>8</text>
-<text stroke="none" x="-260" y="140" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>10</text>
-<text stroke="none" x="260" y="190" fill="black" font-size="31.999997">
-<title>$PN</title>4</text>
-<text stroke="none" x="260" y="40" fill="black" font-size="31.999997">
-<title>$PN</title>6</text>
-<text stroke="none" x="260" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>2</text>
-<text stroke="none" x="260" y="-110" fill="black" font-size="31.999997">
-<title>$PN</title>7</text>
-<text stroke="none" x="260" y="-160" fill="black" font-size="31.999997">
-<title>$PN</title>1</text>
-<text stroke="none" x="80" y="-264" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>RSW</text>
-<text stroke="none" x="-155" y="265" fill="orange" font-size="28.999987">
-<title>PART_NAME</title>USB_MUX</text>
-</g>
-<g id="I96" transform="translate(6150,-850)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="Q9.1" transform="translate(7700,-950)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:pmos.1:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="80" y="9" fill="green" font-size="28.999987">
-<title>VDS</title>-20V</text>
-<text stroke="none" x="80" y="-51" fill="green" font-size="28.999987">
-<title>ID</title>-680MA</text>
-<text stroke="none" x="80" y="39" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>PMZB670UPE,315</text>
-<text stroke="none" x="80" y="99" fill="black" font-size="28.999987">
-<title>$LOCATION</title>Q9</text>
-<text stroke="none" x="-101" y="-21" fill="black" font-size="23.999986">
-<title>$PN</title>G</text>
-<text stroke="none" x="20" y="94" fill="black" font-size="23.999986">
-<title>$PN</title>D</text>
-<text stroke="none" x="20" y="-75" fill="black" font-size="23.999986">
-<title>$PN</title>S</text>
-<text stroke="none" x="80" y="-21" fill="green" font-size="28.999987">
-<title>RDS</title>850MOHM</text>
-<text stroke="none" x="80" y="-81" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="80" y="69" fill="green" font-size="28.999987">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-<text stroke="none" x="250" y="9" fill="green" font-size="28.999987">
-<title>QG</title>1.14NC</text>
-</g>
-<g id="R44.1" transform="translate(7550,-1100)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R44</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="Q8.1" transform="translate(7700,-1450)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:pmos.1:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="80" y="9" fill="green" font-size="28.999987">
-<title>VDS</title>-20V</text>
-<text stroke="none" x="80" y="-51" fill="green" font-size="28.999987">
-<title>ID</title>-680MA</text>
-<text stroke="none" x="80" y="39" fill="green" font-size="28.999987">
-<title>MFGR_PN</title>PMZB670UPE,315</text>
-<text stroke="none" x="80" y="99" fill="black" font-size="28.999987">
-<title>$LOCATION</title>Q8</text>
-<text stroke="none" x="-101" y="-21" fill="black" font-size="23.999986">
-<title>$PN</title>G</text>
-<text stroke="none" x="20" y="94" fill="black" font-size="23.999986">
-<title>$PN</title>D</text>
-<text stroke="none" x="20" y="-75" fill="black" font-size="23.999986">
-<title>$PN</title>S</text>
-<text stroke="none" x="80" y="-21" fill="green" font-size="28.999987">
-<title>RDS</title>850MOHM</text>
-<text stroke="none" x="80" y="-81" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0402</text>
-<text stroke="none" x="80" y="69" fill="green" font-size="28.999987">
-<title>MFGR</title>NXP SEMICONDUCTOR</text>
-<text stroke="none" x="250" y="9" fill="green" font-size="28.999987">
-<title>QG</title>1.14NC</text>
-</g>
-<g id="R43.1" transform="translate(7550,-1600)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R43</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>1M</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I101" transform="translate(6150,-1350)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="U5.4" transform="translate(5550,-3250)">
-<use href="#symbol:load_switch.4" fill="green" stroke="green"/>
-<text stroke="none" x="-103" y="175" fill="orange" font-size="23.000014">
-<title>AGILE_PN</title>313-01664-00</text>
-<text stroke="none" x="-100" y="-127" fill="green" font-size="23.999986">
-<title>$LOCATION</title>U5</text>
-<text stroke="none" x="-103" y="125" fill="orange" font-size="23.000014">
-<title>MFGR_PN</title>TPS22912CYZVT</text>
-<text stroke="none" x="-103" y="100" fill="orange" font-size="23.000014">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="-160" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A2</text>
-<text stroke="none" x="-160" y="-10" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B2</text>
-<text stroke="none" x="160" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>B1</text>
-<text stroke="none" x="160" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>A1</text>
-<text stroke="none" x="-103" y="150" fill="orange" font-size="23.000014">
-<title>PACK_TYPE</title>WLCSP4_2</text>
-</g>
-<g id="I103" transform="translate(5700,-3150)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I104" transform="translate(5250,-4000)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I105" transform="translate(5700,-2750)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="U13.4" transform="translate(5550,-2850)">
-<use href="#symbol:load_switch.4" fill="green" stroke="green"/>
-<text stroke="none" x="-103" y="175" fill="orange" font-size="23.000014">
-<title>AGILE_PN</title>313-01664-00</text>
-<text stroke="none" x="-100" y="-127" fill="green" font-size="23.999986">
-<title>$LOCATION</title>U13</text>
-<text stroke="none" x="-103" y="125" fill="orange" font-size="23.000014">
-<title>MFGR_PN</title>TPS22912CYZVT</text>
-<text stroke="none" x="-103" y="100" fill="orange" font-size="23.000014">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="-160" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A2</text>
-<text stroke="none" x="-160" y="-10" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B2</text>
-<text stroke="none" x="160" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>B1</text>
-<text stroke="none" x="160" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>A1</text>
-<text stroke="none" x="-103" y="150" fill="orange" font-size="23.000014">
-<title>PACK_TYPE</title>WLCSP4_2</text>
-</g>
-<g id="U14.4" transform="translate(5550,-2500)">
-<use href="#symbol:load_switch.4" fill="green" stroke="green"/>
-<text stroke="none" x="-103" y="175" fill="orange" font-size="23.000014">
-<title>AGILE_PN</title>313-01664-00</text>
-<text stroke="none" x="-100" y="-127" fill="green" font-size="23.999986">
-<title>$LOCATION</title>U14</text>
-<text stroke="none" x="-103" y="125" fill="orange" font-size="23.000014">
-<title>MFGR_PN</title>TPS22912CYZVT</text>
-<text stroke="none" x="-103" y="100" fill="orange" font-size="23.000014">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="-160" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A2</text>
-<text stroke="none" x="-160" y="-10" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B2</text>
-<text stroke="none" x="160" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>B1</text>
-<text stroke="none" x="160" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>A1</text>
-<text stroke="none" x="-103" y="150" fill="orange" font-size="23.000014">
-<title>PACK_TYPE</title>WLCSP4_2</text>
-</g>
-<g id="I108" transform="translate(5700,-2400)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I109" transform="translate(6150,-1250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="R48.1" transform="translate(6850,-1350)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R48</text>
-<text stroke="none" x="30" y="30" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="green" font-size="28.999987">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="30" fill="green" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="J2.9" transform="translate(7650,-4300)">
-<use href="#symbol:usb_type_a.9" fill="green" stroke="green"/>
-<text stroke="none" x="-100" y="250" fill="orange" font-size="31.999997">
-<title>AGILE_PN</title>210-03605-00</text>
-<text stroke="none" x="-100" y="336" fill="orange" font-size="31.999997">
-<title>MFGR_PN</title>292303-4</text>
-<text stroke="none" x="25" y="-213" fill="black" font-size="31.999997" text-anchor="middle">
-<title>$LOCATION</title>J2</text>
-<text stroke="none" x="-100" y="293" fill="orange" font-size="31.999997">
-<title>MFGR</title>TE CONNECTIVITY</text>
-<text stroke="none" x="-160" y="-110" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>2</text>
-<text stroke="none" x="-160" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>3</text>
-<text stroke="none" x="-160" y="-10" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>4</text>
-<text stroke="none" x="-160" y="90" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>G1</text>
-<text stroke="none" x="-160" y="140" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>G2</text>
-<text stroke="none" x="-160" y="-160" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>1</text>
-<text stroke="none" x="-100" y="379" fill="orange" font-size="31.999997">
-<title>PACK_TYPE</title>TOP_FCON</text>
-</g>
-<g id="I112" transform="translate(7350,-4000)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="U9.4" transform="translate(7150,-4850)">
-<use href="#symbol:load_switch.4" fill="green" stroke="green"/>
-<text stroke="none" x="-250" y="250" fill="orange" font-size="23.000014">
-<title>AGILE_PN</title>313-01664-00</text>
-<text stroke="none" x="-100" y="-127" fill="green" font-size="23.999986">
-<title>$LOCATION</title>U9</text>
-<text stroke="none" x="-250" y="200" fill="orange" font-size="23.000014">
-<title>MFGR_PN</title>TPS22912CYZVT</text>
-<text stroke="none" x="-250" y="175" fill="orange" font-size="23.000014">
-<title>MFGR</title>TEXAS INSTRUMENTS INC</text>
-<text stroke="none" x="-160" y="-60" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A2</text>
-<text stroke="none" x="-160" y="-10" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B2</text>
-<text stroke="none" x="160" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>B1</text>
-<text stroke="none" x="160" y="-60" fill="black" font-size="31.999997">
-<title>$PN</title>A1</text>
-<text stroke="none" x="-250" y="225" fill="orange" font-size="23.000014">
-<title>PACK_TYPE</title>WLCSP4_2</text>
-</g>
-<g id="I114" transform="translate(7300,-4750)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C42.3" transform="translate(7500,-4800)">
-<use href="#symbol:cap.3" fill="green" stroke="green"/>
-<text stroke="none" x="5" y="-20" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C42</text>
-<text stroke="none" x="38" y="36" fill="green" font-size="23.999986">
-<title>PACK_TYPE</title>0603</text>
-<text stroke="none" x="38" y="1" fill="green" font-size="23.999986">
-<title>VALUE</title>22UF</text>
-<text stroke="none" x="41" y="65" fill="green" font-size="18.999985">
-<title>VOLT</title>10V</text>
-</g>
-<g id="I116" transform="translate(7450,-4700)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C43.3" transform="translate(7700,-4800)">
-<use href="#symbol:cap.3" fill="green" stroke="green"/>
-<text stroke="none" x="5" y="-20" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C43</text>
-<text stroke="none" x="38" y="36" fill="green" font-size="23.999986">
-<title>PACK_TYPE</title>0603</text>
-<text stroke="none" x="38" y="1" fill="green" font-size="23.999986">
-<title>VALUE</title>22UF</text>
-<text stroke="none" x="41" y="65" fill="green" font-size="18.999985">
-<title>VOLT</title>10V</text>
-</g>
-<g id="I118" transform="translate(7650,-4700)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="I119" transform="translate(7850,-4700)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="C44.3" transform="translate(7900,-4800)">
-<use href="#symbol:cap.3" fill="green" stroke="green"/>
-<text stroke="none" x="5" y="-20" fill="green" font-size="28.999987">
-<title>$LOCATION</title>C44</text>
-<text stroke="none" x="38" y="36" fill="green" font-size="23.999986">
-<title>PACK_TYPE</title>0603</text>
-<text stroke="none" x="38" y="1" fill="green" font-size="23.999986">
-<title>VALUE</title>22UF</text>
-<text stroke="none" x="41" y="65" fill="green" font-size="18.999985">
-<title>VOLT</title>10V</text>
-</g>
-<g id="U7.1" transform="translate(6400,-4850)">
-<use href="#symbol:inverter.1" fill="green" stroke="green"/>
-<text stroke="none" x="-300" y="150" fill="green" font-size="23.000014">
-<title>AGILE_PN</title>313-01039-00</text>
-<text stroke="none" x="-300" y="125" fill="green" font-size="23.000014">
-<title>MFGR_PN</title>SN74LVC1G14YZVR</text>
-<text stroke="none" x="-100" y="-100" fill="dodgerblue" font-size="28.999987">
-<title>$LOCATION</title>U7</text>
-<g transform="translate(40,110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>B1</text>
-</g></g>
-<text stroke="none" x="-110" y="-10" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>A1</text>
-<g transform="translate(40,-110)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>A2</text>
-</g></g>
-<text stroke="none" x="210" y="-10" fill="black" font-size="31.999997">
-<title>$PN</title>B2</text>
-<text stroke="none" x="-300" y="100" fill="green" font-size="23.000014">
-<title>PACK_TYPE</title>YZV_SN74</text>
-</g>
-<g id="I122" transform="translate(6400,-4600)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="R47.1" transform="translate(6700,-4700)">
-<g transform="scale(-1,1)">
-<use href="#symbol:res.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="-30" y="-60" fill="black" font-size="28.999987" text-anchor="end">
-<title>$LOCATION</title>R47</text>
-<text stroke="none" x="-30" y="30" fill="green" font-size="28.999987" text-anchor="end">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="-30" y="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>VALUE</title>100K</text>
-<text stroke="none" x="-30" fill="green" font-size="28.999987" text-anchor="end">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I124" transform="translate(6650,-4600)">
-<use href="#symbol:gnd.1" fill="green" stroke="green"/>
-</g>
-<g id="DS2.1" transform="translate(7800,-3000)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:led.1:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="120" y="79" fill="green" font-size="28.999987">
-<title>$LOCATION</title>DS2</text>
-<g transform="translate(-10,60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>K</text>
-</g></g>
-<g transform="translate(-10,-60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>A</text>
-</g></g>
-<text stroke="none" x="120" y="9" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0603</text>
-<text stroke="none" x="120" y="44" fill="green" font-size="28.999987">
-<title>VALUE</title>RED</text>
-</g>
-<g id="DS1.1" transform="translate(7600,-3000)">
-<g transform="rotate(-180)">
-<g transform="scale(-1,1)">
-<use href="#symbol:led.1:m:s" fill="green" stroke="green"/>
-</g></g>
-<text stroke="none" x="-100" y="50" fill="green" font-size="28.999987">
-<title>$LOCATION</title>DS1</text>
-<g transform="translate(-10,60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997" text-anchor="end">
-<title>$PN</title>K</text>
-</g></g>
-<g transform="translate(-10,-60)">
-<g transform="rotate(-90)">
-<text stroke="none" fill="black" font-size="31.999997">
-<title>$PN</title>A</text>
-</g></g>
-<text stroke="none" x="-150" y="-50" fill="green" font-size="28.999987">
-<title>PACK_TYPE</title>0603</text>
-<text stroke="none" x="-400" fill="green" font-size="28.999987">
-<title>VALUE</title>GREEN/YELLOW</text>
-</g>
-<g id="R45.1" transform="translate(7600,-2750)">
-<use href="#symbol:res.1" fill="green" stroke="green"/>
-<text stroke="none" x="30" y="-60" fill="black" font-size="28.999987">
-<title>$LOCATION</title>R45</text>
-<text stroke="none" x="30" y="30" fill="orange" font-size="28.999987">
-<title>PACK_TYPE</title>0201</text>
-<text stroke="none" x="30" y="-30" fill="orange" font-size="28.999987">
-<title>VALUE</title>576</text>
-<text stroke="none" x="30" fill="orange" font-size="28.999987">
-<title>TOLERANCE</title>1%</text>
-</g>
-<g id="I128" transform="translate(3100,-2850)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I129" transform="translate(3100,-2800)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I130" transform="translate(3100,-2750)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I131" transform="translate(3100,-2700)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I132" transform="translate(6150,-1000)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="I133" transform="translate(6150,-900)">
-<g transform="scale(-1,1)">
-<use href="#symbol:synonym.1:m" fill="green" stroke="green"/>
-</g>
-</g>
-<g id="TP2.1" transform="translate(3250,-2300)">
-<g transform="scale(-1,1)">
-<use href="#symbol:testpoint.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="10" y="14" fill="green" font-size="28.999987">
-<title>$LOCATION</title>TP2</text>
-</g>
-<g id="TP3.1" transform="translate(3250,-2250)">
-<g transform="scale(-1,1)">
-<use href="#symbol:testpoint.1:m" fill="green" stroke="green"/>
-</g>
-<text stroke="none" x="10" y="14" fill="green" font-size="28.999987">
-<title>$LOCATION</title>TP3</text>
-</g>
-<text stroke="none" x="450" y="-1500" fill="purple" font-size="30.000006">USE OTG + A-TO-A CABLE TO PROGRAM</text>
-<text stroke="none" x="1100" y="-3350" fill="purple" font-size="60.000012">(SERVO_MICRO WITH UNUSED PINS REMOVED)</text>
-<text stroke="none" x="1450" y="-3450" fill="purple" font-size="94.0">DEBUG CONTROLLER</text>
-<text stroke="none" x="4850" y="-500" fill="purple" font-size="28.999987">I2C ADDR: 7'H_0X20</text>
-<text stroke="none" x="650" y="-5050" fill="purple" font-size="48.000019">MICRO-B FOR DEBUG ACCESS AND TO POWER EXTERNAL A PORT</text>
-<text stroke="none" x="5150" y="-3550" fill="purple" font-size="48.000019">DEBUG POWER MUXING</text>
-<text stroke="none" x="6850" y="-2800" fill="purple" font-size="48.000019">G=1.8MA@1.95VF</text>
-<text stroke="none" x="6850" y="-2850" fill="purple" font-size="48.000019">R=1.8MA@1.95VF</text>
-<text stroke="none" x="6650" y="-3450" fill="purple" font-size="48.000019">(KEEP OFF FOR SYSTEM MEASUREMENTS)</text>
-<text stroke="none" x="7200" y="-3550" fill="purple" font-size="48.000019">DEBUG LEDS</text>
-<text stroke="none" x="5600" y="-5250" fill="purple" font-size="48.000019">EXTERNAL TYPE-A PORT, POWERED BY MICRO-B</text>
-<g transform="translate(5400,-2500)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_BOOT0</text>
-<text stroke="none" x="-624" fill="black" font-size="30.000006">
-<title>$XR1</title>4&nbsp;</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(7750,-850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(8200,-800)">
-<line x2="-450" stroke="goldenrod"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_BOOT0</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>4&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(6850,-1250)">
-<line x2="-650" stroke="goldenrod"/>
-<text stroke="none" x="-610" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_EN</text>
-<text stroke="none" x="80" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6850,-1250)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6900,-1250)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5400,-3250)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_EN</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5400,-4100)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_EN</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6300,-4850)">
-<line x2="-300" stroke="goldenrod"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_EN</text>
-<text stroke="none" x="-334" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6600,-850)">
-<line x2="-400" stroke="goldenrod"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_RST_ODL</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(6600,-900)">
-<line x2="-400" stroke="goldenrod"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_UPDATE_L</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7550,-1000)">
-<line x2="-450" stroke="goldenrod"/>
-<text stroke="none" x="-96" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>BEC_UPDATE_L</text>
-<text stroke="none" x="-514" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7550,-1050)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7600,-1000)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6400,-4200)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_USB2_N</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(6400,-4250)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>BEC_USB2_P</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(1050,-1150)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-1200)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1050,-1200)">
-<line x2="725" stroke="goldenrod"/>
-<text stroke="none" x="190" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_BOOT0</text>
-</g>
-<g transform="translate(7600,-2600)">
-<line x2="-450" stroke="goldenrod"/>
-</g>
-<g transform="translate(7600,-2700)">
-<line y2="100" stroke="goldenrod"/>
-<text stroke="none" x="-440" y="90" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_LED_G_ODL</text>
-<text stroke="none" x="-484" y="100" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(7800,-2550)">
-<line x2="-650" stroke="goldenrod"/>
-</g>
-<g transform="translate(7800,-2700)">
-<line y2="150" stroke="goldenrod"/>
-<text stroke="none" x="-640" y="140" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_LED_R_ODL</text>
-<text stroke="none" x="-684" y="150" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(1550,-1150)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1550,-1150)">
-<line x2="-350" stroke="goldenrod"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_RST_ODL</text>
-</g>
-<g transform="translate(1550,-1150)">
-<line x2="225" stroke="goldenrod"/>
-</g>
-<g transform="translate(3125,-1450)">
-<line x2="-600" stroke="goldenrod"/>
-<text stroke="none" x="-375" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_SCL</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(3500,-1600)">
-<line x2="450" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>DEBUG_SCL</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(3950,-1700)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4800,-1600)">
-<line x2="-850" stroke="goldenrod"/>
-</g>
-<g transform="translate(3125,-1400)">
-<line x2="-600" stroke="goldenrod"/>
-<text stroke="none" x="-375" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_SDA</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(3500,-1550)">
-<line x2="700" stroke="goldenrod"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>DEBUG_SDA</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(4200,-1700)">
-<line y2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(4800,-1550)">
-<line x2="-600" stroke="goldenrod"/>
-</g>
-<g transform="translate(2525,-2250)">
-<line x2="625" stroke="goldenrod"/>
-<text stroke="none" x="225" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_UART_RX</text>
-</g>
-<g transform="translate(2525,-2300)">
-<line x2="625" stroke="goldenrod"/>
-<text stroke="none" x="225" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>DEBUG_UART_TX</text>
-</g>
-<g transform="translate(5400,-1350)">
-<line x2="700" stroke="goldenrod"/>
-<text stroke="none" x="675" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>DUT_COLD_RESET_L</text>
-</g>
-<g transform="translate(6100,-900)">
-<line x2="-700" stroke="goldenrod"/>
-<text stroke="none" x="-25" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>DUT_DEV_MODE</text>
-</g>
-<g transform="translate(5400,-1100)">
-<line x2="500" stroke="goldenrod"/>
-<text stroke="none" x="475" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>DUT_MFG_MODE</text>
-<text stroke="none" x="530" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5400,-1500)">
-<line x2="500" stroke="goldenrod"/>
-<text stroke="none" x="155" y="-10" fill="orange" font-size="28.999987">
-<title>SIG_NAME</title>DUT_MFG_MODE</text>
-<text stroke="none" x="530" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5400,-1250)">
-<line x2="700" stroke="goldenrod"/>
-<text stroke="none" x="675" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>DUT_WARM_RESET_L</text>
-</g>
-<g transform="translate(5400,-1000)">
-<line x2="700" stroke="goldenrod"/>
-<text stroke="none" x="675" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>FW_UP_L</text>
-</g>
-<g transform="translate(1050,-900)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-550)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-600)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-600)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-650)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-700)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-700)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-750)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1775,-650)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-800)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1775,-750)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1550,-1000)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1225,-2150)">
-<line x2="250" stroke="goldenrod"/>
-</g>
-<g transform="translate(1225,-2200)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1475,-2125)">
-<line y2="-25" stroke="goldenrod"/>
-</g>
-<g transform="translate(1475,-2150)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1325,-2450)">
-<line x2="200" stroke="goldenrod"/>
-</g>
-<g transform="translate(1325,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-2900)">
-<line x2="250" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-2950)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1525,-2425)">
-<line y2="-25" stroke="goldenrod"/>
-</g>
-<g transform="translate(1525,-2450)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1225,-2950)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1475,-2875)">
-<line y2="-25" stroke="goldenrod"/>
-</g>
-<g transform="translate(1475,-2900)">
-<line x2="-250" stroke="goldenrod"/>
-</g>
-<g transform="translate(1475,-2900)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-4400)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1075,-4300)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-4450)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-4500)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-4550)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1075,-4450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1075,-4500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1075,-4500)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-4650)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1075,-4650)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(4725,-1300)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(4725,-1300)">
-<line x2="75" stroke="goldenrod"/>
-</g>
-<g transform="translate(5400,-700)">
-<line x2="75" stroke="goldenrod"/>
-</g>
-<g transform="translate(1825,-4300)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5400,-750)">
-<line x2="75" stroke="goldenrod"/>
-</g>
-<g transform="translate(5475,-700)">
-<line y2="75" stroke="goldenrod"/>
-</g>
-<g transform="translate(5475,-750)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3475,-4400)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(3575,-4350)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3575,-4450)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(3575,-4450)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5700,-2500)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5750,-2500)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5700,-2850)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5750,-2850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5700,-3250)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5750,-3250)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(5300,-4150)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5400,-4150)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(6450,-4650)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7400,-4150)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7400,-4200)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7500,-4150)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7400,-4300)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7500,-4200)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7500,-4300)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7300,-4850)">
-<line x2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7350,-4850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2525,-2200)">
-<line x2="625" stroke="goldenrod"/>
-<text stroke="none" x="225" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>MICROB_USB2_N</text>
-<text stroke="none" x="655" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(975,-4800)">
-<line x2="1050" stroke="goldenrod"/>
-</g>
-<g transform="translate(1575,-4250)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1575,-4350)">
-<line x2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(2025,-4250)">
-<line x2="-450" stroke="goldenrod"/>
-</g>
-<g transform="translate(2025,-4250)">
-<line y2="-200" stroke="goldenrod"/>
-</g>
-<g transform="translate(2025,-4450)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(2025,-4450)">
-<line y2="-350" stroke="goldenrod"/>
-</g>
-<g transform="translate(2025,-4800)">
-<line x2="450" stroke="goldenrod"/>
-<text stroke="none" x="35" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>MICROB_USB2_N</text>
-<text stroke="none" x="480" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(2525,-2150)">
-<line x2="625" stroke="goldenrod"/>
-<text stroke="none" x="225" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>MICROB_USB2_P</text>
-<text stroke="none" x="655" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(975,-4750)">
-<line x2="600" stroke="goldenrod"/>
-</g>
-<g transform="translate(1575,-4450)">
-<line y2="-300" stroke="goldenrod"/>
-</g>
-<g transform="translate(1675,-4450)">
-<line x2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(1575,-4750)">
-<line x2="900" stroke="goldenrod"/>
-<text stroke="none" x="490" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>MICROB_USB2_P</text>
-<text stroke="none" x="930" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(750,-1000)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="28.999987">
-<title>SIG_NAME</title>MICROB_USB_ID</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(750,-1000)">
-<line x2="150" stroke="goldenrod"/>
-</g>
-<g transform="translate(750,-1250)">
-<line y2="250" stroke="goldenrod"/>
-</g>
-<g transform="translate(975,-4700)">
-<line x2="475" stroke="goldenrod"/>
-<text stroke="none" x="435" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>MICROB_USB_ID</text>
-<text stroke="none" x="505" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(650,-1450)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="15" y="-10" fill="orange" font-size="28.999987">
-<title>SIG_NAME</title>MICROB_VBUS</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(750,-1450)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(750,-1450)">
-<line x2="300" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1050,-1400)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(975,-4850)">
-<line x2="850" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1825,-4600)">
-<line y2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2625,-4800)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2625,-4850)">
-<line x2="-800" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-590" y="-10" fill="orange" font-size="28.999987">
-<title>SIG_NAME</title>MICROB_VBUS</text>
-<text stroke="none" x="-654" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(2625,-4850)">
-<line x2="375" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-4600)">
-<line x2="75" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-4850)">
-<line y2="250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3000,-4850)">
-<line x2="75" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6900,-4900)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6900,-5100)">
-<line y2="200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6900,-5100)">
-<line x2="-350" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>MICROB_VBUS</text>
-<text stroke="none" x="-424" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5400,-850)">
-<line x2="700" stroke="goldenrod"/>
-<text stroke="none" x="675" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>PCH_DISABLE_L</text>
-</g>
-<g transform="translate(6450,-1550)">
-<line x2="400" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="-124" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="-184" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(6850,-1450)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5400,-3300)">
-<line x2="-500" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="-624" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="-684" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(6150,-2900)">
-<line x2="-450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-<text stroke="none" x="150" fill="black" font-size="30.000006">
-<title>$XR2</title>4&nbsp;</text>
-</g>
-<g transform="translate(5400,-4450)">
-<line x2="-500" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="-624" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="-684" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(7600,-3200)">
-<line y2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7600,-3200)">
-<line x2="-300" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-310" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="-424" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="-364" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="-484" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(7800,-3200)">
-<line y2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7800,-3200)">
-<line x2="-200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6000,-5050)">
-<line x2="450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-10" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000</text>
-<text stroke="none" x="-124" fill="black" font-size="30.000006">
-<title>$XR1</title>2&nbsp;</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-<text stroke="none" x="-184" fill="black" font-size="30.000006">
-<title>$XR2</title>3&nbsp;</text>
-</g>
-<g transform="translate(6450,-5050)">
-<line y2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(6150,-2550)">
-<line x2="-450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6150,-3300)">
-<line x2="-450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-360" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_BEC</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(3500,-1900)">
-<line x2="450" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="15" y="-10" fill="orange" font-size="28.999987">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="-64" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(3950,-1850)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3950,-1900)">
-<line x2="250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4200,-1850)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4600,-1700)">
-<line x2="200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4500,-1850)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4500,-1900)">
-<line x2="-300" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4500,-1900)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4600,-1900)">
-<line y2="200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5525,-1700)">
-<line x2="-125" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5525,-1900)">
-<line y2="200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5525,-1900)">
-<line x2="125" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5650,-1850)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5900,-1900)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="5" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5400,-2550)">
-<line x2="-500" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(5400,-2900)">
-<line x2="-500" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7550,-1250)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7550,-1250)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="-314" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7750,-1050)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7750,-1100)">
-<line x2="550" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7550,-1750)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7550,-1750)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-260" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="-314" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7750,-1550)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7750,-1600)">
-<line x2="550" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="40" y="-10" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>PP3000_DEBUG</text>
-<text stroke="none" x="580" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(725,-2650)">
-<line y2="300" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(725,-2650)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1225,-2300)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1225,-2350)">
-<line x2="-500" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1475,-2300)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(725,-3100)">
-<line y2="450" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(725,-3100)">
-<line y2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(1475,-2350)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(975,-3050)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(975,-3100)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1775,-2350)">
-<line x2="-300" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1225,-3100)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1225,-3100)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-2700)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-2750)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-2750)">
-<line y2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1475,-3050)">
-<line y2="-50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-2850)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1775,-2750)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1475,-3100)">
-<line x2="-250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-3100)">
-<line x2="-200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-3100)">
-<line y2="250" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3475,-4850)">
-<line x2="200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3675,-4850)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3675,-4850)">
-<line x2="200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(3875,-4850)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4150,-4850)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4150,-4850)">
-<line x2="-275" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(4150,-4850)">
-<line x2="75" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(975,-2650)">
-<line x2="350" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>PP3000_DEBUG_VDDA</text>
-</g>
-<g transform="translate(1325,-2650)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1325,-2650)">
-<line x2="200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1525,-2650)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1525,-2650)">
-<line x2="150" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-2600)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(1675,-2650)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(2525,-950)">
-<line x2="600" stroke="goldenrod"/>
-<text stroke="none" x="225" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>RESET_L</text>
-<text stroke="none" x="630" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(4800,-1400)">
-<line x2="-1275" stroke="goldenrod"/>
-<text stroke="none" x="-1260" y="-10" fill="orange" font-size="28.999987">
-<title>SIG_NAME</title>RESET_L</text>
-<text stroke="none" x="-1339" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(2525,-2700)">
-<line x2="525" stroke="goldenrod"/>
-<text stroke="none" x="220" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART1_RX</text>
-</g>
-<g transform="translate(2525,-2750)">
-<line x2="525" stroke="goldenrod"/>
-<text stroke="none" x="220" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART1_TX</text>
-</g>
-<g transform="translate(2525,-2800)">
-<line x2="525" stroke="goldenrod"/>
-<text stroke="none" x="225" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART3_RX</text>
-</g>
-<g transform="translate(2525,-2850)">
-<line x2="525" stroke="goldenrod"/>
-<text stroke="none" x="225" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART3_TX</text>
-</g>
-<g transform="translate(3150,-2800)">
-<line x2="775" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART_BEC_TX_DEBUG_RX</text>
-<text stroke="none" x="805" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3150,-2850)">
-<line x2="775" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART_DEBUG_TX_BEC_RX</text>
-<text stroke="none" x="805" fill="black" font-size="30.000006">
-<title>$XR0</title>3&nbsp;</text>
-</g>
-<g transform="translate(3150,-2750)">
-<line x2="775" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART_DEBUG_TX_VPDMCU_RX</text>
-<text stroke="none" x="810" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(3150,-2700)">
-<line x2="775" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>UART_VPDMCU_TX_DEBUG_RX</text>
-<text stroke="none" x="810" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(7800,-2950)">
-<line y2="100" stroke="goldenrod"/>
-</g>
-<g transform="translate(7600,-2850)">
-<line y2="-100" stroke="goldenrod"/>
-</g>
-<g transform="translate(5400,-4300)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USB2_N</text>
-<text stroke="none" x="-624" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(5400,-4350)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USB2_P</text>
-<text stroke="none" x="-624" fill="black" font-size="30.000006">
-<title>$XR1</title>3&nbsp;</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6600,-4850)">
-<line x2="100" stroke="goldenrod"/>
-<text stroke="none" x="90" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USBA_EN</text>
-</g>
-<g transform="translate(6700,-4850)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(6700,-4850)">
-<line x2="300" stroke="goldenrod"/>
-</g>
-<g transform="translate(6400,-4350)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USBA_USB2_N</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7500,-4400)">
-<line x2="-750" stroke="goldenrod"/>
-<text stroke="none" x="-660" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USBA_USB2_N</text>
-<text stroke="none" x="-784" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(6400,-4400)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USBA_USB2_P</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7500,-4350)">
-<line x2="-750" stroke="goldenrod"/>
-<text stroke="none" x="-660" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>USBA_USB2_P</text>
-<text stroke="none" x="-784" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7400,-4450)">
-<line y2="-450" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7500,-4450)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-<text stroke="none" x="-110" y="-460" fill="orange" font-size="38.000017">
-<title>SIG_NAME</title>USBA_VBUS</text>
-</g>
-<g transform="translate(7400,-4900)">
-<line x2="-100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7400,-4900)">
-<line x2="100" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7500,-4900)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7700,-4900)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7700,-4900)">
-<line x2="-200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7900,-4900)">
-<line y2="50" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(7900,-4900)">
-<line x2="-200" stroke="goldenrod" stroke-width="6"/>
-</g>
-<g transform="translate(5400,-2850)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VPDMCU_BOOT0</text>
-<text stroke="none" x="-624" fill="black" font-size="30.000006">
-<title>$XR1</title>4&nbsp;</text>
-<text stroke="none" x="-564" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(7750,-1350)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(8200,-1300)">
-<line x2="-450" stroke="goldenrod"/>
-<text stroke="none" x="-390" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VPDMCU_BOOT0</text>
-<text stroke="none" x="90" fill="black" font-size="30.000006">
-<title>$XR1</title>4&nbsp;</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6650,-1350)">
-<line x2="-450" stroke="goldenrod"/>
-<text stroke="none" x="-410" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VPDMCU_RST_ODL</text>
-<text stroke="none" x="40" y="-10" fill="black" font-size="30.000006">
-<title>$XR0</title>2&nbsp;</text>
-</g>
-<g transform="translate(6700,-1000)">
-<line x2="-500" stroke="goldenrod"/>
-<text stroke="none" x="-460" y="-10" fill="orange" font-size="30.000006">
-<title>SIG_NAME</title>VPDMCU_UPDATE_L</text>
-<text stroke="none" x="30" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7550,-1500)">
-<line x2="-450" stroke="goldenrod"/>
-<text stroke="none" x="-32" y="-10" fill="orange" font-size="28.999987" text-anchor="end">
-<title>SIG_NAME</title>VPDMCU_UPDATE_L</text>
-<text stroke="none" x="-514" fill="black" font-size="30.000006">
-<title>$XR0</title>4&nbsp;</text>
-</g>
-<g transform="translate(7550,-1550)">
-<line y2="50" stroke="goldenrod"/>
-</g>
-<g transform="translate(7600,-1500)">
-<line x2="-50" stroke="goldenrod"/>
-</g>
-<g transform="translate(150,-3700)">
-<line x2="4400" stroke="goldenrod"/>
-</g>
-<g transform="translate(4550,-2100)">
-<line x2="2000" stroke="goldenrod"/>
-</g>
-<g transform="translate(4550,-3700)">
-<line y2="1600" stroke="goldenrod"/>
-</g>
-<g transform="translate(4550,-3700)">
-<line x2="2000" stroke="goldenrod"/>
-</g>
-<g transform="translate(6550,-2100)">
-<line x2="1800" stroke="goldenrod"/>
-</g>
-<g transform="translate(4550,-5350)">
-<line y2="1650" stroke="goldenrod"/>
-</g>
-<g transform="translate(6550,-3700)">
-<line y2="1600" stroke="goldenrod"/>
-</g>
-<g transform="translate(6550,-3700)">
-<line x2="1800" stroke="goldenrod"/>
-</g>
-<g transform="translate(8350,-3700)">
-<line y2="1600" stroke="goldenrod"/>
-</g>
-<circle cx="6850" cy="-1250" r="10" stroke="black" fill="black"/>
-<circle cx="7550" cy="-1000" r="10" stroke="black" fill="black"/>
-<circle cx="1050" cy="-1200" r="10" stroke="black" fill="black"/>
-<circle cx="1550" cy="-1150" r="10" stroke="black" fill="black"/>
-<circle cx="3950" cy="-1600" r="10" stroke="black" fill="black"/>
-<circle cx="4200" cy="-1550" r="10" stroke="black" fill="black"/>
-<circle cx="1675" cy="-600" r="10" stroke="black" fill="black"/>
-<circle cx="1675" cy="-650" r="10" stroke="black" fill="black"/>
-<circle cx="1675" cy="-700" r="10" stroke="black" fill="black"/>
-<circle cx="1675" cy="-750" r="10" stroke="black" fill="black"/>
-<circle cx="1475" cy="-2150" r="10" stroke="black" fill="black"/>
-<circle cx="1525" cy="-2450" r="10" stroke="black" fill="black"/>
-<circle cx="1225" cy="-2900" r="10" stroke="black" fill="black"/>
-<circle cx="1475" cy="-2900" r="10" stroke="black" fill="black"/>
-<circle cx="1075" cy="-4400" r="10" stroke="black" fill="black"/>
-<circle cx="1075" cy="-4450" r="10" stroke="black" fill="black"/>
-<circle cx="1075" cy="-4500" r="10" stroke="black" fill="black"/>
-<circle cx="1075" cy="-4550" r="10" stroke="black" fill="black"/>
-<circle cx="5475" cy="-700" r="10" stroke="black" fill="black"/>
-<circle cx="3575" cy="-4400" r="10" stroke="black" fill="black"/>
-<circle cx="7400" cy="-4150" r="10" stroke="black" fill="black"/>
-<circle cx="7400" cy="-4200" r="10" stroke="black" fill="black"/>
-<circle cx="2025" cy="-4450" r="10" stroke="black" fill="black"/>
-<circle cx="2025" cy="-4800" r="10" stroke="black" fill="black"/>
-<circle cx="1575" cy="-4750" r="10" stroke="black" fill="black"/>
-<circle cx="750" cy="-1000" r="10" stroke="black" fill="black"/>
-<circle cx="750" cy="-1450" r="10" stroke="black" fill="black"/>
-<circle cx="1825" cy="-4850" r="10" stroke="black" fill="black"/>
-<circle cx="2625" cy="-4850" r="10" stroke="black" fill="black"/>
-<circle cx="3000" cy="-4850" r="10" stroke="black" fill="black"/>
-<circle cx="7600" cy="-3200" r="10" stroke="black" fill="black"/>
-<circle cx="3950" cy="-1900" r="10" stroke="black" fill="black"/>
-<circle cx="4200" cy="-1900" r="10" stroke="black" fill="black"/>
-<circle cx="4500" cy="-1900" r="10" stroke="black" fill="black"/>
-<circle cx="5650" cy="-1900" r="10" stroke="black" fill="black"/>
-<circle cx="725" cy="-2650" r="10" stroke="black" fill="black"/>
-<circle cx="1225" cy="-2350" r="10" stroke="black" fill="black"/>
-<circle cx="725" cy="-3100" r="10" stroke="black" fill="black"/>
-<circle cx="1475" cy="-2350" r="10" stroke="black" fill="black"/>
-<circle cx="975" cy="-3100" r="10" stroke="black" fill="black"/>
-<circle cx="1225" cy="-3100" r="10" stroke="black" fill="black"/>
-<circle cx="1675" cy="-2750" r="10" stroke="black" fill="black"/>
-<circle cx="1675" cy="-2850" r="10" stroke="black" fill="black"/>
-<circle cx="1475" cy="-3100" r="10" stroke="black" fill="black"/>
-<circle cx="3675" cy="-4850" r="10" stroke="black" fill="black"/>
-<circle cx="3875" cy="-4850" r="10" stroke="black" fill="black"/>
-<circle cx="4150" cy="-4850" r="10" stroke="black" fill="black"/>
-<circle cx="1325" cy="-2650" r="10" stroke="black" fill="black"/>
-<circle cx="1525" cy="-2650" r="10" stroke="black" fill="black"/>
-<circle cx="6700" cy="-4850" r="10" stroke="black" fill="black"/>
-<circle cx="7400" cy="-4900" r="10" stroke="black" fill="black"/>
-<circle cx="7500" cy="-4900" r="10" stroke="black" fill="black"/>
-<circle cx="7700" cy="-4900" r="10" stroke="black" fill="black"/>
-<circle cx="7550" cy="-1500" r="10" stroke="black" fill="black"/>
-<circle cx="4550" cy="-3700" r="10" stroke="black" fill="black"/>
-<circle cx="6550" cy="-2100" r="10" stroke="black" fill="black"/>
-<circle cx="6550" cy="-3700" r="10" stroke="black" fill="black"/>
-</svg>
-
-</div>
-</div>
-<hr/>
-</body></html>
diff --git a/board/chocodile_vpdmcu/ec.tasklist b/board/chocodile_vpdmcu/ec.tasklist
deleted file mode 100644
index 6753502b92..0000000000
--- a/board/chocodile_vpdmcu/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/chocodile_vpdmcu/gpio.inc b/board/chocodile_vpdmcu/gpio.inc
deleted file mode 100644
index a34c617ef1..0000000000
--- a/board/chocodile_vpdmcu/gpio.inc
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Divided Vconn voltage sense */
-GPIO(VCONN_VSENSE, PIN(A, 0), GPIO_ANALOG)
-/* CC ADC, PD in comparator, or tx enable out (low) */
-GPIO(CC_VPDMCU, PIN(A, 1), GPIO_ANALOG)
-/* CC 0.2V comparator during charge-through, active Rd (low) or Rp3A0 (high) */
-GPIO(CC_RP3A0_RD_L, PIN(A, 2), GPIO_ANALOG)
-/* 0.2V resistor divider for various CC comapators */
-GPIO(RDCONNECT_REF, PIN(A, 3), GPIO_ANALOG)
-/* Charger CC1 0.2V comparator and ADC, drive a Rp3A0 (high) or Rd (low) */
-GPIO(CC1_RP3A0_RD_L, PIN(A, 4), GPIO_ANALOG)
-/* Charger CC2 0.2V comparator and ADC, drive a Rp3A0 (high) or Rd (low) */
-GPIO(CC2_RP3A0_RD_L, PIN(A, 5), GPIO_ANALOG)
-/* Divided host VBUS voltage sense */
-GPIO(HOST_VBUS_VSENSE, PIN(A, 6), GPIO_ANALOG)
-/* Divided charger VBUS voltage sense */
-GPIO(CHARGER_VBUS_VSENSE, PIN(A, 7), GPIO_ANALOG)
-/* Charger CC1 ADC, or drive a RpUSB (high) */
-GPIO(CC1_RPUSB_ODH, PIN(B, 0), GPIO_ANALOG)
-/* Charger CC2 ADC, or drive a RpUSB (high) */
-GPIO(CC2_RPUSB_ODH, PIN(B, 1), GPIO_ANALOG)
-
-/* PD TX data output */
-GPIO(CC_TX_DATA, PIN(B, 4), GPIO_INPUT)
-
-/* Enables the VBUS pass-through (high) */
-GPIO(VBUS_PASS_EN, PIN(B, 2), GPIO_OUT_LOW)
-
-/*
- * Desired billboard state. One of "no billboard/nothing connected" (low),
- * "source connected but not in charge-through" (pull-up), or "sink connected"
- * (high)
- */
-GPIO(PRESENT_BILLBOARD, PIN(A, 8), GPIO_OUT_LOW)
-
-/* Enables cReceiver and the path to the PD RX/TX, RpUSB, and Rp1A5 */
-GPIO(VPDMCU_CC_EN, PIN(A, 11), GPIO_OUT_LOW)
-
-/* Disables dead battery Rd on host side (low) */
-GPIO(CC_DB_EN_OD, PIN(A, 12), GPIO_ODR_HIGH)
-
-/* RpUSB on host side (high) */
-GPIO(CC_RPUSB_ODH, PIN(A, 13), GPIO_INPUT)
-
-/*
- * Controls the dead-battery pull-downs on charger side; either dead battery
- * Rd (low) or Hi-Z (high)
- */
-GPIO(CC1_CC2_DB_EN_L, PIN(A, 15), GPIO_OUT_LOW)
-
-/* Chooses between Vconn (low) and VBUS (high) */
-GPIO(VCONN_PWR_SEL_ODL, PIN(B, 6), GPIO_INPUT)
-
-/* Passes CC1 to the host CC (high) */
-GPIO(CC1_SEL, PIN(F, 0), GPIO_OUT_LOW)
-/* Passes CC2 to the host CC (high) */
-GPIO(CC2_SEL, PIN(F, 1), GPIO_OUT_LOW)
-/* Debug red LED driver (low). Keep off for power measurements */
-GPIO(DEBUG_LED_R_L, PIN(B, 5), GPIO_ODR_HIGH)
-/* Debug green LED driver (low). Keep off for power measurements */
-GPIO(DEBUG_LED_G_L, PIN(B, 7), GPIO_ODR_HIGH)
-
-UNIMPLEMENTED(WP_L)
-UNIMPLEMENTED(ENTERING_RW)
-
-/* SCK(PB3): PD_TX_CLK_IN - Clock input for PD TX */
-ALTERNATE(PIN_MASK(B, 0x0008), 0, MODULE_USB_PD, 0)
-/* TIM16_CH1(PB8): PD_TX_CLK_OUT - Clock generator for PD TX */
-ALTERNATE(PIN_MASK(B, 0x0100), 2, MODULE_USB_PD, 0)
-/* USART1 (PA9/PA10): TX/RX for debug and programming */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
diff --git a/board/chocodile_vpdmcu/usb_pd_config.h b/board/chocodile_vpdmcu/usb_pd_config.h
deleted file mode 100644
index a6c1adbc61..0000000000
--- a/board/chocodile_vpdmcu/usb_pd_config.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "adc.h"
-#include "chip/stm32/registers.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "vpd_api.h"
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_C0 16
-#define TIM_CLOCK_PD_RX_C0 1
-
-#define TIM_CLOCK_PD_TX(p) TIM_CLOCK_PD_TX_C0
-#define TIM_CLOCK_PD_RX(p) TIM_CLOCK_PD_RX_C0
-
-/* Timer channel */
-#define TIM_TX_CCR_C0 1
-#define TIM_RX_CCR_C0 1
-
-/* RX timer capture/compare register */
-#define TIM_CCR_C0 (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_C0, TIM_RX_CCR_C0))
-#define TIM_RX_CCR_REG(p) TIM_CCR_C0
-
-/* TX and RX timer register */
-#define TIM_REG_TX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_TX_C0))
-#define TIM_REG_RX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_RX_C0))
-#define TIM_REG_TX(p) TIM_REG_TX_C0
-#define TIM_REG_RX(p) TIM_REG_RX_C0
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* TX uses SPI1 on PB3-4 for port C0 */
-#define SPI_REGS(p) STM32_SPI1_REGS
-
-static inline void spi_enable_clock(int port)
-{
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
-}
-
-/* SPI1_TX no remap needed */
-#define DMAC_SPI_TX(p) STM32_DMAC_CH3
-
-/* RX is using COMP1 triggering TIM1 CH1 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM1_IC1
-#define CMP2OUTSEL 0
-
-#define TIM_TX_CCR_IDX(p) TIM_TX_CCR_C0
-#define TIM_RX_CCR_IDX(p) TIM_RX_CCR_C0
-#define TIM_CCR_CS 1
-
-/* EXTI line 21 is connected to the CMP1 output */
-#define EXTI_COMP1_MASK (1 << 21)
-/* EXTI line 22 is connected to the CMP1 output */
-#define EXTI_COMP2_MASK (1 << 22)
-
-#define EXTI_COMP_MASK(p) (EXTI_COMP1_MASK | EXTI_COMP2_MASK)
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-/* TIM1_CH1 no remap needed */
-#define DMAC_TIM_RX(p) STM32_DMAC_CH2
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- /*
- * 40 MHz pin speed on SPI PB3&4,
- * (USB_C0_TX_CLKIN & USB_C0_CC1_TX_DATA)
- *
- * 40 MHz pin speed on TIM17_CH1 (PB7),
- * (PD_TX_CLK_OUT)
- */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x0000C3C0;
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= (1 << 12);
- STM32_RCC_APB2RSTR &= ~(1 << 12);
-}
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
- /* USB_CC_TX_DATA: PB4 is SPI1 MISO */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- & ~(3 << (2*4))) /* PB4 disable ADC */
- | (2 << (2*4)); /* Set as SPI1_MISO */
- /* MCU ADC PA1 pin output low */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- & ~(3 << (2*1))) /* PA1 disable ADC */
- | (1 << (2*1)); /* Set as GPO */
- gpio_set_level(GPIO_CC_VPDMCU, 0);
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- /* Set CC_TX_DATA to Hi-Z, PB4 is SPI1 MISO */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- & ~(3 << (2*4)));
- /* set ADC PA1 pin to ADC function (Hi-Z) */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*1))); /* PA1 as ADC */
-}
-
-/* we know the plug polarity, do the right configuration */
-static inline void pd_select_polarity(int port, int polarity)
-{
- /*
- * use the right comparator : CC1 -> PA1 (COMP1 INP)
- * use VrefInt / 2 as INM (about 600mV)
- */
- STM32_COMP_CSR = (STM32_COMP_CSR & ~STM32_COMP_CMP1INSEL_MASK)
- | STM32_COMP_CMP1EN | STM32_COMP_CMP1INSEL_VREF12;
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- gpio_config_module(MODULE_USB_PD, 1);
-}
-
-static inline void pd_set_host_mode(int port, int enable)
-{
- /* Do nothing */
-}
-
-/**
- * Initialize various GPIOs and interfaces to safe state at start of pd_task.
- *
- * These include:
- * Physical layer CC transmit.
- *
- * @param port USB-C port number
- * @param power_role Power role of device
- */
-static inline void pd_config_init(int port, uint8_t power_role)
-{
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
- pd_tx_disable(0, 0);
-}
-
-static inline int pd_adc_read(int port, int cc)
-{
- return 0;
-}
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
-
diff --git a/board/chocodile_vpdmcu/vif_override.xml b/board/chocodile_vpdmcu/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/chocodile_vpdmcu/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/chocodile_vpdmcu/vpd_api.c b/board/chocodile_vpdmcu/vpd_api.c
deleted file mode 100644
index cdd2d9776d..0000000000
--- a/board/chocodile_vpdmcu/vpd_api.c
+++ /dev/null
@@ -1,531 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "adc.h"
-#include "gpio.h"
-#include "registers.h"
-#include "vpd_api.h"
-#include "driver/tcpm/tcpm.h"
-
-/*
- * Polarity based on 'DFP Perspective' (see table 4-10 USB Type-C Cable and
- * Connector Specification Release 1.3)
- *
- * CC1 CC2 STATE POSITION
- * ----------------------------------------
- * open open NC N/A
- * Rd open UFP attached 1
- * open Rd UFP attached 2
- * open Ra pwr cable no UFP N/A
- * Ra open pwr cable no UFP N/A
- * Rd Ra pwr cable & UFP 1
- * Ra Rd pwr cable & UFP 2
- * Rd Rd dbg accessory N/A
- * Ra Ra audio accessory N/A
- *
- * Note, V(Rd) > V(Ra)
- */
-#ifndef PD_SRC_RD_THRESHOLD
-#define PD_SRC_RD_THRESHOLD PD_SRC_DEF_RD_THRESH_MV
-#endif
-#ifndef PD_SRC_VNC
-#define PD_SRC_VNC PD_SRC_DEF_VNC_MV
-#endif
-
-#undef CC_RA
-#define CC_RA(cc, sel) (cc < pd_src_rd_threshold[sel])
-#undef CC_RD
-#define CC_RD(cc, sel) ((cc >= pd_src_rd_threshold[sel]) && (cc < PD_SRC_VNC))
-
-/* (15.8K / (100K + 15.8K)) * 1000 = 136.4 */
-#define VBUS_SCALE_FACTOR 136
-/* (118K / (100K + 118K)) * 1000 = 541.3 */
-#define VCONN_SCALE_FACTOR 541
-
-#define VBUS_DETECT_THRESHOLD 2500 /* mV */
-#define VCONN_DETECT_THRESHOLD 2500 /* mV */
-
-#define SCALE(vmeas, sfactor) (((vmeas) * 1000) / (sfactor))
-
-/*
- * Type C power source charge current limits are identified by their cc
- * voltage (set by selecting the proper Rd resistor). Any voltage below
- * TYPE_C_SRC_500_THRESHOLD will not be identified as a type C charger.
- */
-#define TYPE_C_SRC_DEFAULT_THRESHOLD 200 /* mV */
-#define TYPE_C_SRC_1500_THRESHOLD 660 /* mV */
-#define TYPE_C_SRC_3000_THRESHOLD 1230 /* mV */
-
-/* Charge-Through pull up/down enabled */
-static int ct_cc_pull;
-/* Charge-Through pull up value */
-static int ct_cc_rp_value;
-
-/* Charge-Through pull up/down enabled */
-static int host_cc_pull;
-/* Charge-Through pull up value */
-static int host_cc_rp_value;
-
-/* Voltage thresholds for Ra attach in normal SRC mode */
-static int pd_src_rd_threshold[TYPEC_RP_RESERVED] = {
- PD_SRC_DEF_RD_THRESH_MV,
- PD_SRC_1_5_RD_THRESH_MV,
- PD_SRC_3_0_RD_THRESH_MV,
-};
-
-/* Convert CC voltage to CC status */
-static int vpd_cc_voltage_to_status(int cc_volt, int cc_pull)
-{
- /* If we have a pull-up, then we are source, check for Rd. */
- if (cc_pull == TYPEC_CC_RP) {
- if (CC_RD(cc_volt, ct_cc_rp_value))
- return TYPEC_CC_RD;
- else if (CC_RA(cc_volt, ct_cc_rp_value))
- return TYPEC_CC_VOLT_RA;
- else
- return TYPEC_CC_VOLT_OPEN;
- /* If we have a pull-down, then we are sink, check for Rp. */
- } else if (cc_pull == TYPEC_CC_RD || cc_pull == TYPEC_CC_RA_RD) {
- if (cc_volt >= TYPE_C_SRC_3000_THRESHOLD)
- return TYPEC_CC_VOLT_RP_3_0;
- else if (cc_volt >= TYPE_C_SRC_1500_THRESHOLD)
- return TYPEC_CC_VOLT_RP_1_5;
- else if (cc_volt >= TYPE_C_SRC_DEFAULT_THRESHOLD)
- return TYPEC_CC_VOLT_RP_DEF;
- else
- return TYPEC_CC_VOLT_OPEN;
- } else {
- /* If we are open, then always return 0 */
- return 0;
- }
-}
-
-void vpd_ct_set_pull(int pull, int rp_value)
-{
- ct_cc_pull = pull;
-
- switch (pull) {
- case TYPEC_CC_RP:
- ct_cc_rp_value = rp_value;
- vpd_cc1_cc2_db_en_l(GPO_HIGH);
- switch (rp_value) {
- case TYPEC_RP_USB:
- vpd_config_cc1_rp3a0_rd_l(PIN_ADC, 0);
- vpd_config_cc2_rp3a0_rd_l(PIN_ADC, 0);
- vpd_config_cc1_rpusb_odh(PIN_GPO, 1);
- vpd_config_cc2_rpusb_odh(PIN_GPO, 1);
- break;
- case TYPEC_RP_3A0:
- vpd_config_cc1_rpusb_odh(PIN_ADC, 0);
- vpd_config_cc2_rpusb_odh(PIN_ADC, 0);
- vpd_config_cc1_rp3a0_rd_l(PIN_GPO, 1);
- vpd_config_cc2_rp3a0_rd_l(PIN_GPO, 1);
- break;
- }
- break;
- case TYPEC_CC_RD:
- vpd_config_cc1_rpusb_odh(PIN_ADC, 0);
- vpd_config_cc2_rpusb_odh(PIN_ADC, 0);
- vpd_config_cc1_rp3a0_rd_l(PIN_GPO, 0);
- vpd_config_cc2_rp3a0_rd_l(PIN_GPO, 0);
- vpd_cc1_cc2_db_en_l(GPO_HIGH);
- break;
- case TYPEC_CC_OPEN:
- vpd_cc1_cc2_db_en_l(GPO_HIGH);
- vpd_config_cc1_rpusb_odh(PIN_ADC, 0);
- vpd_config_cc2_rpusb_odh(PIN_ADC, 0);
- vpd_config_cc1_rp3a0_rd_l(PIN_ADC, 0);
- vpd_config_cc2_rp3a0_rd_l(PIN_ADC, 0);
- break;
- }
-}
-
-void vpd_ct_get_cc(int *cc1, int *cc2)
-{
- int cc1_v = 0;
- int cc2_v = 0;
-
- switch (ct_cc_pull) {
- case TYPEC_CC_RP:
- switch (ct_cc_rp_value) {
- case TYPEC_RP_USB:
- cc1_v = adc_read_channel(ADC_CC1_RP3A0_RD_L);
- cc2_v = adc_read_channel(ADC_CC2_RP3A0_RD_L);
- break;
- case TYPEC_RP_3A0:
- cc1_v = adc_read_channel(ADC_CC1_RPUSB_ODH);
- cc2_v = adc_read_channel(ADC_CC2_RPUSB_ODH);
- break;
- }
- break;
- case TYPEC_CC_RD:
- cc1_v = adc_read_channel(ADC_CC1_RPUSB_ODH);
- cc2_v = adc_read_channel(ADC_CC2_RPUSB_ODH);
- break;
- case TYPEC_CC_OPEN:
- *cc1 = 0;
- *cc2 = 0;
- return;
- }
-
- *cc1 = vpd_cc_voltage_to_status(cc1_v, ct_cc_pull);
- *cc2 = vpd_cc_voltage_to_status(cc2_v, ct_cc_pull);
-}
-
-void vpd_host_set_pull(int pull, int rp_value)
-{
- host_cc_pull = pull;
-
- switch (pull) {
- case TYPEC_CC_RP:
- vpd_cc_db_en_od(GPO_LOW);
- host_cc_rp_value = rp_value;
- switch (rp_value) {
- case TYPEC_RP_USB:
- vpd_config_cc_rp3a0_rd_l(PIN_CMP, 0);
- vpd_cc_rpusb_odh(GPO_HIGH);
- break;
- case TYPEC_RP_3A0:
- vpd_cc_rpusb_odh(GPO_HZ);
- vpd_config_cc_rp3a0_rd_l(PIN_GPO, 1);
- break;
- }
- break;
- case TYPEC_CC_RD:
- vpd_cc_rpusb_odh(GPO_HZ);
- vpd_cc_db_en_od(GPO_LOW);
- vpd_config_cc_rp3a0_rd_l(PIN_GPO, 0);
- break;
- case TYPEC_CC_RA_RD:
- vpd_cc_rpusb_odh(GPO_HZ);
- vpd_config_cc_rp3a0_rd_l(PIN_CMP, 0);
-
- /*
- * RA is connected to VCONN
- * RD is connected to CC
- */
- vpd_cc_db_en_od(GPO_HIGH);
- break;
- case TYPEC_CC_OPEN:
- vpd_cc_rpusb_odh(GPO_HZ);
- vpd_config_cc_rp3a0_rd_l(PIN_CMP, 0);
- vpd_cc_db_en_od(GPO_LOW);
- break;
- }
-}
-
-void vpd_host_get_cc(int *cc)
-{
- *cc = vpd_cc_voltage_to_status(
- adc_read_channel(ADC_CC_VPDMCU), host_cc_pull);
-}
-
-void vpd_rx_enable(int en)
-{
- tcpm_set_rx_enable(0, en);
-}
-
-/*
- * PA2: Configure as COMP2_INM6 or GPO
- */
-void vpd_config_cc_rp3a0_rd_l(enum vpd_pin cfg, int en)
-{
- if (cfg == PIN_GPO) {
- /* Set output value in register */
- gpio_set_level(GPIO_CC_RP3A0_RD_L, en ? 1 : 0);
-
- /* Disable Analog mode and Enable GPO */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- & ~(3 << (2*2))) /* PA2 disable ADC */
- | (1 << (2*2)); /* Set as GPO */
- } else {
- /* Set PA2 pin to ANALOG function */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*2))); /* PA2 in ANALOG mode */
-
- /* Set PA3 pin to ANALOG function */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*3))); /* PA3 in ANALOG mode */
-
- /* Disable Window Mode. Select PA3 */
- STM32_COMP_CSR &= ~STM32_COMP_WNDWEN;
-
- /* No output selection. We will use Interrupt */
- STM32_COMP_CSR &= ~STM32_COMP_CMP2OUTSEL_NONE;
-
- /* Not inverting */
- STM32_COMP_CSR &= ~STM32_COMP_CMP2POL;
-
- /* Select COMP2_INM6 (PA2) */
- STM32_COMP_CSR |= STM32_COMP_CMP2INSEL_INM6;
-
- /* COMP Enable */
- STM32_COMP_CSR |= STM32_COMP_CMP2EN;
- }
-}
-
-/*
- * PA4: Configure as ADC, CMP, or GPO
- */
-void vpd_config_cc1_rp3a0_rd_l(enum vpd_pin cfg, int en)
-{
- if (cfg == PIN_GPO) {
- /* Default high. Enable cc1 Rp3A0 pullup */
- gpio_set_level(GPIO_CC1_RP3A0_RD_L, en ? 1 : 0);
-
- /* Disable Analog mode and Enable GPO */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- & ~(3 << (2*4))) /* PA4 disable ADC */
- | (1 << (2*4)); /* Set as GPO */
- }
-
- if (cfg == PIN_ADC || cfg == PIN_CMP) {
- /* Disable COMP2 */
- STM32_COMP_CSR &= ~STM32_COMP_CMP2EN;
-
- /* Set PA4 pin to Analog mode */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*4))); /* PA4 in ANALOG mode */
-
- if (cfg == PIN_CMP) {
- /* Set PA3 pin to ANALOG function */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*3))); /* PA3 in ANALOG mode */
-
- /* Disable Window Mode. Select PA3*/
- STM32_COMP_CSR &= ~STM32_COMP_WNDWEN;
-
- /* No output selection. We will use Interrupt */
- STM32_COMP_CSR &= ~STM32_COMP_CMP2OUTSEL_NONE;
-
- /* Select COMP2_INM4 (PA4) */
- STM32_COMP_CSR |= STM32_COMP_CMP2INSEL_INM4;
-
- /* COMP2 Enable */
- STM32_COMP_CSR |= STM32_COMP_CMP2EN;
- }
- }
-}
-
-/*
- * PA5: Configure as ADC, COMP, or GPO
- */
-void vpd_config_cc2_rp3a0_rd_l(enum vpd_pin cfg, int en)
-{
- if (cfg == PIN_GPO) {
- /* Set output value in register */
- gpio_set_level(GPIO_CC2_RP3A0_RD_L, en ? 1 : 0);
-
- /* Disable Analog mode and Enable GPO */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- & ~(3 << (2*5))) /* PA5 disable ADC */
- | (1 << (2*5)); /* Set as GPO */
- }
-
- if (cfg == PIN_ADC || cfg == PIN_CMP) {
- /* Disable COMP2 */
- STM32_COMP_CSR &= ~STM32_COMP_CMP2EN;
-
- /* Set PA5 pin to ANALOG function */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*5))); /* PA5 in ANALOG mode */
-
- if (cfg == PIN_CMP) {
- /* Set PA3 pin to ANALOG function */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*3))); /* PA3 in ANALOG mode */
-
- /* Disable Window Mode. */
- STM32_COMP_CSR &= ~STM32_COMP_WNDWEN;
-
- /* No output selection. We will use Interrupt */
- STM32_COMP_CSR &= ~STM32_COMP_CMP2OUTSEL_NONE;
-
- /* Select COMP2_INM5 (PA5) */
- STM32_COMP_CSR |= STM32_COMP_CMP2INSEL_INM5;
-
- /* COMP2 Enable */
- STM32_COMP_CSR |= STM32_COMP_CMP2EN;
- }
- }
-}
-
-/*
- * PB0: Configure as ADC or GPO
- */
-void vpd_config_cc1_rpusb_odh(enum vpd_pin cfg, int en)
-{
- if (cfg == PIN_GPO) {
- /* Set output value in register */
- gpio_set_level(GPIO_CC1_RPUSB_ODH, en ? 1 : 0);
-
- /* Disable Analog mode and Enable GPO */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- & ~(3 << (2*0))) /* PB0 disable ADC */
- | (1 << (2*0)); /* Set as GPO */
- } else {
- /* Enable Analog mode */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- | (3 << (2*0))); /* PB0 in ANALOG mode */
- }
-}
-
-/*
- * PB1: Configure as ADC or GPO
- */
-void vpd_config_cc2_rpusb_odh(enum vpd_pin cfg, int en)
-{
- if (cfg == PIN_GPO) {
- /* Set output value in register */
- gpio_set_level(GPIO_CC2_RPUSB_ODH, en ? 1 : 0);
-
- /* Disable Analog mode and Enable GPO */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- & ~(3 << (2*1))) /* PB1 disable ADC */
- | (1 << (2*1)); /* Set as GPO */
- } else {
- /* Enable Analog mode */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- | (3 << (2*1))); /* PB1 in ANALOG mode */
- }
-}
-
-inline int vpd_read_cc_vpdmcu(void)
-{
- return adc_read_channel(ADC_CC_VPDMCU);
-}
-
-inline int vpd_read_host_vbus(void)
-{
- return SCALE(adc_read_channel(ADC_HOST_VBUS_VSENSE), VBUS_SCALE_FACTOR);
-}
-
-inline int vpd_read_ct_vbus(void)
-{
- return SCALE(adc_read_channel(ADC_CHARGE_VBUS_VSENSE),
- VBUS_SCALE_FACTOR);
-}
-
-inline int vpd_read_vconn(void)
-{
- return SCALE(adc_read_channel(ADC_VCONN_VSENSE), VCONN_SCALE_FACTOR);
-}
-
-inline int vpd_is_host_vbus_present(void)
-{
- return (vpd_read_host_vbus() >= VBUS_DETECT_THRESHOLD);
-}
-
-inline int vpd_is_ct_vbus_present(void)
-{
- return (vpd_read_ct_vbus() >= VBUS_DETECT_THRESHOLD);
-}
-
-inline int vpd_is_vconn_present(void)
-{
- return (vpd_read_vconn() >= VCONN_DETECT_THRESHOLD);
-}
-
-inline int vpd_read_rdconnect_ref(void)
-{
- return adc_read_channel(ADC_RDCONNECT_REF);
-}
-
-void vpd_red_led(int on)
-{
- gpio_set_level(GPIO_DEBUG_LED_R_L, (on) ? 0 : 1);
-}
-
-void vpd_green_led(int on)
-{
- gpio_set_level(GPIO_DEBUG_LED_G_L, (on) ? 0 : 1);
-}
-
-void vpd_vbus_pass_en(int en)
-{
- gpio_set_level(GPIO_VBUS_PASS_EN, (en) ? 1 : 0);
-}
-
-void vpd_present_billboard(enum vpd_billboard bb)
-{
- switch (bb) {
- case BB_NONE:
- gpio_set_level(GPIO_PRESENT_BILLBOARD, 0);
- gpio_set_flags(GPIO_PRESENT_BILLBOARD, GPIO_OUTPUT);
- break;
- case BB_SRC:
- gpio_set_flags(GPIO_PRESENT_BILLBOARD, GPIO_INPUT);
- /* Enable Pull-up on PA8 */
- STM32_GPIO_PUPDR(GPIO_A) |= (1 << (2 * 8));
- break;
- case BB_SNK:
- gpio_set_level(GPIO_PRESENT_BILLBOARD, 1);
- gpio_set_flags(GPIO_PRESENT_BILLBOARD, GPIO_OUTPUT);
- break;
- }
-}
-
-void vpd_mcu_cc_en(int en)
-{
- gpio_set_level(GPIO_VPDMCU_CC_EN, (en) ? 1 : 0);
-}
-
-void vpd_ct_cc_sel(enum vpd_cc sel)
-{
- switch (sel) {
- case CT_OPEN:
- gpio_set_level(GPIO_CC1_SEL, 0);
- gpio_set_level(GPIO_CC2_SEL, 0);
- break;
- case CT_CC1:
- gpio_set_level(GPIO_CC2_SEL, 0);
- gpio_set_level(GPIO_CC1_SEL, 1);
- break;
- case CT_CC2:
- gpio_set_level(GPIO_CC1_SEL, 0);
- gpio_set_level(GPIO_CC2_SEL, 1);
- break;
- }
-}
-
-/* Set as GPO High, GPO Low, or High-Z */
-void vpd_cc_db_en_od(enum vpd_gpo val)
-{
- if (val == GPO_HZ) {
- gpio_set_flags(GPIO_CC_DB_EN_OD, GPIO_INPUT);
- } else {
- if (val == GPO_HIGH)
- gpio_set_level(GPIO_CC_DB_EN_OD, 1);
- else
- gpio_set_level(GPIO_CC_DB_EN_OD, 0);
-
- gpio_set_flags(GPIO_CC_DB_EN_OD, GPIO_OUTPUT);
- }
-}
-
-void vpd_cc_rpusb_odh(enum vpd_gpo val)
-{
- if (val == GPO_HZ) {
- gpio_set_flags(GPIO_CC_RPUSB_ODH, GPIO_INPUT);
- } else {
- gpio_set_level(GPIO_CC_RPUSB_ODH, (val == GPO_HIGH) ? 1 : 0);
- gpio_set_flags(GPIO_CC_RPUSB_ODH, GPIO_OUTPUT);
- }
-}
-
-void vpd_cc1_cc2_db_en_l(enum vpd_gpo val)
-{
- if (val == GPO_HZ) {
- gpio_set_flags(GPIO_CC1_CC2_DB_EN_L, GPIO_INPUT);
- } else {
- gpio_set_level(GPIO_CC1_CC2_DB_EN_L, (val == GPO_HIGH) ? 1 : 0);
- gpio_set_flags(GPIO_CC1_CC2_DB_EN_L, GPIO_OUTPUT);
- }
-}
-
-void vpd_vconn_pwr_sel_odl(enum vpd_pwr en)
-{
- gpio_set_level(GPIO_VCONN_PWR_SEL_ODL, (en == PWR_VBUS) ? 1 : 0);
-}
diff --git a/board/chocodile_vpdmcu/vpd_api.h b/board/chocodile_vpdmcu/vpd_api.h
deleted file mode 100644
index df50f92006..0000000000
--- a/board/chocodile_vpdmcu/vpd_api.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Vconn Power Device API module */
-
-#ifndef __CROS_EC_VPD_API_H
-#define __CROS_EC_VPD_API_H
-
-#include "adc.h"
-#include "gpio.h"
-#include "usb_pd.h"
-
-enum vpd_pin {
- PIN_ADC,
- PIN_CMP,
- PIN_GPO
-};
-
-enum vpd_gpo {
- GPO_HZ,
- GPO_HIGH,
- GPO_LOW
-};
-
-enum vpd_pwr {
- PWR_VCONN,
- PWR_VBUS,
-};
-
-enum vpd_cc {
- CT_OPEN,
- CT_CC1,
- CT_CC2
-};
-
-enum vpd_billboard {
- BB_NONE,
- BB_SRC,
- BB_SNK
-};
-
-/**
- * Set Charge-Through Rp or Rd on CC lines
- *
- * @param pull Either TYPEC_CC_RP or TYPEC_CC_RD
- * @param rp_value When pull is RP, set this to
- * TYPEC_RP_USB or TYPEC_RP_1A5. Ignored
- * for TYPEC_CC_RD
- */
-void vpd_ct_set_pull(int pull, int rp_value);
-
-/**
- * Get the status of the Charge-Through CC lines
- *
- * @param cc1 Either TYPEC_CC_VOLT_OPEN,
- * TYPEC_CC_VOLT_RA,
- * TYPEC_CC_VOLT_RD,
- * any other value is considered RP
- * @param cc2 Either TYPEC_CC_VOLT_OPEN,
- * TYPEC_CC_VOLT_RA,
- * TYPEC_CC_VOLT_RD,
- * any other value is considered RP
- */
-void vpd_ct_get_cc(int *cc1, int *cc2);
-
-/**
- * Set Host Rp or Rd on CC lines
- *
- * @param pull Either TYPEC_CC_RP or TYPEC_CC_RD
- * @param rp_value When pull is RP, set this to
- * TYPEC_RP_USB or TYPEC_RP_1A5. Ignored
- * for TYPEC_CC_RD
- */
-void vpd_host_set_pull(int pull, int rp_value);
-
-/**
- * Get the status of the Host CC line
- *
- * @param cc Either TYPEC_CC_VOLT_SNK_DEF, TYPEC_CC_VOLT_SNK_1_5,
- * TYPEC_CC_VOLT_SNK_3_0, or TYPEC_CC_RD
- */
-void vpd_host_get_cc(int *cc);
-
-/**
- * Set RX Enable flag
- *
- * @param en 1 for enable, 0 for disable
- */
-void vpd_rx_enable(int en);
-
-/**
- * Configure the cc_rp3a0_rd_l pin as ADC, CMP, or GPO
- *
- * @param cfg PIN_ADC, PIN_CMP, or PIN_GPO
- * @param en When cfg is PIN_GPO, 1 sets pin high
- * and 0 sets pin low. Else ignored
- */
-void vpd_config_cc_rp3a0_rd_l(enum vpd_pin cfg, int en);
-
-/**
- * Configure the cc1_rp3a0_rd_l pin as ADC, CMP, or GPO
- *
- * @param cfg PIN_ADC, PIN_CMP, or PIN_GPO
- * @param en When cfg is PIN_GPO, 1 sets pin high
- * and 0 sets pin low. Else ignored
- */
-void vpd_config_cc1_rp3a0_rd_l(enum vpd_pin cfg, int en);
-
-/**
- * Configure the cc2_rp3a0_rd_l pin as ADC, CMP, or GPO
- *
- * @param cfg PIN_ADC, PIN_CMP, or PIN_GPO
- * @param en When cfg is PIN_GPO, 1 sets pin high
- * and 0 sets pin low. Else ignored
- */
-void vpd_config_cc2_rp3a0_rd_l(enum vpd_pin cfg, int en);
-
-/**
- * Configure the cc1_rpusb_odh pin as ADC, CMP, or GPO
- *
- * @param cfg PIN_ADC, PIN_CMP, or PIN_GPO
- * @param en When cfg is PIN_GPO, 1 sets pin high
- * and 0 sets pin low. Else ignored
- */
-void vpd_config_cc1_rpusb_odh(enum vpd_pin cfg, int en);
-
-/**
- * Configure the cc2_rpusb_odh pin as ADC, CMP, or GPO
- *
- * @param cfg PIN_ADC, PIN_CMP, or PIN_GPO
- * @param en When cfg is PIN_GPO, 1 sets pin high
- * and 0 sets pin low. Else ignored
- */
-void vpd_config_cc2_rpusb_odh(enum vpd_pin cfg, int en);
-
-/**
- * Configure the cc_db_en_od pin to High-Impedance, low, or high
- *
- * @param val GPO_HZ, GPO_HIGH, GPO_LOW
- */
-void vpd_cc_db_en_od(enum vpd_gpo val);
-
-/**
- * Configure the cc_rpusb_odh pin to High-Impedance, low, or high
- *
- * @param val GPO_HZ, GPO_HIGH, GPO_LOW
- */
-void vpd_cc_rpusb_odh(enum vpd_gpo val);
-
-/**
- * Configure the cc_rp1a5_odh pin to High-Impedance, low, or high
- *
- * @param val GPO_HZ, GPO_HIGH, GPO_LOW
- */
-void vpd_cc_rp1a5_odh(enum vpd_gpo val);
-
-/**
- * Configure the cc1_cc2_db_en_l pin to High-Impedance, low, or high
- *
- * @param val GPO_HZ, GPO_HIGH, GPO_LOW
- */
-void vpd_cc1_cc2_db_en_l(enum vpd_gpo val);
-
-/**
- * Get status of host vbus
- *
- * @return 1 if host vbus is present, else 0
- */
-int vpd_is_host_vbus_present(void);
-
-/**
- * Get status of charge-through vbus
- *
- * @return 1 if charge-through vbus is present, else 0
- */
-int vpd_is_ct_vbus_present(void);
-
-/**
- * Get status of vconn
- *
- * @return 1 if vconn is present, else 0
- */
-int vpd_is_vconn_present(void);
-
-/**
- * Read Host VBUS voltage. Range from 22000mV to 3000mV
- *
- * @return vbus voltage
- */
-int vpd_read_host_vbus(void);
-
-/**
- * Read Host CC voltage.
- *
- * @return cc voltage
- */
-int vpd_read_cc_host(void);
-
-/**
- * Read voltage on cc_vpdmcu pin
- *
- * @return cc_vpdmcu voltage
- */
-int vpd_read_cc_vpdmcu(void);
-
-/**
- * Read charge-through VBUS voltage. Range from 22000mV to 3000mV
- *
- * @return charge-through vbus voltage
- */
-int vpd_read_ct_vbus(void);
-
-/**
- * Read VCONN Voltage. Range from 5500mV to 3000mV
- *
- * @return vconn voltage
- */
-int vpd_read_vconn(void);
-
-/**
- * Turn ON/OFF Red LED. Should be off when performing power
- * measurements.
- *
- * @param on 0 turns LED off, any other value turns it ON
- */
-void vpd_red_led(int on);
-
-/**
- * Turn ON/OFF Green LED. Should be off when performing power
- * measurements.
- *
- * @param on 0 turns LED off, any other value turns it ON
- */
-void vpd_green_led(int on);
-
-/**
- * Connects/Disconnects the Host VBUS to the Charge-Through VBUS.
- *
- * @param en 0 disconnectes the VBUS, any other value connects VBUS.
- */
-void vpd_vbus_pass_en(int en);
-
-/**
- * Preset Billboard device
- *
- * @param bb BB_NONE no billboard presented,
- * BB_SRC source connected but not in charge-through
- * BB_SNK sink connected
- */
-void vpd_present_billboard(enum vpd_billboard bb);
-
-/**
- * Enables the MCU to host cc communication
- *
- * @param en 1 enabled, 0 disabled
- */
-void vpd_mcu_cc_en(int en);
-
-/**
- * Selects which supply to power the VPD from
- *
- * @param en PWR_VCONN or PWR_VBUS
- */
-void vpd_vconn_pwr_sel_odl(enum vpd_pwr en);
-
-/**
- * Controls if the Charge-Through's CC1, CC2, or neither is
- * connected to Host CC
- *
- * @param sel CT_OPEN neither, CT_CC1 cc1, CT_CC2 cc2
- */
-void vpd_ct_cc_sel(enum vpd_cc sel);
-
-#endif /* __CROS_EC_VPD_API_H */
diff --git a/board/chronicler/battery.c b/board/chronicler/battery.c
deleted file mode 100644
index 82347953ba..0000000000
--- a/board/chronicler/battery.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Chronicler battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Fujitsu CP813907-01 Battery Information */
- [BATTERY_FUJITSU_CP813907] = {
- .fuel_gauge = {
- .manuf_name = "Fujitsu",
- .device_name = "CP813907-01",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 128, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 55,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* NVT CP813907-01 Battery Information */
- /*
- * NVT CP813907-01 Battery only use to support early
- * stage battery, all battery for PVT will update
- * manufacturer name to Fujitsu. See b/190685811.
- */
- [BATTERY_NVT_CP813907] = {
- .fuel_gauge = {
- .manuf_name = "NVT",
- .device_name = "CP813907-01",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 128, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 55,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_FUJITSU_CP813907;
diff --git a/board/chronicler/board.c b/board/chronicler/board.c
deleted file mode 100644
index c86ad462e1..0000000000
--- a/board/chronicler/board.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Chronicler board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_8042.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3000,
- .rpm_start = 5000,
- .rpm_max = 5100,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (80 C)
- */
-const static struct ec_thermal_config thermal_config_without_fan = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(77),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
-};
-
-const static struct ec_thermal_config thermal_config_with_fan = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(77),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- /* For real temperature fan_table (0 ~ 99C) */
- .temp_fan_off = C_TO_K(0),
- .temp_fan_max = C_TO_K(99),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_config_with_fan,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_config_without_fan,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_config_without_fan,
- [TEMP_SENSOR_4_FAN] = thermal_config_without_fan,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-struct fan_step {
- int on;
- int off;
- int rpm;
-};
-
-/* Fan control table */
-static const struct fan_step fan_table0[] = {
- {.on = 30, .off = 0, .rpm = 3150 }, /* Fan level 0 */
- {.on = 47, .off = 43, .rpm = 3500 }, /* Fan level 1 */
- {.on = 50, .off = 47, .rpm = 3750 }, /* Fan level 2 */
- {.on = 53, .off = 50, .rpm = 4200 }, /* Fan level 3 */
- {.on = 56, .off = 53, .rpm = 4500 }, /* Fan level 4 */
- {.on = 59, .off = 56, .rpm = 5000 }, /* Fan level 5 */
-};
-
-/* All fan tables must have the same number of levels */
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_table0)
-
-static const struct fan_step *fan_table = fan_table0;
-
-#define FAN_AVERAGE_TIME_SEC 5
-
-int fan_percent_to_rpm(int fan, int pct)
-{
- static int current_level;
- static int previous_level = NUM_FAN_LEVELS;
- static int cnt, avg_pct, previous_pct;
- int i;
-
- /* Average several times to smooth fan rotating speed. */
- avg_pct += pct;
-
- if (++cnt != FAN_AVERAGE_TIME_SEC)
- return fan_table[previous_level].rpm;
-
- avg_pct = (int) avg_pct / FAN_AVERAGE_TIME_SEC;
-
- /*
- * Compare the pct and previous pct, we have the three paths :
- * 1. decreasing path. (check the off point)
- * 2. increasing path. (check the on point)
- * 3. invariant path. (return the current RPM)
- */
- if (avg_pct < previous_pct) {
- for (i = current_level; i >= 0; i--) {
- if (avg_pct <= fan_table[i].off)
- current_level = i - 1;
- else
- break;
- }
- } else if (avg_pct > previous_pct) {
- for (i = current_level + 1; i < NUM_FAN_LEVELS; i++) {
- if (avg_pct >= fan_table[i].on)
- current_level = i;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- if (current_level != previous_level)
- cprints(CC_THERMAL, "Setting fan RPM to %d",
- fan_table[current_level].rpm);
-
- previous_pct = avg_pct;
- previous_level = current_level;
-
- cnt = 0;
- avg_pct = 0;
-
- return fan_table[current_level].rpm;
-}
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_BATTERY_SCL,
- .sda = GPIO_EC_I2C5_BATTERY_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_PWR_SCL_R,
- .sda = GPIO_EC_I2C7_EEPROM_PWR_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* keyboard config */
-static const struct ec_response_keybd_config main_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- /*
- * Chronicler keyboard swaps T2 and T3 in the keyboard
- * matrix,So swap the actions key lookup to match.
- * The physical keyboard still orders the top row as
- * Back, Refresh, Fullscreen, etc.
- */
- TK_FULLSCREEN, /* T3 */
- TK_REFRESH, /* T2 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &main_kb;
-}
-
-/******************************************************************************/
-/* keyboard factory test */
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {1, 4}, {1, 3}, {1, 6}, {1, 7},
- {3, 1}, {2, 0}, {1, 5}, {2, 6}, {2, 7},
- {2, 1}, {2, 4}, {2, 5}, {1, 2}, {2, 3},
- {2, 2}, {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
diff --git a/board/chronicler/board.h b/board/chronicler/board.h
deleted file mode 100644
index 243669035a..0000000000
--- a/board/chronicler/board.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Chronicler board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the NPCX797FC dose not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Optional features */
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* Sensors */
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_GMR_TABLET_MODE
-#undef CONFIG_ACCEL_FIFO
-#undef CONFIG_ACCEL_FIFO_SIZE
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* TODO: b/144165680 - measure and check these values on Volteer */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-#define CONFIG_USB_PD_FRS_PPC
-#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#undef CONFIG_USB_PD_TCPM_TUSB422
-#undef CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-#undef CONFIG_VOLUME_BUTTONS
-
-/* Fan features */
-#define CONFIG_FAN_RPM_CUSTOM
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/* Keyboard feature */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_DEBUG_ASSERT_BRIEF
-
-/* Disable volume button command in EC console */
-#undef CONFIG_CMD_BUTTON
-
-/* Disable volume button in ectool */
-#undef CONFIG_HOSTCMD_BUTTON
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#include "usbc_config.h"
-
-enum battery_type {
- BATTERY_FUJITSU_CP813907,
- BATTERY_NVT_CP813907,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/chronicler/build.mk b/board/chronicler/build.mk
deleted file mode 100644
index c0daa31eaa..0000000000
--- a/board/chronicler/build.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=cbi.o
-board-y+=led.o
-board-y+=keyboard.o
-board-y+=usbc_config.o
diff --git a/board/chronicler/cbi.c b/board/chronicler/cbi.c
deleted file mode 100644
index 210207eeac..0000000000
--- a/board/chronicler/cbi.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Features common to ECOS and Zephyr */
-#include "common.h"
-#include "cbi.h"
-#include "cbi_ec_fw_config.h"
-#include "keyboard_raw.h"
-#include "usbc_config.h"
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Chronicler if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_ACTIVE,
-};
-
-__override void board_cbi_init(void)
-{
- if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad()) ||
- get_board_id() <= 2)
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
-}
diff --git a/board/chronicler/ec.tasklist b/board/chronicler/ec.tasklist
deleted file mode 100644
index c7a977f0ff..0000000000
--- a/board/chronicler/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/chronicler/gpio.inc b/board/chronicler/gpio.inc
deleted file mode 100644
index dc00e3eddf..0000000000
--- a/board/chronicler/gpio.inc
+++ /dev/null
@@ -1,179 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C1_RT_INT_ODL, PIN(F, 3), GPIO_INPUT)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- * TODO(b/138954381): Change these names when they change on the schematic.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-/* LED */
-GPIO(C0_CHARGE_LED_AMBER_L, PIN(C, 3), GPIO_OUT_HIGH) /* Amber C0 port */
-GPIO(C0_CHARGE_LED_WHITE_L, PIN(C, 4), GPIO_OUT_HIGH) /* White C0 port */
-GPIO(C1_CHARGE_LED_AMBER_L, PIN(6, 0), GPIO_OUT_HIGH) /* Amber C1 port */
-GPIO(C1_CHARGE_LED_WHITE_L, PIN(C, 2), GPIO_OUT_HIGH) /* White C1 port */
-
-/* Unused signals */
-GPIO(CHARGER_INT_L, PIN(7, 3), GPIO_INPUT) /* Interrupt not used from ISL9241, on board pull-up */
-GPIO(EC_GP_SEL0_ODL, PIN(B, 6), GPIO_OUT_LOW) /* Cannot be configured as input, drive output low, don't rely on the default setting of PxDOUT register */
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT) /* Unused power sequence signal from AP. Has an on-board pull-down. */
-GPIO(EN_PP5000_USB_AG, PIN(A, 7), GPIO_INPUT | GPIO_PULL_UP) /* Unconnected power sequencing signal */
-GPIO(UNUSED_GPIO41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD4, PIN(D, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO95, PIN(9, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO81, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO93, PIN(9, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO97, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOB5, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V) /* Unused I2C port, Set input only */
-GPIO(UNUSED_GPIOB4, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* Unused I2C port, Set input only */
-/* Only connected to test points */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_ESPI_ALERT_L, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SDA_R, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
-
diff --git a/board/chronicler/keyboard.c b/board/chronicler/keyboard.c
deleted file mode 100644
index b9cc378295..0000000000
--- a/board/chronicler/keyboard.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Keyboard config common to ECOS and zephyr */
-
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/chronicler/led.c b/board/chronicler/led.c
deleted file mode 100644
index dfa7fefa1b..0000000000
--- a/board/chronicler/led.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Chronicler
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_CYCLE_TIME_MS (2 * 1000)
-#define LED_TICKS_PER_CYCLE (LED_CYCLE_TIME_MS / HOOK_TICK_INTERVAL_MS)
-#define LED_ON_TIME_MS (1 * 1000)
-#define LED_ON_TICKS (LED_ON_TIME_MS / HOOK_TICK_INTERVAL_MS)
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- RIGHT_PORT = 0,
- LEFT_PORT
-};
-
-static void led_set_color_battery(enum led_port port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == RIGHT_PORT ? GPIO_C0_CHARGE_LED_AMBER_L :
- GPIO_C1_CHARGE_LED_AMBER_L);
- white_led = (port == RIGHT_PORT ? GPIO_C0_CHARGE_LED_WHITE_L :
- GPIO_C1_CHARGE_LED_WHITE_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int suspend_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LEDs for Chronicler, Chronicler doesn't
- * have power LED, blinking both two side battery white
- * LEDs to indicate system suspend without charging state.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
-
- suspend_ticks++;
-
- led_set_color_battery(RIGHT_PORT, suspend_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- led_set_color_battery(LEFT_PORT, suspend_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- return;
- }
-
- suspend_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/chronicler/usbc_config.c b/board/chronicler/usbc_config.c
deleted file mode 100644
index b378299f86..0000000000
--- a/board/chronicler/usbc_config.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer family-specific USB-C configuration */
-#include "common.h"
-#include "cbi_ec_fw_config.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "system.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_mux.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/sn5s330_public.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/retimer/ps8811.h"
-#include "driver/tcpm/ps8xxx_public.h"
-#include "driver/tcpm/rt1715_public.h"
-#include "driver/tcpm/tusb422_public.h"
-#include "driver/tcpm/tcpci.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set to the
- * virtual_usb_mux_driver so the AP gets notified of mux changes and updates
- * the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C1_FRS_EN,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-/*
- * Adjust USB3 settings to improve signal integrity.
- * See b/194985848.
- */
-__override void board_ps8xxx_tcpc_init(int port)
-{
- int rv;
-
- CPRINTS("%s", __func__);
-
- /* TX1 EQ 19db / TX2 EQ 19db */
- rv = tcpc_addr_write(port, PS8751_I2C_ADDR1_P1_FLAGS, 0x20, 0x77);
- /* RX1 EQ 12db / RX2 EQ 13db */
- rv |= tcpc_addr_write(port, PS8751_I2C_ADDR1_P1_FLAGS, 0x22, 0x32);
- /* Swing level for upstream port output */
- rv |= tcpc_addr_write(port, PS8751_I2C_ADDR1_P1_FLAGS, 0xc4, 0x03);
-
- if (rv)
- CPRINTS("%s fail!", __func__);
-}
-
-/* Called on AP S5 -> S0 transition */
-void board_ps8811_init(void)
-{
- int rv;
- const int port = I2C_PORT_USB_1_MIX;
- const int addr = PS8811_I2C_ADDR_FLAGS0 + PS8811_REG_PAGE1;
-
- CPRINTS("%s", __func__);
-
- /* AEQ 12db */
- rv = i2c_write8(port, addr, 0x01, 0x26);
- /* ADE 2.1db */
- rv |= i2c_write8(port, addr, 0x02, 0x60);
- /* BEQ 10.5db */
- rv |= i2c_write8(port, addr, 0x05, 0x16);
- /* BDE 2.1db */
- rv |= i2c_write8(port, addr, 0x06, 0x63);
- /* Channel A swing level */
- rv |= i2c_write8(port, addr, 0x66, 0x20);
- /* Channel B swing level */
- rv |= i2c_write8(port, addr, 0xa4, 0x03);
- /* PS level foe B channel */
- rv |= i2c_write8(port, addr, 0xa5, 0x83);
- /* DE level foe B channel */
- rv |= i2c_write8(port, addr, 0xa6, 0x14);
-
- if (rv)
- CPRINTS("%s fail!", __func__);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_ps8811_init, HOOK_PRIO_LAST);
-
-void board_reset_pd_mcu(void)
-{
- /* No reset available for TCPC on port 0 */
- /* Daughterboard specific reset for port 1 */
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-/******************************************************************************/
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/chronicler/usbc_config.h b/board/chronicler/usbc_config.h
deleted file mode 100644
index 55dfce7621..0000000000
--- a/board/chronicler/usbc_config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* volteer board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-/* Configure the USB3 daughterboard type */
-void config_usb3_db_type(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/chronicler/vif_override.xml b/board/chronicler/vif_override.xml
deleted file mode 100644
index f871a543e3..0000000000
--- a/board/chronicler/vif_override.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VIF xmlns="http://usb.org/VendorInfoFile.xsd">
- <Model_Part_Number>Volteer RT1715</Model_Part_Number>
- <Product_Revision>0</Product_Revision>
- <TID>0</TID>
- <Product>
- <!-- Information about TGL USB4 provided by Intel. See b/172963736 -->
- <USB4_Num_Internal_Host_Controllers value="1" />
- <USB4_Num_PCIe_DN_Bridges value="0" />
- <USB4RouterList>
- <Usb4Router>
- <USB4_Router_ID value="1" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="4" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="1" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="4" />
- <USB4_TBT3_Not_Supported value="0">TBT3 Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="true" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- <USB4_TBT3_VID value="32903">8087</USB4_TBT3_VID>
- <USB4_PCIe_Switch_Vendor_ID value="32902">8086</USB4_PCIe_Switch_Vendor_ID>
- <USB4_PCIe_Switch_Device_ID value="39451">9A1B</USB4_PCIe_Switch_Device_ID>
- </Usb4Router>
- <Usb4Router>
- <USB4_Router_ID value="0" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="2" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="0" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="0" />
- <USB4_TBT3_Not_Supported value="1">Not TBT3-Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="false" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- </Usb4Router>
- </USB4RouterList>
- </Product>
- <Component>
- <!-- Port 0 is USB3-only. -->
- <USB4_Supported value="false">NO</USB4_Supported>
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <DFP_VDO_Port_Number value="0" />
- <Modal_Operation_Supported_SOP value="false" />
- </Component>
- <Component>
- <USB4_Max_Speed value="1">Gen 3 (40Gb)</USB4_Max_Speed>
- <USB4_DFP_Supported value="true" />
- <USB4_UFP_Supported value="false" />
- <USB4_USB3_Tunneling_Supported value="true" />
- <USB4_DP_Tunneling_Supported value="true" />
- <USB4_PCIe_Tunneling_Supported value="true" />
- <USB4_TBT3_Compatibility_Supported value="true" />
- <USB4_CL1_State_Supported value="true" />
- <USB4_CL2_State_Supported value="true" />
- <USB4_Num_Retimers value="1" />
- <USB4_DP_Bit_Rate value="3">HBR3</USB4_DP_Bit_Rate>
- <USB4_Num_DP_Lanes value="4">4 Lanes</USB4_Num_DP_Lanes>
- <USB4_Lane_0_Adapter value="1" />
- <Host_Supports_USB_Data value="true" />
- <Host_Speed value="2">USB 3.2 Gen 2x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="true" />
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <Host_Suspend_Supported value="true" />
- <Is_DFP_On_Hub value="false" />
- <USB_Suspend_May_Be_Cleared value="true" />
- <FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="3">3A @ 5V</FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <FR_Swap_Supported_As_Initial_Sink value="true" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <Data_Capable_As_USB_Host_SOP value="true" />
- <Data_Capable_As_USB_Device_SOP value="false" />
- <!-- TODO(b/173028252): Figure out the appropriate Discover Identity ACK for
- Volteer and update the EC and VIF accordingly. -->
- <Product_Type_UFP_SOP value="3">PSD</Product_Type_UFP_SOP>
- <Product_Type_DFP_SOP value="4">Alternate Mode Controller (AMC)</Product_Type_DFP_SOP>
- <DFP_VDO_Port_Number value="1" />
- <Modal_Operation_Supported_SOP value="true" />
- <USB_VID_SOP value="6353">18D1</USB_VID_SOP>
- <bcdDevice_SOP value="0">0000</bcdDevice_SOP>
- <SVID_Fixed_SOP value="true" />
- <Num_SVIDs_Min_SOP value="1" />
- <Num_SVIDs_Max_SOP value="1" />
- <SOPSVIDList>
- <SOPSVID>
- <SVID_SOP value="32903">8087</SVID_SOP>
- <SVID_Modes_Fixed_SOP value="true" />
- <SVID_Num_Modes_Min_SOP value="1" />
- <SVID_Num_Modes_Max_SOP value="1" />
- <SOPSVIDModeList>
- <SOPSVIDMode>
- <SVID_Mode_Enter_SOP value="true" />
- <SVID_Mode_Recog_Value_SOP value="0">00000000</SVID_Mode_Recog_Value_SOP>
- </SOPSVIDMode>
- </SOPSVIDModeList>
- </SOPSVID>
- </SOPSVIDList>
- </Component>
-</VIF>
diff --git a/board/coachz/base_detect.c b/board/coachz/base_detect.c
deleted file mode 100644
index 0068b37d8d..0000000000
--- a/board/coachz/base_detect.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* 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.
- */
-
-/* Coachz base detection code */
-
-#include "adc.h"
-#include "board.h"
-#include "base_state.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/* Base detection and debouncing */
-#define BASE_DETECT_EN_DEBOUNCE_US (350 * MSEC)
-#define BASE_DETECT_DIS_DEBOUNCE_US (20 * MSEC)
-
-/*
- * If the base status is unclear (i.e. not within expected ranges, read
- * the ADC value again every 500ms.
- */
-#define BASE_DETECT_RETRY_US (500 * MSEC)
-
-/*
- * Lid has 604K pull-up, base has 30.1K pull-down, so the
- * ADC value should be around 30.1/(604+30.1)*3300 = 156
- *
- * We add a significant margin on the maximum value, due to noise on the line,
- * especially when PWM is active. See b/64193554 for details.
- */
-#define BASE_DETECT_MIN_MV 120
-#define BASE_DETECT_MAX_MV 300
-
-/* Minimum ADC value to indicate base is disconnected for sure */
-#define BASE_DETECT_DISCONNECT_MIN_MV 1500
-
-/*
- * Base EC pulses detection pin for 500 us to signal out of band USB wake (that
- * can be used to wake system from deep S3).
- */
-#define BASE_DETECT_PULSE_MIN_US 400
-#define BASE_DETECT_PULSE_MAX_US 650
-
-static uint64_t base_detect_debounce_time;
-
-static void base_detect_deferred(void);
-DECLARE_DEFERRED(base_detect_deferred);
-
-enum base_status {
- BASE_UNKNOWN = 0,
- BASE_DISCONNECTED = 1,
- BASE_CONNECTED = 2,
-};
-
-static enum base_status current_base_status;
-
-/*
- * This function is called whenever there is a change in the base detect
- * status. Actions taken include:
- * 1. Change in power to base
- * 2. Indicate mode change to host.
- * 3. Indicate tablet mode to host. Current assumption is that if base is
- * disconnected then the system is in tablet mode, else if the base is
- * connected, then the system is not in tablet mode.
- */
-static void base_detect_change(enum base_status status)
-{
- int connected = (status == BASE_CONNECTED);
-
- if (current_base_status == status)
- return;
-
- gpio_set_level(GPIO_EN_BASE, connected);
- tablet_set_mode(!connected, TABLET_TRIGGER_BASE);
- base_set_state(connected);
- current_base_status = status;
-}
-
-/* Measure detection pin pulse duration (used to wake AP from deep S3). */
-static uint64_t pulse_start;
-static uint32_t pulse_width;
-
-static void print_base_detect_value(int v, int tmp_pulse_width)
-{
- CPRINTS("%s = %d (pulse %d)", adc_channels[ADC_BASE_DET].name,
- v, tmp_pulse_width);
-}
-
-static void base_detect_deferred(void)
-{
- uint64_t time_now = get_time().val;
- int v;
- uint32_t tmp_pulse_width = pulse_width;
-
- if (base_detect_debounce_time > time_now) {
- hook_call_deferred(&base_detect_deferred_data,
- base_detect_debounce_time - time_now);
- return;
- }
-
- v = adc_read_channel(ADC_BASE_DET);
- if (v == ADC_READ_ERROR)
- return;
-
- print_base_detect_value(v, tmp_pulse_width);
-
- if (v >= BASE_DETECT_MIN_MV && v <= BASE_DETECT_MAX_MV) {
- if (current_base_status != BASE_CONNECTED) {
- base_detect_change(BASE_CONNECTED);
- } else if (tmp_pulse_width >= BASE_DETECT_PULSE_MIN_US &&
- tmp_pulse_width <= BASE_DETECT_PULSE_MAX_US) {
- CPRINTS("Sending event to AP");
- host_set_single_event(EC_HOST_EVENT_KEY_PRESSED);
- }
- return;
- }
-
- if (v >= BASE_DETECT_DISCONNECT_MIN_MV) {
- base_detect_change(BASE_DISCONNECTED);
- return;
- }
-
- /* Unclear base status, schedule again in a while. */
- hook_call_deferred(&base_detect_deferred_data, BASE_DETECT_RETRY_US);
-}
-
-static inline int detect_pin_connected(enum gpio_signal det_pin)
-{
- return gpio_get_level(det_pin) == 0;
-}
-
-void base_detect_interrupt(enum gpio_signal signal)
-{
- uint64_t time_now = get_time().val;
- int debounce_us;
-
- if (detect_pin_connected(signal))
- debounce_us = BASE_DETECT_EN_DEBOUNCE_US;
- else
- debounce_us = BASE_DETECT_DIS_DEBOUNCE_US;
-
- if (base_detect_debounce_time <= time_now) {
- /*
- * Detect and measure detection pin pulse, when base is
- * connected. Only a single pulse is measured over a debounce
- * period. If no pulse, or multiple pulses are detected,
- * pulse_width is set to 0.
- */
- if (current_base_status == BASE_CONNECTED &&
- !detect_pin_connected(signal)) {
- pulse_start = time_now;
- } else {
- pulse_start = 0;
- }
- pulse_width = 0;
-
- hook_call_deferred(&base_detect_deferred_data, debounce_us);
- } else {
- if (current_base_status == BASE_CONNECTED &&
- detect_pin_connected(signal) && !pulse_width &&
- pulse_start) {
- /* First pulse within period. */
- pulse_width = time_now - pulse_start;
- } else {
- pulse_start = 0;
- pulse_width = 0;
- }
- }
-
- base_detect_debounce_time = time_now + debounce_us;
-}
-
-static void base_enable(void)
-{
- /* Enable base detection interrupt. */
- base_detect_debounce_time = get_time().val;
- hook_call_deferred(&base_detect_deferred_data, 0);
- gpio_enable_interrupt(GPIO_BASE_DET_L);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, base_enable, HOOK_PRIO_DEFAULT);
-
-static void base_disable(void)
-{
- /*
- * Disable base detection interrupt and disable power to base.
- * Set the state UNKNOWN so the next startup will initialize a
- * correct state and notify AP.
- */
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_UNKNOWN);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, base_disable, HOOK_PRIO_DEFAULT);
-
-static void base_init(void)
-{
- /*
- * If we jumped to this image and chipset is already in S0, enable
- * base.
- */
- if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON))
- base_enable();
-}
-DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT+1);
-
-void base_force_state(enum ec_set_base_state_cmd state)
-{
- if (state == EC_SET_BASE_STATE_ATTACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_CONNECTED);
- CPRINTS("BD forced connected");
- } else if (state == EC_SET_BASE_STATE_DETACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_DISCONNECTED);
- CPRINTS("BD forced disconnected");
- } else {
- base_enable();
- CPRINTS("BD forced reset");
- }
-}
diff --git a/board/coachz/battery.c b/board/coachz/battery.c
deleted file mode 100644
index 56c89b655b..0000000000
--- a/board/coachz/battery.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all coachz battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* COSMX GH02047XL 333-1C-DA-A */
- [BATTERY_GH02047XL_1C] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .device_name = "GH02047XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* COSMX GH02047XL */
- [BATTERY_GH02047XL] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .device_name = "GH02047XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* COSMX DS02032XL */
- [BATTERY_DS02032XL] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-13-A",
- .device_name = "DS02032XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* SMP DS02032XL */
- [BATTERY_DS02032XL_1C] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-13-A",
- .device_name = "DS02032XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DS02032XL;
diff --git a/board/coachz/board.c b/board/coachz/board.c
deleted file mode 100644
index d1f31a64c3..0000000000
--- a/board/coachz/board.c
+++ /dev/null
@@ -1,742 +0,0 @@
-/* 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.
- */
-
-/* Coachz board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "mkbp_input_devices.h"
-#include "peripheral_charger.h"
-#include "pi3usb9201.h"
-#include "power.h"
-#include "power/qcom.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "queue.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define KS_DEBOUNCE_US (30 * MSEC) /* Debounce time for kickstand switch */
-
-/* Forward declaration */
-static void tcpc_alert_event(enum gpio_signal signal);
-static void usb0_evt(enum gpio_signal signal);
-static void usb1_evt(enum gpio_signal signal);
-static void ppc_interrupt(enum gpio_signal signal);
-static void board_connect_c0_sbu(enum gpio_signal s);
-static void ks_interrupt(enum gpio_signal s);
-
-#include "gpio_list.h"
-
-/*
- * Workaround for b/193223400. This disables the IRQ from CTN730. Fixing this
- * here (using a rather awkward way) separates the fix from the common code.
- */
-#ifdef SECTION_IS_RW
-#define GPIO_PCHG_P0 GPIO_WLC_IRQ_CONN
-#else
-#define GPIO_PCHG_P0 ARRAY_SIZE(gpio_irq_handlers)
-#endif
-
-extern struct pchg_drv ctn730_drv;
-
-struct pchg pchgs[] = {
- [0] = {
- .cfg = &(const struct pchg_config) {
- .drv = &ctn730_drv,
- .i2c_port = I2C_PORT_WLC,
- .irq_pin = GPIO_PCHG_P0,
- .full_percent = 96,
- .block_size = 128,
- },
- .events = QUEUE_NULL(PCHG_EVENT_QUEUE_SIZE, enum pchg_event),
- },
-};
-const int pchg_count = ARRAY_SIZE(pchgs);
-
-/* GPIO Interrupt Handlers */
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-static void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-static int debounced_ks_attached;
-static int debounced_ks_open;
-
-/**
- * Kickstand switch initialization
- */
-static void ks_init(void)
-{
- debounced_ks_attached = !gpio_get_level(GPIO_KS_ATTACHED_L);
- debounced_ks_open = gpio_get_level(GPIO_KS_OPEN);
-
- /* Enable interrupts, now that we've initialized */
- gpio_enable_interrupt(GPIO_KS_ATTACHED_L);
- gpio_enable_interrupt(GPIO_KS_OPEN);
-}
-DECLARE_HOOK(HOOK_INIT, ks_init, HOOK_PRIO_INIT_SWITCH);
-
-/**
- * Handle debounced kickstand switch changing state.
- */
-static void ks_change_deferred(void)
-{
- const int ks_attached = !gpio_get_level(GPIO_KS_ATTACHED_L);
- const int ks_open = gpio_get_level(GPIO_KS_OPEN);
- int proximity_detected;
-
- /* If the switches haven't changed, nothing to do */
- if (ks_attached == debounced_ks_attached &&
- ks_open == debounced_ks_open)
- return;
-
- /*
- * A heuristic method to use the kickstand position to approach
- * the human body proximity.
- */
- proximity_detected = !(ks_attached && ks_open);
- CPRINTS("ks %s %s -> proximity %s",
- ks_attached ? "attached" : "detached",
- ks_open ? "open" : "close",
- proximity_detected ? "on" : "off");
-
- debounced_ks_attached = ks_attached;
- debounced_ks_open = ks_open;
-
- mkbp_update_switches(EC_MKBP_FRONT_PROXIMITY, proximity_detected);
-}
-DECLARE_DEFERRED(ks_change_deferred);
-
-static void ks_interrupt(enum gpio_signal s)
-{
- /* Reset kickstand debounce time */
- hook_call_deferred(&ks_change_deferred_data, KS_DEBOUNCE_US);
-}
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"wlc", I2C_PORT_WLC, 400, GPIO_EC_I2C_WLC_SCL,
- GPIO_EC_I2C_WLC_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
- /* Base detection */
- [ADC_BASE_DET] = {
- "BASE_DET",
- NPCX_ADC_CH5,
- ADC_MAX_VOLT,
- ADC_READ_MAX + 1,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Mutexes */
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct bmi_drv_data_t g_bmi260_data;
-
-bool is_bmi260_present;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-struct motion_sensor_t motion_sensors_260[] = {
- /*
- * Note: bmi260: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi260_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi260_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_detect_motionsensor(void)
-{
- int val = -1;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
-
- /* Check base accelgyro chip */
- bmi_read8(motion_sensors[LID_ACCEL].port,
- motion_sensors[LID_ACCEL].i2c_spi_addr_flags,
- BMI260_CHIP_ID, &val);
- if (val == BMI260_CHIP_ID_MAJOR) {
- motion_sensors[LID_ACCEL] = motion_sensors_260[LID_ACCEL];
- motion_sensors[LID_GYRO] = motion_sensors_260[LID_GYRO];
- is_bmi260_present = 1;
- } else {
- is_bmi260_present = 0;
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_DEFAULT + 1);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (is_bmi260_present) {
- bmi260_interrupt(signal);
- } else {
- bmi160_interrupt(signal);
- }
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /*
- * The rev-1 hardware doesn't have the external pull-up fix for the bug
- * b/177611071. It requires rework to stuff the resistor. For people who
- * has difficulty to do the rework, this is a workaround, which makes
- * the GPIO push-pull, instead of open-drain.
- */
- if (system_get_board_version() == 1)
- gpio_set_flags(GPIO_HIBERNATE_L, GPIO_OUTPUT);
-
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__overridable uint16_t board_get_ps8xxx_product_id(int port)
-{
- /* Coachz board rev 2+ changes TCPC from 8805 to 8755*/
- if (system_get_board_version() < 2)
- return PS8805_PRODUCT_ID;
-
- return PS8755_PRODUCT_ID;
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-void board_hibernate(void)
-{
- int i;
-
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- /*
- * Board rev 1+ has the hardware fix. Don't need the following
- * workaround.
- */
- if (system_get_board_version() >= 1)
- return;
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_ON);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return gpio_get_level(GPIO_DA9313_GPIO0);
-}
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_ma = charge_ma * 95 / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int battery_get_vendor_param(uint32_t param, uint32_t *value)
-{
- int rv;
- uint8_t data[16] = {};
-
- /* only allow reading 0x70~0x7F, 16 byte data */
- if (param < 0x70 || param >= 0x80)
- return EC_ERROR_ACCESS_DENIED;
-
- rv = sb_read_string(0x70, data, sizeof(data));
- if (rv)
- return rv;
-
- *value = data[param - 0x70];
- return EC_SUCCESS;
-}
-
-int battery_set_vendor_param(uint32_t param, uint32_t value)
-{
- return EC_ERROR_UNIMPLEMENTED;
-}
diff --git a/board/coachz/board.h b/board/coachz/board.h
deleted file mode 100644
index d5e69aa4b2..0000000000
--- a/board/coachz/board.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* 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.
- */
-
-/* Coachz board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* On-body detection */
-#define CONFIG_BODY_DETECTION
-#define CONFIG_BODY_DETECTION_SENSOR LID_ACCEL
-#define CONFIG_BODY_DETECTION_VAR_NOISE_FACTOR 150 /* % */
-#define CONFIG_GESTURE_DETECTION
-#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_BODY_DETECTION_SENSOR)
-#define CONFIG_GESTURE_HOST_DETECTION
-
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Save some flash space */
-#define CONFIG_LTO
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-#undef CONFIG_CMD_FLASHINFO
-#undef CONFIG_CMD_MMAPINFO
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_ACCEL_FIFO
-#undef CONFIG_CMD_ACCEL_INFO
-#undef CONFIG_CMD_TASK_RESET
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_VENDOR_PARAM
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8755
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* BMI160 Lid accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define CONFIG_FRONT_PROXIMITY_SWITCH
-
-#define CONFIG_MKBP_INPUT_DEVICES
-
-#define CONFIG_DETACHABLE_BASE
-#define CONFIG_BASE_ATTACHED_SWITCH
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_CHG_ACOK_OD
-#define GPIO_WP_L GPIO_EC_FLASH_WP_ODL
-#define GPIO_PMIC_RESIN_L GPIO_PM845_RESIN_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_LID_360_L
-#define GPIO_KS_ATTACHED_L GPIO_LID_INT_N_HALL1
-#define GPIO_KS_OPEN GPIO_LID_INT_N_HALL2
-
-/* WLC pins */
-#define CONFIG_PERIPHERAL_CHARGER
-#define CONFIG_DEVICE_EVENT
-#define CONFIG_CTN730
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_BASE_DET,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_DISPLIGHT = 0,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_GH02047XL_1C,
- BATTERY_GH02047XL,
- BATTERY_DS02032XL,
- BATTERY_DS02032XL_1C,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-/* Base detection */
-void base_detect_interrupt(enum gpio_signal signal);
-/* motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/coachz/build.mk b/board/coachz/build.mk
deleted file mode 100644
index 5b6ecb0398..0000000000
--- a/board/coachz/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y=battery.o board.o led.o base_detect.o
diff --git a/board/coachz/ec.tasklist b/board/coachz/ec.tasklist
deleted file mode 100644
index dc5b32b4cf..0000000000
--- a/board/coachz/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PCHG, pchg_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/coachz/gpio.inc b/board/coachz/gpio.inc
deleted file mode 100644
index d7ca61ac6b..0000000000
--- a/board/coachz/gpio.inc
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_FLASH_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-
-/* WLC interrupt. GPIO_PULL_DOWN ensures no IRQ when WLC chip is off. */
-GPIO_INT(WLC_IRQ_CONN, PIN(7, 4), GPIO_INT_RISING | GPIO_PULL_DOWN, pchg_irq)
-
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-GPIO_INT(BASE_DET_L, PIN(3, 7), GPIO_INT_BOTH, base_detect_interrupt) /* Detachable base attached? */
-
-/* Sensor interrupts */
-GPIO_INT(LID_360_L, PIN(7, 3), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(LID_INT_N_HALL1, PIN(D, 7), GPIO_INT_BOTH, ks_interrupt) /* Kickstand attached (0) or detached (1) */
-GPIO_INT(LID_INT_N_HALL2, PIN(6, 0), GPIO_INT_BOTH, ks_interrupt) /* Kickstand close (0) or open (1) */
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, motion_interrupt) /* Accelerometer/gyro interrupt */
-
-/*
- * EC_RST_ODL acts as a wake source from hibernate mode. However, it does not
- * need to be an interrupt for normal EC operations. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PM845_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-GPIO(QSIP_ON, PIN(5, 0), GPIO_OUT_LOW) /* Not used, for non-switchcap testing */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap; will be configured in the board init */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* TODO(waihong): Should remove it from hardware */
-GPIO(CAM_LED, PIN(3, 0), GPIO_INPUT)
-
-/* Reset line for WLC. External pull-up is expected. */
-GPIO(WLC_NRST_CONN, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Base detection */
-GPIO(EN_BASE, PIN(0, 4), GPIO_OUT_LOW) /* Enable power to detachable base */
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_ODR_HIGH) /* Port-0 TCPC chip reset, actaully Open-Drain */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_ODR_HIGH) /* Port-1 TCPC chip reset, actually Open-Drain */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C0, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C0, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_WLC_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_WLC_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Switchcap */
-/*
- * GPIO0 is configured as PVC_PG. When the chip in power down mode, it outputs
- * high-Z. Set pull-down to avoid floating.
- */
-GPIO(DA9313_GPIO0, PIN(E, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* Switchcap GPIO0 */
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. Apply PU for power saving */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(3, 1))
-UNUSED(PIN(2, 7))
-UNUSED(PIN(2, 6))
-UNUSED(PIN(2, 5))
-UNUSED(PIN(2, 4))
-UNUSED(PIN(2, 3))
-UNUSED(PIN(2, 2))
-UNUSED(PIN(2, 1))
-UNUSED(PIN(2, 0))
-UNUSED(PIN(1, 7))
-UNUSED(PIN(1, 6))
-UNUSED(PIN(1, 5))
-UNUSED(PIN(1, 4))
-UNUSED(PIN(1, 3))
-UNUSED(PIN(1, 2))
-UNUSED(PIN(1, 1))
-UNUSED(PIN(1, 0))
-UNUSED(PIN(0, 7))
-UNUSED(PIN(0, 6))
-UNUSED(PIN(0, 5))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 6))
-UNUSED(PIN(C, 0))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(6, 2))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(5, 6))
-UNUSED(PIN(8, 0))
-UNUSED(PIN(D, 3))
-UNUSED(PIN(7, 5))
-UNUSED(PIN(8, 6))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3 (GPIOD0/D1) */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
diff --git a/board/coachz/led.c b/board/coachz/led.c
deleted file mode 100644
index 9dd8729a04..0000000000
--- a/board/coachz/led.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-#include "extpower.h"
-
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-/* Battery LED blinks every per 400ms */
-#define LED_HALF_ONE_SEC (500 / HOOK_TICK_INTERVAL_MS)
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_BLUE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_Y_C0,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_EC_CHG_LED_W_C0,
- (color == LED_BLUE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color(LED_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(LED_AMBER);
- else
- led_set_color(LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- int color = LED_OFF;
- int period = 0;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate amber on when charging. */
- color = LED_AMBER;
- break;
- case PWR_STATE_DISCHARGE:
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Discharging in S3: White 1 sec, off 1 sec */
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC) {
- if (charge_get_percent() < 10)
- {
- /* Blink amber light (1 sec on, 1 sec off) */
- color = LED_AMBER;
- }
- else
- {
- /* Blink white light (1 sec on, 1 sec off) */
- color = LED_BLUE;
- }
- } else {
- color = LED_OFF;
- }
- } else {
- /* Discharging in S5 and S0: off */
- /* Blink amber light (1 sec on, 1 sec off) */
- if (charge_get_percent() < 10) {
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_AMBER;
- else
- color = LED_OFF;
- } else {
- /* G3 or S5 or S0: off */
- color = LED_OFF;
- }
- }
- break;
- case PWR_STATE_ERROR:
- /* Battery error: Amber on 0.5 sec, off 0.5 sec */
- period = (1 + 1) * LED_HALF_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_HALF_ONE_SEC)
- color = LED_AMBER;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- /* Full Charged: Blue on */
- /* S3: Blink white light (1 sec on, 1 sec off) */
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_BLUE;
- else
- color = LED_OFF;
- } else {
- /* Full charged: White on */
- color = LED_BLUE;
- }
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode: Blue 2 sec, Amber 2 sec */
- period = (2 + 2) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2 * LED_ONE_SEC)
- color = LED_BLUE;
- else
- color = LED_AMBER;
- } else
- color = LED_BLUE;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_BLUE : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color(color);
-}
diff --git a/board/coachz/vif_override.xml b/board/coachz/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/coachz/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/coffeecake/board.c b/board/coffeecake/board.c
deleted file mode 100644
index 2939a65125..0000000000
--- a/board/coffeecake/board.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/* Copyright 2017 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.
- */
-/* Coffeecake dock configuration */
-
-#include "adc.h"
-#include "charger/sy21612.h"
-#include "clock.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "mcdp28x0.h"
-#include "registers.h"
-#include "task.h"
-#include "usb_bb.h"
-#include "usb_descriptor.h"
-#include "usb_pd.h"
-#include "timer.h"
-#include "util.h"
-
-static volatile uint64_t hpd_prev_ts;
-static volatile int hpd_prev_level;
-
-void hpd_event(enum gpio_signal signal);
-void vbus_event(enum gpio_signal signal);
-#include "gpio_list.h"
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"charger", I2C_PORT_SY21612, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/**
- * Hotplug detect deferred task
- *
- * Called after level change on hpd GPIO to evaluate (and debounce) what event
- * has occurred. There are 3 events that occur on HPD:
- * 1. low : downstream display sink is deattached
- * 2. high : downstream display sink is attached
- * 3. irq : downstream display sink signalling an interrupt.
- *
- * The debounce times for these various events are:
- * HPD_USTREAM_DEBOUNCE_LVL : min pulse width of level value.
- * HPD_USTREAM_DEBOUNCE_IRQ : min pulse width of IRQ low pulse.
- *
- * lvl(n-2) lvl(n-1) lvl prev_delta now_delta event
- * ----------------------------------------------------
- * 1 0 1 <IRQ n/a low glitch (ignore)
- * 1 0 1 >IRQ <LVL irq
- * x 0 1 n/a >LVL high
- * 0 1 0 <LVL n/a high glitch (ignore)
- * x 1 0 n/a >LVL low
- */
-
-void hpd_irq_deferred(void)
-{
- pd_send_hpd(0, hpd_irq);
-}
-DECLARE_DEFERRED(hpd_irq_deferred);
-
-void hpd_lvl_deferred(void)
-{
- int level = gpio_get_level(GPIO_DP_HPD);
-
- if (level != hpd_prev_level)
- /* It's a glitch while in deferred or canceled action */
- return;
-
- pd_send_hpd(0, (level) ? hpd_high : hpd_low);
-}
-DECLARE_DEFERRED(hpd_lvl_deferred);
-
-void hpd_event(enum gpio_signal signal)
-{
- timestamp_t now = get_time();
- int level = gpio_get_level(signal);
- uint64_t cur_delta = now.val - hpd_prev_ts;
-
- /* store current time */
- hpd_prev_ts = now.val;
-
- /* All previous hpd level events need to be re-triggered */
- hook_call_deferred(&hpd_lvl_deferred_data, -1);
-
- /* It's a glitch. Previous time moves but level is the same. */
- if (cur_delta < HPD_USTREAM_DEBOUNCE_IRQ)
- return;
-
- if ((!hpd_prev_level && level) &&
- (cur_delta < HPD_USTREAM_DEBOUNCE_LVL))
- /* It's an irq */
- hook_call_deferred(&hpd_irq_deferred_data, 0);
- else if (cur_delta >= HPD_USTREAM_DEBOUNCE_LVL)
- hook_call_deferred(&hpd_lvl_deferred_data,
- HPD_USTREAM_DEBOUNCE_LVL);
-
- hpd_prev_level = level;
-}
-
-/* Proto 0 workaround */
-void vbus_event(enum gpio_signal signal)
-{
- /* Discharge VBUS on DET_L high */
- gpio_set_level(GPIO_PD_DISCHARGE, gpio_get_level(signal));
-}
-
-/* USB C VBUS output selection */
-void board_set_usb_output_voltage(int mv)
-{
- const int ra = 40200;
- const int rb = 10000;
- const int rc = 6650;
- int dac_mv;
- uint32_t dac_val;
-
- if (mv >= 0) {
- /* vbat = 1.0 * ra/rb + 1.0 - (vdac - 1.0) * ra/rc */
- dac_mv = 1000 + (1000 * rc / rb) + ((1000 - mv) * rc / ra);
- if (dac_mv < 0)
- dac_mv = 0;
-
- /* Set voltage Vout=Vdac with Vref = 3.3v */
- /* TODO: use Vdda instead */
- dac_val = dac_mv * 4096 / 3300;
- /* Start DAC channel 2 */
- STM32_DAC_DHR12RD = dac_val << 16;
- STM32_DAC_CR = STM32_DAC_CR_EN2;
- } else {
- STM32_DAC_CR = 0;
- }
-}
-
-/* Initialize board. */
-void board_config_pre_init(void)
-{
- /* Enable SYSCFG clock */
- STM32_RCC_APB2ENR |= BIT(0);
- /* Enable DAC interface clock. */
- STM32_RCC_APB1ENR |= BIT(29);
- /* Delay 1 APB clock cycle after the clock is enabled */
- clock_wait_bus_cycles(BUS_APB, 1);
- /* Set 5Vsafe Vdac */
- board_set_usb_output_voltage(5000);
- /* Remap USART DMA to match the USART driver */
- STM32_SYSCFG_CFGR1 |= BIT(9) | BIT(10);/* Remap USART1 RX/TX DMA */
-}
-
-#ifdef CONFIG_SPI_FLASH
-
-static void board_init_spi2(void)
-{
- /* Remap SPI2 to DMA channels 6 and 7 */
- STM32_SYSCFG_CFGR1 |= BIT(24);
-
- /* Set pin NSS to general purpose output mode (01b). */
- /* Set pins SCK, MISO, and MOSI to alternate function (10b). */
- STM32_GPIO_MODER(GPIO_B) &= ~0xff000000;
- STM32_GPIO_MODER(GPIO_B) |= 0xa9000000;
-
- /* Set all four pins to alternate function 0 */
- STM32_GPIO_AFRH(GPIO_B) &= ~(0xffff0000);
-
- /* Set all four pins to output push-pull */
- STM32_GPIO_OTYPER(GPIO_B) &= ~(0xf000);
-
- /* Set pullup on NSS */
- STM32_GPIO_PUPDR(GPIO_B) |= 0x1000000;
-
- /* Set all four pins to high speed */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xff000000;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= BIT(14);
- STM32_RCC_APB1RSTR &= ~BIT(14);
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-}
-#endif /* CONFIG_SPI_FLASH */
-
-static void factory_validation_deferred(void)
-{
- struct mcdp_info info;
-
- mcdp_enable();
-
- /* test mcdp via serial to validate function */
- if (!mcdp_get_info(&info) && (MCDP_FAMILY(info.family) == 0x0010) &&
- (MCDP_CHIPID(info.chipid) == 0x2850)) {
- pd_log_event(PD_EVENT_VIDEO_CODEC,
- PD_LOG_PORT_SIZE(0, sizeof(info)),
- 0, &info);
- }
-
- mcdp_disable();
-}
-DECLARE_DEFERRED(factory_validation_deferred);
-
-static void board_post_init(void)
-{
- sy21612_enable_regulator(1);
- /*
- * AC powered - DRP SOURCE
- * DUT powered - DRP SINK
- */
- pd_set_dual_role(0, gpio_get_level(GPIO_AC_PRESENT_L) ?
- PD_DRP_FORCE_SINK : PD_DRP_FORCE_SOURCE);
-}
-DECLARE_DEFERRED(board_post_init);
-
-/* Initialize board. */
-static void board_init(void)
-{
- timestamp_t now;
-#ifdef CONFIG_SPI_FLASH
- board_init_spi2();
-#endif
- now = get_time();
- hpd_prev_level = gpio_get_level(GPIO_DP_HPD);
- hpd_prev_ts = now.val;
- gpio_enable_interrupt(GPIO_DP_HPD);
- gpio_enable_interrupt(GPIO_CHARGER_INT);
- gpio_enable_interrupt(GPIO_USB_C_VBUS_DET_L);
- /* Set PD_DISCHARGE initial state */
- gpio_set_level(GPIO_PD_DISCHARGE, gpio_get_level(GPIO_USB_C_VBUS_DET_L));
-
- /* Delay needed to allow HDMI MCU to boot. */
- hook_call_deferred(&factory_validation_deferred_data, 200*MSEC);
- /* Initialize buck-boost converter */
- hook_call_deferred(&board_post_init_data, 0);
-}
-
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_CH_CC1_PD] = {"USB_C_CC1_PD", 3300, 4096, 0, STM32_AIN(1)},
- [ADC_VBUS_MON] = {"VBUS_MON", 13200, 4096, 0, STM32_AIN(2)},
- [ADC_DAC_REF_TP28] = {"DAC_REF_TP28", 3300, 4096, 0, STM32_AIN(4)},
- [ADC_DAC_VOLT] = {"DAC_VOLT", 3300, 4096, 0, STM32_AIN(5)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const void * const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Hoho"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_BB_URL] = USB_STRING_DESC(USB_GOOGLE_TYPEC_URL),
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/**
- * USB configuration
- * Any type-C device with alternate mode capabilities must have the following
- * set of descriptors.
- *
- * 1. Standard Device
- * 2. BOS
- * 2a. Container ID
- * 2b. Billboard Caps
- */
-struct my_bos {
- struct usb_bos_hdr_descriptor bos;
- struct usb_contid_caps_descriptor contid_caps;
- struct usb_bb_caps_base_descriptor bb_caps;
- struct usb_bb_caps_svid_descriptor bb_caps_svids[1];
-};
-
-static struct my_bos bos_desc = {
- .bos = {
- .bLength = USB_DT_BOS_SIZE,
- .bDescriptorType = USB_DT_BOS,
- .wTotalLength = (USB_DT_BOS_SIZE + USB_DT_CONTID_SIZE +
- USB_BB_CAPS_BASE_SIZE +
- USB_BB_CAPS_SVID_SIZE * 1),
- .bNumDeviceCaps = 2, /* contid + bb_caps */
- },
- .contid_caps = {
- .bLength = USB_DT_CONTID_SIZE,
- .bDescriptorType = USB_DT_DEVICE_CAPABILITY,
- .bDevCapabilityType = USB_DC_DTYPE_CONTID,
- .bReserved = 0,
- .ContainerID = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- },
- .bb_caps = {
- .bLength = (USB_BB_CAPS_BASE_SIZE + USB_BB_CAPS_SVID_SIZE * 1),
- .bDescriptorType = USB_DT_DEVICE_CAPABILITY,
- .bDevCapabilityType = USB_DC_DTYPE_BILLBOARD,
- .iAdditionalInfoURL = USB_STR_BB_URL,
- .bNumberOfAlternateModes = 1,
- .bPreferredAlternateMode = 1,
- .VconnPower = 0,
- .bmConfigured = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- .bReserved = 0,
- },
- .bb_caps_svids = {
- {
- .wSVID = 0xff01, /* TODO(tbroch) def'd in other CL remove hardcode */
- .bAlternateMode = 1,
- .iAlternateModeString = USB_STR_BB_URL, /* TODO(crosbug.com/p/32687) */
- },
- },
-};
-
-const struct bos_context bos_ctx = {
- .descp = (void *)&bos_desc,
- .size = sizeof(struct my_bos),
-};
diff --git a/board/coffeecake/board.h b/board/coffeecake/board.h
deleted file mode 100644
index d655466a14..0000000000
--- a/board/coffeecake/board.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Coffee cake configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Free up flash space */
-#define CONFIG_LTO
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART1 (PA9/PA10) */
-#define CONFIG_UART_CONSOLE 1
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_ADC
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_CMD_CHARGER
-#define CONFIG_CMD_GPIO_EXTENDED
-#define CONFIG_CMD_SPI_FLASH
-#define CONFIG_CHARGER_SY21612
-#define CONFIG_HW_CRC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_RSA
-#define CONFIG_RWSIG
-#define CONFIG_RWSIG_TYPE_USBPD1
-#define CONFIG_SHA256
-/* TODO(tbroch) Re-enable once STM spi master can be inhibited at boot so it
- doesn't interfere with HDMI loading its f/w */
-#undef CONFIG_SPI_FLASH
-#define CONFIG_SPI_CS_GPIO GPIO_PD_MCDP_SPI_CS_L
-#define CONFIG_USB
-#define CONFIG_USB_BOS
-#define CONFIG_USB_INHIBIT_CONNECT
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_HOHO
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MINOR 2
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_FLASH
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-#define CONFIG_USB_PD_LOGGING
-#undef CONFIG_EVENT_LOG_SIZE
-#define CONFIG_EVENT_LOG_SIZE 256
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#define CONFIG_USB_PD_VBUS_DETECT_NONE
-/* mcdp2850 serial interface */
-#define CONFIG_MCDP28X0 usart3_hw
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART3
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_TASK_PROFILING
-
-/* USB configuration */
-#define CONFIG_USB_PID 0x502f
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-
-/* No Write-protect GPIO, force the write-protection */
-#define CONFIG_WP_ALWAYS
-#define CONFIG_FLASH_READOUT_PROTECTION
-
-/* Inform VIF generator that this board is an Alt Mode Adapter */
-#define CONFIG_USB_ALT_MODE_ADAPTER
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-#include "gpio_signal.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_CH_CC1_PD = 0,
- ADC_VBUS_MON,
- ADC_DAC_REF_TP28,
- ADC_DAC_VOLT,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_VERSION,
- USB_STR_BB_URL,
-
- USB_STR_COUNT
-};
-
-/* 3.0A Rp */
-#define PD_SRC_VNC PD_SRC_3_0_VNC_MV
-#define PD_SRC_RD_THRESHOLD PD_SRC_3_0_RD_THRESH_MV
-
-/* delay necessary for the voltage transition on the power supply */
-/* TODO (code.google.com/p/chrome-os-partner/issues/detail?id=37078)
- * Need to measure these and adjust for honeybuns.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 50000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 50000 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 1000
-#define PD_MAX_POWER_MW 22500
-#define PD_MAX_CURRENT_MA 2500
-#define PD_MAX_VOLTAGE_MV 9000
-
-/* Board interfaces */
-void board_set_usb_output_voltage(int mv);
-
-#endif /* !__ASSEMBLER__ */
-
-/* USB Device class */
-#define USB_DEV_CLASS USB_CLASS_BILLBOARD
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_COUNT 0
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_COUNT 1
-
-/* I2C ports */
-#define I2C_PORT_SY21612 0
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/coffeecake/build.mk b/board/coffeecake/build.mk
deleted file mode 100644
index fb5a6fccdb..0000000000
--- a/board/coffeecake/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072B
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-# Not enough SRAM: Disable all tests
-test-list-y=
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/coffeecake/dev_key.pem b/board/coffeecake/dev_key.pem
deleted file mode 100644
index 08d5bd414c..0000000000
--- a/board/coffeecake/dev_key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEApfbLqgOYIM6AfRI6SJcj1Crengsp+yjHXtwZFOH6WDVP5Q9c
-KSbwqoKHEKTbWJ90ymjqjfi382hl64L/V6J8SfIqGhrFztwXLhJOwFXRK5Jgzkk+
-YUByDzAKTKOlzvvRqk10Tq5a3wphg1SxGVLLOOsTGoKhGI93Wkf2j8AibMlVVZzz
-Q8DmVszkYZL+Kchv6h1FgSvBW0oZa5tVod+0XToWSrPEYnBWs0zZEywCusIXMy7D
-LaqMPFB4LTkDZ9Ne8jnB5xRad+ME4CgxZqUwGC7tdFdHdiiXpIwzIoxVk6xFIZUF
-uusG4RR3O2ubaPJ/Fpf3UuuCWmddk37WaC7o7QIDAQABAoIBAAG4L94AEYhte0lQ
-cggkgLuHAi1zAilW/9HMx/m+aaCWVNCTuym1/JJXrdyPSLJ/XG9obN2xsP41m7C3
-97tJtK3zc1o34srE3vycNfKqMPOZnaUlfx700vmzTrgCjgo5868nBEh4Z/qdmesJ
-aphPkklxrg39QnwFqH/n9PcCT5j+7LyCeWeGbWxKfpzP2CT6v8XxT3XY1mtFSa4j
-dfYaqb+aunYAhjEb4gqa48hyNTQAZskDOUr1TK433wbGqRughXXrQQix+FBW483u
-IGo8aGgiQsjYxHX+ynNTMKW1Oap9WZRWVxF09Ph1f3MT+k3gKqM/0AejlDfBuTDu
-aLxiKIUCgYEA1FZmfGn4RNlghv/ZCAlfWqbf5NA1/wA/Knk8u0R+kMQ71e8NFjOc
-Ym3Uix+89KcKDBIgHn1360pNvSCeTyVU28wQ2bst5s6pvu4FYDvjym2nTgXcFJX6
-DDnZfVZ+WLSFR8E76LQLJGd00DSq0/uBw3ULyRSirkuQnFI3w3u4BH8CgYEAyBdD
-UMV83kwQaDMuGgKqZtD4Ou3s/MDzMwcNgUSjLIueFdsXVnlzYQwwJXuLFkrp5COx
-Zyoha/d1QQawnYehKmHWWy7qN/l0CO+F2DGb1E6pNXJrn+zn33Mgz9ms8421eqqn
-ATQbq6ZQInk1IrkLfyZ3t09l6cyBMJuJjkoBrJMCgYA2Hfsq1FtJONnILmbjDHh4
-AzXm/EX2wtpWeeXHmLJlNQ5G/REpymeeEn3sI1+mPvhpkSkMfE/W8O4VOL4AT/Rr
-vHvC8ljFjYBnwAQwvbLVwdK1KPspZ/v9p7TNpAC5nPCnFBGvwktgsNltwy6SrnQp
-G6iwTAkWQP4PSUkbEmoZAwKBgF0OLJlQ70y3FV5Qhx1DphohD4DgjDnURoaxvf8j
-e7vIxuGlPgpSe21j7LRR65KXjoUycFvpRRfgQyDVyqfInxSF4doQTI9xrRxGwPmV
-wMIRPzKDHziGRiQud9ESjBPNENyWpwqxQDkpJNWThzm503Xz3vNasqv0FxUTEPsi
-wfqPAoGABXPl7baUkpYzppAJqRlGNxsMjpbWscDPjmPosrGs6d81DP287s/IjfDR
-ysQptvhJRK/lubM8As+d0/VLd6P8wk8dyZR1nRELwnVaPC55cS5+YIjgXK9TBmLA
-hC0BIgujJS2qbXQRQF7yX925Gg77WLN2sJqtVg1Brine056pHTA=
------END RSA PRIVATE KEY-----
diff --git a/board/coffeecake/ec.tasklist b/board/coffeecake/ec.tasklist
deleted file mode 100644
index d6686d72e9..0000000000
--- a/board/coffeecake/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(SY21612, sy21612_task, NULL, SMALLER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/coffeecake/gpio.inc b/board/coffeecake/gpio.inc
deleted file mode 100644
index bab62a6bea..0000000000
--- a/board/coffeecake/gpio.inc
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(DP_HPD, PIN(A, 0), GPIO_INT_BOTH, hpd_event)
-GPIO_INT(CHARGER_INT, PIN(C, 13), GPIO_INT_FALLING, sy21612_int)
-GPIO_INT(USB_C_VBUS_DET_L, PIN(C, 14), GPIO_INT_BOTH, vbus_event)
-
-GPIO(USB_C_CC1_PD, PIN(A, 1), GPIO_ANALOG)
-GPIO(VBUS_DIV4_MON, PIN(A, 2), GPIO_ANALOG)
-GPIO(MCDP_RESET_L, PIN(A, 3), GPIO_OUT_HIGH)
-GPIO(PD_DAC_REF_TP28, PIN(A, 4), GPIO_ANALOG)
-GPIO(DAC_VBUS_VOLT, PIN(A, 5), GPIO_ANALOG)
-GPIO(LED_GREEN, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(LED_BLUE, PIN(A, 7), GPIO_OUT_LOW)
-
-GPIO(PD_SBU_ENABLE, PIN(A, 8), GPIO_OUT_LOW)
-GPIO(USB_DM, PIN(A, 11), GPIO_ANALOG)
-GPIO(USB_DP, PIN(A, 12), GPIO_ANALOG)
-GPIO(PD_DISCHARGE, PIN(A, 13), GPIO_OUT_LOW)
-GPIO(PD_CC1_ODL, PIN(A, 15), GPIO_OUT_LOW)
-
-GPIO(EN_PP3300, PIN(B, 0), GPIO_OUT_HIGH)
-GPIO(MCU_PB1, PIN(B, 1), GPIO_OUT_LOW)
-GPIO(PD_MCDP_SPI_WP_L, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(PD_CC1_TX_DATA, PIN(B, 4), GPIO_INPUT)
-GPIO(PD_CC1_HOST_HIGH, PIN(B, 5), GPIO_INPUT)
-GPIO(I2C0_SCL, PIN(B, 6), GPIO_INPUT)
-GPIO(I2C0_SDA, PIN(B, 7), GPIO_INPUT)
-GPIO(LED_ORANGE, PIN(B, 9), GPIO_OUT_LOW)
-GPIO(PD_MCDP_SPI_CS_L, PIN(B, 12), GPIO_INPUT)
-
-GPIO(AC_PRESENT_L, PIN(C, 15), GPIO_INPUT)
-
-GPIO(EN_PP5000, PIN(F, 0), GPIO_OUT_HIGH)
-GPIO(EN_USB_PD, PIN(F, 1), GPIO_OUT_HIGH)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(B, 0x0008), 0, MODULE_USB_PD, 0) /* SPI1: SCK(PB3) */
-ALTERNATE(PIN_MASK(B, 0x0100), 2, MODULE_USB_PD, 0) /* TIM16_CH1: PB9 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, GPIO_PULL_UP) /* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(B, 0x0C00), 4, MODULE_UART, GPIO_PULL_UP) /* USART3: PB10/PB11 */
-ALTERNATE(PIN_MASK(B, 0x00C0), 1, MODULE_I2C, 0) /* I2C MASTER:PB6/7 */
diff --git a/board/coffeecake/usb_pd_config.h b/board/coffeecake/usb_pd_config.h
deleted file mode 100644
index e2c1dbb2db..0000000000
--- a/board/coffeecake/usb_pd_config.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_C0 16
-#define TIM_CLOCK_PD_RX_C0 1
-
-#define TIM_CLOCK_PD_TX(p) TIM_CLOCK_PD_TX_C0
-#define TIM_CLOCK_PD_RX(p) TIM_CLOCK_PD_RX_C0
-
-/* Timer channel */
-#define TIM_RX_CCR_C0 1
-#define TIM_TX_CCR_C0 1
-
-/* RX timer capture/compare register */
-#define TIM_CCR_C0 (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_C0, TIM_RX_CCR_C0))
-#define TIM_RX_CCR_REG(p) TIM_CCR_C0
-
-/* TX and RX timer register */
-#define TIM_REG_TX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_TX_C0))
-#define TIM_REG_RX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_RX_C0))
-#define TIM_REG_TX(p) TIM_REG_TX_C0
-#define TIM_REG_RX(p) TIM_REG_RX_C0
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* TX is using SPI1 on PB3-4 */
-#define SPI_REGS(p) STM32_SPI1_REGS
-
-static inline void spi_enable_clock(int port)
-{
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
-}
-
-/* SPI1_TX no remap needed */
-#define DMAC_SPI_TX(p) STM32_DMAC_CH3
-
-/* RX is using COMP1 triggering TIM1 CH1 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM1_IC1
-#define CMP2OUTSEL 0
-
-#define TIM_TX_CCR_IDX(p) TIM_TX_CCR_C0
-#define TIM_RX_CCR_IDX(p) TIM_RX_CCR_C0
-#define TIM_CCR_CS 1
-#define EXTI_COMP_MASK(p) BIT(21)
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-/* TIM1_CH1 no remap needed */
-#define DMAC_TIM_RX(p) STM32_DMAC_CH2
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- /* 40 Mhz pin speed on TX_EN (PA15) */
- STM32_GPIO_OSPEEDR(GPIO_A) |= 0xC0000000;
- /* 40 MHz pin speed on SPI CLK/MOSI (PB3/4) TIM17_CH1 (PB9) */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000C03C0;
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
-}
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
- /* PB4 is SPI1_MISO */
- gpio_set_alternate_function(GPIO_B, 0x0010, 0);
- /* USB_C_CC1_PD: PA1 output low */
- gpio_set_flags(GPIO_USB_C_CC1_PD, GPIO_OUTPUT);
- gpio_set_level(GPIO_USB_C_CC1_PD, 0);
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- /* SPI TX (PB4) Hi-Z */
- gpio_set_flags(GPIO_PD_CC1_TX_DATA, GPIO_INPUT);
- /* put the low level reference in Hi-Z */
- gpio_set_flags(GPIO_USB_C_CC1_PD, GPIO_ANALOG);
-}
-
-static inline void pd_select_polarity(int port, int polarity)
-{
- /*
- * use the right comparator : CC1 -> PA1 (COMP1 INP)
- * use VrefInt / 2 as INM (about 600mV)
- */
- STM32_COMP_CSR = (STM32_COMP_CSR & ~STM32_COMP_CMP1INSEL_MASK)
- | STM32_COMP_CMP1EN | STM32_COMP_CMP1INSEL_VREF12;
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- gpio_config_module(MODULE_USB_PD, 1);
-}
-
-static inline void pd_set_host_mode(int port, int enable)
-{
- if (enable) {
- gpio_set_level(GPIO_PD_CC1_ODL, 1);
- gpio_set_flags(GPIO_PD_CC1_HOST_HIGH, GPIO_OUTPUT);
- gpio_set_level(GPIO_PD_CC1_HOST_HIGH, 1);
- } else {
- gpio_set_flags(GPIO_PD_CC1_HOST_HIGH, GPIO_INPUT);
- gpio_set_level(GPIO_PD_CC1_ODL, 0);
- }
-}
-
-static inline void pd_config_init(int port, uint8_t power_role)
-{
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
-}
-
-static inline int pd_adc_read(int port, int cc)
-{
- if (cc == 0)
- return adc_read_channel(ADC_CH_CC1_PD);
- /*
- * Check HOST_HIGH Rp setting.
- * Return 3300mV on host mode.
- */
- if ((STM32_GPIO_MODER(GPIO_B) & (3 << (2*5))) == (1 << (2*5)))
- return 3300;
- else
- return 0;
-}
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
diff --git a/board/coffeecake/usb_pd_policy.c b/board/coffeecake/usb_pd_policy.c
deleted file mode 100644
index dc19207a0e..0000000000
--- a/board/coffeecake/usb_pd_policy.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "adc.h"
-#include "board.h"
-#include "charger/sy21612.h"
-#include "common.h"
-#include "console.h"
-#include "cros_version.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "usb_api.h"
-#include "usb_bb.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define PDO_FIXED_FLAGS_EXT (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP |\
- PDO_FIXED_COMM_CAP | PDO_FIXED_UNCONSTRAINED)
-
-#define PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP |\
- PDO_FIXED_COMM_CAP)
-
-
-/* Voltage indexes for the PDOs */
-enum volt_idx {
- PDO_IDX_5V = 0,
- PDO_IDX_9V = 1,
- /* TODO: add PPS support */
- PDO_IDX_COUNT
-};
-
-/* PDOs */
-const uint32_t pd_src_pdo[] = {
- [PDO_IDX_5V] = PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS_EXT),
- [PDO_IDX_9V] = PDO_FIXED(9000, 2500, PDO_FIXED_FLAGS),
-};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-BUILD_ASSERT(ARRAY_SIZE(pd_src_pdo) == PDO_IDX_COUNT);
-
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 1500, PDO_FIXED_FLAGS),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-/* Holds valid object position (opos) for entered mode */
-static int alt_mode[PD_AMODE_COUNT];
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- /* No battery, nothing to do */
- return;
-}
-
-int pd_is_valid_input_voltage(int mv)
-{
- /* Any voltage less than the max is allowed */
- return 1;
-}
-
-void pd_transition_voltage(int idx)
-{
- /* TODO: discharge, PPS */
- switch (idx - 1) {
- case PDO_IDX_9V:
- board_set_usb_output_voltage(9000);
- break;
- case PDO_IDX_5V:
- default:
- board_set_usb_output_voltage(5000);
- break;
- }
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Turn on DAC and adjust feedback to get 5V output */
- board_set_usb_output_voltage(5000);
- /* Enable Vsys to USBC Vbus charging */
- sy21612_set_sink_mode(1);
- sy21612_set_adc_mode(1);
- sy21612_enable_adc(1);
- sy21612_set_vbus_discharge(0);
- return EC_SUCCESS;
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Turn off DAC output */
- board_set_usb_output_voltage(-1);
- /* Turn off USBC VBUS output */
- sy21612_set_sink_mode(0);
- /* Set boost Vsys output 9V */
- sy21612_set_vbus_volt(SY21612_VBUS_9V);
- /* Turn on buck-boost converter ADC */
- sy21612_set_adc_mode(1);
- sy21612_enable_adc(1);
- sy21612_set_vbus_discharge(1);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return 1;
-}
-
-int pd_board_checks(void)
-{
- return EC_SUCCESS;
-}
-
-int pd_check_power_swap(int port)
-{
- /* Always refuse power swap */
- return 0;
-}
-
-int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* We can swap to UFP */
- return data_role == PD_ROLE_DFP;
-}
-
-void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* TODO: turn on pp5000, pp3300 */
-}
-
-void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
- if (pr_role == PD_ROLE_SINK && !gpio_get_level(GPIO_AC_PRESENT_L))
- pd_request_power_swap(port);
-
-}
-
-void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
- if ((flags & PD_FLAGS_PARTNER_DR_DATA) && dr_role == PD_ROLE_DFP)
- pd_request_data_swap(port);
-}
-/* ----------------- Vendor Defined Messages ------------------ */
-const uint32_t vdo_idh = VDO_IDH(0, /* data caps as USB host */
- 1, /* data caps as USB device */
- IDH_PTYPE_AMA, /* Alternate mode */
- 1, /* supports alt modes */
- USB_VID_GOOGLE);
-
-const uint32_t vdo_product = VDO_PRODUCT(CONFIG_USB_PID, CONFIG_USB_BCD_DEV);
-
-const uint32_t vdo_ama = VDO_AMA(CONFIG_USB_PD_IDENTITY_HW_VERS,
- CONFIG_USB_PD_IDENTITY_SW_VERS,
- 0, 0, 0, 0, /* SS[TR][12] */
- 0, /* Vconn power */
- 0, /* Vconn power required */
- 1, /* Vbus power required */
- AMA_USBSS_BBONLY /* USB SS support */);
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- payload[VDO_I(IDH)] = vdo_idh;
- /* TODO(tbroch): Do we plan to obtain TID (test ID) for hoho */
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- payload[VDO_I(AMA)] = vdo_ama;
- return VDO_I(AMA) + 1;
-}
-
-static int svdm_response_svids(int port, uint32_t *payload)
-{
- payload[1] = VDO_SVID(USB_SID_DISPLAYPORT, USB_VID_GOOGLE);
- payload[2] = 0;
- return 3;
-}
-
-#define OPOS_DP 1
-#define OPOS_GFU 1
-
-const uint32_t vdo_dp_modes[1] = {
- VDO_MODE_DP(0, /* UFP pin cfg supported : none */
- MODE_DP_PIN_C, /* DFP pin cfg supported */
- 1, /* no usb2.0 signalling in AMode */
- CABLE_PLUG, /* its a plug */
- MODE_DP_V13, /* DPv1.3 Support, no Gen2 */
- MODE_DP_SNK) /* Its a sink only */
-};
-
-const uint32_t vdo_goog_modes[1] = {
- VDO_MODE_GOOGLE(MODE_GOOGLE_FU)
-};
-
-static int svdm_response_modes(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) {
- memcpy(payload + 1, vdo_dp_modes, sizeof(vdo_dp_modes));
- return ARRAY_SIZE(vdo_dp_modes) + 1;
- } else if (PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) {
- memcpy(payload + 1, vdo_goog_modes, sizeof(vdo_goog_modes));
- return ARRAY_SIZE(vdo_goog_modes) + 1;
- } else {
- return 0; /* nak */
- }
-}
-
-static int dp_status(int port, uint32_t *payload)
-{
- int opos = PD_VDO_OPOS(payload[0]);
- int hpd = gpio_get_level(GPIO_DP_HPD);
- if (opos != OPOS_DP)
- return 0; /* nak */
-
- payload[1] = VDO_DP_STATUS(0, /* IRQ_HPD */
- (hpd == 1), /* HPD_HI|LOW */
- 0, /* request exit DP */
- 0, /* request exit USB */
- 0, /* MF pref */
- gpio_get_level(GPIO_PD_SBU_ENABLE),
- 0, /* power low */
- 0x2);
- return 2;
-}
-
-static int dp_config(int port, uint32_t *payload)
-{
- if (PD_DP_CFG_DPON(payload[1]))
- gpio_set_level(GPIO_PD_SBU_ENABLE, 1);
- return 1;
-}
-
-static int svdm_enter_mode(int port, uint32_t *payload)
-{
- int rv = 0; /* will generate a NAK */
-
- /* SID & mode request is valid */
- if ((PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) &&
- (PD_VDO_OPOS(payload[0]) == OPOS_DP)) {
- alt_mode[PD_AMODE_DISPLAYPORT] = OPOS_DP;
- rv = 1;
- pd_log_event(PD_EVENT_VIDEO_DP_MODE, 0, 1, NULL);
- } else if ((PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) &&
- (PD_VDO_OPOS(payload[0]) == OPOS_GFU)) {
- alt_mode[PD_AMODE_GOOGLE] = OPOS_GFU;
- rv = 1;
- }
-
- if (rv)
- /*
- * If we failed initial mode entry we'll have enumerated the USB
- * Billboard class. If so we should disconnect.
- */
- usb_disconnect();
-
- return rv;
-}
-
-int pd_alt_mode(int port, enum tcpci_msg_type type, uint16_t svid)
-{
- if (type != TCPCI_MSG_SOP)
- return 0;
-
- if (svid == USB_SID_DISPLAYPORT)
- return alt_mode[PD_AMODE_DISPLAYPORT];
- else if (svid == USB_VID_GOOGLE)
- return alt_mode[PD_AMODE_GOOGLE];
- return 0;
-}
-
-static int svdm_exit_mode(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) {
- gpio_set_level(GPIO_PD_SBU_ENABLE, 0);
- alt_mode[PD_AMODE_DISPLAYPORT] = 0;
- pd_log_event(PD_EVENT_VIDEO_DP_MODE, 0, 0, NULL);
- } else if (PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) {
- alt_mode[PD_AMODE_GOOGLE] = 0;
- } else {
- CPRINTF("Unknown exit mode req:0x%08x\n", payload[0]);
- }
-
- return 1; /* Must return ACK */
-}
-
-static struct amode_fx dp_fx = {
- .status = &dp_status,
- .config = &dp_config,
-};
-
-const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = &svdm_response_svids,
- .modes = &svdm_response_modes,
- .enter_mode = &svdm_enter_mode,
- .amode = &dp_fx,
- .exit_mode = &svdm_exit_mode,
-};
-
-int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- int rsize;
-
- if (PD_VDO_VID(payload[0]) != USB_VID_GOOGLE ||
- !alt_mode[PD_AMODE_GOOGLE])
- return 0;
-
- *rpayload = payload;
-
- rsize = pd_custom_flash_vdm(port, cnt, payload);
- if (!rsize) {
- int cmd = PD_VDO_CMD(payload[0]);
- switch (cmd) {
- case VDO_CMD_GET_LOG:
- rsize = pd_vdm_get_log_entry(payload);
- break;
- default:
- /* Unknown : do not answer */
- return 0;
- }
- }
-
- /* respond (positively) to the request */
- payload[0] |= VDO_SRC_RESPONDER;
-
- return rsize;
-}
diff --git a/board/coffeecake/vif_override.xml b/board/coffeecake/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/coffeecake/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/collis/battery.c b/board/collis/battery.c
deleted file mode 100644
index 5da46e9caa..0000000000
--- a/board/collis/battery.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C490] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWQd3jB",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000c,
- .disconnect_val = 0x000c,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0004,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C490;
diff --git a/board/collis/board.c b/board/collis/board.c
deleted file mode 100644
index 42a0f1469a..0000000000
--- a/board/collis/board.c
+++ /dev/null
@@ -1,438 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/sync.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config copano_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &copano_kb;
-}
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Terrador if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_ACTIVE,
-};
-
-static void board_init(void)
-{
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_0_mix",
- .port = I2C_PORT_USB_0_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_0_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_0_MIX_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C4_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C4_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-
-static void kb_backlight_enable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-static const struct usb_mux usbc0_usb3_mb_retimer = {
- .usb_port = USBC_PORT_C0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc0_usb3_mb_retimer,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
-
-/******************************************************************************/
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-static void ps8815_reset(int port)
-{
- int val;
- int i2c_port;
- enum gpio_signal ps8xxx_rst_odl;
-
- if (port == USBC_PORT_C0) {
- ps8xxx_rst_odl = GPIO_USB_C0_RT_RST_ODL;
- i2c_port = I2C_PORT_USB_C0;
- } else if (port == USBC_PORT_C1) {
- ps8xxx_rst_odl = GPIO_USB_C1_RT_RST_ODL;
- i2c_port = I2C_PORT_USB_C1;
- } else {
- return;
- }
-
- gpio_set_level(ps8xxx_rst_odl, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(ps8xxx_rst_odl, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- CPRINTS("[C%d] %s: patching ps8815 registers", port, __func__);
-
- if (i2c_read8(i2c_port,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(i2c_port,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(i2c_port,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- ps8815_reset(USBC_PORT_C0);
- usb_mux_hpd_update(USBC_PORT_C0, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
- ps8815_reset(USBC_PORT_C1);
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
diff --git a/board/collis/board.h b/board/collis/board.h
deleted file mode 100644
index 9bee8e2409..0000000000
--- a/board/collis/board.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the NPCX797FC dose not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-#undef NPCX_PWM1_SEL
-#define NPCX_PWM1_SEL 0 /* GPIO C2 is not used as PWM1 */
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_KX022
-
-/* BMI160 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W, the limitation of 45W is for the Collis
- * board.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */
-
-#undef CONFIG_USB_MUX_RUNTIME_CONFIG
-#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#undef CONFIG_USB_PD_TCPM_RT1715
-#undef CONFIG_USB_PD_TCPM_TUSB422
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-#undef CONFIG_FANS
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_0_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_C490,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/collis/build.mk b/board/collis/build.mk
deleted file mode 100644
index 546bcba8d2..0000000000
--- a/board/collis/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/collis/ec.tasklist b/board/collis/ec.tasklist
deleted file mode 100644
index e76bd368eb..0000000000
--- a/board/collis/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/collis/gpio.inc b/board/collis/gpio.inc
deleted file mode 100644
index 0bd40b8499..0000000000
--- a/board/collis/gpio.inc
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-/*
- * USB_C1 moved from GPIO32 to GPIO83 on boards with board ID >=1.
- * GPIO83/EN_PP1800_A is DNS on board ID 0 and GPIO32 is N/C on board ID >=1
- * so it's safe to define GPIOs compatible with both designs.
- * TODO (b/149858568): remove board ID=0 support.
- */
-GPIO(USB_C0_RT_RST_ODL, PIN(6, 1), GPIO_ODR_LOW) /* USB_C0 Reset */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C0_RT_INT_ODL, PIN(B, 7), GPIO_INPUT)
-GPIO(USB_C1_RT_INT_ODL, PIN(4, 0), GPIO_INPUT)
-GPIO(USB_C0_FRS_EN, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight enable*/
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-
-
-/* LED */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery Full LED / Power LED: White */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery Charging LED: Amber */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
-
-/* Unused signals */
-GPIO(UNUSED_GPIOD4, PIN(D, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOC2, PIN(C, 2), GPIO_INPUT | GPIO_PULL_UP)
-
diff --git a/board/collis/led.c b/board/collis/led.c
deleted file mode 100644
index 508a5eb585..0000000000
--- a/board/collis/led.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/collis/sensors.c b/board/collis/sensors.c
deleted file mode 100644
index 24284649a7..0000000000
--- a/board/collis/sensors.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "cbi_ssfc.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct kionix_accel_data g_kx022_data;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref_icm = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)},
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-static void baseboard_sensors_init(void)
-{
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LID_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID_ACCEL is KX022");
- } else
- ccprints("LID_ACCEL is BMA253");
-
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE ACCEL is ICM426XX");
- } else
- ccprints("BASE ACCEL IS BMI160");
-
- /* Enable interrupt for the accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/collis/vif_override.xml b/board/collis/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/collis/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/copano/battery.c b/board/copano/battery.c
deleted file mode 100644
index add2094b52..0000000000
--- a/board/copano/battery.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C433] = {
- .fuel_gauge = {
- .manuf_name = "AS1GVPc3KB",
- .device_name = "C433-41",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x44,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C433;
diff --git a/board/copano/board.c b/board/copano/board.c
deleted file mode 100644
index 9a20eee45f..0000000000
--- a/board/copano/board.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config copano_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &copano_kb;
-}
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Terrador if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PASSIVE,
-};
-
-static void board_init(void)
-{
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_0_mix",
- .port = I2C_PORT_USB_0_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_0_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_0_MIX_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C4_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C4_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-
-static void kb_backlight_enable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
- /* TODO(b/159025015): Terrador: check USB PD reset operation */
-}
-
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc0_usb4_mb_retimer = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_0_MIX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
-};
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration.
- */
-static void setup_mux(void)
-{
- CPRINTS("C0 supports bb-retimer");
- /* USB-C port 0 have a retimer */
- usb_muxes[USBC_PORT_C0].next_mux = &usbc0_usb4_mb_retimer;
-}
-
-__override void board_cbi_init(void)
-{
- /*
- * TODO(b/159025015): Terrador: check FW_CONFIG fields for USB DB type
- */
- setup_mux();
- /* Reassign USB_C0_RT_RST_ODL */
- bb_controls[USBC_PORT_C0].usb_ls_en_gpio = GPIO_USB_C0_LS_EN;
- bb_controls[USBC_PORT_C0].retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL;
-
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C0_FRS_EN,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C1_FRS_EN,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- /* USB-C port 0 doesn't have a retimer */
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
-
-/******************************************************************************/
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
diff --git a/board/copano/board.h b/board/copano/board.h
deleted file mode 100644
index 1ad6a91361..0000000000
--- a/board/copano/board.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the NPCX797FC dose not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-#undef NPCX_PWM1_SEL
-#define NPCX_PWM1_SEL 0 /* GPIO C2 is not used as PWM1 */
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_KX022
-
-/* BMI160 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 15000
-
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x40
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */
-#define CONFIG_USB_PD_FRS_PPC
-
-#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#undef CONFIG_USB_PD_TCPM_TUSB422
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-#undef CONFIG_FANS
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_0_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_C433,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/copano/build.mk b/board/copano/build.mk
deleted file mode 100644
index 838d6a16ce..0000000000
--- a/board/copano/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/copano/ec.tasklist b/board/copano/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/copano/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/copano/gpio.inc b/board/copano/gpio.inc
deleted file mode 100644
index 3159821e94..0000000000
--- a/board/copano/gpio.inc
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(9, 5), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(D, 2), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-/*
- * USB_C1 moved from GPIO32 to GPIO83 on boards with board ID >=1.
- * GPIO83/EN_PP1800_A is DNS on board ID 0 and GPIO32 is N/C on board ID >=1
- * so it's safe to define GPIOs compatible with both designs.
- * TODO (b/149858568): remove board ID=0 support.
- */
-GPIO(USB_C0_RT_RST_ODL, PIN(6, 1), GPIO_ODR_LOW) /* USB_C0 Reset */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C0_RT_INT_ODL, PIN(B, 7), GPIO_INPUT)
-GPIO(USB_C1_RT_INT_ODL, PIN(4, 0), GPIO_INPUT)
-GPIO(USB_C0_FRS_EN, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight enable*/
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-
-
-/* LED */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery Full LED / Power LED: White */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery Charging LED: Amber */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
-
-/* Unused signals */
-GPIO(UNUSED_GPIOD4, PIN(D, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOC2, PIN(C, 2), GPIO_INPUT | GPIO_PULL_UP)
-
diff --git a/board/copano/led.c b/board/copano/led.c
deleted file mode 100644
index a5b535000a..0000000000
--- a/board/copano/led.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/copano/sensors.c b/board/copano/sensors.c
deleted file mode 100644
index 6a483a5671..0000000000
--- a/board/copano/sensors.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "cbi_ssfc.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct kionix_accel_data g_kx022_data;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref_icm = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)},
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-static void baseboard_sensors_init(void)
-{
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LID_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID_ACCEL is KX022");
- } else
- ccprints("LID_ACCEL is BMA253");
-
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE ACCEL is ICM426XX");
- } else
- ccprints("BASE ACCEL IS BMI160");
-
- /* Enable interrupt for the accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/copano/vif_override.xml b/board/copano/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/copano/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/coral/battery.c b/board/coral/battery.c
deleted file mode 100644
index ebc8071c0d..0000000000
--- a/board/coral/battery.c
+++ /dev/null
@@ -1,702 +0,0 @@
-/* Copyright 2017 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "bd9995x.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/* Number of writes needed to invoke battery cutoff command */
-#define SHIP_MODE_WRITES 2
-
-enum battery_type {
- BATTERY_LGC15,
- BATTERY_LGC203,
- BATTERY_SANYO,
- BATTERY_SONY,
- BATTERY_PANASONIC,
- BATTERY_CELXPERT,
- BATTERY_LGC011,
- BATTERY_SMP011,
- BATTERY_LGC,
- BATTERY_BYD,
- BATTERY_SIMPLO,
- BATTERY_TYPE_COUNT,
-};
-
-struct ship_mode_info {
- const uint8_t reg_addr;
- const uint16_t reg_data[SHIP_MODE_WRITES];
-};
-
-struct fet_info {
- const int mfgacc_support;
- const uint8_t reg_addr;
- const uint16_t reg_mask;
- const uint16_t disconnect_val;
-};
-
-struct fuel_gauge_info {
- const char *manuf_name;
- const char *device_name;
- const struct ship_mode_info ship_mode;
- const struct fet_info fet;
-};
-
-struct board_batt_params {
- const struct fuel_gauge_info fuel_gauge;
- const struct battery_info batt_info;
-};
-
-#define DEFAULT_BATTERY_TYPE BATTERY_SANYO
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-static enum battery_type board_battery_type = BATTERY_TYPE_COUNT;
-
-/* Battery may delay reporting battery present */
-static int battery_report_present = 1;
-
-static int disch_on_ac;
-
-/*
- * Battery info for all Coral battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determing if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropirate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the regsister
- * address, mask, and disconnect value need to be provided.
- */
-static const struct board_batt_params info[] = {
- /* LGC AC15A8J Battery Information */
- [BATTERY_LGC15] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "AC15A8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC C203-36J Battery Information */
- [BATTERY_LGC203] = {
- .fuel_gauge = {
- .manuf_name = "AS1GXXc3KB",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SANYO AC15A3J Battery Information */
- [BATTERY_SANYO] = {
- .fuel_gauge = {
- .manuf_name = "SANYO",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Sony Ap13J4K Battery Information */
- [BATTERY_SONY] = {
- .fuel_gauge = {
- .manuf_name = "SONYCorp",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x8000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Celxpert Li7C3PG0 Battery Information */
- [BATTERY_CELXPERT] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13050, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC\011 L17L3PB0 Battery Information */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13050, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 500, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP\011 L17M3PB0 Battery Information */
- [BATTERY_SMP011] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13050, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC DELL Y07HK Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.553",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 114000, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* BYD DELL FY8XM6C Battery Information */
- [BATTERY_BYD] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 114000, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo () Battery Information */
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI3.72",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0003,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 114900, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
-};
-BUILD_ASSERT(ARRAY_SIZE(info) == BATTERY_TYPE_COUNT);
-
-static inline const struct board_batt_params *board_get_batt_params(void)
-{
- return &info[board_battery_type == BATTERY_TYPE_COUNT ?
- DEFAULT_BATTERY_TYPE : board_battery_type];
-}
-
-/* Get type of the battery connected on the board */
-static int board_get_battery_type(void)
-{
- char manu_name[32], device_name[32];
- int i;
-
- if (!battery_manufacturer_name(manu_name, sizeof(manu_name))) {
- for (i = 0; i < BATTERY_TYPE_COUNT; i++) {
- if (!strcasecmp(manu_name,
- info[i].fuel_gauge.manuf_name)) {
- if (info[i].fuel_gauge.device_name == NULL) {
- board_battery_type = i;
- break;
- } else if (!battery_device_name(device_name,
- sizeof(device_name))) {
- if (!strcasecmp(device_name,
- info[i].fuel_gauge.device_name)) {
- board_battery_type = i;
- break;
- }
- }
- }
- }
- }
-
- return board_battery_type;
-}
-
-/*
- * Initialize the battery type for the board.
- *
- * Very first battery info is called by the charger driver to initialize
- * the charger parameters hence initialize the battery type for the board
- * as soon as the I2C is initialized.
- */
-static void board_init_battery_type(void)
-{
- if (board_get_battery_type() != BATTERY_TYPE_COUNT)
- CPRINTS("found batt:%s",
- info[board_battery_type].fuel_gauge.manuf_name);
- else
- CPRINTS("battery not found");
-}
-DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1);
-
-const struct battery_info *battery_get_info(void)
-{
- return &board_get_batt_params()->batt_info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
- int cmd;
- int data;
-
- /* If battery type is unknown can't send ship mode command */
- if (board_get_battery_type() == BATTERY_TYPE_COUNT)
- return EC_RES_ERROR;
-
- /* Ship mode command must be sent twice to take effect */
- cmd = info[board_battery_type].fuel_gauge.ship_mode.reg_addr;
- data = info[board_battery_type].fuel_gauge.ship_mode.reg_data[0];
- rv = sb_write(cmd, data);
- if (rv != EC_SUCCESS)
- return EC_RES_ERROR;
-
- data = info[board_battery_type].fuel_gauge.ship_mode.reg_data[1];
- rv = sb_write(cmd, data);
-
- return rv ? EC_RES_ERROR : EC_RES_SUCCESS;
-}
-
-static int charger_should_discharge_on_ac(struct charge_state_data *curr)
-{
- /* can not discharge on AC without battery */
- if (curr->batt.is_present != BP_YES)
- return 0;
-
- /* Do not discharge on AC if the battery is still waking up */
- if (!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- !(curr->batt.status & STATUS_FULLY_CHARGED))
- return 0;
-
- /*
- * In light load (<450mA being withdrawn from VSYS) the DCDC of the
- * charger operates intermittently i.e. DCDC switches continuously
- * and then stops to regulate the output voltage and current, and
- * sometimes to prevent reverse current from flowing to the input.
- * This causes a slight voltage ripple on VSYS that falls in the
- * audible noise frequency (single digit kHz range). This small
- * ripple generates audible noise in the output ceramic capacitors
- * (caps on VSYS and any input of DCDC under VSYS).
- *
- * To overcome this issue enable the battery learning operation
- * and suspend USB charging and DC/DC converter.
- */
- if (!battery_is_cut_off() &&
- !(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- (curr->batt.status & STATUS_FULLY_CHARGED))
- return 1;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and charge
- * detect delay has passed.
- */
- if (!chg_ramp_is_detected() && curr->batt.state_of_charge > 2)
- return 1;
-
- return 0;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- disch_on_ac = charger_should_discharge_on_ac(curr);
-
- charger_discharge_on_ac(disch_on_ac);
-
- if (disch_on_ac) {
- curr->state = ST_DISCHARGE;
- return 0;
- }
-
- return 0;
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_EC_BATT_PRES_L) ? BP_NO : BP_YES;
-}
-
-
-static int battery_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- !!(batt_status & STATUS_INITIALIZED);
-}
-
-/* Allow booting now that the battery has woke up */
-static void battery_now_present(void)
-{
- CPRINTS("battery will now report present");
- battery_report_present = 1;
-}
-DECLARE_DEFERRED(battery_now_present);
-
-/*
- * This function checks the charge/dishcarge FET status bits. Each battery type
- * supported provides the register address, mask, and disconnect value for these
- * 2 FET status bits. If the FET status matches the disconnected value, then
- * BATTERY_DISCONNECTED is returned. This function is required to handle the
- * cases when the fuel gauge is awake and will return a non-zero state of
- * charge, but is not able yet to provide power (i.e. discharge FET is not
- * active). By returning BATTERY_DISCONNECTED the AP will not be powered up
- * until either the external charger is able to provided enough power, or
- * the battery is able to provide power and thus prevent a brownout when the
- * AP is powered on by the EC.
- */
-static int battery_check_disconnect(void)
-{
- int rv;
- int reg;
- uint8_t data[6];
-
- /* If battery type is not known, can't check CHG/DCHG FETs */
- if (board_battery_type == BATTERY_TYPE_COUNT) {
- /* Keep trying to determine the battery type */
- board_init_battery_type();
- if (board_battery_type == BATTERY_TYPE_COUNT)
- /* Still don't know, so return here */
- return BATTERY_DISCONNECT_ERROR;
- }
-
- /* Read the status of charge/discharge FETs */
- if (info[board_battery_type].fuel_gauge.fet.mfgacc_support == 1) {
- rv = sb_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- /* Get the lowest 16bits of the OperationStatus() data */
- reg = data[2] | data[3] << 8;
- } else
- rv = sb_read(info[board_battery_type].fuel_gauge.fet.reg_addr,
- &reg);
-
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
-
- CPRINTS("Battery FET: reg 0x%04x mask 0x%04x disc 0x%04x", reg,
- info[board_battery_type].fuel_gauge.fet.reg_mask,
- info[board_battery_type].fuel_gauge.fet.disconnect_val);
- reg &= info[board_battery_type].fuel_gauge.fet.reg_mask;
- if (reg == info[board_battery_type].fuel_gauge.fet.disconnect_val)
- return BATTERY_DISCONNECTED;
-
- return BATTERY_NOT_DISCONNECTED;
-}
-
-/*
- * Physical detection of battery.
- */
-
-enum battery_present battery_is_present(void)
-{
- enum battery_present batt_pres;
- static int battery_report_present_timer_started;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * Make sure battery status is implemented, I2C transactions are
- * success & the battery status is Initialized to find out if it
- * is a working battery and it is not in the cut-off mode.
- *
- * FETs are turned off after Power Shutdown time.
- * The device will wake up when a voltage is applied to PACK.
- * Battery status will be inactive until it is initialized.
- */
- if (batt_pres == BP_YES && batt_pres_prev != batt_pres &&
- (battery_is_cut_off() != BATTERY_CUTOFF_STATE_NORMAL ||
- battery_check_disconnect() != BATTERY_NOT_DISCONNECTED ||
- battery_init() == 0)) {
- battery_report_present = 0;
- /*
- * When this path is taken, the _timer_started flag must be
- * reset so the 'else if' path will be entered and the
- * battery_report_present flag can be set by the deferred
- * call. This handles the case of the battery being disconected
- * and reconnected while running or if battery_init() returns an
- * error due to a failed sb_read.
- */
- battery_report_present_timer_started = 0;
- } else if (batt_pres == BP_YES && batt_pres_prev == BP_NO &&
- !battery_report_present_timer_started) {
- /*
- * Wait 1/2 second before reporting present if it was
- * previously reported as not present
- */
- battery_report_present_timer_started = 1;
- battery_report_present = 0;
- hook_call_deferred(&battery_now_present_data, 500 * MSEC);
- }
-
- if (!battery_report_present)
- batt_pres = BP_NO;
-
- batt_pres_prev = batt_pres;
-
- return batt_pres;
-}
-
-int board_battery_initialized(void)
-{
- return battery_hw_present() == batt_pres_prev;
-}
-
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-#define PARAM_LEARN_MODE 0x10001
-#define PARAM_DISCONNECT_STATE 0x10002
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- switch (param) {
- case PARAM_LEARN_MODE:
- *value = disch_on_ac;
- return EC_SUCCESS;
- case PARAM_DISCONNECT_STATE:
- *value = battery_check_disconnect();
- return EC_SUCCESS;
- default:
- return EC_RES_INVALID_PARAM;
- }
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/coral/board.c b/board/coral/board.c
deleted file mode 100644
index a563071294..0000000000
--- a/board/coral/board.c
+++ /dev/null
@@ -1,1027 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Coral board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/als_opt3001.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_angle.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_sense.h"
-#include "motion_lid.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "sku.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define IN_ALL_SYS_PG POWER_SIGNAL_MASK(X86_ALL_SYS_PG)
-#define IN_PGOOD_PP3300 POWER_SIGNAL_MASK(X86_PGOOD_PP3300)
-#define IN_PGOOD_PP5000 POWER_SIGNAL_MASK(X86_PGOOD_PP5000)
-
-#define USB_PD_PORT_ANX74XX 0
-#define USB_PD_PORT_PS8751 1
-
-static int sku_id;
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
-static void anx74xx_cable_det_handler(void)
-{
- int cable_det = gpio_get_level(GPIO_USB_C0_CABLE_DET);
- int reset_n = gpio_get_level(GPIO_USB_C0_PD_RST_L);
-
- /*
- * A cable_det low->high transition was detected. If following the
- * debounce time, cable_det is high, and reset_n is low, then ANX3429 is
- * currently in standby mode and needs to be woken up. Set the
- * TCPC_RESET event which will bring the ANX3429 out of standby
- * mode. Setting this event is gated on reset_n being low because the
- * ANX3429 will always set cable_det when transitioning to normal mode
- * and if in normal mode, then there is no need to trigger a tcpc reset.
- */
- if (cable_det && !reset_n)
- task_set_event(TASK_ID_PD_C0, PD_EVENT_TCPC_RESET);
-}
-DECLARE_DEFERRED(anx74xx_cable_det_handler);
-
-void anx74xx_cable_det_interrupt(enum gpio_signal signal)
-{
- /* debounce for 2 msec */
- hook_call_deferred(&anx74xx_cable_det_handler_data, (2 * MSEC));
-}
-#endif
-
-/*
- * enable_input_devices() is called by the tablet_mode ISR, but changes the
- * state of GPIOs, so its definition must reside after including gpio_list.
- * Use DECLARE_DEFERRED to generate enable_input_devices_data.
- */
-static void enable_input_devices(void);
-DECLARE_DEFERRED(enable_input_devices);
-
-#define LID_DEBOUNCE_US (30 * MSEC) /* Debounce time for lid switch */
-void tablet_mode_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&enable_input_devices_data, LID_DEBOUNCE_US);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Vfs = Vref = 2.816V, 10-bit unsigned reading */
- [ADC_TEMP_SENSOR_CHARGER] = {
- "CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
- [ADC_TEMP_SENSOR_AMB] = {
- "AMBIENT", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
- [ADC_BOARD_ID] = {
- "BRD_ID", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
- [ADC_BOARD_SKU_1] = {
- "BRD_SKU_1", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
- [ADC_BOARD_SKU_0] = {
- "BRD_SKU_0", NPCX_ADC_CH4, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { 4, PWM_CONFIG_DSLEEP, 100 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc0", NPCX_I2C_PORT0_0, 400,
- GPIO_EC_I2C_USB_C0_PD_SCL, GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", NPCX_I2C_PORT0_1, 400,
- GPIO_EC_I2C_USB_C1_PD_SCL, GPIO_EC_I2C_USB_C1_PD_SDA},
- {"accelgyro", I2C_PORT_GYRO, 400,
- GPIO_EC_I2C_GYRO_SCL, GPIO_EC_I2C_GYRO_SDA},
- {"sensors", NPCX_I2C_PORT2, 400,
- GPIO_EC_I2C_SENSOR_SCL, GPIO_EC_I2C_SENSOR_SDA},
- {"batt", NPCX_I2C_PORT3, 100,
- GPIO_EC_I2C_POWER_SCL, GPIO_EC_I2C_POWER_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#ifdef CONFIG_CMD_I2C_STRESS_TEST
-struct i2c_stress_test i2c_stress_tests[] = {
-/* NPCX_I2C_PORT0_0 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC
- {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = ANX74XX_I2C_ADDR1_FLAGS,
- .i2c_test = &anx74xx_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT0_1 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC
- {
- .port = NPCX_I2C_PORT0_1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .i2c_test = &ps8xxx_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT1 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ACCEL
- {
- .port = I2C_PORT_GYRO,
- .addr_flags = BMI160_ADDR0_FLAGS,
- .i2c_test = &bmi160_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT2 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ACCEL
- {
- .port = I2C_PORT_LID_ACCEL,
- .addr_flags = KX022_ADDR1_FLAGS,
- .i2c_test = &kionix_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT3 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_BATTERY
- {
- .i2c_test = &battery_i2c_stress_test_dev,
- },
-#endif
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_CHARGER
- {
- .i2c_test = &bd9995x_i2c_stress_test_dev,
- },
-#endif
-};
-const int i2c_test_dev_used = ARRAY_SIZE(i2c_stress_tests);
-#endif /* CONFIG_CMD_I2C_STRESS_TEST */
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ANX74XX] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = ANX74XX_I2C_ADDR1_FLAGS,
- },
- .drv = &anx74xx_tcpm_drv,
- },
- [USB_PD_PORT_PS8751] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = BD9995X_ADDR_FLAGS,
- .drv = &bd9995x_drv,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-static int ps8751_tune_mux(const struct usb_mux *me)
-{
- /* 0x98 sets lower EQ of DP port (4.5db) */
- mux_write(me, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
- return EC_SUCCESS;
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ANX74XX] = {
- .usb_port = USB_PD_PORT_ANX74XX,
- .driver = &anx74xx_tcpm_usb_mux_driver,
- .hpd_update = &anx74xx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_PS8751] = {
- .usb_port = USB_PD_PORT_PS8751,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .board_init = &ps8751_tune_mux,
- }
-};
-
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_USB1_ENABLE,
-};
-
-/**
- * Power on (or off) a single TCPC.
- * minimum on/off delays are included.
- *
- * @param port Port number of TCPC.
- * @param mode 0: power off, 1: power on.
- */
-void board_set_tcpc_power_mode(int port, int mode)
-{
- if (port != USB_PD_PORT_ANX74XX)
- return;
-
- switch (mode) {
- case ANX74XX_NORMAL_MODE:
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 1);
- msleep(ANX74XX_PWR_H_RST_H_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- break;
- case ANX74XX_STANDBY_MODE:
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- msleep(ANX74XX_RST_L_PWR_L_DELAY_MS);
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 0);
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- break;
- default:
- break;
- }
-}
-
-/**
- * Reset all system PD/TCPC MCUs -- currently only called from
- * handle_pending_reboot() in common/power.c just before hard
- * resetting the system. This logic is likely not needed as the
- * PP3300_A rail should be dropped on EC reset.
- */
-void board_reset_pd_mcu(void)
-{
- /* Assert reset to TCPC1 (ps8751) */
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 0);
-
- /* Assert reset to TCPC0 (anx3429) */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
-
- /* TCPC1 (ps8751) requires 1ms reset down assertion */
- msleep(MAX(1, ANX74XX_RST_L_PWR_L_DELAY_MS));
-
- /* Deassert reset to TCPC1 */
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 1);
- /* Disable TCPC0 power */
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 0);
-
- /*
- * anx3429 requires 10ms reset/power down assertion
- */
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- board_set_tcpc_power_mode(USB_PD_PORT_ANX74XX, 1);
-}
-
-static void board_tcpc_init(void)
-{
- int reg;
- int count = 0;
-
- /* Wait for disconnected battery to wake up */
- while (battery_hw_present() == BP_YES &&
- battery_is_present() == BP_NO) {
- usleep(100 * MSEC);
- /* Give up waiting after 2 seconds */
- if (++count > 20)
- break;
- }
-
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /*
- * TODO: Remove when Coral is updated with PS8751 A3.
- *
- * Force PS8751 A2 to wake from low power mode.
- * If PS8751 remains in low power mode after sysjump,
- * TCPM_INIT will fail due to not able to access PS8751.
- *
- * NOTE: PS8751 A3 will wake on any I2C access.
- */
- i2c_read8(NPCX_I2C_PORT0_1, 0x08, 0xA0, &reg);
-
- /* Enable TCPC0 interrupt */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable TCPC1 interrupt */
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
- /* Enable CABLE_DET interrupt for ANX3429 wake from standby */
- gpio_enable_interrupt(GPIO_USB_C0_CABLE_DET);
-#endif
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_DEFAULT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Called by APL power state machine when transitioning from G3 to S5 */
-void chipset_pre_init_callback(void)
-{
- /*
- * No need to re-init PMIC since settings are sticky across sysjump.
- * However, be sure to check that PMIC is already enabled. If it is
- * then there's no need to re-sequence the PMIC.
- */
- if (system_jumped_to_this_image() && gpio_get_level(GPIO_PMIC_EN))
- return;
-
- /* Enable PP5000 before PP3300 due to NFC: chrome-os-partner:50807 */
- gpio_set_level(GPIO_EN_PP5000, 1);
- while (!gpio_get_level(GPIO_PP5000_PG))
- ;
-
- /*
- * To prevent SLP glitches, PMIC_EN (V5A_EN) should be enabled
- * at the same time as PP3300 (chrome-os-partner:51323).
- */
- /* Enable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 1);
- while (!gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /* Enable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 1);
-}
-
-static void board_set_tablet_mode(void)
-{
- int tablet_mode = 0;
-
- if (SKU_IS_CONVERTIBLE(sku_id))
- tablet_mode = !gpio_get_level(GPIO_TABLET_MODE_L);
-
- tablet_set_mode(tablet_mode, TABLET_TRIGGER_LID);
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Ensure tablet mode is initialized according to the hardware state
- * so that the cached state reflects reality. */
- board_set_tablet_mode();
-
- gpio_enable_interrupt(GPIO_TABLET_MODE_L);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_L);
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Need to read SKU ID at least once each boot */
- sku_id = BOARD_VERSION_UNKNOWN;
-}
-/* PP3300 needs to be enabled before TCPC init hooks */
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_FIRST);
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port != 0 && port != 1)
- panic("Invalid charge port\n");
-
- return bd9995x_is_vbus_provided(port);
-}
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- enum bd9995x_charge_port bd9995x_port;
- int bd9995x_port_select = 1;
-
- switch (charge_port) {
- case USB_PD_PORT_ANX74XX:
- case USB_PD_PORT_PS8751:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
-
- bd9995x_port = charge_port;
- break;
- case CHARGE_PORT_NONE:
- bd9995x_port_select = 0;
- bd9995x_port = BD9995X_CHARGE_PORT_BOTH;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and
- * charge detect delay has passed.
- */
- if (charge_get_percent() > 2)
- charger_discharge_on_ac(1);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- CPRINTS("New chg p%d", charge_port);
-
- return bd9995x_select_input_port(bd9995x_port, bd9995x_port_select);
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Enable charging trigger by BC1.2 detection */
- int bc12_enable = (supplier == CHARGE_SUPPLIER_BC12_CDP ||
- supplier == CHARGE_SUPPLIER_BC12_DCP ||
- supplier == CHARGE_SUPPLIER_BC12_SDP ||
- supplier == CHARGE_SUPPLIER_OTHER);
-
- if (bd9995x_bc12_enable_charging(port, bc12_enable))
- return;
-
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-/**
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < BD9995X_BC12_MIN_VOLTAGE;
-}
-
-static void enable_input_devices(void)
-{
- /* We need to turn on tablet mode for motion sense */
- board_set_tablet_mode();
-
- /* Then, we disable peripherals only when the lid reaches 360 position.
- * (It's probably already disabled by motion_sense_task.)
- * We deliberately do not enable peripherals when the lid is leaving
- * 360 position. Instead, we let motion_sense_task enable it once it
- * reaches laptop zone (180 or less). */
- if (tablet_get_mode())
- lid_angle_peripheral_enable(0);
-}
-
-/* Enable or disable input devices, based on chipset state and tablet mode */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /* If the lid is in 360 position, ignore the lid angle,
- * which might be faulty. Disable keyboard.
- */
- if (tablet_get_mode() || chipset_in_state(CHIPSET_STATE_ANY_OFF))
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- /* Enable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 1);
-
- /* Enable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 0);
-
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Disable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 0);
-
- /* Disable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 1);
-
- hook_call_deferred(&enable_input_devices_data, 0);
- /* FIXME(dhendrix): Drive USB_PD_RST_ODL low to prevent
- leakage? (see comment in schematic) */
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-/* FIXME(dhendrix): Add CHIPSET_RESUME and CHIPSET_SUSPEND
- hooks to enable/disable sensors? */
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*
- * FIXME(dhendrix): Weak symbol hack until we can get a better solution for
- * both Amenia and Coral.
- */
-void chipset_do_shutdown(void)
-{
- /* Disable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 0);
-
- /*Disable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 0);
- while (gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /*Disable 5V rail */
- gpio_set_level(GPIO_EN_PP5000, 0);
- while (gpio_get_level(GPIO_PP5000_PG))
- ;
-}
-
-void board_hibernate_late(void)
-{
- int i;
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs in hibernate */
- {GPIO_BAT_LED_BLUE, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_AMBER, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_LID_OPEN, GPIO_INT_RISING | GPIO_PULL_DOWN},
-
- /*
- * BD99956 handles charge input automatically. We'll disable
- * charge output in hibernate. Charger will assert ACOK_OD
- * when VBUS or VCC are plugged in.
- */
- {GPIO_USB_C0_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- {GPIO_USB_C1_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- };
-
- /* Change GPIOs' state in hibernate for better power consumption */
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-
- gpio_config_module(MODULE_KEYBOARD_SCAN, 0);
-
- /*
- * Calling gpio_config_module sets disabled alternate function pins to
- * GPIO_INPUT. But to prevent keypresses causing leakage currents
- * while hibernating we want to enable GPIO_PULL_UP as well.
- */
- gpio_set_flags_by_mask(0x2, 0x03, GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags_by_mask(0x1, 0x7F, GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags_by_mask(0x0, 0xE0, GPIO_INPUT | GPIO_PULL_UP);
- /* KBD_KSO2 needs to have a pull-down enabled instead of pull-up */
- gpio_set_flags_by_mask(0x1, 0x80, GPIO_INPUT | GPIO_PULL_DOWN);
-}
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t mag_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* FIXME(dhendrix): Copied from Amenia, probably need to tweak for Coral */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_LID_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_hibernate(void)
-{
- /*
- * To support hibernate called from console commands, ectool commands
- * and key sequence, shutdown the AP before hibernating.
- */
- chipset_do_shutdown();
-
- /* Added delay to allow AP to settle down */
- msleep(100);
-
- /* Enable both the VBUS & VCC ports before entering PG3 */
- bd9995x_select_input_port(BD9995X_CHARGE_PORT_BOTH, 1);
-
- /* Turn BGATE OFF for saving the power */
- bd9995x_set_power_save_mode(BD9995X_PWR_SAVE_MAX);
-}
-
-static void board_set_motion_sensor_count(uint8_t sku_id)
-{
- /*
- * There are two possible sensor configurations. Clamshell device will
- * not have any of the motion sensors populated, while convertible
- * devices have the BMI160 Accel/Gryo and Kionx KX022 lid acceleration
- * sensor. If a new SKU id is used that is not in the table, then the
- * number of motion sensors will remain as ARRAY_SIZE(motion_sensors).
- */
- motion_sensor_count = SKU_IS_CONVERTIBLE(sku_id) ?
- ARRAY_SIZE(motion_sensors) : 0;
-
- CPRINTS("Motion Sensor Count = %d", motion_sensor_count);
-}
-
-struct {
- enum coral_board_version version;
- int thresh_mv;
-} const coral_board_versions[] = {
- /* Vin = 3.3V, Ideal voltage, R2 values listed below */
- /* R1 = 51.1 kOhm */
- { BOARD_VERSION_1, 200 }, /* 124 mV, 2.0 Kohm */
- { BOARD_VERSION_2, 366 }, /* 278 mV, 4.7 Kohm */
- { BOARD_VERSION_3, 550 }, /* 456 mV, 8.2 Kohm */
- { BOARD_VERSION_4, 752 }, /* 644 mV, 12.4 Kohm */
- { BOARD_VERSION_5, 927}, /* 860 mV, 18.0 Kohm */
- { BOARD_VERSION_6, 1073 }, /* 993 mV, 22.0 Kohm */
- { BOARD_VERSION_7, 1235 }, /* 1152 mV, 27.4 Kohm */
- { BOARD_VERSION_8, 1386 }, /* 1318 mV, 34.0 Kohm */
- { BOARD_VERSION_9, 1552 }, /* 1453 mV, 40.2 Kohm */
- /* R1 = 10.0 kOhm */
- { BOARD_VERSION_10, 1739 }, /* 1650 mV, 10.0 Kohm */
- { BOARD_VERSION_11, 1976 }, /* 1827 mV, 12.4 Kohm */
- { BOARD_VERSION_12, 2197 }, /* 2121 mV, 18.0 Kohm */
- { BOARD_VERSION_13, 2344 }, /* 2269 mV, 22.0 Kohm */
- { BOARD_VERSION_14, 2484 }, /* 2418 mV, 27.4 Kohm */
- { BOARD_VERSION_15, 2636 }, /* 2550 mV, 34.0 Kohm */
- { BOARD_VERSION_16, 2823 }, /* 2721 mV, 47.0 Kohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(coral_board_versions) == BOARD_VERSION_COUNT);
-
-static int board_read_version(enum adc_channel chan)
-{
- int mv;
- int i;
-
- /* ID/SKU enable is active high */
- gpio_set_flags(GPIO_EC_BRD_ID_EN, GPIO_OUT_HIGH);
- /* Wait to allow cap charge */
- msleep(1);
- mv = adc_read_channel(chan);
- CPRINTS("ID/SKU ADC %d = %d mV", chan, mv);
- /* Disable ID/SKU circuit */
- gpio_set_flags(GPIO_EC_BRD_ID_EN, GPIO_INPUT);
-
- if (mv == ADC_READ_ERROR)
- return BOARD_VERSION_UNKNOWN;
-
- for (i = 0; i < BOARD_VERSION_COUNT; i++)
- if (mv < coral_board_versions[i].thresh_mv)
- return coral_board_versions[i].version;
-
- return BOARD_VERSION_UNKNOWN;
-}
-
-int board_get_version(void)
-{
- static int version = BOARD_VERSION_UNKNOWN;
-
- if (version != BOARD_VERSION_UNKNOWN)
- return version;
-
- version = board_read_version(ADC_BOARD_ID);
-
- CPRINTS("Board version: %d", version);
- return version;
-}
-
-static void sku_id_init(void)
-{
- int sku_id_lower;
- int sku_id_higher;
-
- if (sku_id == BOARD_VERSION_UNKNOWN) {
- sku_id_lower = board_read_version(ADC_BOARD_SKU_0);
- sku_id_higher = board_read_version(ADC_BOARD_SKU_1);
- if ((sku_id_lower != BOARD_VERSION_UNKNOWN) &&
- (sku_id_higher != BOARD_VERSION_UNKNOWN))
- sku_id = (sku_id_higher << 4) | sku_id_lower;
- CPRINTS("SKU ID: %d", sku_id);
- /* Use sku_id to set motion sensor count */
- board_set_motion_sensor_count(sku_id);
-
- if (0 == SKU_IS_CONVERTIBLE(sku_id)) {
- CPRINTS("Disable tablet mode interrupt");
- gpio_disable_interrupt(GPIO_TABLET_MODE_L);
- /* Enfore device in laptop mode */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- }
- }
-}
-/* This can't run until after the ADC module has been initialized */
-DECLARE_HOOK(HOOK_INIT, sku_id_init, HOOK_PRIO_INIT_ADC + 1);
-
-static void print_form_factor_list(int low, int high)
-{
- int id;
- int count = 0;
-
- if (high > 255)
- high = 255;
- for (id = low; id <= high; id++) {
- ccprintf("SKU ID %03d: %s\n", id, SKU_IS_CONVERTIBLE(id) ?
- "Convertible" : "Clamshell");
- /* Don't print too many lines at once */
- if (!(++count % 5))
- msleep(20);
- }
-}
-
-static int command_sku(int argc, char **argv)
-{
- enum adc_channel chan;
-
- if (argc < 2) {
- system_get_sku_id();
- ccprintf("SKU ID: %d\n", sku_id);
- return EC_SUCCESS;
- }
-
- if (!strcasecmp(argv[1], "form")) {
- if (argc >= 4) {
- char *e;
- int low, high;
-
- low = strtoi(argv[2], &e, 10);
- if (*e)
- return EC_ERROR_PARAM1;
-
- high = strtoi(argv[3], &e, 10);
- if (*e)
- return EC_ERROR_PARAM2;
- print_form_factor_list(low, high);
- return EC_SUCCESS;
- } else {
- return EC_ERROR_PARAM_COUNT;
- }
- }
-
- if (!strcasecmp(argv[1], "board"))
- chan = ADC_BOARD_ID;
- else if (!strcasecmp(argv[1], "line0"))
- chan = ADC_BOARD_SKU_0;
- else if (!strcasecmp(argv[1], "line1"))
- chan = ADC_BOARD_SKU_1;
- else
- return EC_ERROR_PARAM1;
-
- ccprintf("sku: %s = %d, adc %d\n", argv[1], board_read_version(chan),
- chan);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(sku, command_sku,
- "<board|line0|line1|form [low high]>",
- "Get board id, sku, form factor");
-
-__override uint32_t board_get_sku_id(void)
-{
- if (sku_id == BOARD_VERSION_UNKNOWN)
- sku_id_init();
-
- return (uint32_t)sku_id;
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- uint32_t sku = system_get_sku_id();
-
- /*
- * We always compile in backlight support for coral, but only some
- * models come with the hardware. Therefore, check if the current
- * device is one of them and return the default value - with backlight
- * here.
- */
- if (sku == 8 || sku == 11)
- return flags0;
-
- // Report that there is no keyboard backlight
- flags0 &= ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB);
-
- return flags0;
-}
diff --git a/board/coral/board.h b/board/coral/board.h
deleted file mode 100644
index 24b0ecf86e..0000000000
--- a/board/coral/board.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Coral board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * By default, enable all console messages except Events:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~CC_MASK(CC_EVENTS))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BATT_MFG_ACCESS
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define BD9995X_IOUT_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_IOUT_GAIN_SET_20V
-
-#define CONFIG_CHARGER_PSYS_READ
-#define BD9995X_PSYS_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_PMON_GAIN_SET_02UAW
-
-#define CONFIG_CMD_I2C_STRESS_TEST
-#define CONFIG_CMD_I2C_STRESS_TEST_ACCEL
-#define CONFIG_CMD_I2C_STRESS_TEST_ALS
-#define CONFIG_CMD_I2C_STRESS_TEST_BATTERY
-#define CONFIG_CMD_I2C_STRESS_TEST_CHARGER
-#define CONFIG_CMD_I2C_STRESS_TEST_TCPC
-
-/* Port80 */
-#undef CONFIG_PORT80_HISTORY_LEN
-#define CONFIG_PORT80_HISTORY_LEN 256
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGE_STATE_DEBUG
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_BD9995X
-#define CONFIG_CHARGER_BD9995X_CHGEN
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_MAINTAIN_VBAT
-#undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
-#define CONFIG_USB_CHARGER
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_SIMPLE
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A_CHARGE_EN_L
-#define GPIO_USB_CTL1 GPIO_EN_PP5000
-
-#define CONFIG_TABLET_MODE
-
-/* USB PD config */
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX /* for both PS8751 and ANX3429 */
-#define CONFIG_USB_PD_TCPM_ANX3429
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_COMM_LOCKED
-
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* SoC / PCH */
-#define CONFIG_HOSTCMD_LPC
-#define CONFIG_CHIPSET_APOLLOLAKE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_FPU
-/* Region sizes are not a power of 2 so we can't use MPU */
-#undef CONFIG_MPU
-#define CONFIG_HOSTCMD_FLASH_SPI_INFO
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_DPTF
-#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND EC_WIRELESS_SWITCH_WLAN_POWER
-#define CONFIG_WLAN_POWER_ACTIVE_LOW
-#define WIRELESS_GPIO_WLAN_POWER GPIO_WIRELESS_GPIO_WLAN_POWER
-#define CONFIG_PWR_STATE_DISCHARGE_FULL
-
-/*
- * During shutdown sequence TPS65094x PMIC turns off the sensor rails
- * asynchronously to the EC. If we access the sensors when the sensor power
- * rails are off we get I2C errors. To avoid this issue, defer switching
- * the sensors rate if in S3. By the time deferred function is serviced if
- * the chipset is in S5 we can back out from switching the sensor rate.
- *
- * Time taken by V1P8U rail to go down from S3 is 30ms to 60ms hence defer
- * the sensor switching after 60ms.
- */
-#undef CONFIG_MOTION_SENSE_SUSPEND_DELAY_US
-#define CONFIG_MOTION_SENSE_SUSPEND_DELAY_US (MSEC * 60)
-
-#define CONFIG_FLASH_SIZE_BYTES 524288
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q40 /* FIXME: Should be GD25LQ40? */
-
-/*
- * Enable 1 slot of secure temporary storage to support
- * suspend/resume with read/write memory training.
- */
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-/* Optional feature - used by nuvoton */
-#define NPCX_UART_MODULE2 1 /* 0:GPIO10/11 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 1:GPIOD5/E2/D4/E5 as JTAG*/
-/* FIXME(dhendrix): these pins are just normal GPIOs on Coral. Do we need
- * to change some other setting to put them in GPIO mode? */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_GYRO NPCX_I2C_PORT1
-#define I2C_PORT_LID_ACCEL NPCX_I2C_PORT2
-#define I2C_PORT_BATTERY NPCX_I2C_PORT3
-#define I2C_PORT_CHARGER NPCX_I2C_PORT3
-/* Accelerometer and Gyroscope are the same device. */
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-
-/* Sensors */
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_MAG_CALIBRATE
-#define CONFIG_ACCEL_KX022
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER, /* ADC0 */
- ADC_TEMP_SENSOR_AMB, /* ADC1 */
- ADC_BOARD_ID, /* ADC2 */
- ADC_BOARD_SKU_1, /* ADC3 */
- ADC_BOARD_SKU_0, /* ADC4 */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY = 0,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-#define CONFIG_HOSTCMD_SKUID
-enum coral_board_version {
- BOARD_VERSION_UNKNOWN = -1,
- BOARD_VERSION_1,
- BOARD_VERSION_2,
- BOARD_VERSION_3,
- BOARD_VERSION_4,
- BOARD_VERSION_5,
- BOARD_VERSION_6,
- BOARD_VERSION_7,
- BOARD_VERSION_8,
- BOARD_VERSION_9,
- BOARD_VERSION_10,
- BOARD_VERSION_11,
- BOARD_VERSION_12,
- BOARD_VERSION_13,
- BOARD_VERSION_14,
- BOARD_VERSION_15,
- BOARD_VERSION_16,
- BOARD_VERSION_COUNT,
-};
-
-/* TODO: determine the following board specific type-C power constants */
-/* FIXME(dhendrix): verify all of the below PD_* numbers */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Reset PD MCU */
-void board_reset_pd_mcu(void);
-
-int board_get_version(void);
-
-void board_set_tcpc_power_mode(int port, int mode);
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/coral/build.mk b/board/coral/build.mk
deleted file mode 100644
index 728d027803..0000000000
--- a/board/coral/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/coral/ec.tasklist b/board/coral/ec.tasklist
deleted file mode 100644
index eeebc0cc59..0000000000
--- a/board/coral/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/coral/gpio.inc b/board/coral/gpio.inc
deleted file mode 100644
index 8e52eeeed2..0000000000
--- a/board/coral/gpio.inc
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(CHARGER_INT_L, PIN(3, 3), GPIO_INT_FALLING, bd9995x_vbus_interrupt) /* CHARGER_EC_INT_ODL from BD99956 */
-/*
- * TODO: The pull ups for Parade TCPC interrupt line can be removed in versions
- * of board following EVT in which daughter card (which has an external pull up)
- * will always be inserted.
- */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING, tcpc_alert_event) /* from Analogix TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event) /* from Parade TCPC */
-
-GPIO_INT(USB_C0_CABLE_DET, PIN(C, 5), GPIO_INT_RISING, anx74xx_cable_det_interrupt) /* CABLE_DET from ANX3429 */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(7, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(7, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(6, 0), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(5, 0), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt) /* ACOK_OD from BD99956 */
-/* TODO: We might remove external pull-up for POWER_BUTTON_L in EVT */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(LID_OPEN, PIN(6, 7), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(8, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Tablet switch is active-low. L: lid is attached (360 position) H: detached */
-GPIO_INT(TABLET_MODE_L, PIN(3, 6), GPIO_INT_BOTH, tablet_mode_interrupt)
-
-GPIO_INT(WP_L, PIN(4, 0), GPIO_INT_BOTH | GPIO_SEL_1P8V, switch_interrupt) /* EC_WP_ODL */
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(9, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- bmi160_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(C, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* I2C GPIOs will be set to alt. function later. */
-GPIO(EC_I2C_GYRO_SDA, PIN(8, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_GYRO_SCL, PIN(9, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(9, 1), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SCL, PIN(9, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(D, 1), GPIO_INPUT)
-
-/*
- * LPC:
- * Pins 46, 47, 51, 52, 53, 54, 55, default to LPC mode.
- * Pin 56 (CLKRUN#) defaults to GPIO mode.
- * Pin 57 (SER_IRQ) defaults to LPC mode, but we also have EC_PCH_KB_INT_ODL
- * (Pin B0) in case it doesn't work (Set CONFIG_KEYBOARD_IRQ_GPIO in this case).
- *
- * See also the NO_LPC_ESPI bit in DEVALT1 and the CONFIG_HOSTCMD_SHI option.
- */
-
-GPIO(PCH_SMI_L, PIN(A, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SMI_ODL */
-GPIO(PCH_SCI_L, PIN(A, 7), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SCI_ODL */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(7, 5), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/* Enable for board and SKU ID ADCs */
-GPIO(EC_BRD_ID_EN, PIN(3, 5), GPIO_INPUT)
-
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT)
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC_ENTERING_RW */
-
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW)
-GPIO(EC_BATT_PRES_L, PIN(3, 4), GPIO_INPUT)
-GPIO(PMIC_EN, PIN(8, 5), GPIO_OUT_LOW)
-GPIO(EN_PP3300, PIN(C, 2), GPIO_OUT_LOW)
-GPIO(PP3300_PG, PIN(6, 2), GPIO_INPUT)
-GPIO(EN_PP5000, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(PP5000_PG, PIN(7, 1), GPIO_INPUT)
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 2), GPIO_ODR_LOW)
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(A, 1), GPIO_OUT_LOW)
-GPIO(PCH_SYS_PWROK, PIN(E, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK */
-GPIO(ENABLE_BACKLIGHT, PIN(9, 7), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-
-GPIO(WIRELESS_GPIO_WLAN_POWER, PIN(6, 6), GPIO_ODR_HIGH) /* EN_PP3300_WLAN_ODL */
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(A, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-GPIO(PCH_PWRBTN_L, PIN(0, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-GPIO(PCH_WAKE_L, PIN(8, 1), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(USB_C0_HPD_1P8_ODL, PIN(9, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(USB_C1_HPD_1P8_ODL, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-
-GPIO(USB2_OTG_VBUSSENSE, PIN(9, 5), GPIO_OUTPUT)
-
-/* EC_PCH_RTCRST is a sledgehammer for resetting SoC state and should rarely
- * be used. Set as input for now, we'll set it as an output when we want to use
- * it. Has external pull-down resistor. */
-GPIO(EC_PCH_RTCRST, PIN(B, 7), GPIO_INPUT)
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-
-/* FIXME: What, if anything, to do about EC_RST_ODL on VCC1_RST#? */
-
-GPIO(CHARGER_RST_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(USB_A_CHARGE_EN_L, PIN(8, 4), GPIO_OUT_LOW)
-GPIO(USB1_ENABLE, PIN(0, 0), GPIO_OUT_HIGH)
-GPIO(EN_USB_TCPC_PWR, PIN(C, 3), GPIO_OUT_LOW)
-
-GPIO(USB_C0_PD_RST_L, PIN(0, 3), GPIO_OUT_LOW) /* USB_C0_PD_RST_L */
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-
-/*
- * Configure as input to enable @ 1.5A, output-low to turn off, or output-high
- * to enable @ 3A.
- */
-GPIO(USB_C0_5V_EN, PIN(D, 3), GPIO_OUT_LOW | GPIO_PULL_UP) /* EN_USB_C0_5V_OUT, Enable C0 */
-GPIO(USB_C1_5V_EN, PIN(D, 2), GPIO_OUT_LOW | GPIO_PULL_UP) /* EN_USB_C1_5V_OUT, Enable C1 */
-
-GPIO(BAT_LED_BLUE, PIN(8, 0), GPIO_OUT_HIGH)
-GPIO(BAT_LED_AMBER, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(POWER_LED, PIN(0, 2), GPIO_OUT_HIGH)
-
-
-/*
- * Alternate function pins
- */
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(0, 0xe0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_KB_OUTPUT_COL2)
-
-/* Board and SKU ID ADC inputs (GPIO 41, 42, 43) */
-ALTERNATE(PIN_MASK(4, 0x02), 1, MODULE_ADC, 0)
-ALTERNATE(PIN_MASK(4, 0x04), 1, MODULE_ADC, 0)
-ALTERNATE(PIN_MASK(4, 0x08), 1, MODULE_ADC, 0)
-
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 for EC_I2C_GYRO_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 for EC_I2C_GYRO_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO92-91 for EC_I2C_SENSOR_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB5-B4 for EC_I2C_USB_C0_PD_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB3-B2 for EC_I2C_USB_C1_PD_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD1-D0 for EC_I2C_POWER_SDA/SCL */
-
-ALTERNATE(PIN(B, 6), 3, MODULE_PWM, 0) /* PWM KB Backlight */
-
-/* FIXME: Make UART RX an interrupt? */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
diff --git a/board/coral/led.c b/board/coral/led.c
deleted file mode 100644
index 2a1e39946c..0000000000
--- a/board/coral/led.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/* Copyright 2016 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.
- *
- * Power and battery LED control for Coral
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-#define LED_INDEFINITE -1
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-#define LED_CHARGE_LEVEL_1_DEFAULT 100
-#define LED_CHARGE_LEVEL_1_ROBO 5
-#define LED_POWER_BLINK_ON_MSEC 3000
-#define LED_POWER_BLINK_OFF_MSEC 600
-#define LED_POWER_ON_TICKS (LED_POWER_BLINK_ON_MSEC / HOOK_TICK_INTERVAL_MS)
-#define LED_POWER_OFF_TICKS (LED_POWER_BLINK_OFF_MSEC / HOOK_TICK_INTERVAL_MS)
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-#define GPIO_LED_COLOR_1 GPIO_BAT_LED_AMBER
-#define GPIO_LED_COLOR_2 GPIO_BAT_LED_BLUE
-#define GPIO_LED_COLOR_3 GPIO_POW_LED
-
-enum led_phase {
- LED_PHASE_0,
- LED_PHASE_1,
- LED_NUM_PHASES
-};
-
-enum led_color {
- LED_OFF,
- LED_COLOR_1,
- LED_COLOR_2,
- LED_COLOR_BOTH,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_states {
- STATE_CHARGING_LVL_1,
- STATE_CHARGING_LVL_2,
- STATE_CHARGING_LVL_3,
- STATE_DISCHARGE_S0,
- STATE_DISCHARGE_S3,
- STATE_DISCHARGE_S5,
- STATE_BATTERY_ERROR,
- STATE_FACTORY_TEST,
- LED_NUM_STATES
-};
-
-struct led_descriptor {
- int8_t color;
- int8_t time;
-};
-
-struct led_info {
- enum led_states state;
- uint8_t charge_lvl_1;
- const struct led_descriptor (*state_table)[LED_NUM_PHASES];
- void (*update_power)(void);
-};
-
-/*
- * LED state tables describe the desired LED behavior for a each possible
- * state. The LED state is based on both chip power state and the battery charge
- * level. The first parameter is the color and the 2nd parameter is the time in
- * ticks, where each tick is 200 msec. If the time parameter is set to -1, that
- * means it is a non-blinking pattern.
- */
-
-/* COLOR_1 = Amber, COLOR_2 = Blue */
-static const struct led_descriptor led_default_state_table[][LED_NUM_PHASES] = {
- { {LED_COLOR_1, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_2, LED_INDEFINITE}, {LED_COLOR_1, LED_INDEFINITE} },
- { {LED_COLOR_2, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_2, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_1, 1 * LED_ONE_SEC }, {LED_OFF, 3 * LED_ONE_SEC} },
- { {LED_OFF, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_1, 1 * LED_ONE_SEC}, {LED_OFF, 1 * LED_ONE_SEC} },
- { {LED_COLOR_1, 2 * LED_ONE_SEC}, {LED_COLOR_2, 2 * LED_ONE_SEC} },
-};
-
-/* COLOR_1 = Green, COLOR_2 = Red */
-static const struct led_descriptor led_robo_state_table[][LED_NUM_PHASES] = {
- { {LED_COLOR_2, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_BOTH, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_1, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_OFF, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_OFF, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_OFF, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_2, 1 * LED_ONE_SEC}, {LED_OFF, 1 * LED_ONE_SEC} },
- { {LED_COLOR_2, 2 * LED_ONE_SEC}, {LED_COLOR_1, 2 * LED_ONE_SEC} },
-};
-
-static const struct led_descriptor led_nasher_state_table[][LED_NUM_PHASES] = {
- { {LED_COLOR_1, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_2, LED_INDEFINITE}, {LED_COLOR_1, LED_INDEFINITE} },
- { {LED_COLOR_2, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_2, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_2, 1 * LED_ONE_SEC}, {LED_OFF, 1 * LED_ONE_SEC} },
- { {LED_OFF, LED_INDEFINITE}, {LED_OFF, LED_INDEFINITE} },
- { {LED_COLOR_1, 1 * LED_ONE_SEC}, {LED_OFF, 1 * LED_ONE_SEC} },
- { {LED_COLOR_1, 2 * LED_ONE_SEC}, {LED_COLOR_2, 2 * LED_ONE_SEC} },
-};
-
-static struct led_info led;
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_LED_COLOR_1, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_COLOR_2, LED_OFF_LVL);
- break;
- case LED_COLOR_1:
- gpio_set_level(GPIO_LED_COLOR_1, LED_ON_LVL);
- gpio_set_level(GPIO_LED_COLOR_2, LED_OFF_LVL);
- break;
- case LED_COLOR_2:
- gpio_set_level(GPIO_LED_COLOR_1, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_COLOR_2, LED_ON_LVL);
- break;
- case LED_COLOR_BOTH:
- gpio_set_level(GPIO_LED_COLOR_1, LED_ON_LVL);
- gpio_set_level(GPIO_LED_COLOR_2, LED_ON_LVL);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-static void led_set_color_power(int level)
-{
- gpio_set_level(GPIO_POWER_LED, level);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(LED_COLOR_2);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LED_COLOR_1);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(LED_COLOR_2);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(LED_COLOR_1);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static enum led_states led_get_state(void)
-{
- int charge_lvl;
- enum led_states new_state = LED_NUM_STATES;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Get percent charge */
- charge_lvl = charge_get_percent();
- /* Determine which charge state to use */
- new_state = charge_lvl <= led.charge_lvl_1 ?
- STATE_CHARGING_LVL_1 : STATE_CHARGING_LVL_2;
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- new_state = STATE_CHARGING_LVL_3;
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE /* and PWR_STATE_DISCHARGE_FULL */:
- if (chipset_in_state(CHIPSET_STATE_ON))
- new_state = STATE_DISCHARGE_S0;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- new_state = STATE_DISCHARGE_S3;
- else
- new_state = STATE_DISCHARGE_S5;
- break;
- case PWR_STATE_ERROR:
- new_state = STATE_BATTERY_ERROR;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- new_state = STATE_CHARGING_LVL_3;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (charge_get_flags() & CHARGE_FLAG_FORCE_IDLE)
- new_state = STATE_FACTORY_TEST;
- else
- new_state = STATE_DISCHARGE_S0;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- return new_state;
-}
-
-static void led_update_battery(void)
-{
- static int ticks;
- int phase;
- enum led_states desired_state = led_get_state();
-
- /* Get updated state based on power state and charge level */
- if (desired_state < LED_NUM_STATES && desired_state != led.state) {
- /* State is changing */
- led.state = desired_state;
- /* Reset ticks counter when state changes */
- ticks = 0;
- }
-
- /*
- * Determine the which phase of the state table to use. Assume it's
- * phase 0. If the time values for both phases of the current state are
- * not -1, then this state uses some blinking pattern. The phase is then
- * determined by taking the modulo of ticks by the blinking pattern
- * period.
- */
- phase = 0;
- if ((led.state_table[led.state][LED_PHASE_0].time != LED_INDEFINITE) &&
- (led.state_table[led.state][LED_PHASE_1].time != LED_INDEFINITE)) {
- int period;
-
- period = led.state_table[led.state][LED_PHASE_0].time +
- led.state_table[led.state][LED_PHASE_1].time;
- if (period)
- phase = ticks % period <
- led.state_table[led.state][LED_PHASE_0].time ?
- 0 : 1;
- }
-
- /* Set the color for the given state and phase */
- led_set_color_battery(led.state_table[led.state][phase].color);
- ticks++;
-}
-
-static void led_robo_update_power(void)
-{
- int level;
- static int ticks;
-
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- /* In S0 power LED is always on */
- level = LED_ON_LVL;
- ticks = 0;
- } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- led.state <= STATE_CHARGING_LVL_3) {
- int period;
-
- /*
- * If in suspend/standby and the device is charging, then the
- * power LED is off for 600 msec, on for 3 seconds.
- */
- period = LED_POWER_ON_TICKS + LED_POWER_OFF_TICKS;
- level = ticks % period < LED_POWER_OFF_TICKS ?
- LED_OFF_LVL : LED_ON_LVL;
- ticks++;
- } else {
- level = LED_OFF_LVL;
- ticks = 0;
- }
-
- led_set_color_power(level);
-}
-
-/* Called by hook task every hook tick (200 msec) */
-static void led_update(void)
-{
- /* Update battery LED */
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- led_update_battery();
- if (led.update_power != NULL)
- (*led.update_power)();
- }
-}
-DECLARE_HOOK(HOOK_TICK, led_update, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- int sku = system_get_sku_id();
-
- if ((sku >= 70 && sku <= 79) || (sku >= 124 && sku <= 125) ||
- (sku >= 144 && sku <= 145)) {
- led.charge_lvl_1 = LED_CHARGE_LEVEL_1_ROBO;
- led.state_table = led_robo_state_table;
- led.update_power = led_robo_update_power;
- } else if (sku >= 160 && sku <= 166) {
- led.charge_lvl_1 = LED_CHARGE_LEVEL_1_DEFAULT;
- led.state_table = led_nasher_state_table;
- led.update_power = NULL;
- } else {
- led.charge_lvl_1 = LED_CHARGE_LEVEL_1_DEFAULT;
- led.state_table = led_default_state_table;
- led.update_power = NULL;
- }
- led_set_color_battery(LED_OFF);
-}
-/* Make sure this comes after SKU ID hook */
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_DEFAULT + 2);
diff --git a/board/coral/sku.h b/board/coral/sku.h
deleted file mode 100644
index 4588932377..0000000000
--- a/board/coral/sku.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Coral SKU ID Table */
-
-#ifndef __CROS_EC_SKU_H
-#define __CROS_EC_SKU_H
-
-#define SKU_CONVERTIBLE(id) (1 << ((id) & 0x7))
-
-/*
- * There are 256 possible SKUs for Coral. This table is used to map a given SKU
- * ID to its form factor, which is then used to determine number of motion
- * sensors. A bit value of 0 is for clamshell and a bit value of 1 indicates a
- * convertible device. The assumption is all devices are defined as clamshells
- * unless SKU_CONVERTIBLE(id) is spelled out in the initialization.
- */
-static const uint8_t form_factor[32] = {
- /* SKU 0 - 7 */
- SKU_CONVERTIBLE(4) | SKU_CONVERTIBLE(5),
- /* SKU 8 - 15 */
- SKU_CONVERTIBLE(8) | SKU_CONVERTIBLE(9) | SKU_CONVERTIBLE(10) |
- SKU_CONVERTIBLE(11),
- /* SKU 16 - 23 */
- 0x00,
- /* SKU 24 - 31 */
- 0x00,
- /* SKU 32 - 39 */
- 0x00,
- /* SKU 40 - 47 */
- 0x00,
- /* SKU 48 - 55 */
- 0x00,
- /* SKU 56 - 63 */
- 0x00,
- /* SKU 64 - 71 */
- SKU_CONVERTIBLE(71),
- /* SKU 72 - 79 */
- 0x00,
- /* SKU 80 - 87 */
- 0x00,
- /* SKU 88 - 95 */
- 0x00,
- /* SKU 96 - 103 */
- 0x00,
- /* SKU 104 - 111 */
- 0x00,
- /* SKU 112 - 119 */
- 0x00,
- /* SKU 120 - 127 */
- 0x00,
- /* SKU 128 - 135 */
- 0x00,
- /* SKU 136 - 143 */
- 0x00,
- /* SKU 144 - 151 */
- 0x00,
- /* SKU 152 - 159 */
- 0x00,
- /* SKU 160 - 167 */
- SKU_CONVERTIBLE(163) | SKU_CONVERTIBLE(164) | SKU_CONVERTIBLE(165) |
- SKU_CONVERTIBLE(166),
- /* SKU 168 - 175 */
- 0x00,
- /* SKU 176 - 183 */
- 0x00,
- /* SKU 184 - 191 */
- 0x00,
- /* SKU 192 - 199 */
- 0x00,
- /* SKU 200 - 207 */
- 0x00,
- /* SKU 208 - 215 */
- 0x00,
- /* SKU 216 - 223 */
- 0x00,
- /* SKU 224 - 231 */
- 0x00,
- /* SKU 232 - 239 */
- 0x00,
- /* SKU 240 - 247 */
- 0x00,
- /* SKU 248 - 255 */
- 0x00,
-};
-
-#define SKU_IS_CONVERTIBLE(id) ((form_factor[(id) >> 3] >> ((id) & 0x7)) & 1)
-
-#endif /* __CROS_EC_SKU_H */
diff --git a/board/coral/usb_pd_policy.c b/board/coral/usb_pd_policy.c
deleted file mode 100644
index e071f6ae2a..0000000000
--- a/board/coral/usb_pd_policy.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio = port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN;
- int flags = (vbus_rp[port] == TYPEC_RP_1A5 && vbus_en[port]) ?
- (GPIO_INPUT | GPIO_PULL_UP) : (GPIO_OUTPUT | GPIO_PULL_UP);
-
- /*
- * Driving USB_Cx_5V_EN high, actually put a 16.5k resistance
- * (2x 33k in parallel) on the NX5P3290 load switch ILIM pin,
- * setting a minimum OCP current of 3186 mA.
- * Putting an internal pull-up on USB_Cx_5V_EN, effectively put a 33k
- * resistor on ILIM, setting a minimum OCP current of 1505 mA.
- */
- gpio_set_level(gpio, vbus_en[port]);
- gpio_set_flags(gpio, flags);
-}
-
-void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Ensure we're not charging from this port */
- bd9995x_select_input_port(port, 0);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_EN_PP5000);
-}
diff --git a/board/coral/vif_override.xml b/board/coral/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/coral/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/corori/battery.c b/board/corori/battery.c
deleted file mode 100644
index 405a69751a..0000000000
--- a/board/corori/battery.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "gpio.h"
-#include "util.h"
-
-/*
- * Battery info for lalala battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* C21N2018 Battery Information
- * TODO(b:196506846):Need to be verified on the Proto
- */
- [BATTERY_C21N2018] = {
- .fuel_gauge = {
- .manuf_name = "AS3GXXD3KA",
- .device_name = "C110160",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- },
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7890,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C21N2018;
diff --git a/board/corori/board.c b/board/corori/board.c
deleted file mode 100644
index 323a5a8d71..0000000000
--- a/board/corori/board.c
+++ /dev/null
@@ -1,488 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lalala board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_config.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-#define ADC_VOL_UP_MASK BIT(0)
-#define ADC_VOL_DOWN_MASK BIT(1)
-
-
-/******************************************************************************/
-/* USB-A Configuration */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
-};
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff, 0xff, /* full set */
- },
-};
-
-static const struct ec_response_keybd_config lalala_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &lalala_keybd;
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(73),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_thermal(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_b;
-}
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-static void set_5v_gpio(int level)
-{
- gpio_set_level(GPIO_EN_PP5000, level);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC.
- */
- set_5v_gpio(!!enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* Initialize THERMAL */
- setup_thermal();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-static void board_extpower(void)
-{
- int extpower_present;
-
- if (pd_is_connected(0))
- extpower_present = extpower_is_present();
- else
- extpower_present = 0;
-
- gpio_set_level(GPIO_EC_ACOK_OTG, extpower_present);
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-const struct i2c_port_t i2c_ports[] = {
- {
- "eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA
- },
-
- {
- "battery", I2C_PORT_BATTERY, 100, GPIO_EC_I2C_BATTERY_SCL,
- GPIO_EC_I2C_BATTERY_SDA
- },
-
-#ifdef HAS_TASK_MOTIONSENSE
- {
- "sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA
- },
-#endif
-
- {
- "usbc0", I2C_PORT_USB_C0, 1000, GPIO_EC_I2C_USB_C0_SCL,
- GPIO_EC_I2C_USB_C0_SDA
- },
-#if CONFIG_USB_PD_PORT_MAX_COUNT > 1
- {
- "sub_usbc1", I2C_PORT_SUB_USB_C1, 1000,
- GPIO_EC_I2C_SUB_USB_C1_SCL, GPIO_EC_I2C_SUB_USB_C1_SDA
- },
-#endif
-};
diff --git a/board/corori/board.h b/board/corori/board.h
deleted file mode 100644
index 33370ecd27..0000000000
--- a/board/corori/board.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lalala board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KEEBY_EC_NPCX797FC
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_CMD_CHARGER_DUMP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* Keyboard */
-
-#define CONFIG_KEYBOARD_KEYPAD
-
-/* LED defines */
-#define CONFIG_LED_COMMON
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
-#define GPIO_BAT_LED_AMBER GPIO_LED_Y_ODL
-#define GPIO_PWR_LED_WHITE GPIO_LED_W_ODL
-
-
-/* PWM */
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* Temp sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Common USB-A defines */
-#define USB_PORT_COUNT 1
-
-/******************************************************************************/
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-enum battery_type {
- BATTERY_C21N2018,
- BATTERY_TYPE_COUNT,
-};
-
-int board_is_sourcing_vbus(int port);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/corori/build.mk b/board/corori/build.mk
deleted file mode 100644
index b012d8d502..0000000000
--- a/board/corori/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=keeby
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/corori/cbi_ssfc.c b/board/corori/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/corori/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/corori/cbi_ssfc.h b/board/corori/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/corori/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/corori/ec.tasklist b/board/corori/ec.tasklist
deleted file mode 100644
index 0025c2985b..0000000000
--- a/board/corori/ec.tasklist
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/corori/gpio.inc b/board/corori/gpio.inc
deleted file mode 100644
index 5f6f119648..0000000000
--- a/board/corori/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(A, 2), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Button interrupts */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(7, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-
-/* Extra Sub-board I/O pins */
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(6, 3), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(EC_CBI_WP, PIN(E, 5), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED_W_ODL, PIN(C, 3), GPIO_OUT_HIGH) /* POWER LED */
-GPIO(LED_Y_ODL, PIN(C, 4), GPIO_OUT_HIGH) /* BATTERY LED */
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* USB pins */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-
-GPIO(EC_ACOK_OTG, PIN(C, 0), GPIO_OUT_LOW) /* OTG-OVP protect enable */
-/*
- * Lalala doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO34_NC, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO43_NC, PIN(4, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO60_NC, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO75_NC, PIN(7, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO37_NC, PIN(3, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF2_NC, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF3_NC, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO50_NC, PIN(5, 0), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/corori/led.c b/board/corori/led.c
deleted file mode 100644
index 96a43caa76..0000000000
--- a/board/corori/led.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for lalala
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-#define LED_INDEFINITE UINT8_MAX
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-#define LED_OFF EC_LED_COLOR_COUNT
-
-struct led_descriptor {
- enum ec_led_colors color;
- uint8_t time;
-};
-
-enum led_phase {
- LED_PHASE_0,
- LED_PHASE_1,
- LED_NUM_PHASES
-};
-
-enum led_states {
- STATE_CHARGING,
- STATE_CHARGING_FULL_CHARGE,
- STATE_DISCHARGE_S0,
- STATE_DISCHARGE_S0_BAT_LOW,
- STATE_BATTERY_S0_ERROR,
- STATE_BATTERY_S3_BLINK,
- STATE_BATTERY_S5_OFF,
- STATE_FACTORY_TEST,
- LED_NUM_STATES
-};
-
-static const struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_BATTERY_S0_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_BATTERY_S3_BLINK] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_BATTERY_S5_OFF] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-
-static int led_get_charge_percent(void)
-{
- return DIV_ROUND_NEAREST(charge_get_display_charge(), 10);
-}
-
-void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_AMBER, LED_ON_LVL);
- gpio_set_level(GPIO_PWR_LED_WHITE, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_BAT_LED_AMBER, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_WHITE, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_AMBER, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_WHITE, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
-
-/* Custom led on off states control */
-static enum led_states led_get_state(void)
-{
- enum led_states new_state = LED_NUM_STATES;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- new_state = STATE_CHARGING;
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- new_state = STATE_CHARGING_FULL_CHARGE;
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE /* and PWR_STATE_DISCHARGE_FULL */:
- if (chipset_in_state(CHIPSET_STATE_ON))
- new_state = (led_get_charge_percent() < 10) ?
- STATE_DISCHARGE_S0_BAT_LOW : STATE_DISCHARGE_S0;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- new_state = STATE_BATTERY_S3_BLINK;
- else
- new_state = STATE_BATTERY_S5_OFF;
- break;
- case PWR_STATE_ERROR:
- if (chipset_in_state(CHIPSET_STATE_ON))
- new_state = STATE_BATTERY_S0_ERROR;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- new_state = STATE_BATTERY_S3_BLINK;
- else
- new_state = STATE_BATTERY_S5_OFF;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- new_state = STATE_CHARGING_FULL_CHARGE;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (charge_get_flags() & CHARGE_FLAG_FORCE_IDLE)
- new_state = STATE_FACTORY_TEST;
- else
- new_state = STATE_DISCHARGE_S0;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- return new_state;
-}
-
-static void led_update_battery(void)
-{
- static uint8_t ticks, period;
- static int led_state = LED_NUM_STATES;
- int phase;
- enum led_states desired_state = led_get_state();
-
- /*
- * We always need to check the current state since the value could
- * have been manually overwritten. If we're in a new valid state,
- * update our ticks and period info. If our new state isn't defined,
- * continue using the previous one.
- */
- if (desired_state != led_state && desired_state < LED_NUM_STATES) {
- /* State is changing */
- led_state = desired_state;
- /* Reset ticks and period when state changes */
- ticks = 0;
-
- period = led_bat_state_table[led_state][LED_PHASE_0].time +
- led_bat_state_table[led_state][LED_PHASE_1].time;
-
- }
-
- /* If this state is undefined, turn the LED off */
- if (period == 0) {
- led_set_color_battery(LED_OFF);
- return;
- }
-
- /*
- * Determine which phase of the state table to use. The phase is
- * determined if it falls within first phase time duration.
- */
- phase = ticks < led_bat_state_table[led_state][LED_PHASE_0].time ?
- 0 : 1;
- ticks = (ticks + 1) % period;
-
- /* Set the color for the given state and phase */
- led_set_color_battery(led_bat_state_table[led_state][phase].color);
-}
-
-static void led_init(void)
-{
- /* If battery LED is enabled, set it to "off" to start with */
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_color_battery(LED_OFF);
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_DEFAULT);
-
-/* Called by hook task every hook tick (200 msec) */
-static void led_update(void)
-{
- /*
- * If battery LED is enabled, set its state based on our power and
- * charge
- */
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_update_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_update, HOOK_PRIO_DEFAULT);
diff --git a/board/corori/usb_pd_policy.c b/board/corori/usb_pd_policy.c
deleted file mode 100644
index fd9018a3f0..0000000000
--- a/board/corori/usb_pd_policy.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/corori/vif_override.xml b/board/corori/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/corori/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/cozmo b/board/cozmo
deleted file mode 120000
index 9ed6f26875..0000000000
--- a/board/cozmo
+++ /dev/null
@@ -1 +0,0 @@
-icarus \ No newline at end of file
diff --git a/board/cret/battery.c b/board/cret/battery.c
deleted file mode 100644
index f60b610a6a..0000000000
--- a/board/cret/battery.c
+++ /dev/null
@@ -1,634 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all waddledoo battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* BYD Battery Information */
- [BATTERY_BYD_1VX1H] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .device_name = "DELL 1VX1H",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* BYD Battery Information */
- [BATTERY_BYD_YT39X] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .device_name = "DELL YT39X",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* BYD Battery Information */
- [BATTERY_BYD_X0Y5M] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .device_name = "DELL X0Y5M",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC Battery Information */
- [BATTERY_LGC_FDRHM] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.65",
- .device_name = "DELL FDRHM",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11460,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC Battery Information */
- [BATTERY_LGC_8GHCX] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.65",
- .device_name = "DELL 8GHCX",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11460,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
-
- /* SWD-ATL Battery Information */
- [BATTERY_SWD_ATL_WJPC4] = {
- .fuel_gauge = {
- .manuf_name = "SWD-ATL3.618",
- .device_name = "DELL WJPC4",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-ATL Battery Information */
- [BATTERY_SWD_ATL_CTGKT] = {
- .fuel_gauge = {
- .manuf_name = "SWD-ATL3.618",
- .device_name = "DELL CTGKT",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-COS Battery Information */
- [BATTERY_SWD_COS_WJPC4] = {
- .fuel_gauge = {
- .manuf_name = "SWD-COS3.634",
- .device_name = "DELL WJPC4",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-COS Battery Information */
- [BATTERY_SWD_COS_CTGKT] = {
- .fuel_gauge = {
- .manuf_name = "SWD-COS3.634",
- .device_name = "DELL CTGKT",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-ATL Battery Information */
- [BATTERY_SMP_ATL_VM732] = {
- .fuel_gauge = {
- .manuf_name = "SMP-ATL-3.61",
- .device_name = "DELL VM732",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-ATL Battery Information */
- [BATTERY_SMP_ATL_26JGK] = {
- .fuel_gauge = {
- .manuf_name = "SMP-ATL-3.61",
- .device_name = "DELL 26JGK",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-ATL Battery Information */
- [BATTERY_SMP_ATL_RF9H3] = {
- .fuel_gauge = {
- .manuf_name = "SMP-ATL-3.61",
- .device_name = "DELL RF9H3",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-COS Battery Information */
- [BATTERY_SMP_COS_VM732] = {
- .fuel_gauge = {
- .manuf_name = "SMP-COS3.63",
- .device_name = "DELL VM732",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-COS Battery Information */
- [BATTERY_SMP_COS_26JGK] = {
- .fuel_gauge = {
- .manuf_name = "SMP-COS3.63",
- .device_name = "DELL 26JGK",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
- /* SMP-COS Battery Information */
- [BATTERY_SMP_COS_RF9H3] = {
- .fuel_gauge = {
- .manuf_name = "SMP-COS3.63",
- .device_name = "DELL RF9H3",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* BYD 16DPHYMD Battery Information */
- [BATTERY_BYD16] = {
- .fuel_gauge = {
- .manuf_name = "BYD-BYD3.685",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC Battery Information */
- [BATTERY_LGC3] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.553",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO Battery Information */
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI3.72",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO-LISHEN 7T0D3YMD Battery Information */
- [BATTERY_SIMPLO_LS] = {
- .fuel_gauge = {
- .manuf_name = "SMP-LS3.66",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_BYD_1VX1H;
diff --git a/board/cret/board.c b/board/cret/board.c
deleted file mode 100644
index 34091c0518..0000000000
--- a/board/cret/board.c
+++ /dev/null
@@ -1,607 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledoo board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dso.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_8042.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-static void fw_config_tablet_mode(void);
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- int hdmi_hpd_odl = gpio_get_level(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, !hdmi_hpd_odl);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-void board_init(void)
-{
- int on;
-
- /* Enable C0 interrupt and check if it needs processing */
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- /* Enable interrupt for passing through HPD */
- gpio_enable_interrupt(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- fw_config_tablet_mode();
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Enable HDMI any time the SoC is on */
-static void hdmi_enable(void)
-{
- if (get_cbi_fw_config_hdmi() == HDMI_PRESENT) {
- gpio_set_level(GPIO_EC_HDMI_EN_ODL, 0);
- gpio_set_level(GPIO_HDMI_PP3300_EN, 1);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, hdmi_enable, HOOK_PRIO_DEFAULT);
-
-static void hdmi_disable(void)
-{
- if (get_cbi_fw_config_hdmi() == HDMI_PRESENT) {
- gpio_set_level(GPIO_EC_HDMI_EN_ODL, 1);
- gpio_set_level(GPIO_HDMI_PP3300_EN, 0);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, hdmi_disable, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-#ifdef BOARD_WADDLEDOO
-static void reconfigure_5v_gpio(void)
-{
- /*
- * b/147257497: On early waddledoo boards, GPIO_EN_PP5000 was swapped
- * with GPIO_VOLUP_BTN_ODL. Therefore, we'll actually need to set that
- * GPIO instead for those boards. Note that this breaks the volume up
- * button functionality.
- */
- if (system_get_board_version() < 0) {
- CPRINTS("old board - remapping 5V en");
- gpio_set_flags(GPIO_VOLUP_BTN_ODL, GPIO_OUT_LOW);
- }
-}
-DECLARE_HOOK(HOOK_INIT, reconfigure_5v_gpio, HOOK_PRIO_INIT_I2C+1);
-#endif /* BOARD_WADDLEDOO */
-
-static void set_5v_gpio(int level)
-{
- gpio_set_level(GPIO_EN_PP5000, level);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC, or send enable signal to HDMI
- * DB.
- */
- set_5v_gpio(!!enable);
-
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- return CHARGER_NUM;
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dso_data lsm6dso_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSO_ST_DATA(lsm6dso_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSO_ST_DATA(lsm6dso_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-/* Keyboard scan setting */
-static const struct ec_response_keybd_config cret_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &cret_keybd;
-}
-
-static void fw_config_tablet_mode(void)
-{
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_PRESENT) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void board_extpower(void)
-{
- int extpower_present;
-
- if (pd_is_connected(0))
- extpower_present = extpower_is_present();
- else
- extpower_present = 0;
-
- gpio_set_level(GPIO_EC_ACOK_OTG, extpower_present);
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
diff --git a/board/cret/board.h b/board/cret/board.h
deleted file mode 100644
index d88ff2267d..0000000000
--- a/board/cret/board.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledoo board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_DEDEDE_EC_NPCX796FC
-#include "baseboard.h"
-
-/* Save some flash space */
-#define CONFIG_CHIP_INIT_ROM_REGION
-#define CONFIG_DEBUG_ASSERT_BRIEF
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-#undef CONFIG_CMD_POWERINDEBUG
-#undef CONFIG_I2C_DEBUG
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/*
- * GPIO for C1 interrupts, for baseboard use
- *
- * Note this line might already have its pull up disabled for HDMI DBs, but
- * it should be fine to set again before z-state.
- */
-#define GPIO_EC_HDMI_EN_ODL GPIO_EC_I2C_SBU_USB_C1_SCL
-#define GPIO_HDMI_PP3300_EN GPIO_SUB_USB_C1_INT_ODL
-
-/* PWM */
-#define CONFIG_PWM
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* LED */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-#define CONFIG_LED_ONOFF_STATES
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-#undef PD_POWER_SUPPLY_TURN_ON_DELAY
-#undef PD_POWER_SUPPLY_TURN_OFF_DELAY
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-/* 20% margin added for these timings */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 13080 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 16080 /* us */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 787 /* us */
-
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSO /* Base accel */
-#define CONFIG_ACCEL_LSM6DSO_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_BYD_1VX1H,
- BATTERY_BYD_YT39X,
- BATTERY_BYD_X0Y5M,
- BATTERY_LGC_FDRHM,
- BATTERY_LGC_8GHCX,
- BATTERY_SWD_ATL_WJPC4,
- BATTERY_SWD_ATL_CTGKT,
- BATTERY_SWD_COS_WJPC4,
- BATTERY_SWD_COS_CTGKT,
- BATTERY_SMP_ATL_VM732,
- BATTERY_SMP_ATL_26JGK,
- BATTERY_SMP_ATL_RF9H3,
- BATTERY_SMP_COS_VM732,
- BATTERY_SMP_COS_26JGK,
- BATTERY_SMP_COS_RF9H3,
- BATTERY_BYD16,
- BATTERY_LGC3,
- BATTERY_SIMPLO,
- BATTERY_SIMPLO_LS,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/cret/build.mk b/board/cret/build.mk
deleted file mode 100644
index af526189dd..0000000000
--- a/board/cret/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=dedede
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/cret/cbi_ssfc.c b/board/cret/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/cret/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/cret/cbi_ssfc.h b/board/cret/cbi_ssfc.h
deleted file mode 100644
index 058290de8d..0000000000
--- a/board/cret/cbi_ssfc.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-/*
- * Bits 9-11
- * Cret board uses SSFC bits 9-11 in coreboot for audio codec.
- */
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/cret/ec.tasklist b/board/cret/ec.tasklist
deleted file mode 100644
index ee5333eb17..0000000000
--- a/board/cret/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/cret/gpio.inc b/board/cret/gpio.inc
deleted file mode 100644
index 352f689620..0000000000
--- a/board/cret/gpio.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* C1 I2C SDA OR HDMI_HPD */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(A, 2), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Button interrupts */
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(7, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dso_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(IMVP9_PE, PIN(E, 0), GPIO_OUT_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(SUB_USB_C1_INT_ODL, PIN(F, 5), GPIO_OUT_LOW) /* 5V power en */
-GPIO(EC_I2C_SBU_USB_C1_SCL, PIN(9, 2), GPIO_ODR_LOW) /* HDMI en */
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-
-GPIO(USB_C0_RST_ODL, PIN(9, 7), GPIO_OUT_HIGH) /* currently unused */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* USB pins */
-GPIO(USB_A0_CHARGE_EN_L, PIN(6, 3), GPIO_OUT_HIGH) /* Reverse: Enable A0 1.5A Charging */
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-
-/*LEDs*/
-GPIO(LED_1_PWR_WHITE_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(LED_2_CHG_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH)
-
-/*
- * Waddledoo doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x04), 0, MODULE_PWM, 0) /* PWM1 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-GPIO(EC_ACOK_OTG, PIN(C, 0), GPIO_OUT_LOW) /* OTG-OVP protect enable */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF2_NC, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF3_NC, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO37_NC, PIN(3, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO34_NC, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO43_NC, PIN(4, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO60_NC, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO72_NC, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/cret/led.c b/board/cret/led.c
deleted file mode 100644
index edfb4ac761..0000000000
--- a/board/cret/led.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 10;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Cret: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
diff --git a/board/cret/usb_pd_policy.c b/board/cret/usb_pd_policy.c
deleted file mode 100644
index 15faf41ffc..0000000000
--- a/board/cret/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/cret/vif_override.xml b/board/cret/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/cret/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/dalboz/analyzestack.yaml b/board/dalboz/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/dalboz/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/dalboz/battery.c b/board/dalboz/battery.c
deleted file mode 100644
index 5a90a767c8..0000000000
--- a/board/dalboz/battery.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Zork battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP L19M3PG1 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* LGC L19L3PG1 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L19L3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* Celxpert L19C3PG1 */
- [BATTERY_CEL] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L19C3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
diff --git a/board/dalboz/board.c b/board/dalboz/board.c
deleted file mode 100644
index e4ee1bfe82..0000000000
--- a/board/dalboz/board.c
+++ /dev/null
@@ -1,672 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "battery_smart.h"
-#include "button.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ioexpander/pcal6408.h"
-#include "driver/ppc/aoz1380.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/retimer/pi3hdx1204.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "driver/usb_mux/ps8740.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usb_charge.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-int I2C_PORT_BATTERY = I2C_PORT_BATTERY_V1;
-
-/* Interrupt handler varies with DB option. */
-void (*c1_tcpc_config_interrupt)(enum gpio_signal signal) = tcpc_alert_event;
-
-void c1_tcpc_interrupt(enum gpio_signal signal)
-{
- c1_tcpc_config_interrupt(signal);
-}
-
-/* Interrupt for C1 PPC with USB-C DB, HPD with HDMI DB. */
-void (*c1_ppc_config_interrupt)(enum gpio_signal signal) = ppc_interrupt;
-
-void c1_ppc_interrupt(enum gpio_signal signal)
-{
- c1_ppc_config_interrupt(signal);
-}
-
-static void hdmi_hpd_handler(void)
-{
- /* Pass HPD through from DB OPT1 HDMI connector to AP's DP1. */
- int hpd = gpio_get_level(GPIO_USB_C1_PPC_INT_ODL);
- gpio_set_level(GPIO_DP1_HPD, hpd);
- ccprints("HDMI HPD %d", hpd);
-}
-DECLARE_DEFERRED(hdmi_hpd_handler);
-
-void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- /* Debounce for 2 msec. */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
-
-#include "gpio_list.h"
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct stprivate_data g_lis2dwl_data;
-static struct lsm6dsm_data g_lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* These IO expander GPIOs vary with DB option. */
-enum gpio_signal IOEX_USB_A1_RETIMER_EN = IOEX_USB_A1_RETIMER_EN_OPT1;
-enum gpio_signal IOEX_USB_A1_CHARGE_EN_DB_L = IOEX_USB_A1_CHARGE_EN_DB_L_OPT1;
-
-static void pcal6408_handler(void)
-{
- pcal6408_ioex_event_handler(IOEX_HDMI_PCAL6408);
-}
-DECLARE_DEFERRED(pcal6408_handler);
-
-void pcal6408_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&pcal6408_handler_data, 0);
-}
-
-const struct pi3hdx1204_tuning pi3hdx1204_tuning = {
- .eq_ch0_ch1_offset = PI3HDX1204_EQ_DB710,
- .eq_ch2_ch3_offset = PI3HDX1204_EQ_DB710,
- .vod_offset = PI3HDX1204_VOD_130_ALL_CHANNELS,
- .de_offset = PI3HDX1204_DE_DB_MINUS5,
-};
-
-/*****************************************************************************
- * Board suspend / resume
- */
-
-static void board_chipset_resume(void)
-{
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 1);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- ioex_set_level(IOEX_EN_PWR_HDMI_DB, 1);
- msleep(PI3HDX1204_POWER_ON_DELAY_MS);
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 1);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_suspend(void)
-{
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 0);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 0);
- ioex_set_level(IOEX_EN_PWR_HDMI_DB, 0);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-static int board_ps8743_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- if (mux_state & USB_PD_MUX_DP_ENABLED)
- /* Enable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 1);
- else
- /* Disable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 0);
-
- return EC_SUCCESS;
-}
-
-
-/*****************************************************************************
- * USB-C
- */
-
-/*
- * USB C0 port SBU mux use standalone FSUSB42UMX
- * chip and it need a board specific driver.
- * Overall, it will use chained mux framework.
- */
-static int fsusb42umx_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
- if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
- else
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 0);
-
- return EC_SUCCESS;
-}
-
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-const struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = fsusb42umx_set_mux,
-};
-
-/*
- * Since FSUSB42UMX is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-const struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
-
-struct usb_mux usbc1_amd_fp5_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .flags = USB_MUX_FLAG_SET_WITHOUT_FLIP,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PS8743_I2C_ADDR1_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .next_mux = &usbc1_amd_fp5_usb_mux,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- /* Device does not talk I2C */
- .drv = &aoz1380_drv
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NX20P3483_ADDR1_FLAGS,
- .drv = &nx20p348x_drv
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_FAULT_ODL:
- aoz1380_interrupt(USBC_PORT_C0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- /*
- * Sensitive only to falling edges; GPIO is configured for both
- * because this input may be used for HDMI HPD instead.
- */
- if (!gpio_get_level(signal))
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
-
- default:
- break;
- }
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTSUSB("Disabling all charger ports");
-
- /* Disable all ports. */
- for (i = 0; i < ppc_cnt; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("Disabling C%d as sink failed.", i);
- }
-
- return EC_SUCCESS;
- } else if (!is_valid_port) {
- return EC_ERROR_INVAL;
- }
-
-
- /* Check if the port is sourcing VBUS. */
- if (ppc_is_sourcing_vbus(port)) {
- CPRINTFUSB("Skip enable C%d", port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTSUSB("New charge port: C%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < ppc_cnt; i++) {
- if (i == port)
- continue;
-
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("C%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (ppc_vbus_sink_enable(port, 1)) {
- CPRINTSUSB("C%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- switch (port) {
- case USBC_PORT_C0:
- ioex_set_level(IOEX_USB_C0_FAULT_ODL, !is_overcurrented);
- break;
-
- case USBC_PORT_C1:
- ioex_set_level(IOEX_USB_C1_FAULT_ODL, !is_overcurrented);
- break;
-
- default:
- break;
- }
-}
-
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-static void reset_nct38xx_port(int port)
-{
- enum gpio_signal reset_gpio_l;
-
- if (port == USBC_PORT_C0)
- reset_gpio_l = GPIO_USB_C0_TCPC_RST_L;
- else if (port == USBC_PORT_C1)
- reset_gpio_l = GPIO_USB_C1_TCPC_RST_L;
- else
- /* Invalid port: do nothing */
- return;
-
- gpio_set_level(reset_gpio_l, 0);
- msleep(NCT38XX_RESET_HOLD_DELAY_MS);
- gpio_set_level(reset_gpio_l, 1);
- nct38xx_reset_notify(port);
- if (NCT3807_RESET_POST_DELAY_MS != 0)
- msleep(NCT3807_RESET_POST_DELAY_MS);
-}
-
-
-void board_reset_pd_mcu(void)
-{
- /* Reset TCPC0 */
- reset_nct38xx_port(USBC_PORT_C0);
-
- /* Reset TCPC1 */
- reset_nct38xx_port(USBC_PORT_C1);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-int board_pd_set_frs_enable(int port, int enable)
-{
- int rv = EC_SUCCESS;
-
- /* Use the TCPC to enable fast switch when FRS included */
- if (port == USBC_PORT_C0) {
- rv = ioex_set_level(IOEX_USB_C0_TCPC_FASTSW_CTL_EN,
- !!enable);
- } else {
- rv = ioex_set_level(IOEX_USB_C1_TCPC_FASTSW_CTL_EN,
- !!enable);
- }
-
- return rv;
-}
-
-static void setup_fw_config(void)
-{
- uint32_t board_version = 0;
-
- if (cbi_get_board_version(&board_version) == EC_SUCCESS
- && board_version >= 2) {
- ccprints("PS8743 USB MUX");
- usb_muxes[USBC_PORT_C1].i2c_addr_flags = PS8743_I2C_ADDR1_FLAG;
- usb_muxes[USBC_PORT_C1].driver = &ps8743_usb_mux_driver;
- usb_muxes[USBC_PORT_C1].board_set = &board_ps8743_mux_set;
- } else {
- ccprints("PS8740 USB MUX");
- usb_muxes[USBC_PORT_C1].i2c_addr_flags = PS8740_I2C_ADDR0_FLAG;
- usb_muxes[USBC_PORT_C1].driver = &ps8740_usb_mux_driver;
- usb_muxes[USBC_PORT_C1].board_set = NULL;
- }
-
- if (ec_config_get_usb_db() == DALBOZ_DB_D_OPT2_USBA_HDMI) {
- ccprints("DB OPT2 HDMI");
- ioex_config[IOEX_HDMI_PCAL6408].flags = 0;
- ioex_init(IOEX_HDMI_PCAL6408);
- IOEX_USB_A1_RETIMER_EN = IOEX_USB_A1_RETIMER_EN_OPT2;
- IOEX_USB_A1_CHARGE_EN_DB_L = IOEX_USB_A1_CHARGE_EN_DB_L_OPT2;
- usb_port_enable[USBA_PORT_A1] = IOEX_EN_USB_A1_5V_DB_OPT2;
- c1_tcpc_config_interrupt = pcal6408_interrupt;
- c1_ppc_config_interrupt = hdmi_hpd_interrupt;
- } else {
- ccprints("DB OPT1 USBC");
- ioex_config[IOEX_C1_NCT3807].flags = 0;
- ioex_init(IOEX_C1_NCT3807);
- IOEX_USB_A1_RETIMER_EN = IOEX_USB_A1_RETIMER_EN_OPT1;
- IOEX_USB_A1_CHARGE_EN_DB_L = IOEX_USB_A1_CHARGE_EN_DB_L_OPT1;
- usb_port_enable[USBA_PORT_A1] = IOEX_EN_USB_A1_5V_DB_OPT1;
- c1_tcpc_config_interrupt = tcpc_alert_event;
- c1_ppc_config_interrupt = ppc_interrupt;
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_FAULT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC 1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-
- /* Enable SBU fault interrupts */
- ioex_enable_interrupt(IOEX_USB_C0_SBU_FAULT_ODL);
- ioex_enable_interrupt(IOEX_USB_C1_SBU_FAULT_DB_ODL);
-
- if (ec_config_has_lid_angle_tablet_mode()) {
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-/*
- * Use HOOK_PRIO_INIT_I2C + 2 to be after ioex_init().
- */
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
- [IOEX_C1_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_HDMI_PCAL6408] = {
- .i2c_host_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PCAL6408_I2C_ADDR0,
- .drv = &pcal6408_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB_OPT1,
-};
-
-static void check_v0_battery(void)
-{
- uint32_t board_version = 0;
-
- cbi_get_board_version(&board_version);
-
- if (board_version == 1)
- I2C_PORT_BATTERY = I2C_PORT_BATTERY_V0;
-}
-/*
- * Use HOOK_PRIO_INIT_I2C so we re-map before init_battery_type() and
- * charger_chips_init() want to talk to the battery.
- */
-DECLARE_HOOK(HOOK_INIT, check_v0_battery, HOOK_PRIO_INIT_I2C);
diff --git a/board/dalboz/board.h b/board/dalboz/board.h
deleted file mode 100644
index eecdc72d41..0000000000
--- a/board/dalboz/board.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Trembyle board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_DALBOZ
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_IO_EXPANDER_PCAL6408
-
-#define CONFIG_USBC_PPC_NX20P3483
-#define CONFIG_USB_MUX_PS8740
-#define CONFIG_USB_MUX_PS8743
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PORT_ENABLE_DYNAMIC
-
-/* USB-A config */
-#define GPIO_USB1_ILIM_SEL IOEX_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL IOEX_USB_A1_CHARGE_EN_DB_L
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_LSM6DSM
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-#ifndef __ASSEMBLER__
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-extern int I2C_PORT_BATTERY;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_CEL,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT3807 = 0,
- IOEX_C1_NCT3807,
- IOEX_HDMI_PCAL6408,
- IOEX_PORT_COUNT
-};
-
-#define PORT_TO_HPD(port) ((port == 0) \
- ? GPIO_USB3_C0_DP2_HPD \
- : GPIO_DP1_HPD)
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * DALBOZ_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: none
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- DALBOZ_MB_USBAC = 0,
-};
-
-/**
- * DALBOZ_DB_D_OPT1_USBAC
- * USB-A1 Speed: 5 Gbps
- * Retimer: TUSB522
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8740
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: no
- * Retimer: none
- * MST Hub: none
- *
- * DALBOZ_DB_D_OPT2_USBA_HDMI
- * USB-A1 Speed: 5 Gbps
- * Retimer: TUSB522
- * USB-C1 none
- * IOEX: PCAL6408
- * HDMI Exists: yes
- * Retimer: PI3HDX1204
- * MST Hub: none
- */
-enum ec_cfg_usb_db_type {
- DALBOZ_DB_D_OPT1_USBAC = 0,
- DALBOZ_DB_D_OPT2_USBA_HDMI = 1,
-};
-
-#include "cbi_ec_fw_config.h"
-
-#define HAS_USBC1 \
- (BIT(DALBOZ_DB_D_OPT1_USBAC))
-
-static inline bool ec_config_has_usbc1(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1);
-}
-
-#define HAS_USBC1_RETIMER_PS8740 \
- (BIT(DALBOZ_DB_D_OPT1_USBAC))
-
-static inline bool ec_config_has_usbc1_retimer_ps8740(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8740);
-}
-
-#define HAS_HDMI_RETIMER_PI3HDX1204 \
- (BIT(DALBOZ_DB_D_OPT2_USBA_HDMI))
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_RETIMER_PI3HDX1204);
-}
-
-/* These IO expander GPIOs vary with DB option. */
-extern enum gpio_signal IOEX_USB_A1_RETIMER_EN;
-extern enum gpio_signal IOEX_USB_A1_CHARGE_EN_DB_L;
-
-void board_reset_pd_mcu(void);
-
-/* Common definition for the USB PD interrupt handlers. */
-void tcpc_alert_event(enum gpio_signal signal);
-void bc12_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/dalboz/build.mk b/board/dalboz/build.mk
deleted file mode 100644
index 4ca0cbd96f..0000000000
--- a/board/dalboz/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/dalboz/ec.tasklist b/board/dalboz/ec.tasklist
deleted file mode 100644
index 41b83cf4f3..0000000000
--- a/board/dalboz/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/dalboz/gpio.inc b/board/dalboz/gpio.inc
deleted file mode 100644
index 74fe019b47..0000000000
--- a/board/dalboz/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, c1_tcpc_interrupt)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-/* PPC interrupts trigger on falling edge, but HDMI HPD triggers on rising edge. */
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_BOTH | GPIO_PULL_UP, c1_ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, lsm6dsm_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 7), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(7, 0), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB3_C0_DP2_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-GPIO(LED3_PWM, PIN(C, 3), GPIO_OUT_HIGH)
-
-/*
- * Dalboz has 2 DB options, with different IO expanders. IOEX_C1_NCT3807 is the
- * OPT1 DB (USB-C1), IOEX_HDMI_PCAL6408 is the OPT2 DB (HDMI).
- */
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(IOEX_C1_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_C0_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C0_NCT3807, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(IOEX_C0_NCT3807, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(IOEX_C0_NCT3807, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(EN_USB_A0_5V, EXPIN(IOEX_C0_NCT3807, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(IOEX_C0_NCT3807, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-IOEX(USB_C0_SBU_FLIP, EXPIN(IOEX_C0_NCT3807, 1, 7), GPIO_OUT_LOW) /* C0 SBU Flip */
-
-IOEX(USB_A1_RETIMER_EN_OPT1, EXPIN(IOEX_C1_NCT3807, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(IOEX_C1_NCT3807, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C1_NCT3807, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_PPC_EN_L, EXPIN(IOEX_C1_NCT3807, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(IOEX_C1_NCT3807, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB_OPT1, EXPIN(IOEX_C1_NCT3807, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L_OPT1,EXPIN(IOEX_C1_NCT3807, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-
-IOEX(USB_A1_RETIMER_EN_OPT2, EXPIN(IOEX_HDMI_PCAL6408, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB_OPT2, EXPIN(IOEX_HDMI_PCAL6408, 0, 1), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L_OPT2,EXPIN(IOEX_HDMI_PCAL6408, 0, 2), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-IOEX(HDMI_DATA_EN_DB, EXPIN(IOEX_HDMI_PCAL6408, 0, 3), GPIO_OUT_HIGH) /* HDMI Retimer Enable */
-IOEX(EN_PWR_HDMI_DB, EXPIN(IOEX_HDMI_PCAL6408, 0, 5), GPIO_OUT_LOW) /* HDMI Retimer Power Enable */
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(I2C_AUDIO_USB_HUB_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_AUDIO_USB_HUB_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_BATT_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/dalboz/led.c b/board/dalboz/led.c
deleted file mode 100644
index 53e94e84d6..0000000000
--- a/board/dalboz/led.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 100;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_RED, 2 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_RED, 2 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
-};
-
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-BUILD_ASSERT(ARRAY_SIZE(led_pwr_state_table) == PWR_LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED3_PWM, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED3_PWM, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_FULL_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/dalboz/vif_override.xml b/board/dalboz/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/dalboz/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/damu/battery.c b/board/damu/battery.c
deleted file mode 100644
index c85240a108..0000000000
--- a/board/damu/battery.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C235] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWRc3KA",
- .device_name = "C235-41",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x0c,
- .disconnect_val = 0x0c,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C235;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/damu/board.c b/board/damu/board.c
deleted file mode 100644
index ca3979949a..0000000000
--- a/board/damu/board.c
+++ /dev/null
@@ -1,455 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = board_set_active_charge_port(port);
- if (ret)
- return ret;
- force_discharge = enable;
-
- return charger_discharge_on_ac(enable);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(-1), 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(1) }
-};
-
-/* sensor private data */
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return board_get_version() == 1 ? 2 : 1;
-}
diff --git a/board/damu/board.h b/board/damu/board.h
deleted file mode 100644
index 6df8bb2a7a..0000000000
--- a/board/damu/board.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-/* TODO(b:135086465) led implementation */
-#undef CONFIG_LED_COMMON
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#undef I2C_BITBANG_PORT_COUNT
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_COMMON
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 2
-#define I2C_PORT_CHARGER board_get_charger_i2c()
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_C235,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger */
-int board_get_charger_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/damu/build.mk b/board/damu/build.mk
deleted file mode 100644
index 0b3565fd84..0000000000
--- a/board/damu/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/damu/ec.tasklist b/board/damu/ec.tasklist
deleted file mode 100644
index 19d2f34687..0000000000
--- a/board/damu/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, 1024) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/damu/gpio.inc b/board/damu/gpio.inc
deleted file mode 100644
index 9ee4035917..0000000000
--- a/board/damu/gpio.inc
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- bmi160_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-IOEX(BAT_LED_WHITE_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
-IOEX(BAT_LED_AMBER_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/damu/led.c b/board/damu/led.c
deleted file mode 100644
index ee376b4b41..0000000000
--- a/board/damu/led.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Damu
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_ON_LVL);
- break;
- default:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if(led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if(led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if(led_id == EC_LED_ID_BATTERY_LED) {
- if(brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if(brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if(led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/damu/vif_override.xml b/board/damu/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/damu/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/dartmonkey b/board/dartmonkey
deleted file mode 120000
index 5e193ac466..0000000000
--- a/board/dartmonkey
+++ /dev/null
@@ -1 +0,0 @@
-./nocturne_fp \ No newline at end of file
diff --git a/board/delbin/battery.c b/board/delbin/battery.c
deleted file mode 100644
index e907a3574f..0000000000
--- a/board/delbin/battery.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C536] = {
- .fuel_gauge = {
- .manuf_name = "AS3GXAE3jB",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000c,
- .disconnect_val = 0x000c,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11880, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C536;
diff --git a/board/delbin/board.c b/board/delbin/board.c
deleted file mode 100644
index 5984c4d157..0000000000
--- a/board/delbin/board.c
+++ /dev/null
@@ -1,506 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/retimer/ps8811.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff,
- 0xff /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Delbin if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_ACTIVE,
-};
-
-static void board_init(void)
-{
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(65),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(65),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-static void ps8815_reset(int port)
-{
- int val;
- int i2c_port;
- enum gpio_signal ps8xxx_rst_odl;
-
- if (port == USBC_PORT_C0) {
- ps8xxx_rst_odl = GPIO_USB_C0_RT_RST_ODL;
- i2c_port = I2C_PORT_USB_C0;
- } else if (port == USBC_PORT_C1) {
- ps8xxx_rst_odl = GPIO_USB_C1_RT_RST_ODL;
- i2c_port = I2C_PORT_USB_C1;
- } else {
- return;
- }
-
- gpio_set_level(ps8xxx_rst_odl, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(ps8xxx_rst_odl, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- CPRINTS("[C%d] %s: patching ps8815 registers", port, __func__);
-
- if (i2c_read8(i2c_port,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(i2c_port,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(i2c_port,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- ps8815_reset(USBC_PORT_C0);
- usb_mux_hpd_update(USBC_PORT_C0, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
- ps8815_reset(USBC_PORT_C1);
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-static const struct ec_response_keybd_config delbin_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &delbin_kb;
-}
-
-static void ps8811_init(void)
-{
- int rv;
-
- /* Set Channel A output swing to Level1 */
- rv = i2c_write8(I2C_PORT_USB_1_MIX,
- PS8811_I2C_ADDR_FLAGS0 + PS8811_REG_PAGE1, 0x66, 0x10);
- /* Set 50 ohm termination adjuct for B channel: -9%*/
- rv |= i2c_write8(I2C_PORT_USB_1_MIX,
- PS8811_I2C_ADDR_FLAGS0 + PS8811_REG_PAGE1, 0x73, 0x04);
- /* Set Channel B output swing to Level3 */
- rv |= i2c_write8(I2C_PORT_USB_1_MIX,
- PS8811_I2C_ADDR_FLAGS0 + PS8811_REG_PAGE1, 0xA4, 0x03);
- /* Set PS level for B channel */
- rv |= i2c_write8(I2C_PORT_USB_1_MIX,
- PS8811_I2C_ADDR_FLAGS0 + PS8811_REG_PAGE1, 0xA5, 0x84);
- /* Set DE level for B channel */
- rv |= i2c_write8(I2C_PORT_USB_1_MIX,
- PS8811_I2C_ADDR_FLAGS0 + PS8811_REG_PAGE1, 0xA6, 0x16);
-}
-
-/* Called on AP S5 -> S0ix transition */
-static void board_chipset_startup(void)
-{
- ps8811_init();
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0ix -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S0ix transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-static const struct usb_mux usbc0_usb3_mb_retimer = {
- .usb_port = USBC_PORT_C0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc0_usb3_mb_retimer,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/delbin/board.h b/board/delbin/board.h
deleted file mode 100644
index 91f69a2bae..0000000000
--- a/board/delbin/board.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the NPCX797FC dose not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#undef NPCX_PWM1_SEL
-#define NPCX_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-
-/* Optional features */
-#undef CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_KX022
-
-/* BMI260 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#undef CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X
-
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_UART2_EC_RX
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_C536,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_FAN = 0,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/delbin/build.mk b/board/delbin/build.mk
deleted file mode 100644
index 66ad809f59..0000000000
--- a/board/delbin/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/delbin/ec.tasklist b/board/delbin/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/delbin/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/delbin/gpio.inc b/board/delbin/gpio.inc
deleted file mode 100644
index 333c638b0a..0000000000
--- a/board/delbin/gpio.inc
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-/*
- * Lid g-sensor interrupt unused on Delbin, configure as regular input for
- * power saving.
- */
-GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-/* The EC does not buffer this signal on Volteer. */
-UNIMPLEMENTED(PCH_DSW_PWROK)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-GPIO(USB_C0_RT_RST_ODL, PIN(D, 4), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(UART2_EC_RX, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery Full LED: White */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery Charging LED: Amber */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH) /* Battery Power LED: White */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-
-/* Unused signals */
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO72, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOA7, PIN(A, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOC0, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Physical HPD pins are not needed on EC as these are configured by PMC */
-GPIO(USB_C0_DP_HPD, PIN(F, 3), GPIO_INPUT)
-GPIO(USB_C1_DP_HPD, PIN(7, 0), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/delbin/led.c b/board/delbin/led.c
deleted file mode 100644
index 27f63c9544..0000000000
--- a/board/delbin/led.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/delbin/sensors.c b/board/delbin/sensors.c
deleted file mode 100644
index 8000295554..0000000000
--- a/board/delbin/sensors.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "cbi_ssfc.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi260_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref_icm = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)},
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi260_interrupt(signal);
-}
-
-static void baseboard_sensors_init(void)
-{
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LID_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID_ACCEL is KX022");
- } else
- ccprints("LID_ACCEL is BMA253");
-
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE ACCEL is ICM426XX");
- } else
- ccprints("BASE ACCEL IS BMI260");
-
- /* Enable interrupt for the accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/delbin/vif_override.xml b/board/delbin/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/delbin/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/dewatt/battery.c b/board/dewatt/battery.c
deleted file mode 100644
index ddf3adff50..0000000000
--- a/board/dewatt/battery.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-
-/*
- * Battery info for all Guybrush battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AEC 5477109 */
- [BATTERY_AEC] = {
- .fuel_gauge = {
- .manuf_name = "AEC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .sleep_mode = {
- .sleep_supported = true,
- .reg_addr = 0x00,
- .reg_data = 0x0011,
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 100, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* AP18F4M / LIS4163ACPC */
- [BATTERY_AP18F4M] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00404001",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 5500,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* POW-TECH Battery Information */
- [BATTERY_POWER_TECH] = {
- .fuel_gauge = {
- .manuf_name = "POW-TECH",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .sleep_mode = {
- .sleep_supported = true,
- .reg_addr = 0x00,
- .reg_data = 0x0011,
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 88, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP18F4M;
diff --git a/board/dewatt/board.c b/board/dewatt/board.c
deleted file mode 100644
index 53180d39cb..0000000000
--- a/board/dewatt/board.c
+++ /dev/null
@@ -1,536 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Guybrush board-specific configuration */
-
-#include "adc.h"
-#include "base_fw_config.h"
-#include "board_fw_config.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_bmi323.h"
-#include "driver/accel_bma422.h"
-#include "driver/retimer/ps8811.h"
-#include "driver/retimer/ps8818.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/temp_sensor/tmp112.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "temp_sensor/tmp112.h"
-#include "thermal.h"
-#include "usb_mux.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Motion sensor mutex */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Motion sensor private data */
-static struct bmi_drv_data_t g_bmi_data;
-static struct accelgyro_saved_data_t g_bma422_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-struct motion_sensor_t motion_sensors[] = {
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI323,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi3xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI3_ADDR_I2C_PRIM,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA422,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma4_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma422_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA4_I2C_ADDR_PRIMARY,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA4_ACCEL_MIN_FREQ,
- .max_frequency = BMA4_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, enough for laptop. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI323,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi3xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI3_ADDR_I2C_PRIM,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t bmi160_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-struct motion_sensor_t bmi160_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
-};
-
-__override enum ec_error_list
-board_a1_ps8811_retimer_init(const struct usb_mux *me)
-{
- /* Set channel A output swing */
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_A_SWING,
- PS8811_CHAN_A_SWING_MASK, 0x2 << PS8811_CHAN_A_SWING_SHIFT));
-
- /* Set channel B output swing */
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_SWING,
- PS8811_CHAN_B_SWING_MASK, 0x2 << PS8811_CHAN_B_SWING_SHIFT));
-
- /* Set channel B de-emphasis to -6dB and pre-shoot to 1.5 dB */
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_DE_PS_LSB,
- PS8811_CHAN_B_DE_PS_LSB_MASK, PS8811_CHAN_B_DE_6_PS_1_5_LSB));
-
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_DE_PS_MSB,
- PS8811_CHAN_B_DE_PS_MSB_MASK, PS8811_CHAN_B_DE_6_PS_1_5_MSB));
-
- return EC_SUCCESS;
-}
-
-/*
- * PS8818 set mux board tuning.
- * Adds in board specific gain and DP lane count configuration
- * TODO(b/179036200): Adjust PS8818 tuning for guybrush reference
- */
-__override int board_c1_ps8818_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- /* USB specific config */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* Boost the USB gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Set the RX input termination */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_RX_PHY,
- PS8818_RX_INPUT_TERM_MASK,
- PS8818_RX_INPUT_TERM_112_OHM);
- if (rv)
- return rv;
- }
-
- /* DP specific config */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* Boost the DP gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_DPEQ_LEVEL,
- PS8818_DPEQ_LEVEL_UP_MASK,
- PS8818_DPEQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Enable HPD on the DB */
- gpio_set_level(GPIO_USB_C1_HPD, 1);
- } else {
- /* Disable HPD on the DB */
- gpio_set_level(GPIO_USB_C1_HPD, 0);
- }
-
- return rv;
-}
-
-/*
- * ANX7491(A1) and ANX7451(C1) are on the same i2c bus. Both default
- * to 0x29 for the USB i2c address. This moves ANX7451(C1) USB i2c
- * address to 0x2A. ANX7491(A1) will stay at the default 0x29.
- */
-uint16_t board_anx7451_get_usb_i2c_addr(const struct usb_mux *me)
-{
- ASSERT(me->usb_port == USBC_PORT_C1);
- return 0x2a;
-}
-
-/*
- * Base Gyro Sensor dynamic configuration
- */
-static int base_gyro_config;
-
-static void board_update_motion_sensor_config(void)
-{
- if (board_is_convertible()) {
- if (get_board_version() == 1) {
- motion_sensors[BASE_ACCEL] = bmi160_base_accel;
- motion_sensors[BASE_GYRO] = bmi160_base_gyro;
- base_gyro_config = BASE_GYRO_BMI160;
- ccprints("BASE GYRO is BMI160");
- } else {
- base_gyro_config = BASE_GYRO_BMI323;
- ccprints("BASE GYRO is BMI323");
- }
-
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel and Gyro interrupt */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_gyro_config) {
- case BASE_GYRO_BMI160:
- bmi160_interrupt(signal);
- break;
- case BASE_GYRO_BMI323:
- default:
- bmi3xx_interrupt(signal);
- break;
- }
-}
-
-static void board_init(void)
-{
- board_update_motion_sensor_config();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_startup(void)
-{
- if (get_board_version() > 1)
- tmp112_init();
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
- HOOK_PRIO_DEFAULT);
-
-int board_get_soc_temp_k(int idx, int *temp_k)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- return tmp112_get_val_k(idx, temp_k);
-}
-
-int board_get_soc_temp_mk(int *temp_mk)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- return tmp112_get_val_mk(TMP112_SOC, temp_mk);
-}
-
-int board_get_ambient_temp_mk(int *temp_mk)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- return tmp112_get_val_mk(TMP112_AMB, temp_mk);
-}
-
-/* ADC Channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_MEMORY] = {
- .name = "MEMORY",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_CORE_IMON1] = {
- .name = "CORE_I",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SOC_IMON2] = {
- .name = "SOC_I",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Temp Sensors */
-static int board_get_memory_temp(int, int *);
-
-const struct tmp112_sensor_t tmp112_sensors[] = {
- { I2C_PORT_SENSOR, TMP112_I2C_ADDR_FLAGS0 },
- { I2C_PORT_SENSOR, TMP112_I2C_ADDR_FLAGS1 },
-};
-BUILD_ASSERT(ARRAY_SIZE(tmp112_sensors) == TMP112_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_soc_temp_k,
- .idx = TMP112_SOC,
- },
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_MEMORY] = {
- .name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_memory_temp,
- .idx = ADC_TEMP_SENSOR_MEMORY,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
- [TEMP_SENSOR_AMBIENT] = {
- .name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = tmp112_get_val_k,
- .idx = TMP112_AMB,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT] = {
- [TEMP_SENSOR_SOC] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- /* TODO: Setting fan off to 0 so it's allways on */
- .temp_fan_off = C_TO_K(0),
- .temp_fan_max = C_TO_K(70),
- },
- [TEMP_SENSOR_CHARGER] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
- },
- [TEMP_SENSOR_MEMORY] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
- },
- [TEMP_SENSOR_CPU] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- /*
- * CPU temp sensor fan thresholds are high because they are a
- * backup for the SOC temp sensor fan thresholds.
- */
- .temp_fan_off = C_TO_K(60),
- .temp_fan_max = C_TO_K(90),
- },
- /*
- * Note: Leave ambient entries at 0, both as it does not represent a
- * hotspot and as not all boards have this sensor
- */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-static int board_get_memory_temp(int idx, int *temp_k)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
- return get_temp_3v3_30k9_47k_4050b(idx, temp_k);
-}
diff --git a/board/dewatt/board.h b/board/dewatt/board.h
deleted file mode 100644
index f5c47718d5..0000000000
--- a/board/dewatt/board.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Guybrush board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Motion sensing drivers */
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* Sensors */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI3XX
-#define CONFIG_ACCELGYRO_BMI3XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_BMA4XX
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BUTTON
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_MUX_ANX7451
-#define CONFIG_USBC_RETIMER_ANX7451
-
-/* USB Type A Features */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* LED features */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* Motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-/* Battery Types */
-enum battery_type {
- BATTERY_AEC,
- BATTERY_AP18F4M,
- BATTERY_POWER_TECH,
- BATTERY_TYPE_COUNT,
-};
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_BMI323 = 2,
-};
-
-/* ADC Channels */
-enum adc_channel {
- ADC_TEMP_SENSOR_SOC = 0,
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_MEMORY,
- ADC_CORE_IMON1,
- ADC_SOC_IMON2,
- ADC_CH_COUNT
-};
-
-/* Temp Sensors */
-enum temp_sensor_id {
- TEMP_SENSOR_SOC = 0,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_MEMORY,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/dewatt/board_fw_config.c b/board/dewatt/board_fw_config.c
deleted file mode 100644
index c919d82851..0000000000
--- a/board/dewatt/board_fw_config.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "base_fw_config.h"
-#include "board_fw_config.h"
-
-bool board_is_convertible(void)
-{
- return (get_fw_config_field(FW_CONFIG_FORM_FACTOR_OFFSET,
- FW_CONFIG_FORM_FACTOR_WIDTH)
- == FW_CONFIG_FORM_FACTOR_CONVERTIBLE);
-}
-
-bool board_has_kblight(void)
-{
- return (get_fw_config_field(FW_CONFIG_KBLIGHT_OFFSET,
- FW_CONFIG_KBLIGHT_WIDTH) == FW_CONFIG_KBLIGHT_YES);
-}
-
-enum board_usb_c1_mux board_get_usb_c1_mux(void)
-{
- int usb_db = get_fw_config_field(FW_CONFIG_USB_DB_OFFSET,
- FW_CONFIG_USB_DB_WIDTH);
- if (usb_db == FW_CONFIG_USB_DB_A1_PS8811_C1_PS8818)
- return USB_C1_MUX_PS8818;
- if (usb_db == FW_CONFIG_USB_DB_A1_ANX7491_C1_ANX7451)
- return USB_C1_MUX_ANX7451;
- return USB_C1_MUX_UNKNOWN;
-};
-
-enum board_usb_a1_retimer board_get_usb_a1_retimer(void)
-{
- int usb_db = get_fw_config_field(FW_CONFIG_USB_DB_OFFSET,
- FW_CONFIG_USB_DB_WIDTH);
- if (usb_db == FW_CONFIG_USB_DB_A1_PS8811_C1_PS8818)
- return USB_A1_RETIMER_PS8811;
- if (usb_db == FW_CONFIG_USB_DB_A1_ANX7491_C1_ANX7451)
- return USB_A1_RETIMER_ANX7491;
- return USB_A1_RETIMER_UNKNOWN;
-};
diff --git a/board/dewatt/board_fw_config.h b/board/dewatt/board_fw_config.h
deleted file mode 100644
index 1de417d77a..0000000000
--- a/board/dewatt/board_fw_config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _GUYBRUSH_BOARD_FW_CONFIG__H_
-#define _GUYBRUSH_BOARD_FW_CONFIG__H_
-
-/****************************************************************************
- * Guybrush CBI FW Configuration
- */
-
-/*
- * USB Daughter Board (2 bits)
- */
-#define FW_CONFIG_USB_DB_OFFSET 0
-#define FW_CONFIG_USB_DB_WIDTH 2
-#define FW_CONFIG_USB_DB_A1_PS8811_C1_PS8818 0
-#define FW_CONFIG_USB_DB_A1_ANX7491_C1_ANX7451 1
-
-/*
- * Form Factor (1 bits)
- */
-#define FW_CONFIG_FORM_FACTOR_OFFSET 2
-#define FW_CONFIG_FORM_FACTOR_WIDTH 1
-#define FW_CONFIG_FORM_FACTOR_CLAMSHELL 0
-#define FW_CONFIG_FORM_FACTOR_CONVERTIBLE 1
-
-/*
- * Keyboard Backlight (1 bit)
- */
-#define FW_CONFIG_KBLIGHT_OFFSET 3
-#define FW_CONFIG_KBLIGHT_WIDTH 1
-#define FW_CONFIG_KBLIGHT_NO 0
-#define FW_CONFIG_KBLIGHT_YES 1
-
-
-#endif /* _GUYBRUSH_CBI_FW_CONFIG__H_ */
diff --git a/board/dewatt/build.mk b/board/dewatt/build.mk
deleted file mode 100644
index e4fdcf4afd..0000000000
--- a/board/dewatt/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-BASEBOARD:=guybrush
-
-board-y=board.o
-board-y+=board_fw_config.o led.o battery.o
diff --git a/board/dewatt/ec.tasklist b/board/dewatt/ec.tasklist
deleted file mode 100644
index 94ff657db3..0000000000
--- a/board/dewatt/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/dewatt/gpio.inc b/board/dewatt/gpio.inc
deleted file mode 100644
index 1bab89ed63..0000000000
--- a/board/dewatt/gpio.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the board GPIOs that we care about. */
-
-#include "base_gpio.inc"
-
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, motion_interrupt) /* 6 Axis IMU */
-GPIO_INT(TABLET_MODE, PIN(C, 1), GPIO_INT_BOTH, gmr_tablet_switch_isr) /* 360 Tablet Mode */
-
-/* LED Signals */
-ALTERNATE(/*EC_PWM_LED_CHRG_L*/ PIN_MASK(C, BIT(4)), 0, MODULE_PWM, 0) /* Charging LED */
-ALTERNATE(/*EC_PWM_LED_FULL_L*/ PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* Full LED */
-
-/* Test Points */
-GPIO(EC_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PS2_CLK, PIN(6, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PS2_DAT, PIN(7, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PS2_RST, PIN(6, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_GPIOB0, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_GPIO81, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_FLPRG2, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PSL_GPO, PIN(D, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PWM7, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP) \ No newline at end of file
diff --git a/board/dewatt/led.c b/board/dewatt/led.c
deleted file mode 100644
index b17c8be488..0000000000
--- a/board/dewatt/led.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2021 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.
- *
- * Guybrush specific PWM LED settings.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-#include "pwm.h"
-
-/* Note PWM LEDs are active low */
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-#define CPRINTS(format, args...) cprints(CC_PWM, format, ## args)
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED_CHRG, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- pwm_enable(PWM_CH_LED_CHRG, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_ON_LVL);
- break;
- case LED_OFF:
- pwm_enable(PWM_CH_LED_CHRG, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_OFF_LVL);
- break;
- default: /* Unsupported colors */
- CPRINTS("Unsupported LED color: %d", color);
- pwm_enable(PWM_CH_LED_CHRG, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else {
- CPRINTS("Unsupported LED set: %d", led_id);
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/dewatt/vif_override.xml b/board/dewatt/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/dewatt/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/dingdong/board.c b/board/dingdong/board.c
deleted file mode 100644
index ddaf6bb928..0000000000
--- a/board/dingdong/board.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* Copyright 2014 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.
- */
-/* Dingdong dongle configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "usb_bb.h"
-#include "usb_descriptor.h"
-#include "usb_pd.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-
-static volatile uint64_t hpd_prev_ts;
-static volatile int hpd_prev_level;
-
-void hpd_event(enum gpio_signal signal);
-#include "gpio_list.h"
-
-/**
- * Hotplug detect deferred task
- *
- * Called after level change on hpd GPIO to evaluate (and debounce) what event
- * has occurred. There are 3 events that occur on HPD:
- * 1. low : downstream display sink is deattached
- * 2. high : downstream display sink is attached
- * 3. irq : downstream display sink signalling an interrupt.
- *
- * The debounce times for these various events are:
- * HPD_USTREAM_DEBOUNCE_LVL : min pulse width of level value.
- * HPD_USTREAM_DEBOUNCE_IRQ : min pulse width of IRQ low pulse.
- *
- * lvl(n-2) lvl(n-1) lvl prev_delta now_delta event
- * ----------------------------------------------------
- * 1 0 1 <IRQ n/a low glitch (ignore)
- * 1 0 1 >IRQ <LVL irq
- * x 0 1 n/a >LVL high
- * 0 1 0 <LVL n/a high glitch (ignore)
- * x 1 0 n/a >LVL low
- */
-
-void hpd_irq_deferred(void)
-{
- pd_send_hpd(0, hpd_irq);
-}
-DECLARE_DEFERRED(hpd_irq_deferred);
-
-void hpd_lvl_deferred(void)
-{
- int level = gpio_get_level(GPIO_DP_HPD);
-
- if (level != hpd_prev_level)
- /* It's a glitch while in deferred or canceled action */
- return;
-
- pd_send_hpd(0, (level) ? hpd_high : hpd_low);
-}
-DECLARE_DEFERRED(hpd_lvl_deferred);
-
-void hpd_event(enum gpio_signal signal)
-{
- timestamp_t now = get_time();
- int level = gpio_get_level(signal);
- uint64_t cur_delta = now.val - hpd_prev_ts;
-
- /* store current time */
- hpd_prev_ts = now.val;
-
- /* All previous hpd level events need to be re-triggered */
- hook_call_deferred(&hpd_lvl_deferred_data, -1);
-
- /* It's a glitch. Previous time moves but level is the same. */
- if (cur_delta < HPD_USTREAM_DEBOUNCE_IRQ)
- return;
-
- if ((!hpd_prev_level && level) &&
- (cur_delta < HPD_USTREAM_DEBOUNCE_LVL))
- /* It's an irq */
- hook_call_deferred(&hpd_irq_deferred_data, 0);
- else if (cur_delta >= HPD_USTREAM_DEBOUNCE_LVL)
- hook_call_deferred(&hpd_lvl_deferred_data,
- HPD_USTREAM_DEBOUNCE_LVL);
-
- hpd_prev_level = level;
-}
-
-/* Initialize board. */
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= BIT(0);
- /* Remap USART DMA to match the USART driver */
- STM32_SYSCFG_CFGR1 |= BIT(9) | BIT(10);/* Remap USART1 RX/TX DMA */
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- timestamp_t now = get_time();
- hpd_prev_level = gpio_get_level(GPIO_DP_HPD);
- hpd_prev_ts = now.val;
- gpio_enable_interrupt(GPIO_DP_HPD);
-
- gpio_set_level(GPIO_STM_READY, 1); /* factory test only */
-}
-
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_CH_CC1_PD] = {"USB_C_CC1_PD", 3300, 4096, 0, STM32_AIN(1)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-const void * const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Dingdong"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_BB_URL] = USB_STRING_DESC(USB_GOOGLE_TYPEC_URL),
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/**
- * USB configuration
- * Any type-C device with alternate mode capabilities must have the following
- * set of descriptors.
- *
- * 1. Standard Device
- * 2. BOS
- * 2a. Container ID
- * 2b. Billboard Caps
- */
-struct my_bos {
- struct usb_bos_hdr_descriptor bos;
- struct usb_contid_caps_descriptor contid_caps;
- struct usb_bb_caps_base_descriptor bb_caps;
- struct usb_bb_caps_svid_descriptor bb_caps_svids[1];
-};
-
-static struct my_bos bos_desc = {
- .bos = {
- .bLength = USB_DT_BOS_SIZE,
- .bDescriptorType = USB_DT_BOS,
- .wTotalLength = (USB_DT_BOS_SIZE + USB_DT_CONTID_SIZE +
- USB_BB_CAPS_BASE_SIZE +
- USB_BB_CAPS_SVID_SIZE * 1),
- .bNumDeviceCaps = 2, /* contid + bb_caps */
- },
- .contid_caps = {
- .bLength = USB_DT_CONTID_SIZE,
- .bDescriptorType = USB_DT_DEVICE_CAPABILITY,
- .bDevCapabilityType = USB_DC_DTYPE_CONTID,
- .bReserved = 0,
- .ContainerID = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- },
- .bb_caps = {
- .bLength = (USB_BB_CAPS_BASE_SIZE + USB_BB_CAPS_SVID_SIZE * 1),
- .bDescriptorType = USB_DT_DEVICE_CAPABILITY,
- .bDevCapabilityType = USB_DC_DTYPE_BILLBOARD,
- .iAdditionalInfoURL = USB_STR_BB_URL,
- .bNumberOfAlternateModes = 1,
- .bPreferredAlternateMode = 1,
- .VconnPower = 0,
- .bmConfigured = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- .bReserved = 0,
- },
- .bb_caps_svids = {
- {
- .wSVID = USB_SID_DISPLAYPORT,
- .bAlternateMode = 1,
- .iAlternateModeString = USB_STR_BB_URL, /* TODO(crosbug.com/p/32687) */
- },
- },
-};
-
-const struct bos_context bos_ctx = {
- .descp = (void *)&bos_desc,
- .size = sizeof(struct my_bos),
-};
diff --git a/board/dingdong/board.h b/board/dingdong/board.h
deleted file mode 100644
index 64947960ba..0000000000
--- a/board/dingdong/board.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* Dingdong dongle configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART1 (PA9/PA10) */
-#define CONFIG_UART_CONSOLE 1
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_ADC
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_HW_CRC
-#define CONFIG_RSA
-#define CONFIG_RWSIG
-#define CONFIG_RWSIG_TYPE_USBPD1
-#define CONFIG_SHA256
-#define CONFIG_USB
-#define CONFIG_USB_BOS
-#define CONFIG_USB_INHIBIT_CONNECT
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_DINGDONG
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MINOR 2
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_FLASH
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-#define CONFIG_USB_PD_VBUS_DETECT_NONE
-#define CONFIG_USB_PD_LOGGING
-#undef CONFIG_EVENT_LOG_SIZE
-#define CONFIG_EVENT_LOG_SIZE 256
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_TASK_PROFILING
-
-/* USB configuration */
-#define CONFIG_USB_PID 0x5011
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-
-/* No Write-protect GPIO, force the write-protection */
-#define CONFIG_WP_ALWAYS
-#define CONFIG_FLASH_READOUT_PROTECTION
-
-/* Inform VIF generator that this board is an Alt Mode Adapter */
-#define CONFIG_USB_ALT_MODE_ADAPTER
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-#include "gpio_signal.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_CH_CC1_PD = 0,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_VERSION,
- USB_STR_BB_URL,
-
- USB_STR_COUNT
-};
-
-/* we are never a source : don't care about power supply */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 0 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 0 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 1000
-#define PD_MAX_POWER_MW 1500
-#define PD_MAX_CURRENT_MA 300
-#define PD_MAX_VOLTAGE_MV 5000
-
-#endif /* !__ASSEMBLER__ */
-
-/* USB Device class */
-#define USB_DEV_CLASS USB_CLASS_BILLBOARD
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_COUNT 0
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_COUNT 1
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/dingdong/build.mk b/board/dingdong/build.mk
deleted file mode 100644
index 18799c3b9f..0000000000
--- a/board/dingdong/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072B
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/dingdong/dev_key.pem b/board/dingdong/dev_key.pem
deleted file mode 100644
index e2ff6781cd..0000000000
--- a/board/dingdong/dev_key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAqhcIe02T0+guB+QDIKTy578gwH0W0BpZM4B0scTq0ozQ6YJe
-9O74HBWYlWUkbx+/AaM50yeroqx6DC4ZLgm8PcBFpCkxhuOdP6BZbjEqEoI4nVOg
-nDsW3XpNODYueA7IpqiOjUgAcAeNTEfdxIGGh6XWwsJmGdbJCWu4SiWsKyJVThCr
-1DPh3nPEmzDpX4CYU93qFeoJptKKH0DJcMKEP3CR8H0OU9S5wLoA10s9TECsWMN9
-z7vZQaelxsFrzHPgY2amX1uruSI4BaZ8aGYTtKzcTkzSnT/jD8QTiDnSYsMXs7h4
-6af24h3SZdApB5yFYQqcS80DWgHcubeT24ulXwIDAQABAoIBAAslnUmvaNu/YJzl
-xYqzJLQpY3UZ/Y+/2k60wXERDa6kyeAzyhNVQe9dPvWzfjLGKtdpohWDiQ0NLqZz
-svTAcJS/cBD1HijP6/NKh/HfyPkTjbBJ1cHHYZU8OalQa7U0itPZQhZiPJ0a8Zip
-MRB6yJ1FMhDrepOA7wXuCFLbqy/cYcY+MdKL6Fny5FFIBMq16EeFOKBOR+DZsLEg
-R71n1rV7IzxTIfcjD8ws43bRM0sbwykoaHUIYuwXO/AIII9QX75V7nQjB0JUOSYo
-Z9OrrUaf+rP8l4Rd76tTHxrpMU3dy8C/ht5jpXbiMYViOl0pNDAzJfCvIx0+q9Iy
-BrMLKUkCgYEA21jJ6Yqz9Nwkv/kcovYpiBuUHhMjmdsMv0LZnWWELCpXmisemeWJ
-8FrnaMTTrYscbIn+MPkLQbb2FQHyT+HHtHchsps8i+snYEBBky0fyAlWG0LL/Rvh
-GPFkKNXeMFRcGg7rTp51L0DhG6hbWgCkck3AtcHy86LgehsDaWhEi+0CgYEAxoMi
-35F1Q0PMlpftK5sRYvwO5jSM2RvYxhqDImghyW43Bnc0tu7bVK25V+Vd3ZRBnjm5
-8E6A6UpP0By4qaEQuG1kMoZ2TTOix2q0AbltOGYuzLq41PirvINqj3DVzw3M4IZE
-dL6PtiJcOGeFodL12Sz1QRZVksMfpxz0XaVpxPsCgYAmDDi58f1VM/qL8kItYlXB
-7ka7EMbUIVMMuiPVUY6jupSHgYNFXrOWpa4OVlYBfGfpy+XzyL9THtGAw12szZU+
-kIuf152hB6FE6OB3DxS8NiJhiCyqMvPQx85/5tkruPZg7sWSVZouICrsCUAPVJ0x
-1pre7E2gRVh61cS5vARn4QKBgQCNxp6jeal8LvHxI/R5Tjiur0Kc2y806BR79/ds
-HV70E8kszvpRJGp1IdXblq7hT79FmAjaPdcHxtEV201vqN7eORJ0m1/mZ1h8gBKr
-oJkGzMPj5/+V6zwMWPdEFtw9EqgeOwatMmRFOmkOx7DDEH4Ra3CF2cOoG7+BhMZq
-E3dk/QKBgQCYXqptB56sUrjnCXKEAdR96SDlVCmL7BBI893xDSAYIKhbpQsI2YY1
-dcFb02bnMbpqjkwHqpjHD8MJOWvXf8q/5FxDjHBSLSL8fM2PL9DI65c8MmwpHUSZ
-ZdcRhMrlN1iTkzw7WdfFCqb0HNl73sP5baqbRZgC+gysmDtgTZxBTQ==
------END RSA PRIVATE KEY-----
diff --git a/board/dingdong/ec.tasklist b/board/dingdong/ec.tasklist
deleted file mode 100644
index 41fc047d6a..0000000000
--- a/board/dingdong/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/dingdong/gpio.inc b/board/dingdong/gpio.inc
deleted file mode 100644
index ec1e9a7fa9..0000000000
--- a/board/dingdong/gpio.inc
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(DP_HPD, PIN(A, 0), GPIO_INT_BOTH, hpd_event)
-
-GPIO(USB_C_CC1_PD, PIN(A, 1), GPIO_ANALOG)
-GPIO(STM_READY, PIN(A, 2), GPIO_OUT_LOW) /* factory test only */
-GPIO(PD_DAC_REF, PIN(A, 4), GPIO_ANALOG)
-GPIO(DP_AUX_N, PIN(A, 5), GPIO_INPUT)
-GPIO(DP_AUX_P, PIN(A, 6), GPIO_INPUT)
-
-GPIO(PD_SBU_ENABLE, PIN(A, 8), GPIO_OUT_LOW)
-GPIO(USB_DM, PIN(A, 11), GPIO_ANALOG)
-GPIO(USB_DP, PIN(A, 12), GPIO_ANALOG)
-GPIO(PD_CC1_TX_EN, PIN(A, 15), GPIO_OUT_LOW)
-
-GPIO(PD_DPSINK_PRESENT, PIN(B, 0), GPIO_INPUT)
-GPIO(PD_CC1_TX_DATA, PIN(B, 4), GPIO_OUT_LOW)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(B, 0x0008), 0, MODULE_USB_PD, 0) /* SPI1: SCK(PB3) */
-ALTERNATE(PIN_MASK(B, 0x0200), 2, MODULE_USB_PD, 0) /* TIM17_CH1: PB9 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, GPIO_PULL_UP) /* USART1: PA9/PA10 */
diff --git a/board/dingdong/usb_pd_config.h b/board/dingdong/usb_pd_config.h
deleted file mode 100644
index 2f01c275a8..0000000000
--- a/board/dingdong/usb_pd_config.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_C0 17
-#define TIM_CLOCK_PD_RX_C0 1
-
-#define TIM_CLOCK_PD_TX(p) TIM_CLOCK_PD_TX_C0
-#define TIM_CLOCK_PD_RX(p) TIM_CLOCK_PD_RX_C0
-
-/* Timer channel */
-#define TIM_RX_CCR_C0 1
-#define TIM_TX_CCR_C0 1
-
-/* RX timer capture/compare register */
-#define TIM_CCR_C0 (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_C0, TIM_RX_CCR_C0))
-#define TIM_RX_CCR_REG(p) TIM_CCR_C0
-
-/* TX and RX timer register */
-#define TIM_REG_TX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_TX_C0))
-#define TIM_REG_RX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_RX_C0))
-#define TIM_REG_TX(p) TIM_REG_TX_C0
-#define TIM_REG_RX(p) TIM_REG_RX_C0
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* TX is using SPI1 on PB3-4 */
-#define SPI_REGS(p) STM32_SPI1_REGS
-
-static inline void spi_enable_clock(int port)
-{
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
-}
-
-/* SPI1_TX no remap needed */
-#define DMAC_SPI_TX(p) STM32_DMAC_CH3
-
-/* RX is using COMP1 triggering TIM1 CH1 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM1_IC1
-#define CMP2OUTSEL 0
-
-#define TIM_TX_CCR_IDX(p) TIM_TX_CCR_C0
-#define TIM_RX_CCR_IDX(p) TIM_RX_CCR_C0
-#define TIM_CCR_CS 1
-#define EXTI_COMP_MASK(p) BIT(21)
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-/* TIM1_CH1 no remap needed */
-#define DMAC_TIM_RX(p) STM32_DMAC_CH2
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- /* 40 Mhz pin speed on TX_EN (PA15) */
- STM32_GPIO_OSPEEDR(GPIO_A) |= 0xC0000000;
- /* 40 MHz pin speed on SPI CLK/MOSI (PB3/4) TIM17_CH1 (PB9) */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000C03C0;
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
-}
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
- /* PB4 is SPI1_MISO */
- gpio_set_alternate_function(GPIO_B, 0x0010, 0);
-
- gpio_set_level(GPIO_PD_CC1_TX_EN, 1);
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- /* output low on SPI TX (PB4) to disable the FET */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- & ~(3 << (2*4)))
- | (1 << (2*4));
- /* put the low level reference in Hi-Z */
- gpio_set_level(GPIO_PD_CC1_TX_EN, 0);
-}
-
-static inline void pd_select_polarity(int port, int polarity)
-{
- /*
- * use the right comparator : CC1 -> PA1 (COMP1 INP)
- * use VrefInt / 2 as INM (about 600mV)
- */
- STM32_COMP_CSR = (STM32_COMP_CSR & ~STM32_COMP_CMP1INSEL_MASK)
- | STM32_COMP_CMP1EN | STM32_COMP_CMP1INSEL_VREF12;
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- gpio_config_module(MODULE_USB_PD, 1);
-}
-
-static inline void pd_set_host_mode(int port, int enable) {}
-
-static inline void pd_config_init(int port, uint8_t power_role)
-{
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
-}
-
-static inline int pd_adc_read(int port, int cc)
-{
- /* only one CC line, assume other one is always low */
- return (cc == 0) ? adc_read_channel(ADC_CH_CC1_PD) : 0;
-}
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
diff --git a/board/dingdong/usb_pd_policy.c b/board/dingdong/usb_pd_policy.c
deleted file mode 100644
index 50700f8a62..0000000000
--- a/board/dingdong/usb_pd_policy.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "adc.h"
-#include "board.h"
-#include "common.h"
-#include "console.h"
-#include "cros_version.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_bb.h"
-#include "usb_api.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define PDO_FIXED_FLAGS PDO_FIXED_COMM_CAP
-
-/* Source PDOs */
-const uint32_t pd_src_pdo[] = {};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-
-/* Fake PDOs : we just want our pre-defined voltages */
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, PDO_FIXED_FLAGS),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-/* Holds valid object position (opos) for entered mode */
-static int alt_mode[PD_AMODE_COUNT];
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- /* No battery, nothing to do */
- return;
-}
-
-int pd_is_valid_input_voltage(int mv)
-{
- /* Any voltage less than the max is allowed */
- return 1;
-}
-
-void pd_transition_voltage(int idx)
-{
- /* No operation: sink only */
-}
-
-int pd_set_power_supply_ready(int port)
-{
- return EC_SUCCESS;
-}
-
-void pd_power_supply_reset(int port)
-{
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return 1;
-}
-
-int pd_board_checks(void)
-{
- return EC_SUCCESS;
-}
-
-int pd_check_power_swap(int port)
-{
- /* Always refuse power swap */
- return 0;
-}
-
-int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Always refuse data swap */
- return 0;
-}
-
-void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Do nothing */
-}
-
-void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
-}
-
-void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
-}
-/* ----------------- Vendor Defined Messages ------------------ */
-const uint32_t vdo_idh = VDO_IDH(0, /* data caps as USB host */
- 1, /* data caps as USB device */
- IDH_PTYPE_AMA, /* Alternate mode */
- 1, /* supports alt modes */
- USB_VID_GOOGLE);
-
-const uint32_t vdo_product = VDO_PRODUCT(CONFIG_USB_PID, CONFIG_USB_BCD_DEV);
-
-const uint32_t vdo_ama = VDO_AMA(CONFIG_USB_PD_IDENTITY_HW_VERS,
- CONFIG_USB_PD_IDENTITY_SW_VERS,
- 0, 0, 0, 0, /* SS[TR][12] */
- 0, /* Vconn power */
- 0, /* Vconn power required */
- 1, /* Vbus power required */
- AMA_USBSS_BBONLY /* USB SS support */);
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- payload[VDO_I(IDH)] = vdo_idh;
- /* TODO(tbroch): Do we plan to obtain TID (test ID) for hoho */
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- payload[VDO_I(AMA)] = vdo_ama;
- return VDO_I(AMA) + 1;
-}
-
-static int svdm_response_svids(int port, uint32_t *payload)
-{
- payload[1] = VDO_SVID(USB_SID_DISPLAYPORT, USB_VID_GOOGLE);
- payload[2] = 0;
- return 3;
-}
-
-#define OPOS_DP 1
-#define OPOS_GFU 1
-
-const uint32_t vdo_dp_modes[1] = {
- VDO_MODE_DP(0, /* UFP pin cfg supported : none */
- MODE_DP_PIN_E, /* DFP pin cfg supported */
- 1, /* no usb2.0 signalling in AMode */
- CABLE_PLUG, /* its a plug */
- MODE_DP_V13, /* DPv1.3 Support, no Gen2 */
- MODE_DP_SNK) /* Its a sink only */
-};
-
-const uint32_t vdo_goog_modes[1] = {
- VDO_MODE_GOOGLE(MODE_GOOGLE_FU)
-};
-
-static int svdm_response_modes(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) {
- memcpy(payload + 1, vdo_dp_modes, sizeof(vdo_dp_modes));
- return ARRAY_SIZE(vdo_dp_modes) + 1;
- } else if (PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) {
- memcpy(payload + 1, vdo_goog_modes, sizeof(vdo_goog_modes));
- return ARRAY_SIZE(vdo_goog_modes) + 1;
- } else {
- return 0; /* nak */
- }
-}
-
-static int dp_status(int port, uint32_t *payload)
-{
- int opos = PD_VDO_OPOS(payload[0]);
- int hpd = gpio_get_level(GPIO_DP_HPD);
- if (opos != OPOS_DP)
- return 0; /* nak */
-
- payload[1] = VDO_DP_STATUS(0, /* IRQ_HPD */
- (hpd == 1), /* HPD_HI|LOW */
- 0, /* request exit DP */
- 0, /* request exit USB */
- 0, /* MF pref */
- gpio_get_level(GPIO_PD_SBU_ENABLE),
- 0, /* power low */
- 0x2);
- return 2;
-}
-
-static int dp_config(int port, uint32_t *payload)
-{
- if (PD_DP_CFG_DPON(payload[1]))
- gpio_set_level(GPIO_PD_SBU_ENABLE, 1);
-
- return 1;
-}
-
-static int svdm_enter_mode(int port, uint32_t *payload)
-{
- int rv = 0; /* will generate a NAK */
-
- /* SID & mode request is valid */
- if ((PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) &&
- (PD_VDO_OPOS(payload[0]) == OPOS_DP)) {
- alt_mode[PD_AMODE_DISPLAYPORT] = OPOS_DP;
- rv = 1;
- pd_log_event(PD_EVENT_VIDEO_DP_MODE, 0, 1, NULL);
- } else if ((PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) &&
- (PD_VDO_OPOS(payload[0]) == OPOS_GFU)) {
- alt_mode[PD_AMODE_GOOGLE] = OPOS_GFU;
- rv = 1;
- }
-
- if (rv)
- /*
- * If we failed initial mode entry we'll have enumerated the USB
- * Billboard class. If so we should disconnect.
- */
- usb_disconnect();
-
- return rv;
-}
-
-int pd_alt_mode(int port, enum tcpci_msg_type type, uint16_t svid)
-{
- if (type != TCPCI_MSG_SOP)
- return 0;
-
- if (svid == USB_SID_DISPLAYPORT)
- return alt_mode[PD_AMODE_DISPLAYPORT];
- else if (svid == USB_VID_GOOGLE)
- return alt_mode[PD_AMODE_GOOGLE];
- return 0;
-}
-
-static int svdm_exit_mode(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) {
- gpio_set_level(GPIO_PD_SBU_ENABLE, 0);
- alt_mode[PD_AMODE_DISPLAYPORT] = 0;
- pd_log_event(PD_EVENT_VIDEO_DP_MODE, 0, 0, NULL);
- } else if (PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) {
- alt_mode[PD_AMODE_GOOGLE] = 0;
- } else {
- CPRINTF("Unknown exit mode req:0x%08x\n", payload[0]);
- }
-
- return 1; /* Must return ACK */
-}
-
-static struct amode_fx dp_fx = {
- .status = &dp_status,
- .config = &dp_config,
-};
-
-const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = &svdm_response_svids,
- .modes = &svdm_response_modes,
- .enter_mode = &svdm_enter_mode,
- .amode = &dp_fx,
- .exit_mode = &svdm_exit_mode,
-};
-
-int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- int rsize;
-
- if (PD_VDO_VID(payload[0]) != USB_VID_GOOGLE ||
- !alt_mode[PD_AMODE_GOOGLE])
- return 0;
-
- *rpayload = payload;
-
- rsize = pd_custom_flash_vdm(port, cnt, payload);
- if (!rsize) {
- int cmd = PD_VDO_CMD(payload[0]);
- switch (cmd) {
- case VDO_CMD_GET_LOG:
- rsize = pd_vdm_get_log_entry(payload);
- break;
- default:
- /* Unknown : do not answer */
- return 0;
- }
- }
-
- /* respond (positively) to the request */
- payload[0] |= VDO_SRC_RESPONDER;
-
- return rsize;
-}
diff --git a/board/dingdong/vif_override.xml b/board/dingdong/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/dingdong/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/dirinboz/analyzestack.yaml b/board/dirinboz/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/dirinboz/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/dirinboz/battery.c b/board/dirinboz/battery.c
deleted file mode 100644
index c148f9aa52..0000000000
--- a/board/dirinboz/battery.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Dirinboz battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo Coslight Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Samsung SDI Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack Coslight Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_COS;
diff --git a/board/dirinboz/board.c b/board/dirinboz/board.c
deleted file mode 100644
index 150c42fb17..0000000000
--- a/board/dirinboz/board.c
+++ /dev/null
@@ -1,543 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "button.h"
-#include "cros_board_info.h"
-#include "charge_state.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/aoz1380.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_8042_sharedlib.h"
-#include "ioexpander.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "usb_charge.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-int I2C_PORT_BATTERY = I2C_PORT_BATTERY_V1;
-
-#include "gpio_list.h"
-
-/*****************************************************************************
- * Retimers
- */
-
-static void retimers_on(void)
-{
- /* usba retimer power on */
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, retimers_on, HOOK_PRIO_DEFAULT);
-
-static void retimers_off(void)
-{
- /* usba retimer power off */
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, retimers_off, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************
- * USB-C
- */
-
-/*
- * USB C0 port SBU mux use standalone PI3USB221
- * chip and it need a board specific driver.
- * Overall, it will use chained mux framework.
- */
-static int pi3usb221_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
- if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
- else
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 0);
-
- return EC_SUCCESS;
-}
-
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-const struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = pi3usb221_set_mux,
-};
-
-/*
- * Since PI3USB221 is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-const struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
-
-struct usb_mux usbc1_amd_fp5_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .flags = USB_MUX_FLAG_SET_WITHOUT_FLIP,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PS8743_I2C_ADDR1_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .next_mux = &usbc1_amd_fp5_usb_mux,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- /* Device does not talk I2C */
- .drv = &aoz1380_drv
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NX20P3483_ADDR1_FLAGS,
- .drv = &nx20p348x_drv
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_FAULT_ODL:
- aoz1380_interrupt(USBC_PORT_C0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- /*
- * Sensitive only to falling edges; GPIO is configured for both
- * because this input may be used for HDMI HPD instead.
- */
- if (!gpio_get_level(signal))
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
-
- default:
- break;
- }
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTSUSB("Disabling all charger ports");
-
- /* Disable all ports. */
- for (i = 0; i < ppc_cnt; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("Disabling C%d as sink failed.", i);
- }
-
- return EC_SUCCESS;
- } else if (!is_valid_port) {
- return EC_ERROR_INVAL;
- }
-
-
- /* Check if the port is sourcing VBUS. */
- if (ppc_is_sourcing_vbus(port)) {
- CPRINTFUSB("Skip enable C%d", port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTSUSB("New charge port: C%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < ppc_cnt; i++) {
- if (i == port)
- continue;
-
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("C%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (ppc_vbus_sink_enable(port, 1)) {
- CPRINTSUSB("C%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- switch (port) {
- case USBC_PORT_C0:
- ioex_set_level(IOEX_USB_C0_FAULT_ODL, !is_overcurrented);
- break;
-
- case USBC_PORT_C1:
- ioex_set_level(IOEX_USB_C1_FAULT_ODL, !is_overcurrented);
- break;
-
- default:
- break;
- }
-}
-
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-static void reset_nct38xx_port(int port)
-{
- enum gpio_signal reset_gpio_l;
-
- if (port == USBC_PORT_C0)
- reset_gpio_l = GPIO_USB_C0_TCPC_RST_L;
- else if (port == USBC_PORT_C1)
- reset_gpio_l = GPIO_USB_C1_TCPC_RST_L;
- else
- /* Invalid port: do nothing */
- return;
-
- gpio_set_level(reset_gpio_l, 0);
- msleep(NCT38XX_RESET_HOLD_DELAY_MS);
- gpio_set_level(reset_gpio_l, 1);
- nct38xx_reset_notify(port);
- if (NCT3807_RESET_POST_DELAY_MS != 0)
- msleep(NCT3807_RESET_POST_DELAY_MS);
-}
-
-
-void board_reset_pd_mcu(void)
-{
- /* Reset TCPC0 */
- reset_nct38xx_port(USBC_PORT_C0);
-
- /* Reset TCPC1 */
- reset_nct38xx_port(USBC_PORT_C1);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-int board_pd_set_frs_enable(int port, int enable)
-{
- int rv = EC_SUCCESS;
-
- /* Use the TCPC to enable fast switch when FRS included */
- if (port == USBC_PORT_C0) {
- rv = ioex_set_level(IOEX_USB_C0_TCPC_FASTSW_CTL_EN,
- !!enable);
- } else {
- rv = ioex_set_level(IOEX_USB_C1_TCPC_FASTSW_CTL_EN,
- !!enable);
- }
-
- return rv;
-}
-
-static void setup_fw_config(void)
-{
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_FAULT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC 1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-
- /* Enable SBU fault interrupts */
- ioex_enable_interrupt(IOEX_USB_C0_SBU_FAULT_ODL);
- ioex_enable_interrupt(IOEX_USB_C1_SBU_FAULT_DB_ODL);
-
- /*
- * If keyboard is US2(KB_LAYOUT_1), we need translate right ctrl
- * to backslash(\|) key.
- */
- if (ec_config_keyboard_layout() == KB_LAYOUT_1)
- set_scancode_set2(4, 0, get_scancode_set2(2, 7));
-}
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
- [IOEX_C1_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB,
-};
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {0, 5}, {1, 1}, {1, 0}, {0, 6}, {0, 7},
- {1, 4}, {1, 3}, {1, 6}, {1, 7}, {3, 1},
- {2, 0}, {1, 5}, {2, 6}, {2, 7}, {2, 1},
- {2, 4}, {2, 5}, {1, 2}, {2, 3}, {2, 2},
- {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-#define CHARGING_CURRENT_500mA 500
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- static int thermal_sensor_temp;
- static int prev_thermal_sensor_temp;
- static int limit_charge;
- static int limit_usbc_power;
- static int limit_usbc_power_backup;
- enum tcpc_rp_value rp;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return 0;
-
- temp_sensor_read(TEMP_SENSOR_CHARGER, &thermal_sensor_temp);
-
- if (thermal_sensor_temp > prev_thermal_sensor_temp) {
- if (thermal_sensor_temp > C_TO_K(63))
- limit_usbc_power = 1;
-
- if (thermal_sensor_temp > C_TO_K(58)) {
- if (curr->state == ST_CHARGE)
- limit_charge = 1;
- }
- } else if (thermal_sensor_temp < prev_thermal_sensor_temp) {
- if (thermal_sensor_temp < C_TO_K(62))
- limit_usbc_power = 0;
-
- if (thermal_sensor_temp < C_TO_K(57)) {
- if (curr->state == ST_CHARGE)
- limit_charge = 0;
- }
- }
-
- if (limit_charge)
- curr->requested_current = CHARGING_CURRENT_500mA;
- else
- curr->requested_current = curr->batt.desired_current;
-
- if (limit_usbc_power != limit_usbc_power_backup) {
- if (limit_usbc_power == 1)
- rp = TYPEC_RP_1A5;
- else
- rp = TYPEC_RP_3A0;
-
- ppc_set_vbus_source_current_limit(0, rp);
- tcpm_select_rp_value(0, rp);
- pd_update_contract(0);
- limit_usbc_power_backup = limit_usbc_power;
- }
-
- prev_thermal_sensor_temp = thermal_sensor_temp;
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-__override struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT] = {
- [TEMP_SENSOR_CHARGER] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(63),
- [EC_TEMP_THRESH_HALT] = C_TO_K(92),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(62),
- }
- },
- [TEMP_SENSOR_SOC] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(77),
- }
- },
- [TEMP_SENSOR_CPU] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(83),
- }
- },
-};
diff --git a/board/dirinboz/board.h b/board/dirinboz/board.h
deleted file mode 100644
index 67e083b51f..0000000000
--- a/board/dirinboz/board.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* 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.
- */
-
-/* Trembyle board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_DALBOZ
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_USBC_PPC_NX20P3483
-#define CONFIG_USB_MUX_PS8743
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PORT_ENABLE_DYNAMIC
-
-#undef CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 40000
-
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* USB-A config */
-#define GPIO_USB1_ILIM_SEL IOEX_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL IOEX_USB_A1_CHARGE_EN_DB_L
-
-/* LED */
-#undef CONFIG_LED_ONOFF_STATES
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-#ifndef __ASSEMBLER__
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-extern int I2C_PORT_BATTERY;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_SAMSUNG_SDI,
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_COS,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT3807 = 0,
- IOEX_C1_NCT3807,
- IOEX_PORT_COUNT
-};
-
-#define PORT_TO_HPD(port) ((port == 0) \
- ? GPIO_USB3_C0_DP2_HPD \
- : GPIO_DP1_HPD)
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * DALBOZ_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: none
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- DALBOZ_MB_USBAC = 0,
-};
-
-/**
- * DIRINBOZ_DB_OPT1_USBC
- * USB-A1 Speed: 5 Gbps
- * Retimer: PS8719
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8743
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: no
- * Retimer: none
- * MST Hub: none
- */
-enum ec_cfg_usb_db_type {
- DIRINBOZ_DB_OPT1_USBC = 0,
-};
-
-#include "cbi_ec_fw_config.h"
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return 0;
-}
-
-void board_reset_pd_mcu(void);
-
-/* Common definition for the USB PD interrupt handlers. */
-void tcpc_alert_event(enum gpio_signal signal);
-void bc12_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/dirinboz/build.mk b/board/dirinboz/build.mk
deleted file mode 100644
index 1c0cbc4f63..0000000000
--- a/board/dirinboz/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/dirinboz/ec.tasklist b/board/dirinboz/ec.tasklist
deleted file mode 100644
index 3a08ebc972..0000000000
--- a/board/dirinboz/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/dirinboz/gpio.inc b/board/dirinboz/gpio.inc
deleted file mode 100644
index f4de7e567a..0000000000
--- a/board/dirinboz/gpio.inc
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_BOTH | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 7), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(7, 0), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB3_C0_DP2_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-
-/*
- * Dirinboz has 1 DB options.
- * IOEX_C1_NCT3807 is the DB (USB-C1).
- */
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(IOEX_C1_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_C0_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C0_NCT3807, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(IOEX_C0_NCT3807, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(IOEX_C0_NCT3807, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(EN_USB_A0_5V, EXPIN(IOEX_C0_NCT3807, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(IOEX_C0_NCT3807, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-IOEX(USB_C0_SBU_FLIP, EXPIN(IOEX_C0_NCT3807, 1, 7), GPIO_OUT_LOW) /* C0 SBU Flip */
-
-IOEX(USB_A1_RETIMER_EN, EXPIN(IOEX_C1_NCT3807, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(IOEX_C1_NCT3807, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C1_NCT3807, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_PPC_EN_L, EXPIN(IOEX_C1_NCT3807, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(IOEX_C1_NCT3807, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB, EXPIN(IOEX_C1_NCT3807, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L,EXPIN(IOEX_C1_NCT3807, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-IOEX(C1_CHARGER_LED_WHITE_DB,EXPIN(IOEX_C1_NCT3807, 1, 0), GPIO_OUT_HIGH) /* C1 Charge LED White */
-IOEX(C1_CHARGER_LED_AMBER_DB,EXPIN(IOEX_C1_NCT3807, 1, 4), GPIO_OUT_HIGH) /* C1 Charge LED Amber */
-
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(I2C_AUDIO_USB_HUB_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_AUDIO_USB_HUB_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_BATT_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/dirinboz/led.c b/board/dirinboz/led.c
deleted file mode 100644
index 3343d0f924..0000000000
--- a/board/dirinboz/led.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "cros_board_info.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define LED_TICKS_PER_CYCLE 10
-#define LED_ON_TICKS 5
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- LEFT_PORT = 0,
- RIGHT_PORT
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
- uint32_t board_ver = 0;
- int led_batt_on_lvl, led_batt_off_lvl;
-
- cbi_get_board_version(&board_ver);
- amber_led = (port == LEFT_PORT ? GPIO_LED_CHRG_L :
- IOEX_C1_CHARGER_LED_AMBER_DB);
- white_led = (port == LEFT_PORT ? GPIO_LED_FULL_L :
- IOEX_C1_CHARGER_LED_WHITE_DB);
-
- if ((board_ver >= 3) && (port == RIGHT_PORT)) {
- led_batt_on_lvl = 1;
- led_batt_off_lvl = 0;
- } else {
- led_batt_on_lvl = 0;
- led_batt_off_lvl = 1;
- }
-
- switch (color) {
- case LED_WHITE:
- gpio_or_ioex_set_level(white_led, led_batt_on_lvl);
- gpio_or_ioex_set_level(amber_led, led_batt_off_lvl);
- break;
- case LED_AMBER:
- gpio_or_ioex_set_level(white_led, led_batt_off_lvl);
- gpio_or_ioex_set_level(amber_led, led_batt_on_lvl);
- break;
- case LED_OFF:
- gpio_or_ioex_set_level(white_led, led_batt_off_lvl);
- gpio_or_ioex_set_level(amber_led, led_batt_off_lvl);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LEDs for Berknip, Berknip is non-power LED
- * design, blinking both two side battery white LEDs to indicate
- * system suspend with non-charging state.
- */
- if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
-
- power_ticks++;
-
- led_set_color_battery(RIGHT_PORT, power_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- led_set_color_battery(LEFT_PORT, power_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- return;
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/dirinboz/vif_override.xml b/board/dirinboz/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/dirinboz/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/discovery-stm32f072/board.c b/board/discovery-stm32f072/board.c
deleted file mode 100644
index c7099f55d1..0000000000
--- a/board/discovery-stm32f072/board.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Copyright 2014 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.
- */
-/* STM32F072-discovery board configuration */
-
-#include "common.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "spi.h"
-#include "task.h"
-#include "usart-stm32f0.h"
-#include "usart_tx_dma.h"
-#include "usart_rx_dma.h"
-#include "usb_gpio.h"
-#include "usb_spi.h"
-#include "usb-stream.h"
-#include "util.h"
-
-/******************************************************************************
- * Build GPIO tables and expose a subset of the GPIOs over USB.
- */
-void button_event(enum gpio_signal signal);
-
-#include "gpio_list.h"
-
-static enum gpio_signal const usb_gpio_list[] = {
- GPIO_USER_BUTTON,
- GPIO_LED_U,
- GPIO_LED_D,
- GPIO_LED_L,
- GPIO_LED_R,
-};
-
-/*
- * This instantiates struct usb_gpio_config const usb_gpio, plus several other
- * variables, all named something beginning with usb_gpio_
- */
-USB_GPIO_CONFIG(usb_gpio,
- usb_gpio_list,
- USB_IFACE_GPIO,
- USB_EP_GPIO);
-
-/******************************************************************************
- * Setup USART1 as a loopback device, it just echo's back anything sent to it.
- */
-static struct usart_config const loopback_usart;
-
-static struct queue const loopback_queue =
- QUEUE_DIRECT(64, uint8_t,
- loopback_usart.producer,
- loopback_usart.consumer);
-
-static struct usart_rx_dma const loopback_rx_dma =
- USART_RX_DMA(STM32_DMAC_CH3, 8);
-
-static struct usart_tx_dma const loopback_tx_dma =
- USART_TX_DMA(STM32_DMAC_CH2, 16);
-
-static struct usart_config const loopback_usart =
- USART_CONFIG(usart1_hw,
- loopback_rx_dma.usart_rx,
- loopback_tx_dma.usart_tx,
- 115200,
- 0,
- loopback_queue,
- loopback_queue);
-
-/******************************************************************************
- * Forward USART4 as a simple USB serial interface.
- */
-static struct usart_config const forward_usart;
-struct usb_stream_config const forward_usb;
-
-static struct queue const usart_to_usb = QUEUE_DIRECT(64, uint8_t,
- forward_usart.producer,
- forward_usb.consumer);
-static struct queue const usb_to_usart = QUEUE_DIRECT(64, uint8_t,
- forward_usb.producer,
- forward_usart.consumer);
-
-static struct usart_tx_dma const forward_tx_dma =
- USART_TX_DMA(STM32_DMAC_CH7, 16);
-
-static struct usart_config const forward_usart =
- USART_CONFIG(usart4_hw,
- usart_rx_interrupt,
- forward_tx_dma.usart_tx,
- 115200,
- 0,
- usart_to_usb,
- usb_to_usart);
-
-#define USB_STREAM_RX_SIZE 16
-#define USB_STREAM_TX_SIZE 16
-
-USB_STREAM_CONFIG(forward_usb,
- USB_IFACE_STREAM,
- USB_STR_STREAM_NAME,
- USB_EP_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart,
- usart_to_usb)
-
-/******************************************************************************
- * Handle button presses by cycling the LEDs on the board. Also run a tick
- * handler to cycle them when they are not actively under USB control.
- */
-void button_event(enum gpio_signal signal)
-{
- static int count;
-
- gpio_set_level(GPIO_LED_U, (count & 0x03) == 0);
- gpio_set_level(GPIO_LED_R, (count & 0x03) == 1);
- gpio_set_level(GPIO_LED_D, (count & 0x03) == 2);
- gpio_set_level(GPIO_LED_L, (count & 0x03) == 3);
-
- count++;
-}
-
-void usb_gpio_tick(void)
-{
- if (usb_gpio.state->set_mask || usb_gpio.state->clear_mask)
- return;
-
- button_event(0);
-}
-DECLARE_HOOK(HOOK_TICK, usb_gpio_tick, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("discovery-stm32f072"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_STREAM_NAME] = USB_STRING_DESC("Forward"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Shell"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-
-/******************************************************************************
- * Support SPI bridging over USB, this requires usb_spi_board_enable and
- * usb_spi_board_disable to be defined to enable and disable the SPI bridge.
- */
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_FLASH_PORT, 0, GPIO_SPI_CS},
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-void usb_spi_board_enable(struct usb_spi_config const *config)
-{
- /* Remap SPI2 to DMA channels 6 and 7 */
- STM32_SYSCFG_CFGR1 |= BIT(24);
-
- /* Configure SPI GPIOs */
- gpio_config_module(MODULE_SPI_FLASH, 1);
-
- /* Set all four SPI pins to high speed */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xff000000;
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
-}
-
-void usb_spi_board_disable(struct usb_spi_config const *config)
-{
- spi_enable(&spi_devices[0], 0);
-
- /* Disable clocks to SPI2 module */
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-
- /* Release SPI GPIOs */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-}
-
-USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0);
-
-/******************************************************************************
- * Initialize board.
- */
-static void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USER_BUTTON);
-
- queue_init(&loopback_queue);
- queue_init(&usart_to_usb);
- queue_init(&usb_to_usart);
- usart_init(&loopback_usart);
- usart_init(&forward_usart);
-
- usb_spi_enable(&usb_spi, 1);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/discovery-stm32f072/board.h b/board/discovery-stm32f072/board.h
deleted file mode 100644
index d3f51f6691..0000000000
--- a/board/discovery-stm32f072/board.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* STM32F072-discovery board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Enable USART1,3,4 and USB streams */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART1
-#define CONFIG_STREAM_USART4
-#define CONFIG_STREAM_USB
-#define CONFIG_CMD_USART_INFO
-
-/* the UART console is on USART2 (PA14/PA15) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_HW_CRC
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x500f
-#define CONFIG_USB_CONSOLE
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_STREAM 0
-#define USB_IFACE_GPIO 1
-#define USB_IFACE_SPI 2
-#define USB_IFACE_CONSOLE 3
-#define USB_IFACE_COUNT 4
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_STREAM 1
-#define USB_EP_GPIO 2
-#define USB_EP_SPI 3
-#define USB_EP_CONSOLE 4
-#define USB_EP_COUNT 5
-
-/* Enable control of GPIOs over USB */
-#define CONFIG_USB_GPIO
-
-/* Enable control of SPI over USB */
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_FLASH_PORT 0 /* First SPI master port */
-
-
-#define CONFIG_USB_SPI
-
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_VERSION,
- USB_STR_STREAM_NAME,
- USB_STR_CONSOLE_NAME,
-
- USB_STR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/discovery-stm32f072/build.mk b/board/discovery-stm32f072/build.mk
deleted file mode 100644
index c1892335ed..0000000000
--- a/board/discovery-stm32f072/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
diff --git a/board/discovery-stm32f072/ec.tasklist b/board/discovery-stm32f072/ec.tasklist
deleted file mode 100644
index cc4c2ad42d..0000000000
--- a/board/discovery-stm32f072/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/discovery-stm32f072/gpio.inc b/board/discovery-stm32f072/gpio.inc
deleted file mode 100644
index 65bdd0179b..0000000000
--- a/board/discovery-stm32f072/gpio.inc
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USER_BUTTON, PIN(A, 0), GPIO_INT_FALLING, button_event)
-
-/* Outputs */
-GPIO(LED_U, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(LED_D, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(LED_L, PIN(C, 8), GPIO_OUT_LOW)
-GPIO(LED_R, PIN(C, 9), GPIO_OUT_LOW)
-
-/* Flash SPI interface */
-GPIO(SPI_WP, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(SPI_HOLD, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(SPI_CS, PIN(B, 12), GPIO_OUT_HIGH)
-
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_USART, 0) /* USART1: PA09/PA10 */
-ALTERNATE(PIN_MASK(A, 0xC000), 1, MODULE_UART, 0) /* USART2: PA14/PA15 */
-ALTERNATE(PIN_MASK(B, 0x0C00), 4, MODULE_USART, 0) /* USART3: PB10/PB11 */
-ALTERNATE(PIN_MASK(C, 0x0C00), 0, MODULE_USART, 0) /* USART4: PC10/PC11 */
diff --git a/board/discovery-stm32f072/openocd-flash.cfg b/board/discovery-stm32f072/openocd-flash.cfg
deleted file mode 100644
index ec32416934..0000000000
--- a/board/discovery-stm32f072/openocd-flash.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2014 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.
-
-source [find board/stm32f0discovery.cfg]
-
-# For flashing, force the board into reset on connect, this ensures that
-# code running on the core can't interfere with programming.
-reset_config connect_assert_srst
-
-gdb_port 0
-tcl_port 0
-telnet_port 0
-init
-reset init
-flash write_image erase $BUILD_DIR/ec.bin 0x08000000
-reset halt
-resume
-shutdown
diff --git a/board/discovery/board.c b/board/discovery/board.c
deleted file mode 100644
index 0d4cde2e7c..0000000000
--- a/board/discovery/board.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2013 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.
- */
-/* STM32L-discovery board configuration */
-
-#include "common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "usart-stm32f0.h"
-#include "usart_rx_dma.h"
-#include "usart_tx_dma.h"
-#include "util.h"
-
-void button_event(enum gpio_signal signal);
-
-#include "gpio_list.h"
-
-void button_event(enum gpio_signal signal)
-{
- static int count;
-
- gpio_set_level(GPIO_LED_GREEN, ++count & 0x02);
-}
-
-void usb_gpio_tick(void)
-{
- static int count;
-
- gpio_set_level(GPIO_LED_BLUE, ++count & 0x01);
-}
-DECLARE_HOOK(HOOK_TICK, usb_gpio_tick, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************
- * Setup USART2 as a loopback device, it just echo's back anything sent to it.
- */
-static struct usart_config const loopback_usart;
-
-static struct queue const loopback_queue =
- QUEUE_DIRECT(64, uint8_t,
- loopback_usart.producer,
- loopback_usart.consumer);
-
-static struct usart_rx_dma const loopback_rx_dma =
- USART_RX_DMA(STM32_DMAC_CH6, 32);
-
-static struct usart_tx_dma const loopback_tx_dma =
- USART_TX_DMA(STM32_DMAC_CH7, 16);
-
-static struct usart_config const loopback_usart =
- USART_CONFIG(usart2_hw,
- loopback_rx_dma.usart_rx,
- loopback_tx_dma.usart_tx,
- 115200,
- 0,
- loopback_queue,
- loopback_queue);
-
-/******************************************************************************
- * Initialize board.
- */
-static void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USER_BUTTON);
-
- usart_init(&loopback_usart);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/discovery/board.h b/board/discovery/board.h
deleted file mode 100644
index ddd2461a56..0000000000
--- a/board/discovery/board.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/* STM32L-discovery board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional features */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/* Enable USART2 */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART2
-#define CONFIG_CMD_USART_INFO
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK_MSB 3
-#define TIM_CLOCK_LSB 4
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/discovery/build.mk b/board/discovery/build.mk
deleted file mode 100644
index 42f9f9a0fc..0000000000
--- a/board/discovery/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2013 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32L152RCT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32l
-CHIP_VARIANT:=stm32l15x
-
-board-y=board.o
diff --git a/board/discovery/ec.tasklist b/board/discovery/ec.tasklist
deleted file mode 100644
index 3822ab3779..0000000000
--- a/board/discovery/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/discovery/gpio.inc b/board/discovery/gpio.inc
deleted file mode 100644
index 821f38ca46..0000000000
--- a/board/discovery/gpio.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USER_BUTTON, PIN(A, 0), GPIO_INT_BOTH, button_event)
-
-/* Outputs */
-GPIO(LED_BLUE, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(LED_GREEN, PIN(B, 7), GPIO_OUT_LOW)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0600), GPIO_ALT_USART, MODULE_UART, 0) /* USART1: PA09/PA10 */
-ALTERNATE(PIN_MASK(A, 0x000C), GPIO_ALT_USART, MODULE_USART, 0) /* USART2: PA02/PA03 */
-ALTERNATE(PIN_MASK(B, 0x0C00), GPIO_ALT_USART, MODULE_USART, 0) /* USART3: PB10/PB11 */
diff --git a/board/discovery/openocd-flash.cfg b/board/discovery/openocd-flash.cfg
deleted file mode 100644
index 6426ad5473..0000000000
--- a/board/discovery/openocd-flash.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2015 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.
-
-source [find board/stm32ldiscovery.cfg]
-
-# For flashing, force the board into reset on connect, this ensures that
-# code running on the core can't interfere with programming.
-reset_config connect_assert_srst
-
-gdb_port 0
-tcl_port 0
-telnet_port 0
-init
-reset init
-flash write_image erase $BUILD_DIR/ec.bin 0x08000000
-reset halt
-resume
-shutdown
diff --git a/board/don b/board/don
deleted file mode 120000
index 7ca3c85ad3..0000000000
--- a/board/don
+++ /dev/null
@@ -1 +0,0 @@
-hammer/ \ No newline at end of file
diff --git a/board/dood/battery.c b/board/dood/battery.c
deleted file mode 100644
index e719ea3151..0000000000
--- a/board/dood/battery.c
+++ /dev/null
@@ -1,414 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Dood battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AC15A8J Battery Information */
- [BATTERY_LGC15] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "AC15A8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC_AP15O5L] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP15O5L",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SANYO AC15A3J Battery Information */
- [BATTERY_SANYO] = {
- .fuel_gauge = {
- .manuf_name = "SANYO",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Sony Ap13J4K Battery Information */
- [BATTERY_SONY] = {
- .fuel_gauge = {
- .manuf_name = "SONYCorp",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x8000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo AP13J7K Battery Information */
- [BATTERY_SMP_AP13J7K] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "AP13J7K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AC15A3J Battery Information */
- [BATTERY_PANASONIC_AC15A3J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AC15A3J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP19A8K Battery Information */
- [BATTERY_LGC_AP19A8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KTxxxxGxxx",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC KT0030G023 Battery Information */
- [BATTERY_LGC_G023] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G023",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Simplo PC-VP-BP44 Battery Information */
- [BATTERY_SMP_PCVPBP144] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "PC-VP-BP144",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 128, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo PC-VP-BP126 Battery Information */
- [BATTERY_SMP_PCVPBP126] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "PC-VP-BP126",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 128, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo PC-VP-BP136 Battery Information */
- [BATTERY_SMP_PCVPBP136] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "PC-VP-BP136",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 128, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC15A3J;
diff --git a/board/dood/board.c b/board/dood/board.c
deleted file mode 100644
index cef4c21268..0000000000
--- a/board/dood/board.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* dood board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_config.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/* Check PPC ID and board version to decide which one ppc is used. */
-static bool support_syv_ppc(void)
-{
- uint32_t board_version = 0;
-
- if (cbi_get_board_version(&board_version) != EC_SUCCESS)
- CPRINTSUSB("Get board version failed.");
-
- if ((board_version >= 5) && (gpio_get_level(GPIO_PPC_ID)))
- return true;
-
- return false;
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
-
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- if (support_syv_ppc())
- syv682x_interrupt(0);
- else
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- if (support_syv_ppc())
- syv682x_interrupt(1);
- else
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static int board_is_convertible(void)
-{
- /* Default supports convertible */
- return true;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-/* Read CBI from i2c eeprom and initialize variables for board variants */
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) != EC_SUCCESS || val > UINT8_MAX)
- return;
- sku_id = val;
- CPRINTSUSB("SKU: %d", sku_id);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_hibernate_late(void)
-{
- int i;
-
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs before going to hibernate */
- {GPIO_BAT_LED_WHITE_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_AMBER_L, GPIO_INPUT | GPIO_PULL_UP},
- };
-
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-const struct ppc_config_t ppc_syv682x_port0 = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-const struct ppc_config_t ppc_syv682x_port1 = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-static void board_setup_ppc(void)
-{
- if (!support_syv_ppc())
- return;
-
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_0],
- &ppc_syv682x_port0,
- sizeof(struct ppc_config_t));
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_1],
- &ppc_syv682x_port1,
- sizeof(struct ppc_config_t));
-
- gpio_set_flags(GPIO_USB_PD_C0_INT_ODL, GPIO_INT_BOTH);
- gpio_set_flags(GPIO_USB_PD_C1_INT_ODL, GPIO_INT_BOTH);
-}
-DECLARE_HOOK(HOOK_INIT, board_setup_ppc, HOOK_PRIO_INIT_I2C + 2);
-
-int ppc_get_alert_status(int port)
-{
- if (port == 0)
- return gpio_get_level(GPIO_USB_PD_C0_INT_ODL) == 0;
-
- return gpio_get_level(GPIO_USB_PD_C1_INT_ODL) == 0;
-}
diff --git a/board/dood/board.h b/board/dood/board.h
deleted file mode 100644
index dcb5c93005..0000000000
--- a/board/dood/board.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Dood board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-/* I2C bus configuraiton */
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LED_COMMON
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-/* Motion Sense Task Events */
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* Additional PPC second source */
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_DEDICATED_INT
-#undef CONFIG_SYV682X_HV_ILIM
-#define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_5_50
-/* SYV682 isn't connected to CC, so TCPC must provide VCONN */
-#define CONFIG_USBC_PPC_SYV682X_NO_CC
-
-
-#ifndef __ASSEMBLER__
-
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_LGC15,
- BATTERY_PANASONIC_AP15O5L,
- BATTERY_SANYO,
- BATTERY_SONY,
- BATTERY_SMP_AP13J7K,
- BATTERY_PANASONIC_AC15A3J,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_LGC_AP19A8K,
- BATTERY_LGC_G023,
- BATTERY_SMP_PCVPBP144,
- BATTERY_SMP_PCVPBP126,
- BATTERY_SMP_PCVPBP136,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/dood/build.mk b/board/dood/build.mk
deleted file mode 100644
index 3d04b75731..0000000000
--- a/board/dood/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/dood/ec.tasklist b/board/dood/ec.tasklist
deleted file mode 100644
index d98db145e7..0000000000
--- a/board/dood/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/dood/gpio.inc b/board/dood/gpio.inc
deleted file mode 100644
index 961acf8ee0..0000000000
--- a/board/dood/gpio.inc
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_AMBER_L, PIN(C, 3), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN) /* LED_1_L */
-GPIO(BAT_LED_WHITE_L, PIN(C, 4), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN) /* LED_2_L */
-GPIO(LED_3_L, PIN(D, 7), GPIO_OUT_HIGH)
-
-/* Keyboard Backlight */
-GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Misc. */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(PPC_ID, PIN(9, 7), GPIO_INPUT | GPIO_PULL_DOWN) /* PPC ID Pin */
-
-/* Unused Pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(WFCAM_VSYNC, PIN(0, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* 1.8V I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/dood/led.c b/board/dood/led.c
deleted file mode 100644
index 966f3d7a72..0000000000
--- a/board/dood/led.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Dood
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Dood: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/dood/vif_override.xml b/board/dood/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/dood/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/dooly/board.c b/board/dooly/board.c
deleted file mode 100644
index b28f3d41b8..0000000000
--- a/board/dooly/board.c
+++ /dev/null
@@ -1,1187 +0,0 @@
-/* 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.
- */
-
-/* Dooly board-specific configuration */
-
-#include "accelgyro.h"
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "chipset.h"
-#include "common.h"
-#include "core/cortex-m/cpu.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/als_tcs3400.h"
-#include "driver/ina3221.h"
-#include "driver/led/oz554.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/cometlake-discrete.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_common.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Sensors */
-static struct mutex g_accel_mutex;
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- /*
- * TODO: calculate the actual coefficients and scaling factors
- */
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.1),
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-const mat33_fp_t screen_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [SCREEN_ACCEL] = {
- .name = "Screen Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR2_FLAGS,
- .rot_standard_ref = &screen_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
- [RGB_ALS] = {
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void power_monitor(void);
-DECLARE_DEFERRED(power_monitor);
-
-/* On ECs without an FPU, the fp_t type is backed by a 32-bit fixed precision
- * representation that can only store values in the range [-32K, +32K]. Some
- * intermediary values produced in tcs3400_translate_to_xyz() do not fit in
- * that range, so we define and use a 64-bit fixed representation instead.
- */
-typedef int64_t fp64_t;
-#define INT_TO_FP64(x) ((int64_t)(x) << 32)
-#define FP64_TO_INT(x) ((x) >> 32)
-#define FLOAT_TO_FP64(x) ((int64_t)((x) * (float)(1LL << 32)))
-
-__override void tcs3400_translate_to_xyz(struct motion_sensor_t *s,
- int32_t *crgb_data, int32_t *xyz_data)
-{
- struct tcs_saturation_t *sat_p =
- &(TCS3400_RGB_DRV_DATA(s+1)->saturation);
-
- int32_t cur_gain = (1 << (2 * sat_p->again));
- int32_t integration_time_us =
- tcs3400_get_integration_time(sat_p->atime);
-
- fp64_t c_coeff, r_coeff, g_coeff, b_coeff;
- fp64_t result;
-
- /* Use different coefficients based on n_interval = (G+B)/C */
- fp64_t gb_sum = INT_TO_FP64(crgb_data[2]) +
- INT_TO_FP64(crgb_data[3]);
- fp64_t n_interval = gb_sum / MAX(crgb_data[0], 1);
-
- if (n_interval < FLOAT_TO_FP64(0.692)) {
- const float scale = 799.797;
-
- c_coeff = FLOAT_TO_FP64(0.009 * scale);
- r_coeff = FLOAT_TO_FP64(0.056 * scale);
- g_coeff = FLOAT_TO_FP64(2.735 * scale);
- b_coeff = FLOAT_TO_FP64(-1.903 * scale);
- } else if (n_interval < FLOAT_TO_FP64(1.012)) {
- const float scale = 801.347;
-
- c_coeff = FLOAT_TO_FP64(0.202 * scale);
- r_coeff = FLOAT_TO_FP64(-1.1 * scale);
- g_coeff = FLOAT_TO_FP64(8.692 * scale);
- b_coeff = FLOAT_TO_FP64(-7.068 * scale);
- } else {
- const float scale = 795.574;
-
- c_coeff = FLOAT_TO_FP64(-0.661 * scale);
- r_coeff = FLOAT_TO_FP64(1.334 * scale);
- g_coeff = FLOAT_TO_FP64(1.095 * scale);
- b_coeff = FLOAT_TO_FP64(-1.821 * scale);
- }
-
- /* Multiply each channel by the coefficient and compute the sum.
- * Note: int * fp64_t = fp64_t and fp64_t + fp64_t = fp64_t.
- */
- result = crgb_data[0] * c_coeff +
- crgb_data[1] * r_coeff +
- crgb_data[2] * g_coeff +
- crgb_data[3] * b_coeff;
-
- /* Adjust for exposure time and sensor gain.
- * Note: fp64_t / int = fp64_t.
- */
- result /= MAX(integration_time_us * cur_gain / 1000, 1);
-
- /* Some C/R/G/B coefficients are negative, so the result could also be
- * negative and must be clamped at zero.
- *
- * The value of xyz_data[1] is stored in a 16 bit integer later on, so
- * it must be clamped at INT16_MAX.
- */
- xyz_data[1] = MIN(MAX(FP64_TO_INT(result), 0), INT16_MAX);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_TCPPC_INT_ODL:
- sn5s330_interrupt(USB_PD_PORT_TCPC_0);
- break;
- case GPIO_USB_C1_TCPPC_INT_ODL:
- sn5s330_interrupt(USB_PD_PORT_TCPC_1);
- break;
- default:
- break;
- }
-}
-
-int ppc_get_alert_status(int port)
-{
- int status = 0;
-
- switch (port) {
- case USB_PD_PORT_TCPC_0:
- status = gpio_get_level(GPIO_USB_C0_TCPPC_INT_ODL) == 0;
- break;
- case USB_PD_PORT_TCPC_1:
- status = gpio_get_level(GPIO_USB_C1_TCPPC_INT_ODL) == 0;
- break;
- default:
- break;
- }
- return status;
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USB_PD_PORT_TCPC_0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USB_PD_PORT_TCPC_1);
- break;
- default:
- break;
- }
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int level;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- level = !!(tcpc_config[USB_PD_PORT_TCPC_0].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST) != level)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL)) {
- level = !!(tcpc_config[USB_PD_PORT_TCPC_1].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
- if (gpio_get_level(GPIO_USB_C1_TCPC_RST) != level)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-/* Called when the charge manager has switched to a new port. */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Blink alert if insufficient power per system_can_boot_ap(). */
- int insufficient_power =
- (charge_ma * charge_mv) <
- (CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON * 1000);
- led_alert(insufficient_power);
-}
-
-static uint8_t usbc_0_overcurrent;
-static uint8_t usbc_1_overcurrent;
-static int32_t base_5v_power;
-
-/*
- * Power usage for each port as measured or estimated.
- * Units are milliwatts (5v x ma current)
- */
-#define PWR_BASE_LOAD (5*1335)
-#define PWR_FRONT_HIGH (5*1603)
-#define PWR_FRONT_LOW (5*963)
-#define PWR_C_HIGH (5*3740)
-#define PWR_C_LOW (5*2090)
-#define PWR_MAX (5*10000)
-
-/*
- * Update the 5V power usage, assuming no throttling,
- * and invoke the power monitoring.
- */
-static void update_5v_usage(void)
-{
- int front_ports = 0;
- /*
- * Recalculate the 5V load, assuming no throttling.
- */
- base_5v_power = PWR_BASE_LOAD;
- if (!gpio_get_level(GPIO_USB_A0_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- if (!gpio_get_level(GPIO_USB_A1_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- /*
- * Only 1 front port can run higher power at a time.
- */
- if (front_ports > 0)
- base_5v_power += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (usbc_0_overcurrent)
- base_5v_power += PWR_C_HIGH;
- if (usbc_1_overcurrent)
- base_5v_power += PWR_C_HIGH;
- /*
- * Invoke the power handler immediately.
- */
- hook_call_deferred(&power_monitor_data, 0);
-}
-DECLARE_DEFERRED(update_5v_usage);
-/*
- * Start power monitoring after ADCs have been initialised.
- */
-DECLARE_HOOK(HOOK_INIT, update_5v_usage, HOOK_PRIO_INIT_ADC + 1);
-
-static void port_ocp_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&update_5v_usage_data, 0);
-}
-
-/******************************************************************************/
-/*
- * Barrel jack power supply handling
- *
- * EN_PPVAR_BJ_ADP_L must default active to ensure we can power on when the
- * barrel jack is connected, and the USB-C port can bring the EC up fine in
- * dead-battery mode. Both the USB-C and barrel jack switches do reverse
- * protection, so we're safe to turn one on then the other off- but we should
- * only do that if the system is off since it might still brown out.
- */
-
-/*
- * Barrel-jack power adapter ratings.
- */
-static const struct {
- int voltage;
- int current;
-} bj_power[] = {
- { /* 0 - 65W (also default) */
- .voltage = 19500,
- .current = 3200
- },
- { /* 1 - 90W */
- .voltage = 19500,
- .current = 4600
- },
-};
-
-#define ADP_DEBOUNCE_MS 1000 /* Debounce time for BJ plug/unplug */
-/* Debounced connection state of the barrel jack */
-static int8_t adp_connected = -1;
-static void adp_connect_deferred(void)
-{
- struct charge_port_info pi = { 0 };
- int connected = !gpio_get_level(GPIO_BJ_ADP_PRESENT_L);
-
- /* Debounce */
- if (connected == adp_connected)
- return;
- if (connected) {
- unsigned int bj = ec_config_get_bj_power();
-
- pi.voltage = bj_power[bj].voltage;
- pi.current = bj_power[bj].current;
- }
- charge_manager_update_charge(CHARGE_SUPPLIER_DEDICATED,
- DEDICATED_CHARGE_PORT, &pi);
- adp_connected = connected;
-}
-DECLARE_DEFERRED(adp_connect_deferred);
-
-/* IRQ for BJ plug/unplug. It shouldn't be called if BJ is the power source. */
-void adp_connect_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&adp_connect_deferred_data, ADP_DEBOUNCE_MS * MSEC);
-}
-
-static void adp_state_init(void)
-{
- /*
- * Initialize all charge suppliers to 0. The charge manager waits until
- * all ports have reported in before doing anything.
- */
- for (int i = 0; i < CHARGE_PORT_COUNT; i++) {
- for (int j = 0; j < CHARGE_SUPPLIER_COUNT; j++)
- charge_manager_update_charge(j, i, NULL);
- }
-
- /* Report charge state from the barrel jack. */
- adp_connect_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, adp_state_init, HOOK_PRIO_CHARGE_MANAGER_INIT + 1);
-
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_LED_RED] = { .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW |
- PWM_CONFIG_DSLEEP,
- .freq = 2000 },
- [PWM_CH_LED_WHITE] = { .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW |
- PWM_CONFIG_DSLEEP,
- .freq = 2000 },
-};
-
-/******************************************************************************/
-/* USB-C TCPC Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
-};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
-};
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {"ina", I2C_PORT_INA, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"ppc0", I2C_PORT_PPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"ppc1", I2C_PORT_PPC1, 400, GPIO_I2C2_SCL, GPIO_I2C1_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C4_SCL, GPIO_I2C3_SDA},
- {"power", I2C_PORT_POWER, 400, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct adc_t adc_channels[] = {
- [ADC_SNS_PP3300] = {
- /*
- * 4700/5631 voltage divider: can take the value out of range
- * for 32-bit signed integers, so truncate to 470/563 yielding
- * <0.1% error and a maximum intermediate value of 1623457792,
- * which comfortably fits in int32.
- */
- .name = "SNS_PP3300",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT * 563,
- .factor_div = (ADC_READ_MAX + 1) * 470,
- },
- [ADC_SNS_PP1050] = {
- .name = "SNS_PP1050",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_VBUS] = { /* 5/39 voltage divider */
- .name = "VBUS",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT * 39,
- .factor_div = (ADC_READ_MAX + 1) * 5,
- },
- [ADC_PPVAR_IMON] = { /* 500 mV/A */
- .name = "PPVAR_IMON",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT * 2, /* Milliamps */
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR_1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {
- .name = "PP3300",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* Wake up pins */
-const enum gpio_signal hibernate_wake_pins[] = {
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 2400,
- .rpm_max = 4300,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* Thermal control; drive fan based on temperature sensors. */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(78),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(41),
- .temp_fan_max = C_TO_K(72),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Power sensors */
-const struct ina3221_t ina3221[] = {
- { I2C_PORT_INA, 0x40, { "PP3300_G", "PP5000_A", "PP3300_WLAN" } },
- { I2C_PORT_INA, 0x42, { "PP3300_A", "PP3300_SSD", "PP3300_LAN" } },
- { I2C_PORT_INA, 0x43, { NULL, "PP1200_U", "PP2500_DRAM" } }
-};
-const unsigned int ina3221_count = ARRAY_SIZE(ina3221);
-
-static uint16_t board_version;
-static uint32_t sku_id;
-static uint32_t fw_config;
-
-static void cbi_init(void)
-{
- /*
- * Load board info from CBI to control per-device configuration.
- *
- * If unset it's safe to treat the board as a proto, just C10 gating
- * won't be enabled.
- */
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- if (cbi_get_fw_config(&val) == EC_SUCCESS)
- fw_config = val;
- CPRINTS("Board Version: %d, SKU ID: 0x%08x, F/W config: 0x%08x",
- board_version, sku_id, fw_config);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_init(void)
-{
- uint8_t *memmap_batt_flags;
-
- /* Override some GPIO interrupt priorities.
- *
- * These interrupts are timing-critical for AP power sequencing, so we
- * increase their NVIC priority from the default of 3. This affects
- * whole MIWU groups of 8 GPIOs since they share an IRQ.
- *
- * Latency at the default priority level can be hundreds of
- * microseconds while other equal-priority IRQs are serviced, so GPIOs
- * requiring faster response must be higher priority.
- */
- /* CPU_C10_GATE_L on GPIO6.7: must be ~instant for ~60us response. */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTH_1, 1);
- /*
- * slp_s3_interrupt (GPIOA.5 on WKINTC_0) must respond within 200us
- * (tPLT18); less critical than the C10 gate.
- */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTC_0, 2);
-
- gpio_enable_interrupt(GPIO_BJ_ADP_PRESENT_L);
-
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_ALS_GSENSOR_INT_ODL);
-
- /* Always claim AC is online, because we don't have a battery. */
- memmap_batt_flags = host_get_memmap(EC_MEMMAP_BATT_FLAG);
- *memmap_batt_flags |= EC_BATT_FLAG_AC_PRESENT;
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_startup(void)
-{
- /*
- * Workaround to restore VBUS on PPC.
- * PP1 is sourced from PP5000_A, and when the CPU shuts down and
- * this rail drops, the PPC will internally turn off PP1_EN.
- * When the CPU starts again, and the rail is restored, the PPC
- * does not turn PP1_EN on again, causing VBUS to stay turned off.
- * The workaround is to check whether the PPC is sourcing VBUS, and
- * if so, make sure it is enabled.
- */
- if (ppc_is_sourcing_vbus(USB_PD_PORT_TCPC_0))
- ppc_vbus_source_enable(USB_PD_PORT_TCPC_0, 1);
- if (ppc_is_sourcing_vbus(USB_PD_PORT_TCPC_1))
- ppc_vbus_source_enable(USB_PD_PORT_TCPC_1, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
- HOOK_PRIO_DEFAULT);
-/******************************************************************************/
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_PPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USB-A port control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USB_VBUS,
-};
-
-/* Power Delivery and charging functions */
-static void board_tcpc_init(void)
-{
- /*
- * Reset TCPC if we have had a system reset.
- * With EFSv2, it is possible to be in RW without
- * having reset the TCPC.
- */
- if (system_get_reset_flags() & EC_RESET_FLAG_POWER_ON)
- board_reset_pd_mcu();
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
- /* Enable other overcurrent interrupts */
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A1_OC_ODL);
-
-}
-/* Make sure this is called after fw_config is initialised */
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 2);
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-void board_reset_pd_mcu(void)
-{
- int level0 = !!(tcpc_config[USB_PD_PORT_TCPC_0].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
- int level1 = !!(tcpc_config[USB_PD_PORT_TCPC_1].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST, level0);
- gpio_set_level(GPIO_USB_C1_TCPC_RST, level1);
- msleep(BOARD_TCPC_C0_RESET_HOLD_DELAY);
- gpio_set_level(GPIO_USB_C0_TCPC_RST, !level0);
- gpio_set_level(GPIO_USB_C1_TCPC_RST, !level1);
- if (BOARD_TCPC_C0_RESET_POST_DELAY)
- msleep(BOARD_TCPC_C0_RESET_POST_DELAY);
-}
-
-int board_set_active_charge_port(int port)
-{
- CPRINTS("Requested charge port change to %d", port);
-
- /*
- * The charge manager may ask us to switch to no charger if we're
- * running off USB-C only but upstream doesn't support PD. It requires
- * that we accept this switch otherwise it triggers an assert and EC
- * reset; it's not possible to boot the AP anyway, but we want to avoid
- * resetting the EC so we can continue to do the "low power" LED blink.
- */
- if (port == CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- if (port < 0 || CHARGE_PORT_COUNT <= port)
- return EC_ERROR_INVAL;
-
- if (port == charge_manager_get_active_charge_port())
- return EC_SUCCESS;
-
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(port))
- return EC_ERROR_INVAL;
-
- if (!chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- int bj_active, bj_requested;
-
- if (charge_manager_get_active_charge_port() != CHARGE_PORT_NONE)
- /* Change is only permitted while the system is off */
- return EC_ERROR_INVAL;
-
- /*
- * Current setting is no charge port but the AP is on, so the
- * charge manager is out of sync (probably because we're
- * reinitializing after sysjump). Reject requests that aren't
- * in sync with our outputs.
- */
- bj_active = !gpio_get_level(GPIO_EN_PPVAR_BJ_ADP_L);
- bj_requested = port == CHARGE_PORT_BARRELJACK;
- if (bj_active != bj_requested)
- return EC_ERROR_INVAL;
- }
-
- CPRINTS("New charger p%d", port);
-
- switch (port) {
- case CHARGE_PORT_TYPEC0:
- case CHARGE_PORT_TYPEC1:
- /* TODO(b/143975429) need to touch the PD controller? */
- gpio_set_level(GPIO_EN_PPVAR_BJ_ADP_L, 1);
- break;
- case CHARGE_PORT_BARRELJACK:
- /* Make sure BJ adapter is sourcing power */
- if (gpio_get_level(GPIO_BJ_ADP_PRESENT_L))
- return EC_ERROR_INVAL;
- /* TODO(b/143975429) need to touch the PD controller? */
- gpio_set_level(GPIO_EN_PPVAR_BJ_ADP_L, 0);
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- switch (port) {
- case USB_PD_PORT_TCPC_0:
- usbc_0_overcurrent = is_overcurrented;
- break;
- case USB_PD_PORT_TCPC_1:
- usbc_1_overcurrent = is_overcurrented;
- break;
- default:
- return;
- }
- update_5v_usage();
-}
-
-int extpower_is_present(void)
-{
- return adp_connected;
-}
-
-int board_is_c10_gate_enabled(void)
-{
- return 0;
-}
-
-void board_enable_s0_rails(int enable)
-{
-}
-
-unsigned int ec_config_get_bj_power(void)
-{
- unsigned int bj =
- (fw_config & EC_CFG_BJ_POWER_MASK) >> EC_CFG_BJ_POWER_L;
- /* Out of range value defaults to 0 */
- if (bj >= ARRAY_SIZE(bj_power))
- bj = 0;
- return bj;
-}
-
-unsigned int ec_config_get_thermal_solution(void)
-{
- return (fw_config & EC_CFG_THERMAL_MASK) >> EC_CFG_THERMAL_L;
-}
-
-/*
- * Power monitoring and management.
- *
- * The overall goal is to gracefully manage the power demand so that
- * the power budgets are met without letting the system fall into
- * power deficit (perhaps causing a brownout).
- *
- * There are 2 power budgets that need to be managed:
- * - overall system power as measured on the main power supply rail.
- * - 5V power delivered to the USB and HDMI ports.
- *
- * The actual system power demand is calculated from the VBUS voltage and
- * the input current (read from a shunt), averaged over 5 readings.
- * The power budget limit is from the charge manager.
- *
- * The 5V power cannot be read directly. Instead, we rely on overcurrent
- * inputs from the USB and HDMI ports to indicate that the port is in use
- * (and drawing maximum power).
- *
- * There are 3 throttles that can be applied (in priority order):
- *
- * - Type A BC1.2 front port restriction (3W)
- * - Type C PD (throttle to 1.5A if sourcing)
- * - Turn on PROCHOT, which immediately throttles the CPU.
- *
- * The first 2 throttles affect both the system power and the 5V rails.
- * The third is a last resort to force an immediate CPU throttle to
- * reduce the overall power use.
- *
- * The strategy is to determine what the state of the throttles should be,
- * and to then turn throttles off or on as needed to match this.
- *
- * This function runs on demand, or every 2 ms when the CPU is up,
- * and continually monitors the power usage, applying the
- * throttles when necessary.
- *
- * All measurements are in milliwatts.
- */
-#define THROT_TYPE_A BIT(0)
-#define THROT_TYPE_C BIT(1)
-#define THROT_PROCHOT BIT(2)
-
-/*
- * Power gain if front USB A ports are limited.
- */
-#define POWER_GAIN_TYPE_A 3200
-/*
- * Power gain if Type C port is limited.
- */
-#define POWER_GAIN_TYPE_C 8800
-/*
- * Power is averaged over 10 ms, with a reading every 2 ms.
- */
-#define POWER_DELAY_MS 2
-#define POWER_READINGS (10/POWER_DELAY_MS)
-
-/* PROCHOT_DEFER_OFF is to extend CPU prochot long enough
- * to pass safety requirement 30 * 2ms = 60 ms
- */
-#define PROCHOT_DEFER_OFF 30
-
-static void power_monitor(void)
-{
- static uint32_t current_state;
- static uint32_t history[POWER_READINGS];
- static uint8_t index;
- static uint8_t prochot_linger;
- int32_t delay;
- uint32_t new_state = 0, diff;
- int32_t headroom_5v = PWR_MAX - base_5v_power;
-
- /*
- * If CPU is off or suspended, no need to throttle
- * or restrict power.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
- CHIPSET_STATE_SUSPEND)) {
- /*
- * Slow down monitoring, assume no throttling required.
- */
- delay = 20 * MSEC;
- /*
- * Clear the first entry of the power table so that
- * it is re-initilalised when the CPU starts.
- */
- history[0] = 0;
- } else {
- int32_t charger_mw;
-
- delay = POWER_DELAY_MS * MSEC;
- /*
- * Get current charger limit (in mw).
- * If not configured yet, skip.
- */
- charger_mw = charge_manager_get_power_limit_uw() / 1000;
- if (charger_mw != 0) {
- int32_t gap, total, max, power;
- int i;
-
- /*
- * Read power usage.
- */
- power = (adc_read_channel(ADC_VBUS) *
- adc_read_channel(ADC_PPVAR_IMON)) /
- 1000;
- /* Init power table */
- if (history[0] == 0) {
- for (i = 0; i < POWER_READINGS; i++)
- history[i] = power;
- }
- /*
- * Update the power readings and
- * calculate the average and max.
- */
- history[index] = power;
- index = (index + 1) % POWER_READINGS;
- total = 0;
- max = history[0];
- for (i = 0; i < POWER_READINGS; i++) {
- total += history[i];
- if (history[i] > max)
- max = history[i];
- }
- /*
- * For Type-C power supplies, there is
- * less tolerance for exceeding the rating,
- * so use the max power that has been measured
- * over the measuring period.
- * For barrel-jack supplies, the rating can be
- * exceeded briefly, so use the average.
- */
- if (charge_manager_get_supplier() ==
- CHARGE_SUPPLIER_PD)
- power = max;
- else
- power = total / POWER_READINGS;
- /*
- * Calculate gap, and if negative, power
- * demand is exceeding configured power budget, so
- * throttling is required to reduce the demand.
- */
- gap = charger_mw - power;
- /*
- * Limiting type-A power.
- */
- if (gap <= 0) {
- new_state |= THROT_TYPE_A;
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!(current_state & THROT_TYPE_A))
- gap += POWER_GAIN_TYPE_A;
- }
- /*
- * If the type-C port is sourcing power,
- * check whether it should be throttled.
- * TODO(amcrae): selectively disable ports.
- */
- if (gap <= 0 && (ppc_is_sourcing_vbus(0) ||
- ppc_is_sourcing_vbus(1))) {
- new_state |= THROT_TYPE_C;
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- if (!(current_state & THROT_TYPE_C))
- gap += POWER_GAIN_TYPE_C * 2;
- }
- /*
- * As a last resort, turn on PROCHOT to
- * throttle the CPU.
- */
- if (gap <= 0) {
- prochot_linger = 0;
- new_state |= THROT_PROCHOT;
- } else if (prochot_linger < PROCHOT_DEFER_OFF) {
- /*
- * Do not turn off PROCHOT immediately.
- */
- prochot_linger++;
- new_state |= THROT_PROCHOT;
- }
- }
- }
- /*
- * Check the 5v power usage and if necessary,
- * adjust the throttles in priority order.
- *
- * Either throttle may have already been activated by
- * the overall power control.
- *
- * We rely on the overcurrent detection to inform us
- * if the port is in use.
- *
- * - If type C not already throttled:
- * * If not overcurrent, prefer to limit type C [1].
- * * If in overcurrentuse:
- * - limit type A first [2]
- * - If necessary, limit type C [3].
- * - If type A not throttled, if necessary limit it [2].
- */
- if (headroom_5v < 0) {
- /*
- * Check whether type C is not throttled,
- * and is not overcurrent.
- */
- if (!((new_state & THROT_TYPE_C) ||
- usbc_0_overcurrent || usbc_1_overcurrent)) {
- /*
- * [1] Type C not in overcurrent, throttle it.
- */
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- new_state |= THROT_TYPE_C;
- }
- /*
- * [2] If type A not already throttled, and power still
- * needed, limit type A.
- */
- if (!(new_state & THROT_TYPE_A) && headroom_5v < 0) {
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- new_state |= THROT_TYPE_A;
- }
- /*
- * [3] If still under-budget, limit type C.
- * No need to check if it is already throttled or not.
- */
- if (headroom_5v < 0)
- new_state |= THROT_TYPE_C;
- }
- /*
- * Turn the throttles on or off if they have changed.
- */
- diff = new_state ^ current_state;
- current_state = new_state;
- if (diff & THROT_PROCHOT) {
- int prochot = (new_state & THROT_PROCHOT) ? 0 : 1;
-
- gpio_set_level(GPIO_EC_PROCHOT_ODL, prochot);
- }
- if (diff & THROT_TYPE_C) {
- enum tcpc_rp_value rp = (new_state & THROT_TYPE_C)
- ? TYPEC_RP_1A5 : TYPEC_RP_3A0;
-
- ppc_set_vbus_source_current_limit(0, rp);
- tcpm_select_rp_value(0, rp);
- pd_update_contract(0);
-
- ppc_set_vbus_source_current_limit(1, rp);
- tcpm_select_rp_value(1, rp);
- pd_update_contract(1);
- }
- if (diff & THROT_TYPE_A) {
- int typea_bc = (new_state & THROT_TYPE_A) ? 1 : 0;
-
- gpio_set_level(GPIO_USB_A_LOW_PWR_OD, typea_bc);
- }
- hook_call_deferred(&power_monitor_data, delay);
-}
-
-__override void oz554_board_init(void)
-{
- int pin_status = 0;
-
- pin_status |= gpio_get_level(GPIO_PANEL_ID0) << 0;
- pin_status |= gpio_get_level(GPIO_PANEL_ID1) << 1;
-
- switch (pin_status) {
- case 0x00:
- CPRINTS("PANEL_HAN01.10A");
- oz554_set_config(0, 0xF3);
- oz554_set_config(2, 0x4C);
- oz554_set_config(5, 0xB7);
- break;
- case 0x02:
- CPRINTS("PANEL_WF9_SSA2");
- oz554_set_config(0, 0xF3);
- oz554_set_config(2, 0x55);
- oz554_set_config(5, 0x87);
- break;
- default:
- CPRINTS("PANEL UNKNOWN");
- break;
- }
-}
diff --git a/board/dooly/board.h b/board/dooly/board.h
deleted file mode 100644
index 927037e357..0000000000
--- a/board/dooly/board.h
+++ /dev/null
@@ -1,344 +0,0 @@
-/* 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.
- */
-
-/* Dooly board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/*
- * By default, enable all console messages except HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* NPCX7 config */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-#define NPCX_UART_MODULE2 1 /* GPIO64/65 are used as UART pins. */
-
-/* Internal SPI flash on NPCX796FC is 512 kB */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-/* Sensor */
-#define CONFIG_ACCEL_INTERRUPTS
-/*
- * Reduce maximal sensor speed: lid accelerometer is not interrupt driven,
- * so EC does not timestamp sensor events as accurately as interrupt
- * driven ones.
- */
-#define CONFIG_EC_MAX_SENSOR_FREQ_MILLIHZ 125000
-#define CONFIG_CMD_ACCEL_INFO
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* BMA253 accelerometer */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_CMD_ACCELS
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT\
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(SCREEN_ACCEL) | BIT(CLEAR_ALS))
-
-/* EC Defines */
-#define CONFIG_ADC
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_BOARD_RESET_AFTER_POWER_ON
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_KEYBOARD_BOOT_KEYS
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#undef CONFIG_KEYBOARD_RUNTIME_KEYS
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_LED_COMMON
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LTO
-#define CONFIG_PWM
-#define CONFIG_VBOOT_EFS2
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_SHA256
-
-
-/* EC Commands */
-#define CONFIG_CMD_BUTTON
-/* Include CLI command needed to support CCD testing. */
-#define CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_KEYBOARD
-#define CONFIG_HOSTCMD_PD_CONTROL
-#undef CONFIG_CMD_PWR_AVG
-#define CONFIG_CMD_PPC_DUMP
-#define CONFIG_CMD_TCPC_DUMP
-#ifdef SECTION_IS_RO
-/* Reduce RO size by removing less-relevant commands. */
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_HCDEBUG
-#undef CONFIG_CMD_MMAPINFO
-#endif
-
-#undef CONFIG_CONSOLE_CMDHELP
-
-/* Don't generate host command debug by default */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Enable AP Reset command for TPM with old firmware version to detect it. */
-#define CONFIG_CMD_AP_RESET_LOG
-#define CONFIG_HOSTCMD_AP_RESET
-
-/* Chipset config */
-#define CONFIG_CHIPSET_COMETLAKE_DISCRETE
-/* check */
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-
-/* Dedicated barreljack charger port */
-#undef CONFIG_DEDICATED_CHARGE_PORT_COUNT
-#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 1
-#define DEDICATED_CHARGE_PORT 2
-
-#define CONFIG_VOLUME_BUTTONS
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_BUTTON_X86
-/* Check: */
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-#define CONFIG_POWER_PP5000_CONTROL
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_SLEEP_FAILURE_DETECTION
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_INA3221
-
-/* b/143501304 */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 4000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 2000 /* us */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 8000 /* us */
-
-#define PD_OPERATING_POWER_MW CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define PD_MAX_POWER_MW 100000
-#define PD_MAX_CURRENT_MA 5000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Fan and temp. */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 0
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_ROA_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-#define CONFIG_THROTTLE_AP
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-/* Less than this much blocks AP power-on. */
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 30000
-#undef CONFIG_CHARGE_MANAGER_SAFE_MODE
-
-/* USB type C */
-#define CONFIG_USB_PD_TCPMV2 /* Use TCPMv2 */
-#define CONFIG_USB_PD_REV30 /* Enable PD 3.0 functionality */
-#define CONFIG_USB_PD_DECODE_SOP
-#undef CONFIG_USB_CHARGER
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PID 0x5040
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DISCHARGE_PPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_PPC
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USBC_PPC_DEDICATED_INT
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-#define USB_PD_PORT_TCPC_0 0
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-#define USB_PD_PORT_TCPC_1 1
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_DUMB
-/* There are two ports, but power enable is ganged across all of them. */
-#define USB_PORT_COUNT 1
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_INA NPCX_I2C_PORT0_0
-#define I2C_PORT_SENSORS NPCX_I2C_PORT0_0
-#define I2C_PORT_PPC0 NPCX_I2C_PORT1_0
-#define I2C_PORT_PPC1 NPCX_I2C_PORT2_0
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT3_0
-#define I2C_PORT_TCPC1 NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define I2C_PORT_BACKLIGHT NPCX_I2C_PORT7_0
-
-/*
- * LED backlight controller
- */
-#define CONFIG_LED_DRIVER_OZ554
-
-#define PP5000_PGOOD_POWER_SIGNAL_MASK POWER_SIGNAL_MASK(PP5000_A_PGOOD)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum charge_port {
- CHARGE_PORT_TYPEC0,
- CHARGE_PORT_TYPEC1,
- CHARGE_PORT_BARRELJACK,
-};
-
-enum adc_channel {
- ADC_SNS_PP3300, /* ADC2 */
- ADC_SNS_PP1050, /* ADC7 */
- ADC_VBUS, /* ADC4 */
- ADC_PPVAR_IMON, /* ADC9 */
- ADC_TEMP_SENSOR_1, /* ADC0 */
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_LED_RED,
- PWM_CH_LED_WHITE,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- SCREEN_ACCEL = 0,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-
-/* Board specific handlers */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-void led_alert(int enable);
-void show_critical_error(void);
-
-/*
- * firmware config fields - keep in sync with Puff.
- */
-/*
- * Barrel-jack power (4 bits).
- */
-#define EC_CFG_BJ_POWER_L 0
-#define EC_CFG_BJ_POWER_H 3
-#define EC_CFG_BJ_POWER_MASK GENMASK(EC_CFG_BJ_POWER_H, EC_CFG_BJ_POWER_L)
-/*
- * USB Connector 4 not present (1 bit) (not used).
- */
-#define EC_CFG_NO_USB4_L 4
-#define EC_CFG_NO_USB4_H 4
-#define EC_CFG_NO_USB4_MASK GENMASK(EC_CFG_NO_USB4_H, EC_CFG_NO_USB4_L)
-/*
- * Thermal solution config (3 bits).
- */
-#define EC_CFG_THERMAL_L 5
-#define EC_CFG_THERMAL_H 7
-#define EC_CFG_THERMAL_MASK GENMASK(EC_CFG_THERMAL_H, EC_CFG_THERMAL_L)
-
-unsigned int ec_config_get_bj_power(void);
-unsigned int ec_config_get_thermal_solution(void);
-
-#endif /* !__ASSEMBLER__ */
-
-/* Pin renaming */
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PP5000_A_PG_OD GPIO_PG_PP5000_A_OD
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_RECOVERY_L GPIO_EC_RECOVERY_BTN_ODL
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_AC_PRESENT GPIO_BJ_ADP_PRESENT_L
-
-/*
- * There is no RSMRST input, so alias it to the output. This short-circuits
- * common_intel_x86_handle_rsmrst.
- */
-#define GPIO_RSMRST_L_PGOOD GPIO_PCH_RSMRST_L
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/dooly/build.mk b/board/dooly/build.mk
deleted file mode 100644
index 0f55c45f77..0000000000
--- a/board/dooly/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
-board-y+=led.o
diff --git a/board/dooly/ec.tasklist b/board/dooly/ec.tasklist
deleted file mode 100644
index 72b81be8d8..0000000000
--- a/board/dooly/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/dooly/gpio.inc b/board/dooly/gpio.inc
deleted file mode 100644
index d4b06d1443..0000000000
--- a/board/dooly/gpio.inc
+++ /dev/null
@@ -1,179 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Pin names follow the schematic, and are aliased to other names if necessary.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Latency on this interrupt is extremely critical, so it comes first to ensure
- * it gets placed first in gpio_wui_table so gpio_interrupt() needs to do
- * minimal scanning. */
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, c10_gate_interrupt)
-
-/* Wake Source interrupts */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_PP5000_A_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1800_A_OD, PIN(3, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VPRIM_CORE_A_OD, PIN(2, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1050_A_OD, PIN(2, 2), GPIO_INT_BOTH, power_signal_interrupt)
-/* EC output, but also interrupt so this can be polled as a power signal */
-GPIO_INT(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUTPUT | GPIO_INT_F_RISING | GPIO_INT_F_FALLING, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_PP2500_DRAM_U_OD, PIN(2, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1200_U_OD, PIN(2, 1), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, slp_s3_interrupt)
-#endif
-GPIO_INT(PG_PP950_VCCIO_OD, PIN(1, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(IMVP8_VRRDY_OD, PIN(1, 6), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Other interrupts */
-GPIO_INT(USB_C0_TCPPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(PANEL_BACKLIGHT_EN, PIN(B, 1), GPIO_INT_RISING, backlight_enable_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(ALS_GSENSOR_INT_ODL, PIN(9, 6), GPIO_INT_FALLING, tcs3400_interrupt)
-
-/*
- * Directly connected recovery button.
- */
-GPIO_INT(EC_RECOVERY_BTN_ODL, PIN(F, 1), GPIO_INT_BOTH, button_interrupt)
-/*
- * Recovery button input from H1.
- */
-GPIO_INT(H1_EC_RECOVERY_BTN_ODL, PIN(2, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(BJ_ADP_PRESENT_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, adp_connect_interrupt)
-
-/* Port power control interrupts */
-GPIO_INT(USB_A0_OC_ODL, PIN(F, 5), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A1_OC_ODL, PIN(0, 3), GPIO_INT_BOTH, port_ocp_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(8, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* PCH/CPU signals */
-GPIO(EC_PCH_PWROK, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_ODR_HIGH)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Power control outputs */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_INA_H1_EC_ODL, PIN(5, 7), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_A, PIN(1, 5), GPIO_OUT_LOW)
-GPIO(VCCST_PG_OD, PIN(1, 4), GPIO_ODR_LOW)
-GPIO(EN_S0_RAILS, PIN(1, 1), GPIO_OUT_LOW)
-GPIO(EN_ROA_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP950_VCCIO, PIN(1, 0), GPIO_OUT_LOW)
-GPIO(EC_IMVP8_PE, PIN(A, 7), GPIO_OUT_LOW)
-GPIO(EN_IMVP8_VR, PIN(F, 4), GPIO_OUT_LOW)
-
-/* Barreljack */
-GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 4), GPIO_OUT_LOW)
-
-/* USB type A */
-GPIO(EN_PP5000_USB_VBUS, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(USB_A0_STATUS_L, PIN(6, 1), GPIO_INPUT) /* Marked as A2 */
-GPIO(USB_A1_STATUS_L, PIN(C, 7), GPIO_INPUT) /* Marked as A3 */
-
-/* USB type C */
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C1_TCPC_RST, PIN(D, 2), GPIO_OUT_LOW)
-
-/* Misc. */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-GPIO(PACKET_MODE_EN, PIN(7, 5), GPIO_OUT_LOW)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_INA_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_INA_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_TCPPC_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_TCPPC_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_USB_C1_TCPC_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_USB_C1_TCPC_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_IMVP8_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_IMVP8_SDA */
-/*
- * Also used for LCM backlight.
- */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x08), 0, MODULE_PWM, 0) /* PWM0 - Red Led */
-ALTERNATE(PIN_MASK(C, 0x10), 0, MODULE_PWM, 0) /* PWM2 - White Led */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - Fan 1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3A), 0, MODULE_ADC, 0) /* ADC0 - ADC2, ADC4 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* ADC7 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PANEL ID */
-GPIO(PANEL_ID0, PIN(0, 2), GPIO_INPUT)
-GPIO(PANEL_ID1, PIN(C, 6), GPIO_INPUT)
-
-/* EDID write protect control */
-GPIO(EC_EDID_WP_DISABLE_L, PIN(D, 3), GPIO_OUT_HIGH) /* LOW to disable EDID WP */
-
-/* Unused pins */
-UNUSED(PIN(9, 5)) /* H10 TP54 */
-UNUSED(PIN(4, 0)) /* E4 TP56 */
-UNUSED(PIN(5, 0)) /* G4 NC */
-UNUSED(PIN(0, 7)) /* E8 TP991 */
-UNUSED(PIN(0, 6)) /* B10 TP992 */
-UNUSED(PIN(D, 6)) /* F6 */
-UNUSED(PIN(3, 2)) /* E5 */
-UNUSED(PIN(B, 0)) /* G8 TP49 */
-UNUSED(PIN(1, 3)) /* EC_GP_SEL1_ODL */
-UNUSED(PIN(C, 0)) /* FAN_PWM_2 */
-UNUSED(PIN(4, 2)) /* ADC3/TEMP_SENSOR_3 */
-UNUSED(PIN(C, 2)) /* A12 NC */
-UNUSED(PIN(1, 2)) /* C6 NC */
-UNUSED(PIN(6, 6)) /* H4 NC */
-UNUSED(PIN(8, 1)) /* L6 NC */
-UNUSED(PIN(E, 2)) /* B8 NC */
-UNUSED(PIN(8, 5)) /* L7 NC */
-UNUSED(PIN(0, 0)) /* D11 NC */
-UNUSED(PIN(3, 5)) /* F5 NC */
-UNUSED(PIN(5, 6)) /* M2 NC */
-UNUSED(PIN(8, 6)) /* J8 NC */
-UNUSED(PIN(7, 2)) /* H6 NC */
diff --git a/board/dooly/led.c b/board/dooly/led.c
deleted file mode 100644
index fefa8908fe..0000000000
--- a/board/dooly/led.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/* 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.
- *
- * Power LED control for Puff.
- * Solid green - active power
- * Green flashing - suspended
- * Red flashing - alert
- * Solid red - critical
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
-
-/*
- * Due to the CSME-Lite processing, upon startup the CPU transitions through
- * S0->S3->S5->S3->S0, causing the LED to turn on/off/on, so
- * delay turning off the LED during suspend/shutdown.
- */
-#define LED_CPU_DELAY_MS (2000 * MSEC)
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_WHITE,
- LED_AMBER,
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int white = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_WHITE:
- white = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- case LED_AMBER:
- white = 1;
- red = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (white)
- pwm_set_duty(PWM_CH_LED_WHITE, duty);
- else
- pwm_set_duty(PWM_CH_LED_WHITE, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec. */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIGURE_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIGURE_TICK(LED_PULSE_TICK_US, LED_WHITE);
- led_tick();
-}
-DECLARE_DEFERRED(led_suspend);
-
-static void led_shutdown(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_DEFERRED(led_shutdown);
-
-static void led_shutdown_hook(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown_hook, HOOK_PRIO_DEFAULT);
-
-static void led_suspend_hook(void)
-{
- hook_call_deferred(&led_shutdown_data, -1);
- hook_call_deferred(&led_suspend_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend_hook, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task. */
- hook_call_deferred(&led_tick_data, -1);
- /*
- * Avoid invoking the suspend/shutdown delayed hooks.
- */
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- pwm_enable(PWM_CH_LED_WHITE, 1);
- pwm_enable(PWM_CH_LED_RED, 1);
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_INIT_PWM + 1);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend_hook();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown_hook();
- }
-}
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "white")) {
- set_color(id, LED_WHITE, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|white|amber|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE])
- return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]);
- else if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/dooly/usb_pd_policy.c b/board/dooly/usb_pd_policy.c
deleted file mode 100644
index a8d89130c2..0000000000
--- a/board/dooly/usb_pd_policy.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* 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.
- */
-
-/* Shared USB-C policy for Dooly boards */
-
-#include "charge_manager.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "system.h"
-#include "tcpm/tcpci.h"
-#include "tcpm/tcpm.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-
-int pd_check_vconn_swap(int port)
-{
- /* Only allow vconn swap if pp5000_A rail is enabled */
- return gpio_get_level(GPIO_EN_PP5000_A);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = ppc_is_sourcing_vbus(port);
-
- /* Disable VBUS. */
- ppc_vbus_source_enable(port, 0);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- /* Disable charging. */
- rv = ppc_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- pd_set_vbus_discharge(port, 0);
-
- /* Provide Vbus. */
- rv = ppc_vbus_source_enable(port, 1);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-#ifdef CONFIG_USB_PD_VBUS_DETECT_PPC
-int pd_snk_is_vbus_provided(int port)
-{
- return ppc_is_vbus_present(port);
-}
-#endif
-
-int board_vbus_source_enabled(int port)
-{
- /* Ignore non-PD ports (the barrel jack). */
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return 0;
- return ppc_is_sourcing_vbus(port);
-}
diff --git a/board/dooly/vif_override.xml b/board/dooly/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/dooly/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/dratini/battery.c b/board/dratini/battery.c
deleted file mode 100644
index 77c84cd973..0000000000
--- a/board/dratini/battery.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "common.h"
-#include "hooks.h"
-#include "usb_pd.h"
-
-/*
- * Battery info for all Dratini/Dragonair battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo Coslight 996QA182H Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-13-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC MPPHPPBC031C Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "333-42-0D-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_COS;
diff --git a/board/dratini/board.c b/board/dratini/board.c
deleted file mode 100644
index 53fbe4b3d5..0000000000
--- a/board/dratini/board.c
+++ /dev/null
@@ -1,539 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void check_reboot_deferred(void);
-DECLARE_DEFERRED(check_reboot_deferred);
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void control_mst_power(void)
-{
- baseboard_mst_enable_control(MST_HDMI,
- gpio_get_level(GPIO_HDMI_CONN_HPD));
-}
-DECLARE_DEFERRED(control_mst_power);
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- /*
- * When the HPD goes high, enable the MST hub right away,
- * but debounce the low signal for 2 seconds to avoid transient low
- * pulses on the HPD signal.
- */
- if (gpio_get_level(signal))
- hook_call_deferred(&control_mst_power_data, 0);
- else
- hook_call_deferred(&control_mst_power_data, 2 * SECOND);
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 100 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, enough for lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2500,
- .rpm_start = 2500,
- .rpm_max = 6500,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_5V_REG", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_3] = {
- "TEMP_CPU", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "5V Reg",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "CPU",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-/* Dratini Temperature sensors */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(73),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(70),
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- [EC_TEMP_THRESH_HALT] = C_TO_K(70),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_b;
-}
-
-/*
- * Returns true for boards that are convertible into tablet mode, and
- * false for clamshells.
- */
-bool board_is_convertible(void)
-{
- uint8_t sku_id = get_board_sku();
-
- /*
- * Dragonair (SKU 21 ,22, 23 and 24) is a convertible.
- * Dratini is not.
- * Unprovisioned SKU 255.
- */
- return sku_id == 21 || sku_id == 22 || sku_id == 23 ||
- sku_id == 24 || sku_id == 255;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void anx7447_set_aux_switch(void)
-{
- const int port = USB_PD_PORT_TCPC_0;
-
- /* Debounce */
- if (gpio_get_level(GPIO_CCD_MODE_ODL))
- return;
-
- CPRINTS("C%d: AUX_SW_SEL=0x%x", port, 0xc);
- if (tcpc_write(port, ANX7447_REG_TCPC_AUX_SWITCH, 0xc))
- CPRINTS("C%d: Setting AUX_SW_SEL failed", port);
-}
-DECLARE_DEFERRED(anx7447_set_aux_switch);
-
-void ccd_mode_isr(enum gpio_signal signal)
-{
- /* Wait 2 seconds until all mux setting is done by PD task */
- hook_call_deferred(&anx7447_set_aux_switch_data, 2 * SECOND);
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
-
- /*
- * If HDMI is plugged in at boot, the interrupt may have been missed,
- * so check if the MST hub needs to be powered now.
- */
- control_mst_power();
-
- /* Enable HDMI HPD interrupt. */
- gpio_enable_interrupt(GPIO_HDMI_CONN_HPD);
-
- /* Trigger once to set mux in case CCD cable is already connected. */
- ccd_mode_isr(GPIO_CCD_MODE_ODL);
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-bool board_has_kb_backlight(void)
-{
- uint8_t sku_id = get_board_sku();
- /*
- * SKUs have keyboard backlight.
- * Dratini: 2, 3, 5, 8
- * Dragonair: 22, 24
- * Unprovisioned: 255
- */
- return sku_id == 2 || sku_id == 3 || sku_id == 5 || sku_id == 8 ||
- sku_id == 22 || sku_id == 24 || sku_id == 255;
-}
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- if (board_has_kb_backlight())
- return flags0;
- else
- return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {1, 4}, {1, 3}, {1, 6}, {1, 7},
- {3, 1}, {2, 0}, {1, 5}, {2, 6}, {2, 7},
- {2, 1}, {2, 4}, {2, 5}, {1, 2}, {2, 3},
- {2, 2}, {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-/* Disable HDMI power while AP is suspended / off */
-static void disable_hdmi(void)
-{
- gpio_set_level(GPIO_EN_HDMI, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, disable_hdmi, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, disable_hdmi, HOOK_PRIO_DEFAULT);
-
-/* Enable HDMI power while AP is active */
-static void enable_hdmi(void)
-{
- gpio_set_level(GPIO_EN_HDMI, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, enable_hdmi, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, enable_hdmi, HOOK_PRIO_DEFAULT);
-
-void all_sys_pgood_check_reboot(void)
-{
- hook_call_deferred(&check_reboot_deferred_data, 3000 * MSEC);
-}
-
-__override void board_chipset_forced_shutdown(void)
-{
- hook_call_deferred(&check_reboot_deferred_data, -1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_forced_shutdown,
- HOOK_PRIO_DEFAULT);
-
-static void check_reboot_deferred(void)
-{
- if (!gpio_get_level(GPIO_PG_EC_ALL_SYS_PWRGD))
- system_reset(SYSTEM_RESET_MANUALLY_TRIGGERED);
-}
diff --git a/board/dratini/board.h b/board/dratini/board.h
deleted file mode 100644
index e75865e376..0000000000
--- a/board/dratini/board.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#undef CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 2048
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/*
- * Dratini's battery takes several seconds to come back out of its disconnect
- * state (~4 seconds, but give it 6 for margin).
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 6
-
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 5000
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A_LOW_PWR_OD
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set based on the battery's discharge current limit and what was tested to
- * prevent the AP rebooting with low charge level batteries.
- *
- * TODO(b/133447140): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 10
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* MST */
-/*
- * TDOD (b/124068003): This inherently assumes the MST chip is connected to only
- * one Type C port. This will need to be chagned to support 2 Type C ports
- * connected to the same MST chip.
- */
-#define USB_PD_PORT_TCPC_MST USB_PD_PORT_TCPC_1
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC2 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SIMPLO_COS,
- BATTERY_LGC,
- BATTERY_TYPE_COUNT,
-};
-
-bool board_is_convertible(void);
-
-void ccd_mode_isr(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/dratini/build.mk b/board/dratini/build.mk
deleted file mode 100644
index 733912454f..0000000000
--- a/board/dratini/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/dratini/ec.tasklist b/board/dratini/ec.tasklist
deleted file mode 100644
index 4a1024a091..0000000000
--- a/board/dratini/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/dratini/gpio.inc b/board/dratini/gpio.inc
deleted file mode 100644
index c242919a89..0000000000
--- a/board/dratini/gpio.inc
+++ /dev/null
@@ -1,147 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(C, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, bmi160_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* CCD mode line*/
-GPIO_INT(CCD_MODE_ODL, PIN(E, 5), GPIO_INT_FALLING, ccd_mode_isr)
-
-GPIO_INT(HDMI_CONN_HPD, PIN(7, 2), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_LOW)
-GPIO(EN_USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_AMBER_C0_L, PIN(C, 4), GPIO_OUT_HIGH) /* Amber C0 port */
-GPIO(LED_WHITE_C0_L, PIN(C, 3), GPIO_OUT_HIGH) /* White C0 port */
-GPIO(LED_AMBER_C1_L, PIN(4, 2), GPIO_OUT_HIGH) /* Amber C1 port */
-GPIO(LED_WHITE_C1_L, PIN(C, 6), GPIO_OUT_HIGH) /* White C1 port */
-GPIO(PWR_LED_WHITE_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-GPIO(EN_MST, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EN_HDMI, PIN(B, 0), GPIO_OUT_LOW) /* HDMI power rail */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/dratini/led.c b/board/dratini/led.c
deleted file mode 100644
index 5cc256b2c5..0000000000
--- a/board/dratini/led.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Dratini/Dragonair
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICKS_PER_CYCLE 10
-#define LED_ON_TICKS 5
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == 0 ? GPIO_LED_AMBER_C0_L : GPIO_LED_AMBER_C1_L);
- white_led = (port == 0 ? GPIO_LED_WHITE_C0_L : GPIO_LED_WHITE_C1_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(1, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(1, LED_AMBER);
- else
- led_set_color_battery(1, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(0, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(0, LED_AMBER);
- else
- led_set_color_battery(0, LED_OFF);
- break;
- case EC_LED_ID_POWER_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(LED_WHITE);
- else
- led_set_color_power(LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(0, (port == 0) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(1, (port == 1) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LEDs for Dratini, Dratini is non-power LED
- * design, blinking both two side battery white LEDs to indicate
- * system suspend with non-charging state.
- */
- if (!board_is_convertible()) {
- if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
-
- power_ticks++;
-
- led_set_color_battery(0, power_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- led_set_color_battery(1, power_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- return;
- }
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(0, (battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_battery(0, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(1, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY))
- led_set_color_power((power_tick %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/dratini/vif_override.xml b/board/dratini/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/dratini/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/drawcia/battery.c b/board/drawcia/battery.c
deleted file mode 100644
index 62d6e95947..0000000000
--- a/board/drawcia/battery.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all drawcia battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack CosMX Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack HIGHPOWER Battery Information */
- [BATTERY_DYNAPACK_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-2D-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack BYD Battery Information */
- [BATTERY_DYNAPACK_BYD] = {
- .fuel_gauge = {
- .manuf_name = "333-2E-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Samsung SDI Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo CosMX Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX B00C4473A9D0002 Battery Information */
- [BATTERY_COS_2] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* ATL GB-S20-4473A9-01H&020H Battery Information
- * Gauge IC : RAJ240045
- */
- [BATTERY_ATL] = {
- .fuel_gauge = {
- .manuf_name = "313-B7-0D-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x43,
- .reg_mask = 0x0003,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/drawcia/board.c b/board/drawcia/board.c
deleted file mode 100644
index 80f93e4d1d..0000000000
--- a/board/drawcia/board.c
+++ /dev/null
@@ -1,722 +0,0 @@
-/* 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.
- */
-
-/* Drawcia board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/sm5803.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-uint32_t board_version;
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-__override void board_process_pd_alert(int port)
-{
- /*
- * PD_INT task will process this alert, and that task is only needed on
- * C1.
- */
- if (port != 1)
- return;
-
- if (gpio_get_level(GPIO_USB_C1_INT_ODL))
- return;
-
- sm5803_handle_interrupt(port);
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- sm5803_interrupt(0);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void button_sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
- int hdmi_hpd = gpio_get_level(GPIO_VOLUP_BTN_ODL_HDMI_HPD);
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE)
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, hdmi_hpd);
- else
- button_interrupt(s);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-static void pen_detect_interrupt(enum gpio_signal s)
-{
- int pen_detect = !gpio_get_level(GPIO_PEN_DET_ODL);
-
- gpio_set_level(GPIO_EN_PP5000_PEN, pen_detect);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
- [ADC_TEMP_SENSOR_4] = {
- .name = "TEMP_SENSOR4",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH16
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- int on;
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE) {
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
- } else {
- /* Select AUX option */
- gpio_set_level(GPIO_HDMI_SEL_L, 1);
- }
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
-
- /* Store board version for use in determining charge limits */
- cbi_get_board_version(&board_version);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_PRESENT) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Make sure pen detection is triggered or not at sysjump */
- if (!gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_EN_PP5000_PEN, 1);
-
- /* Charger on the MB will be outputting PROCHOT_ODL and OD CHG_DET */
- sm5803_configure_gpio0(CHARGER_PRIMARY, GPIO0_MODE_PROCHOT, 1);
- sm5803_configure_chg_det_od(CHARGER_PRIMARY, 1);
-
- if (board_get_charger_chip_count() > 1) {
- /* Charger on the sub-board will be a push-pull GPIO */
- sm5803_configure_gpio0(CHARGER_SECONDARY, GPIO0_MODE_OUTPUT, 0);
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- sm5803_disable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_disable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
-
-static void board_suspend(void)
-{
- sm5803_enable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_enable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- sm5803_hibernate(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_hibernate(CHARGER_SECONDARY);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
-
- if (board_get_charger_chip_count() > 1) {
- if (sm5803_set_gpio0_level(1, !!enable))
- CPRINTUSB("Failed to %sable sub rails!", enable ?
- "en" : "dis");
- }
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CHARGER_NUM - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CHARGER_NUM;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- /*
- * TCPC 0 is embedded in the EC and processes interrupts in the chip
- * code (it83xx/intc.c)
- */
-
- uint16_t status = 0;
- int regval;
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /* Limit C1 on board version 0 to 2.0 A */
- if ((board_version == 0) && (port == 1))
- icl = MIN(icl, 2000);
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 && port < board_get_usb_pd_port_count());
-
- if (!is_valid_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTUSB("Disabling all charge ports");
-
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
-
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
-
- return EC_SUCCESS;
- }
-
- CPRINTUSB("New chg p%d", port);
-
- /*
- * Ensure other port is turned off, then enable new charge port
- */
- if (port == 0) {
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 1);
-
- } else {
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 1);
- }
-
- return EC_SUCCESS;
-}
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- int current;
-
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- current = (rp == TYPEC_RP_3A0) ? 3000 : 1500;
-
- charger_set_otg_current_voltage(port, current, 5000);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "5V regular",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 3;
- *kp_div = 20;
-
- *ki = 3;
- *ki_div = 125;
-
- *kd = 4;
- *kd_div = 40;
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {GPIO_KSO_H, 4}, {GPIO_KSO_H, 0}, {GPIO_KSO_H, 1},
- {GPIO_KSO_H, 3}, {GPIO_KSO_H, 2}, {GPIO_KSO_L, 5}, {GPIO_KSO_L, 6},
- {GPIO_KSO_L, 3}, {GPIO_KSO_L, 2}, {GPIO_KSI, 0}, {GPIO_KSO_L, 1},
- {GPIO_KSO_L, 4}, {GPIO_KSI, 3}, {GPIO_KSI, 2}, {GPIO_KSO_L, 0},
- {GPIO_KSI, 5}, {GPIO_KSI, 4}, {GPIO_KSO_L, 7}, {GPIO_KSI, 6},
- {GPIO_KSI, 7}, {GPIO_KSI, 1}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
diff --git a/board/drawcia/board.h b/board/drawcia/board.h
deleted file mode 100644
index 96e6b3f14d..0000000000
--- a/board/drawcia/board.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* 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.
- */
-
-/* Drawcia board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-#undef GPIO_VOLUME_UP_L
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL_HDMI_HPD
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_5V_CHARGER_CTRL
-#define CONFIG_CHARGER_OTG
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_OCPC
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 21 /* R_DS(on) 10.7mOhm + 10mOhm sns rstr */
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_PWM_KBLIGHT
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0: ITE EC TCPC */
-#define CONFIG_USB_PD_TCPM_PS8705 /* C1: PS8705 TCPC*/
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_SUB_ANALOG, /* ADC13 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_TEMP_SENSOR_4, /* ADC16 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_HIGHPOWER,
- BATTERY_DYNAPACK_BYD,
- BATTERY_SAMSUNG_SDI,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COS,
- BATTERY_COS_2,
- BATTERY_ATL,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/drawcia/build.mk b/board/drawcia/build.mk
deleted file mode 100644
index 806168ea0d..0000000000
--- a/board/drawcia/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/drawcia/cbi_ssfc.c b/board/drawcia/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/drawcia/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/drawcia/cbi_ssfc.h b/board/drawcia/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/drawcia/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/drawcia/ec.tasklist b/board/drawcia/ec.tasklist
deleted file mode 100644
index 2edf48ee05..0000000000
--- a/board/drawcia/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/drawcia/gpio.inc b/board/drawcia/gpio.inc
deleted file mode 100644
index 2bfbb9c91b..0000000000
--- a/board/drawcia/gpio.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C1_INT_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL_HDMI_HPD, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_sub_hdmi_hpd_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(PEN_DET_ODL, PIN(J, 1), GPIO_INT_BOTH | GPIO_PULL_UP, pen_detect_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A_5V, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_HIGH)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-GPIO(EC_SUB_IO_1_2, PIN(F, 0), GPIO_INPUT)
-GPIO(EC_SUB_IO_2_1, PIN(F, 1), GPIO_INPUT)
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-GPIO(EN_PP5000_PEN, PIN(B, 5), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* LED */
-GPIO(BAT_LED_AMBER_L, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(BAT_LED_WHITE_L, PIN(A, 2), GPIO_OUT_HIGH)
-GPIO(PWR_LED_WHITE_L, PIN(A, 3), GPIO_OUT_HIGH)
-
-/* Alternate functions GPIO definitions */
-/* Keyboard */
-ALTERNATE(PIN_MASK(KSI, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSI0-7 */
-ALTERNATE(PIN_MASK(KSO_H, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO8-15 */
-ALTERNATE(PIN_MASK(KSO_L, 0xFB), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO0-1, 3-7 */
-GPIO(EC_KSO_02_INV, PIN(KSO_L, 2), GPIO_OUT_HIGH) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC13: EC_SUB_ANALOG, ADC15: TEMP_SENSOR_3, ADC16: TEMP_SENSOR_4 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0)), 0, MODULE_PWM, 0) /* KB_BL_PWM */
diff --git a/board/drawcia/led.c b/board/drawcia/led.c
deleted file mode 100644
index 68242180fa..0000000000
--- a/board/drawcia/led.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* 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.
- */
-
-/* Drawcia specific LED settings. */
-
-#include "cbi_fw_config.h"
-#include "charge_state.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "led_common.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-static int led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- case EC_LED_ID_POWER_LED:
- rv = led_set_color_power(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color(led_id, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LED for Drawlet/Drawman, Drawlet/Drawman
- * don't have power LED, blinking battery white LED to indicate
- * system suspend without charging.
- */
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
- led_set_color_battery(power_ticks++ & 0x2 ?
- LED_WHITE : LED_OFF);
- return;
- }
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_WHITE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE:
- /*
- * Blink white light (1 sec on, 1 sec off)
- * when battery capacity is less than 10%
- */
- if (charge_get_percent() < 10)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks % 0x2) ? LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_AMBER : LED_OFF);
- else
- led_set_color_battery(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_set_color_power(
- (power_tick & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/drawcia/usb_pd_policy.c b/board/drawcia/usb_pd_policy.c
deleted file mode 100644
index 7046e25d6c..0000000000
--- a/board/drawcia/usb_pd_policy.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/sm5803.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- if (port < 0 || port >= board_get_usb_pd_port_count())
- return;
-
- prev_en = charger_is_sourcing_otg_power(port);
-
- /* Disable Vbus */
- charger_enable_otg_power(port, 0);
-
- /* Discharge Vbus if previously enabled */
- if (prev_en)
- sm5803_set_vbus_disch(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- enum ec_error_list rv;
-
- /* Disable sinking */
- rv = sm5803_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- /* Disable Vbus discharge */
- sm5803_set_vbus_disch(port, 0);
-
- /* Provide Vbus */
- charger_enable_otg_power(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-__override bool pd_check_vbus_level(int port, enum vbus_level level)
-{
- int vbus_voltage;
-
- /* If we're unable to speak to the charger, best to guess false */
- if (charger_get_vbus_voltage(port, &vbus_voltage))
- return false;
-
- if (level == VBUS_SAFE0V)
- return vbus_voltage < PD_V_SAFE0V_MAX;
- else if (level == VBUS_PRESENT)
- return vbus_voltage > PD_V_SAFE5V_MIN;
- else
- return vbus_voltage < PD_V_SINK_DISCONNECT_MAX;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return sm5803_is_vbus_present(port);
-}
diff --git a/board/drawcia/vif_override.xml b/board/drawcia/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/drawcia/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/driblee/battery.c b/board/driblee/battery.c
deleted file mode 100644
index ff67e823ff..0000000000
--- a/board/driblee/battery.c
+++ /dev/null
@@ -1,634 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for lalala battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* BYD Battery Information */
- [BATTERY_BYD_1VX1H] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .device_name = "DELL 1VX1H",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* BYD Battery Information */
- [BATTERY_BYD_YT39X] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .device_name = "DELL YT39X",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* BYD Battery Information */
- [BATTERY_BYD_X0Y5M] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .device_name = "DELL X0Y5M",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC Battery Information */
- [BATTERY_LGC_FDRHM] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.65",
- .device_name = "DELL FDRHM",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11460,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC Battery Information */
- [BATTERY_LGC_8GHCX] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.65",
- .device_name = "DELL 8GHCX",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11460,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
-
- /* SWD-ATL Battery Information */
- [BATTERY_SWD_ATL_WJPC4] = {
- .fuel_gauge = {
- .manuf_name = "SWD-ATL3.618",
- .device_name = "DELL WJPC4",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-ATL Battery Information */
- [BATTERY_SWD_ATL_CTGKT] = {
- .fuel_gauge = {
- .manuf_name = "SWD-ATL3.618",
- .device_name = "DELL CTGKT",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-COS Battery Information */
- [BATTERY_SWD_COS_WJPC4] = {
- .fuel_gauge = {
- .manuf_name = "SWD-COS3.634",
- .device_name = "DELL WJPC4",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-COS Battery Information */
- [BATTERY_SWD_COS_CTGKT] = {
- .fuel_gauge = {
- .manuf_name = "SWD-COS3.634",
- .device_name = "DELL CTGKT",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-ATL Battery Information */
- [BATTERY_SMP_ATL_VM732] = {
- .fuel_gauge = {
- .manuf_name = "SMP-ATL-3.61",
- .device_name = "DELL VM732",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-ATL Battery Information */
- [BATTERY_SMP_ATL_26JGK] = {
- .fuel_gauge = {
- .manuf_name = "SMP-ATL-3.61",
- .device_name = "DELL 26JGK",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-ATL Battery Information */
- [BATTERY_SMP_ATL_RF9H3] = {
- .fuel_gauge = {
- .manuf_name = "SMP-ATL-3.61",
- .device_name = "DELL RF9H3",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-COS Battery Information */
- [BATTERY_SMP_COS_VM732] = {
- .fuel_gauge = {
- .manuf_name = "SMP-COS3.63",
- .device_name = "DELL VM732",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP-COS Battery Information */
- [BATTERY_SMP_COS_26JGK] = {
- .fuel_gauge = {
- .manuf_name = "SMP-COS3.63",
- .device_name = "DELL 26JGK",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
- /* SMP-COS Battery Information */
- [BATTERY_SMP_COS_RF9H3] = {
- .fuel_gauge = {
- .manuf_name = "SMP-COS3.63",
- .device_name = "DELL RF9H3",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = -3,
- .start_charging_max_c = 50,
- .charging_min_c = -3,
- .charging_max_c = 60,
- .discharging_min_c = -5,
- .discharging_max_c = 70,
- },
- },
-
- /* BYD 16DPHYMD Battery Information */
- [BATTERY_BYD16] = {
- .fuel_gauge = {
- .manuf_name = "BYD-BYD3.685",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC Battery Information */
- [BATTERY_LGC3] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.553",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO Battery Information */
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI3.72",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO-LISHEN 7T0D3YMD Battery Information */
- [BATTERY_SIMPLO_LS] = {
- .fuel_gauge = {
- .manuf_name = "SMP-LS3.66",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_BYD_1VX1H;
diff --git a/board/driblee/board.c b/board/driblee/board.c
deleted file mode 100644
index d40ebe25a6..0000000000
--- a/board/driblee/board.c
+++ /dev/null
@@ -1,497 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lalala board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "driver/retimer/ps8802.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_8042.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-#define ADC_VOL_UP_MASK BIT(0)
-#define ADC_VOL_DOWN_MASK BIT(1)
-
-static uint8_t new_adc_key_state;
-
-/******************************************************************************/
-/* USB-A Configuration */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
-};
-
-/* Keyboard scan setting */
-static const struct ec_response_keybd_config driblee_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &driblee_keybd;
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- int hdmi_hpd_odl = gpio_get_level(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, !hdmi_hpd_odl);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(73),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_thermal(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_b;
-}
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-static void set_5v_gpio(int level)
-{
- gpio_set_level(GPIO_EN_PP5000, level);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC.
- */
- set_5v_gpio(!!enable);
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- return CHARGER_NUM;
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* Initialize THERMAL */
- setup_thermal();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Enable HDMI any time the SoC is on */
-static void hdmi_enable(void)
-{
- if (get_cbi_fw_config_hdmi() == HDMI_PRESENT) {
- gpio_set_level(GPIO_EC_HDMI_EN_ODL, 0);
- gpio_set_level(GPIO_HDMI_PP3300_EN, 1);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, hdmi_enable, HOOK_PRIO_DEFAULT);
-
-static void hdmi_disable(void)
-{
- if (get_cbi_fw_config_hdmi() == HDMI_PRESENT) {
- gpio_set_level(GPIO_EC_HDMI_EN_ODL, 1);
- gpio_set_level(GPIO_HDMI_PP3300_EN, 0);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, hdmi_disable, HOOK_PRIO_DEFAULT);
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-int adc_to_physical_value(enum gpio_signal gpio)
-{
- if (gpio == GPIO_VOLUME_UP_L)
- return !!(new_adc_key_state & ADC_VOL_UP_MASK);
- else if (gpio == GPIO_VOLUME_DOWN_L)
- return !!(new_adc_key_state & ADC_VOL_DOWN_MASK);
-
- CPRINTS("Not a volume up or down key");
- return 0;
-}
-
-int button_is_adc_detected(enum gpio_signal gpio)
-{
- return (gpio == GPIO_VOLUME_DOWN_L) || (gpio == GPIO_VOLUME_UP_L);
-}
-
-static void board_extpower(void)
-{
- int extpower_present;
-
- if (pd_is_connected(0))
- extpower_present = extpower_is_present();
- else
- extpower_present = 0;
-
- gpio_set_level(GPIO_EC_ACOK_OTG, extpower_present);
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
diff --git a/board/driblee/board.h b/board/driblee/board.h
deleted file mode 100644
index 9d4ce3b6f2..0000000000
--- a/board/driblee/board.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lalala board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KEEBY_EC_NPCX797FC
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_CMD_CHARGER_DUMP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-#define CONFIG_MATH_UTIL
-
-/*
- * GPIO for C1 interrupts, for baseboard use
- *
- * Note this line might already have its pull up disabled for HDMI DBs, but
- * it should be fine to set again before z-state.
- */
-#define GPIO_EC_HDMI_EN_ODL GPIO_EC_I2C_SBU_USB_C1_SCL
-#define GPIO_HDMI_PP3300_EN GPIO_SUB_USB_C1_INT_ODL
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* PWM */
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* Temp sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_PS8802
-
-/* Common USB-A defines */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_INVERTED
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A0_CHARGE_EN_L
-
-/******************************************************************************/
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/* Volume Button feature */
-#define CONFIG_ADC_BUTTONS
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_BYD_1VX1H,
- BATTERY_BYD_YT39X,
- BATTERY_BYD_X0Y5M,
- BATTERY_LGC_FDRHM,
- BATTERY_LGC_8GHCX,
- BATTERY_SWD_ATL_WJPC4,
- BATTERY_SWD_ATL_CTGKT,
- BATTERY_SWD_COS_WJPC4,
- BATTERY_SWD_COS_CTGKT,
- BATTERY_SMP_ATL_VM732,
- BATTERY_SMP_ATL_26JGK,
- BATTERY_SMP_ATL_RF9H3,
- BATTERY_SMP_COS_VM732,
- BATTERY_SMP_COS_26JGK,
- BATTERY_SMP_COS_RF9H3,
- BATTERY_BYD16,
- BATTERY_LGC3,
- BATTERY_SIMPLO,
- BATTERY_SIMPLO_LS,
- BATTERY_TYPE_COUNT,
-};
-
-int board_is_sourcing_vbus(int port);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/driblee/build.mk b/board/driblee/build.mk
deleted file mode 100644
index b012d8d502..0000000000
--- a/board/driblee/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=keeby
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/driblee/cbi_ssfc.c b/board/driblee/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/driblee/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/driblee/cbi_ssfc.h b/board/driblee/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/driblee/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/driblee/ec.tasklist b/board/driblee/ec.tasklist
deleted file mode 100644
index 0025c2985b..0000000000
--- a/board/driblee/ec.tasklist
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/driblee/gpio.inc b/board/driblee/gpio.inc
deleted file mode 100644
index 82ba0d67bc..0000000000
--- a/board/driblee/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* HDMI_HPD */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(A, 2), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Button interrupts */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(EC_CBI_WP, PIN(E, 5), GPIO_OUT_LOW)
-GPIO(SUB_USB_C1_INT_ODL, PIN(F, 5), GPIO_OUT_LOW) /* 5V power en */
-GPIO(EC_I2C_SBU_USB_C1_SCL, PIN(9, 2), GPIO_ODR_LOW) /* HDMI en */
-
-/* LED */
-GPIO(LED_1_PWR_WHITE_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(LED_2_CHG_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH)
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* USB pins */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(6, 3), GPIO_OUT_HIGH) /* Reverse: Enable A0 1.5A Charging */
-/*
- * Lalala doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-UNIMPLEMENTED(VOLDN_BTN_ODL)
-UNIMPLEMENTED(VOLUP_BTN_ODL)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-GPIO(EC_ACOK_OTG, PIN(C, 0), GPIO_OUT_LOW) /* OTG-OVP protect enable */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO43_NC, PIN(4, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO40_NC, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO50_NC, PIN(5, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO34_NC, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO37_NC, PIN(3, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF2_NC, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOF3_NC, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO72_NC, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO73_NC, PIN(7, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO75_NC, PIN(7, 5), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/driblee/led.c b/board/driblee/led.c
deleted file mode 100644
index cd34613a7c..0000000000
--- a/board/driblee/led.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for lalala
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 10;
-
-__override const int led_charge_lvl_2 = 100;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
diff --git a/board/driblee/usb_pd_policy.c b/board/driblee/usb_pd_policy.c
deleted file mode 100644
index 19dd01d37b..0000000000
--- a/board/driblee/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/charger/isl923x_public.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/driblee/vif_override.xml b/board/driblee/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/driblee/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/drobit/battery.c b/board/drobit/battery.c
deleted file mode 100644
index f8f3eb296f..0000000000
--- a/board/drobit/battery.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* C490-42 Battery Information */
- [BATTERY_C490] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWQd3jB",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000c,
- .disconnect_val = 0x000c,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C490;
diff --git a/board/drobit/board.c b/board/drobit/board.c
deleted file mode 100644
index b08294bd24..0000000000
--- a/board/drobit/board.c
+++ /dev/null
@@ -1,471 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "charge_state_v2.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config drobit_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &drobit_kb;
-}
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Volteer if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB4_GEN3,
-};
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(72),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(75),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(72),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(75),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "usb_c1_mix",
- .port = I2C_PORT_USB_C1_MIX,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C0_USB_C1_MIX_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_BATTERY_SCL,
- .sda = GPIO_EC_I2C5_BATTERY_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_PWR_SCL_R,
- .sda = GPIO_EC_I2C7_EEPROM_PWR_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-void board_reset_pd_mcu(void)
-{
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C0_FRS_EN,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C1_FRS_EN,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/* Disable FRS on boards with the SYV682A. FRS only works on the SYV682B. */
-void setup_board_ppc(void)
-{
- uint8_t board_id = get_board_id();
-
- if (board_id < 2) {
- ppc_chips[USBC_PORT_C0].frs_en = 0;
- ppc_chips[USBC_PORT_C1].frs_en = 0;
- }
-}
-
-__override void board_cbi_init(void)
-{
- setup_board_ppc();
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .next_mux = &usbc0_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- .usb_ls_en_gpio = GPIO_USB_C0_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL,
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
-
-/* Called on AP S0ix -> S0 tranition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S0ix transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* Set the charge limit based upon desired maximum. */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Limit the input current to 98% negotiated limit,
- * to account for the charger chip margin.
- */
- charge_ma = charge_ma * 98 / 100;
- charge_set_input_current_limit(
- MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
diff --git a/board/drobit/board.h b/board/drobit/board.h
deleted file mode 100644
index 15f28d0971..0000000000
--- a/board/drobit/board.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the NPCX797FC dose not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Sensors */
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_GMR_TABLET_MODE
-#undef CONFIG_ACCEL_FIFO
-#undef CONFIG_ACCEL_FIFO_SIZE
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* TODO: b/144165680 - measure and check these values on Volteer */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-#ifdef BOARD_DROBIT_ECMODEENTRY
-#undef CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-#endif
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x40
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x41
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USB_PD_FRS_PPC
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-#undef CONFIG_VOLUME_BUTTONS
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_USB_C1_MIX NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_C490,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_FAN = 0,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/drobit/build.mk b/board/drobit/build.mk
deleted file mode 100644
index 43b40c644c..0000000000
--- a/board/drobit/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
diff --git a/board/drobit/ec.tasklist b/board/drobit/ec.tasklist
deleted file mode 100644
index 2c9a9e8e32..0000000000
--- a/board/drobit/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/drobit/gpio.inc b/board/drobit/gpio.inc
deleted file mode 100644
index bc7d625195..0000000000
--- a/board/drobit/gpio.inc
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-
-/*
- * Lid g-sensor interrupt unused on Volteer, configure as regular input for
- * power saving.
- */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-GPIO(USB_C0_RT_RST_ODL, PIN(D, 4), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-GPIO(USB_C0_FRS_EN, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C0_RT_INT_ODL, PIN(F, 2), GPIO_INPUT)
-GPIO(USB_C1_RT_INT_ODL, PIN(F, 3), GPIO_INPUT)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- * TODO(b/138954381): Change these names when they change on the schematic.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-
-/* Unused signals */
-GPIO(UNUSED_GPIO41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO81, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO95, PIN(9, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOC4, PIN(C, 4), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Only connected to test points */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_ESPI_ALERT_L, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_USB_C1_MIX_SCL, PIN(B, 5), GPIO_INPUT) /* Reserved for USB4 retimer port 1 */
-GPIO(EC_I2C0_USB_C1_MIX_SDA, PIN(B, 4), GPIO_INPUT) /* Reserved for USB4 retimer port 1 */
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SDA_R, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
-
diff --git a/board/drobit/led.c b/board/drobit/led.c
deleted file mode 100644
index 47c3cca5b7..0000000000
--- a/board/drobit/led.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/drobit/vif_override.xml b/board/drobit/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/drobit/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/drobit_ecmodeentry b/board/drobit_ecmodeentry
deleted file mode 120000
index c3ab5c1706..0000000000
--- a/board/drobit_ecmodeentry
+++ /dev/null
@@ -1 +0,0 @@
-drobit \ No newline at end of file
diff --git a/board/eel b/board/eel
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/eel
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/eldrid/battery.c b/board/eldrid/battery.c
deleted file mode 100644
index 3c9f2b0c21..0000000000
--- a/board/eldrid/battery.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 996QA193H Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* Cosmx CA407792G Battery Information */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_HIGHPOWER;
-
-__override bool board_battery_is_initialized(void)
-{
- bool batt_initialization_state;
- int batt_status;
-
- batt_initialization_state = (battery_status(&batt_status) ? false :
- !!(batt_status & STATUS_INITIALIZED));
- return batt_initialization_state;
-}
diff --git a/board/eldrid/board.c b/board/eldrid/board.c
deleted file mode 100644
index 601c23df84..0000000000
--- a/board/eldrid/board.c
+++ /dev/null
@@ -1,613 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "charge_state_v2.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "isl9241.h"
-#include "keyboard_8042_sharedlib.h"
-#include "keyboard_raw.h"
-#include "lid_switch.h"
-#include "keyboard_scan.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Volteer if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_ACTIVE,
-};
-
-static void board_charger_config(void)
-{
- /*
- * b/166728543, we configured charger setting to throttle CPU
- * when the system loading is at battery current limit.
- */
- int reg;
-
- /*
- * Set DCProchot# to 5120mA
- */
- isl9241_set_dc_prochot(CHARGER_SOLO, 5120);
-
- /*
- * Set Control1 bit<3> = 1, PSYS = 1
- */
- if (i2c_read16(I2C_PORT_CHARGER, ISL9241_ADDR_FLAGS,
- ISL9241_REG_CONTROL1, &reg) == EC_SUCCESS) {
- reg |= ISL9241_CONTROL1_PSYS;
- if (i2c_write16(I2C_PORT_CHARGER, ISL9241_ADDR_FLAGS,
- ISL9241_REG_CONTROL1, reg))
- CPRINTS("Failed to set isl9241");
- }
-
- /*
- * Set Control2 bit<10:9> = 00, PROCHOT# Debounce = 7us
- */
- if (i2c_read16(I2C_PORT_CHARGER, ISL9241_ADDR_FLAGS,
- ISL9241_REG_CONTROL2, &reg) == EC_SUCCESS) {
- reg &= ~ISL9241_CONTROL2_PROCHOT_DEBOUNCE_MASK;
- if (i2c_write16(I2C_PORT_CHARGER, ISL9241_ADDR_FLAGS,
- ISL9241_REG_CONTROL2, reg))
- CPRINTS("Failed to set isl9241");
- }
-
- /*
- * Set Control4 bit<11> = 1, PSYS Rsense Ratio = 1:1
- */
- if (i2c_read16(I2C_PORT_CHARGER, ISL9241_ADDR_FLAGS,
- ISL9241_REG_CONTROL4, &reg) == EC_SUCCESS) {
- reg |= ISL9241_CONTROL4_PSYS_RSENSE_RATIO;
- if (i2c_write16(I2C_PORT_CHARGER, ISL9241_ADDR_FLAGS,
- ISL9241_REG_CONTROL4, reg))
- CPRINTS("Failed to set isl9241");
- }
-}
-
-static void board_init(void)
-{
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 100);
- board_charger_config();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- if (port == USBC_PORT_C1) {
- if (usb_db == DB_USB4_GEN2) {
- /*
- * Older boards violate 205mm trace length prior
- * to connection to the re-timer and only support up
- * to GEN2 speeds.
- */
- return TBT_SS_U32_GEN1_GEN2;
- } else if (usb_db == DB_USB4_GEN3) {
- return TBT_SS_TBT_GEN3;
- }
- }
-
- /*
- * Thunderbolt-compatible mode not supported
- *
- * TODO (b/147726366): All the USB-C ports need to support same speed.
- * Need to fix once USB-C feature set is known for Volteer.
- */
- return TBT_SS_RES_0;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- /*
- * Volteer reference design only supports TBT & USB4 on port 1
- * if the USB4 DB is present.
- *
- * TODO (b/147732807): All the USB-C ports need to support same
- * features. Need to fix once USB-C feature set is known for Volteer.
- */
- return ((port == USBC_PORT_C1)
- && ((usb_db == DB_USB4_GEN2) || (usb_db == DB_USB4_GEN3)));
-}
-
-__override void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * b/166728543
- * Set different AC_PROCHOT value when using different wattage ADT.
- */
- if (max_ma * charge_mv == PD_MAX_POWER_MW * 1000)
- isl9241_set_ac_prochot(0, 3840);
- else
- isl9241_set_ac_prochot(0, 3328);
-
- /*
- * Follow OEM request to limit the input current to
- * 90% negotiated limit.
- */
- charge_ma = charge_ma * 90 / 100;
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_BATTERY_SCL,
- .sda = GPIO_EC_I2C5_BATTERY_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_PWR_SCL_R,
- .sda = GPIO_EC_I2C7_EEPROM_PWR_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /*
- * If using the side select to run both LEDs at the same time,
- * the frequency should be 1/2 of the color channel PWM
- * frequency to drive each LED equally.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* Volteer specific USB daughter-board configuration */
-
-/* USBC TCPC configuration for USB3 daughter board */
-static const struct tcpc_config_t tcpc_config_p1_usb3 = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 | TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
-};
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set to the
- * virtual_usb_mux_driver so the AP gets notified of mux changes and updates
- * the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-static const struct usb_mux mux_config_p1_usb3_active = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
-};
-
-static const struct usb_mux mux_config_p1_usb3_passive = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-static enum gpio_signal ps8xxx_rst_odl = GPIO_USB_C1_RT_RST_ODL;
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(ps8xxx_rst_odl, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(ps8xxx_rst_odl, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- /* No reset available for TCPC on port 0 */
- /* Daughterboard specific reset for port 1 */
- if (usb_db == DB_USB3_ACTIVE) {
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
- }
-}
-
-/*
- * Set up support for the USB3 daughterboard:
- * Parade PS8815 TCPC (integrated retimer)
- * Diodes PI3USB9201 BC 1.2 chip (same as USB4 board)
- * Silergy SYV682A PPC (same as USB4 board)
- * Virtual mux with stacked retimer
- */
-static void config_db_usb3_active(void)
-{
- tcpc_config[USBC_PORT_C1] = tcpc_config_p1_usb3;
- usb_muxes[USBC_PORT_C1] = mux_config_p1_usb3_active;
-}
-
-/*
- * Set up support for the passive USB3 daughterboard:
- * TUSB422 TCPC (already the default)
- * PI3USB9201 BC 1.2 chip (already the default)
- * Silergy SYV682A PPC (already the default)
- * Virtual mux without stacked retimer
- */
-
-static void config_db_usb3_passive(void)
-{
- usb_muxes[USBC_PORT_C1] = mux_config_p1_usb3_passive;
-}
-
-static void config_port_discrete_tcpc(int port)
-{
- /*
- * Support 2 Pin-to-Pin compatible parts: TUSB422 and RT1715, for
- * simplicity allow either and decide which we are using.
- * Default to TUSB422, and switch to RT1715 after BOARD_ID >=1.
- */
- if (get_board_id() >= 1) {
- CPRINTS("C%d: RT1715", port);
- tcpc_config[port].i2c_info.addr_flags =
- RT1715_I2C_ADDR_FLAGS;
- tcpc_config[port].drv = &rt1715_tcpm_drv;
- return;
- }
- CPRINTS("C%d: Default to TUSB422", port);
-}
-
-static const char *db_type_prefix = "USB DB type: ";
-__override void board_cbi_init(void)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- config_port_discrete_tcpc(0);
-
- switch (usb_db) {
- case DB_USB_ABSENT:
- CPRINTS("%sNone", db_type_prefix);
- break;
- case DB_USB4_GEN2:
- CPRINTS("%sUSB4 Gen1/2", db_type_prefix);
- break;
- case DB_USB4_GEN3:
- CPRINTS("%sUSB4 Gen3", db_type_prefix);
- break;
- case DB_USB3_ACTIVE:
- config_db_usb3_active();
- CPRINTS("%sUSB3 Active", db_type_prefix);
- break;
- case DB_USB3_PASSIVE:
- config_db_usb3_passive();
- CPRINTS("%sUSB3 Passive", db_type_prefix);
- break;
- default:
- CPRINTS("%sID %d not supported", db_type_prefix, usb_db);
- }
-
- if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad()) ||
- get_board_id() < 1)
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
-
- /*
- * If keyboard is US2(KB_LAYOUT_1), we need translate right ctrl
- * to backslash(\|) key.
- */
- if (ec_cfg_keyboard_layout() == KB_LAYOUT_1)
- set_scancode_set2(4, 0, get_scancode_set2(2, 7));
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/eldrid/board.h b/board/eldrid/board.h
deleted file mode 100644
index 8a78f22350..0000000000
--- a/board/eldrid/board.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#undef CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* Keyboard features */
-
-/*
- * Disable VOL up/down when tablet mode.
- * TODO(b/170966461): Re-enable Vivaldi keyboard once
- * 8042 and MKBP drivers can coexist.
- */
-#undef CONFIG_KEYBOARD_VIVALDI
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-
-/* BMI160 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL))
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* TODO: b/144165680 - measure and check these values on Volteer */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-#define CONFIG_CUSTOM_FAN_CONTROL
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED4_SIDESEL = 0,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/eldrid/build.mk b/board/eldrid/build.mk
deleted file mode 100644
index 868a463932..0000000000
--- a/board/eldrid/build.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
-board-y+=thermal.o
diff --git a/board/eldrid/ec.tasklist b/board/eldrid/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/eldrid/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/eldrid/gpio.inc b/board/eldrid/gpio.inc
deleted file mode 100644
index 1006391c4e..0000000000
--- a/board/eldrid/gpio.inc
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-/*
- * Lid g-sensor interrupt unused on Volteer, configure as regular input for
- * power saving.
- */
-GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C1_RT_INT_ODL, PIN(F, 3), GPIO_INPUT)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery LED: Amber */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery LED: White */
-GPIO(POWER_LED_GATE, PIN(C, 2), GPIO_OUT_LOW) /* Power LED: White */
-
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- * TODO(b/138954381): Change these names when they change on the schematic.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Unused signals */
-GPIO(UNUSED_GPIO41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD1, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD0, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD4, PIN(D, 4), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SDA_R, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(6, BIT(0)), 0, MODULE_PWM, 0) /* LED_SIDESEL_4_L */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/eldrid/led.c b/board/eldrid/led.c
deleted file mode 100644
index 3cbf06c123..0000000000
--- a/board/eldrid/led.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* 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.
- */
-
-#include "charge_manager.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "pwm.h"
-
-#define BAT_LED_ON_LVL 0
-#define BAT_LED_OFF_LVL 1
-
-#define PWR_LED_ON_LVL 1
-#define PWR_LED_OFF_LVL 0
-
-/* LED_SIDESEL_4_L=1, MB BAT LED open
- * LED_SIDESEL_4_L=0, DB BAT LED open
- */
-#define LED_SIDESEL_MB_PORT 0
-#define LED_SIDESEL_DB_PORT 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {
- {EC_LED_COLOR_WHITE, 0.4 * LED_ONE_SEC},
- {LED_OFF, 0.4 * LED_ONE_SEC}
- },
- [STATE_FACTORY_TEST] = {
- {EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC}
- },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 6 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {
- {LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- int port;
- int side_select_duty;
-
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- port = charge_manager_get_active_charge_port();
- switch (port) {
- case LED_SIDESEL_MB_PORT:
- side_select_duty = 0;
- break;
- case LED_SIDESEL_DB_PORT:
- side_select_duty = 100;
- break;
- default:
- /*
- * We need to turn off led here since curr.ac won't update
- * immediately but led will update every 200ms.
- */
- side_select_duty = 50;
- color = LED_OFF;
- }
-
- pwm_set_duty(PWM_CH_LED4_SIDESEL, side_select_duty);
- }
-
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, BAT_LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, BAT_LED_OFF_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, BAT_LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, BAT_LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, BAT_LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, BAT_LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_POWER_LED_GATE, PWR_LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_POWER_LED_GATE, PWR_LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- led_auto_control(led_id, 0);
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/eldrid/sensors.c b/board/eldrid/sensors.c
deleted file mode 100644
index aba3549cca..0000000000
--- a/board/eldrid/sensors.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR2_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_sensors_init(void)
-{
- /* Note - BMA253 interrupt unused by EC */
-
- /* Enable interrupt for the BMI160 accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/eldrid/thermal.c b/board/eldrid/thermal.c
deleted file mode 100644
index 4f9ac8796b..0000000000
--- a/board/eldrid/thermal.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "fan.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-/* Console output macros */
-#define CPUTS(outstr) cputs(CC_THERMAL, outstr)
-#define CPRINTS(format, args...) cprints(CC_THERMAL, format, ## args)
-
-
-/******************************************************************************/
-/* EC thermal management configuration */
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C).
- * TODO(b/170143672): Have different sensor placement. The temperature need to
- * be changed.
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-struct fan_step {
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t on[TEMP_SENSOR_COUNT];
-
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t off[TEMP_SENSOR_COUNT];
-
- /* Fan rpm */
- uint16_t rpm[FAN_CH_COUNT];
-};
-
-/*
- * TODO(b/167931578) Only monitor sensor3 for now.
- * Will add more sensors support if needed.
- */
-static const struct fan_step fan_table[] = {
- {
- /* level 0 */
- .on = {-1, -1, 44, -1},
- .off = {-1, -1, 0, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {-1, -1, 46, -1},
- .off = {-1, -1, 44, -1},
- .rpm = {3200},
- },
- {
- /* level 2 */
- .on = {-1, -1, 50, -1},
- .off = {-1, -1, 45, -1},
- .rpm = {3600},
- },
- {
- /* level 3 */
- .on = {-1, -1, 54, -1},
- .off = {-1, -1, 49, -1},
- .rpm = {4100},
- },
- {
- /* level 4 */
- .on = {-1, -1, 58, -1},
- .off = {-1, -1, 53, -1},
- .rpm = {4900},
- },
- {
- /* level 5 */
- .on = {-1, -1, 60, -1},
- .off = {-1, -1, 57, -1},
- .rpm = {5200},
- },
-};
-
-int fan_table_to_rpm(int fan, int *temp)
-{
- /* current fan level */
- static int current_level;
- /* previous fan level */
- static int prev_current_level;
-
- /* previous sensor temperature */
- static int prev_temp[TEMP_SENSOR_COUNT];
- const int num_fan_levels = ARRAY_SIZE(fan_table);
- int i;
- int new_rpm = 0;
-
- /*
- * Compare the current and previous temperature, we have
- * the three paths :
- * 1. decreasing path. (check the release point)
- * 2. increasing path. (check the trigger point)
- * 3. invariant path. (return the current RPM)
- */
-
- if (temp[TEMP_SENSOR_3_DDR_SOC] < prev_temp[TEMP_SENSOR_3_DDR_SOC]) {
- for (i = current_level; i > 0; i--) {
- if (temp[TEMP_SENSOR_3_DDR_SOC] <
- fan_table[i].off[TEMP_SENSOR_3_DDR_SOC])
- current_level = i - 1;
- else
- break;
- }
- } else if (temp[TEMP_SENSOR_3_DDR_SOC] >
- prev_temp[TEMP_SENSOR_3_DDR_SOC]) {
- for (i = current_level; i < num_fan_levels; i++) {
- if (temp[TEMP_SENSOR_3_DDR_SOC] >
- fan_table[i].on[TEMP_SENSOR_3_DDR_SOC])
- current_level = i;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- if (current_level != prev_current_level) {
- CPRINTS("temp: %d, prev_temp: %d", temp[TEMP_SENSOR_3_DDR_SOC],
- prev_temp[TEMP_SENSOR_3_DDR_SOC]);
- CPRINTS("current_level: %d", current_level);
- }
-
- for (i = 0; i < TEMP_SENSOR_COUNT; ++i)
- prev_temp[i] = temp[i];
-
- prev_current_level = current_level;
-
- switch (fan) {
- case FAN_CH_0:
- new_rpm = fan_table[current_level].rpm[FAN_CH_0];
- break;
- default:
- break;
- }
-
- return new_rpm;
-}
-
-void board_override_fan_control(int fan, int *temp)
-{
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan),
- fan_table_to_rpm(fan, temp));
- } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Stop fan when enter S0ix */
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan), 0);
- }
-}
diff --git a/board/eldrid/vif_override.xml b/board/eldrid/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/eldrid/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/elemi/battery.c b/board/elemi/battery.c
deleted file mode 100644
index 602176b718..0000000000
--- a/board/elemi/battery.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Elemi battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 996QA193H Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* Cosmx CA407792G Battery Information */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_HIGHPOWER;
diff --git a/board/elemi/board.c b/board/elemi/board.c
deleted file mode 100644
index bb59308213..0000000000
--- a/board/elemi/board.c
+++ /dev/null
@@ -1,453 +0,0 @@
-/* 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.
- */
-
-/* Elemi board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Elemi if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_ACTIVE,
-};
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2500,
- .rpm_start = 2500,
- .rpm_max = 6500,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- [EC_TEMP_THRESH_HALT] = C_TO_K(70),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(58),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(60),
-};
-
-const static struct ec_thermal_config thermal_charger = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(70),
-};
-
-const static struct ec_thermal_config thermal_regulator = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- [EC_TEMP_THRESH_HALT] = C_TO_K(70),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(58),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_charger,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_regulator,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_BATTERY_SCL,
- .sda = GPIO_EC_I2C5_BATTERY_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_PWR_SCL_R,
- .sda = GPIO_EC_I2C7_EEPROM_PWR_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void kb_backlight_enable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-__override void board_ps8xxx_tcpc_init(int port)
-{
- /* b/189587527: Set Displayport EQ loss up to 10dB */
- tcpc_addr_write(port, PS8751_I2C_ADDR1_P1_FLAGS,
- PS8815_REG_DP_EQ_SETTING,
- PS8815_DPEQ_LOSS_UP_10DB << PS8815_REG_DP_EQ_COMP_SHIFT);
-}
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set to the
- * virtual_usb_mux_driver so the AP gets notified of mux changes and updates
- * the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- /* No reset available for TCPC on port 0 */
- /* Daughterboard specific reset for port 1 */
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-__override void board_cbi_init(void)
-{
- if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad()) ||
- get_board_id() <= 2)
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {1, 4}, {1, 3}, {1, 6}, {1, 7},
- {3, 1}, {2, 0}, {1, 5}, {2, 6}, {2, 7},
- {2, 1}, {2, 4}, {2, 5}, {1, 2}, {2, 3},
- {2, 2}, {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
diff --git a/board/elemi/board.h b/board/elemi/board.h
deleted file mode 100644
index f2ce54e83a..0000000000
--- a/board/elemi/board.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* 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.
- */
-
-/* Elemi board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the NPCX797FC dose not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Optional features */
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* Keyboard features */
-
-/* Sensors */
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_GMR_TABLET_MODE
-#undef CONFIG_ACCEL_FIFO
-#undef CONFIG_ACCEL_FIFO_SIZE
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* TODO: b/144165680 - measure and check these values on Volteer */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-/* Experimentally determined. See b/186079130. */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 10000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#undef CONFIG_USB_PD_TCPM_TUSB422
-#undef CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-#undef CONFIG_VOLUME_BUTTONS
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/* Keyboard feature */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/elemi/build.mk b/board/elemi/build.mk
deleted file mode 100644
index 43b40c644c..0000000000
--- a/board/elemi/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
diff --git a/board/elemi/ec.tasklist b/board/elemi/ec.tasklist
deleted file mode 100644
index 2c9a9e8e32..0000000000
--- a/board/elemi/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/elemi/gpio.inc b/board/elemi/gpio.inc
deleted file mode 100644
index 934e26ce2b..0000000000
--- a/board/elemi/gpio.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C1_RT_INT_ODL, PIN(F, 3), GPIO_INPUT)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight enable */
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- * TODO(b/138954381): Change these names when they change on the schematic.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(C0_CHARGE_LED_AMBER_L, PIN(C, 3), GPIO_OUT_HIGH) /* Amber C0 port */
-GPIO(C0_CHARGE_LED_WHITE_L, PIN(C, 4), GPIO_OUT_HIGH) /* White C0 port */
-GPIO(C1_CHARGE_LED_AMBER_L, PIN(6, 0), GPIO_OUT_HIGH) /* Amber C1 port */
-GPIO(C1_CHARGE_LED_WHITE_L, PIN(C, 2), GPIO_OUT_HIGH) /* White C1 port */
-
-/* Unused signals */
-GPIO(UNUSED_GPIO41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD4, PIN(D, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO95, PIN(9, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO81, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO93, PIN(9, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO97, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOB5, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V) /* Unused I2C port, Set input only */
-GPIO(UNUSED_GPIOB4, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* Unused I2C port, Set input only */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SDA_R, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/elemi/led.c b/board/elemi/led.c
deleted file mode 100644
index d8df9c92a0..0000000000
--- a/board/elemi/led.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Elemi
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_CYCLE_TIME_MS (2 * 1000)
-#define LED_TICKS_PER_CYCLE (LED_CYCLE_TIME_MS / HOOK_TICK_INTERVAL_MS)
-#define LED_ON_TIME_MS (1 * 1000)
-#define LED_ON_TICKS (LED_ON_TIME_MS / HOOK_TICK_INTERVAL_MS)
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- RIGHT_PORT = 0,
- LEFT_PORT
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == RIGHT_PORT ? GPIO_C0_CHARGE_LED_AMBER_L :
- GPIO_C1_CHARGE_LED_AMBER_L);
- white_led = (port == RIGHT_PORT ? GPIO_C0_CHARGE_LED_WHITE_L :
- GPIO_C1_CHARGE_LED_WHITE_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int suspend_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LEDs for Elemi, Elemi doesn't have power LED,
- * blinking both two side battery white LEDs to indicate
- * system suspend without charging state.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
-
- suspend_ticks++;
-
- led_set_color_battery(RIGHT_PORT, suspend_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- led_set_color_battery(LEFT_PORT, suspend_ticks & 0x4 ?
- LED_WHITE : LED_OFF);
- return;
- }
-
- suspend_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/elemi/vif_override.xml b/board/elemi/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/elemi/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/elm/battery.c b/board/elm/battery.c
deleted file mode 100644
index de9685a89d..0000000000
--- a/board/elm/battery.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2016 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "util.h"
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define SB_SHIP_MODE_REG 0x3a
-#define SB_SHUTDOWN_DATA 0xC574
-
-static const struct battery_info info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9100,
- /* Pre-charge values. */
- .precharge_current = 256, /* mA */
-
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-}
diff --git a/board/elm/board.c b/board/elm/board.c
deleted file mode 100644
index d62ff8afae..0000000000
--- a/board/elm/board.c
+++ /dev/null
@@ -1,532 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Oak board configuration */
-
-#include "adc.h"
-#include "atomic.h"
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/anx7688.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_lid.h"
-#include "motion_sense.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "thermal.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Dispaly port hardware can connect to port 0, 1 or neither. */
-#define PD_PORT_NONE -1
-
-void pd_mcu_interrupt(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-void deferred_reset_pd_mcu(void);
-DECLARE_DEFERRED(deferred_reset_pd_mcu);
-
-void usb_evt(enum gpio_signal signal)
-{
- if (!gpio_get_level(GPIO_BC12_WAKE_L))
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#include "gpio_list.h"
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_SOC_POWER_GOOD, POWER_SIGNAL_ACTIVE_HIGH, "POWER_GOOD"},
- {GPIO_SUSPEND_L, POWER_SIGNAL_ACTIVE_LOW, "SUSPEND#_ASSERTED"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /*
- * PSYS_MONITOR(PA2): ADC_IN2, 1.44 uA/W on 6.05k Ohm
- * output in mW
- */
- [ADC_PSYS] = {"PSYS", 379415, 4096, 0, STM32_AIN(2)},
- /* AMON_BMON(PC0): ADC_IN10, output in uV */
- [ADC_AMON_BMON] = {"AMON_BMON", 183333, 4096, 0, STM32_AIN(10)},
- /* VDC_BOOSTIN_SENSE(PC1): ADC_IN11, output in mV */
- [ADC_VBUS] = {"VBUS", 33000, 4096, 0, STM32_AIN(11)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-int anx7688_passthru_allowed(const struct i2c_port_t *port,
- const uint16_t addr_flags)
-{
- uint16_t addr = I2C_STRIP_FLAGS(addr_flags);
-
- /* Allow access to 0x2c (TCPC) */
- if (addr == 0x2c)
- return 1;
-
- CPRINTF("Passthru rejected on %x", addr);
-
- return 0;
-}
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"battery", I2C_PORT_BATTERY, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"pd", I2C_PORT_PD_MCU, 1000, GPIO_I2C1_SCL, GPIO_I2C1_SDA,
- anx7688_passthru_allowed}
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_SPI2_NSS },
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_SPI2_NSS_DB }
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/* TCPC */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC,
- .addr_flags = CONFIG_TCPC_I2C_BASE_ADDR_FLAGS,
- },
- .drv = &anx7688_tcpm_drv,
- },
-};
-
-struct pi3usb9281_config pi3usb9281_chips[] = {
- {
- .i2c_port = I2C_PORT_PERICOM,
- .mux_lock = NULL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
- CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT);
-
-/*
- * Temperature sensors data; must be in same order as enum temp_sensor_id.
- * Sensor index and name must match those present in coreboot:
- * src/mainboard/google/${board}/acpi/dptf.asl
- */
-const struct temp_sensor_t temp_sensors[] = {
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- {"TMP432_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_LOCAL},
- {"TMP432_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE1},
- {"TMP432_Sensor_2", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE2},
-#endif
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp,
- 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &anx7688_usb_mux_driver,
- },
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/**
- * Reset PD MCU
- * ANX7688 needs a reset pulse of 50ms after power enable.
- */
-void deferred_reset_pd_mcu(void)
-{
- uint8_t state = gpio_get_level(GPIO_USB_C0_PWR_EN_L) |
- (gpio_get_level(GPIO_USB_C0_RST) << 1);
-
- CPRINTS("%s %d", __func__, state);
- switch (state) {
- case 0:
- /*
- * PWR_EN_L low, RST low
- * start reset sequence by turning off power enable
- * and wait for 1ms.
- */
- gpio_set_level(GPIO_USB_C0_PWR_EN_L, 1);
- hook_call_deferred(&deferred_reset_pd_mcu_data, 1*MSEC);
- break;
- case 1:
- /*
- * PWR_EN_L high, RST low
- * pull PD reset pin and wait for another 1ms
- */
- gpio_set_level(GPIO_USB_C0_RST, 1);
- hook_call_deferred(&deferred_reset_pd_mcu_data, 1*MSEC);
- /* on PD reset, trigger PD task to reset state */
- task_set_event(TASK_ID_PD_C0, PD_EVENT_TCPC_RESET);
- break;
- case 3:
- /*
- * PWR_EN_L high, RST high
- * enable power and wait for 10ms then pull RESET_N
- */
- gpio_set_level(GPIO_USB_C0_PWR_EN_L, 0);
- hook_call_deferred(&deferred_reset_pd_mcu_data, 10*MSEC);
- break;
- case 2:
- /*
- * PWR_EN_L low, RST high
- * leave reset state
- */
- gpio_set_level(GPIO_USB_C0_RST, 0);
- break;
- }
-}
-
-static void board_power_on_pd_mcu(void)
-{
- /* check if power is already on */
- if (!gpio_get_level(GPIO_USB_C0_PWR_EN_L))
- return;
-
- gpio_set_level(GPIO_USB_C0_EXTPWR_EN, 1);
- hook_call_deferred(&deferred_reset_pd_mcu_data, 1*MSEC);
-}
-
-void board_reset_pd_mcu(void)
-{
- /* enable port controller's cable detection before reset */
- anx7688_enable_cable_detection(0);
-
- /* wait for 10ms, then start port controller's reset sequence */
- hook_call_deferred(&deferred_reset_pd_mcu_data, 10*MSEC);
-}
-
-int command_pd_reset(int argc, char **argv)
-{
- board_reset_pd_mcu();
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(resetpd, command_pd_reset,
- "",
- "Reset PD IC");
-
-/**
- * There is a level shift for AC_OK & LID_OPEN signal between AP & EC,
- * disable it (drive high) when AP is off, otherwise enable it (drive low).
- */
-static void board_extpower_buffer_to_soc(void)
-{
- /* Drive high when AP is off (G3), else drive low */
- gpio_set_level(GPIO_LEVEL_SHIFT_EN_L,
- chipset_in_state(CHIPSET_STATE_HARD_OFF) ? 1 : 0);
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable Level shift of AC_OK & LID_OPEN signals */
- board_extpower_buffer_to_soc();
- /* Enable rev1 testing GPIOs */
- gpio_set_level(GPIO_SYSTEM_POWER_H, 1);
- /* Enable PD MCU interrupt */
- gpio_enable_interrupt(GPIO_PD_MCU_INT);
-
- /* Enable BC 1.2 */
- gpio_enable_interrupt(GPIO_BC12_CABLE_INT);
-
- /* Check if typeC is already connected, and do 7688 power on flow */
- board_power_on_pd_mcu();
-
- /* Update VBUS supplier */
- usb_charger_vbus_change(0, !gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L));
-
- /* Remap SPI2 to DMA channels 6 and 7 (0011) */
- STM32_DMA_CSELR(STM32_DMAC_CH6) |= (3 << 20) | (3 << 24);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/**
- * Set active charge port -- only one port can active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Return EC_SUCCESS if charge port is accepted and made active.
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are source VBUS on the port */
- int source = gpio_get_level(GPIO_USB_C0_5V_EN);
-
- if (is_real_port && source) {
- CPRINTF("Skip enable p%d", charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTF("New chg p%d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable charging port */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
- } else {
- /* Enable charging port */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Limit input current 95% ratio on elm board for safety */
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-/**
- * Set AP reset.
- * AP_RESET_L (PC3, CPU_WARM_RESET_L) is connected to PMIC SYSRSTB
- */
-void board_set_ap_reset(int asserted)
-{
- /* Signal is active-low */
- CPRINTS("ap warm reset(%d)", asserted);
- gpio_set_level(GPIO_AP_RESET_L, !asserted);
-}
-
-#ifdef CONFIG_TEMP_SENSOR_TMP432
-static void tmp432_set_power_deferred(void)
-{
- /* Shut tmp432 down if not in S0 && no external power */
- if (!extpower_is_present() && !chipset_in_state(CHIPSET_STATE_ON)) {
- if (EC_SUCCESS != tmp432_set_power(TMP432_POWER_OFF))
- CPRINTS("ERROR: Can't shutdown TMP432.");
- return;
- }
-
- /* else, turn it on. */
- if (EC_SUCCESS != tmp432_set_power(TMP432_POWER_ON))
- CPRINTS("ERROR: Can't turn on TMP432.");
-}
-DECLARE_DEFERRED(tmp432_set_power_deferred);
-#endif
-
-/**
- * Hook of AC change. turn on/off tmp432 depends on AP & AC status.
- */
-static void board_extpower(void)
-{
- board_extpower_buffer_to_soc();
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- hook_call_deferred(&tmp432_set_power_deferred_data, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition, and before HOOK_CHIPSET_STARTUP */
-static void board_chipset_pre_init(void)
-{
- /* Enable level shift of AC_OK when power on */
- board_extpower_buffer_to_soc();
-
- /* Enable SPI for KX022 */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-
- /* Set all four SPI pins to high speed */
- /* pins D0/D1/D3/D4 */
- STM32_GPIO_OSPEEDR(GPIO_D) |= 0x000003cf;
- /* pins F6 */
- STM32_GPIO_OSPEEDR(GPIO_F) |= 0x00003000;
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_PRE_INIT, board_chipset_pre_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Disable level shift to SoC when shutting down */
- gpio_set_level(GPIO_LEVEL_SHIFT_EN_L, 1);
-
- spi_enable(&spi_devices[0], 0);
-
- /* Disable clocks to SPI2 module */
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /*
- * Calling gpio_config_module sets disabled alternate function pins to
- * GPIO_INPUT. But to prevent leakage we want to set GPIO_OUT_LOW
- */
- gpio_set_flags_by_mask(GPIO_D, 0x1a, GPIO_OUT_LOW);
- gpio_set_level(GPIO_SPI2_NSS, 0);
- gpio_set_level(GPIO_SPI2_NSS_DB, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- hook_call_deferred(&tmp432_set_power_deferred_data, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- hook_call_deferred(&tmp432_set_power_deferred_data, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_kx022_mutex[2];
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* KX022 private data */
-struct kionix_accel_data g_kx022_data[2];
-
-struct motion_sensor_t motion_sensors[] = {
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &kionix_accel_drv,
- .mutex = &g_kx022_mutex[0],
- .drv_data = &g_kx022_data[0],
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(0),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 2, /* g, enough for lid angle calculation. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_kx022_mutex[1],
- .drv_data = &g_kx022_data[1],
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(1),
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-__override void lid_angle_peripheral_enable(int enable)
-{
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-
- /* enable/disable touchpad */
- gpio_set_level(GPIO_EN_TP_INT_L, !enable);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- return gpio_get_level(GPIO_PD_MCU_INT) ? PD_STATUS_TCPC_ALERT_0 : 0;
-}
-
diff --git a/board/elm/board.h b/board/elm/board.h
deleted file mode 100644
index 40eb81eab8..0000000000
--- a/board/elm/board.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* elm board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands.
- * TODO: Remove this config engineering velidation.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* Free up flash space */
-#undef CONFIG_USB_PD_TCPMV1_DEBUG
-
-/* Accelero meter and gyro sensor */
-#define CONFIG_ACCEL_KX022
-#undef CONfFIG_CMD_ACCELSPOOF
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-
-/* AC adaptor, charger, battery */
-#define CONFIG_BATTERY_CUT_OFF
-#undef CONFIG_BATTERY_PRECHARGE_TIMEOUT
-#define CONFIG_BATTERY_PRECHARGE_TIMEOUT 300
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_PRESENT_L
-#define CONFIG_BATTERY_SMART
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_ISL9237
-#define CONFIG_CHARGER_MAX_INPUT_CURRENT 3000
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHIPSET_MT817X
-#define CONFIG_CMD_TYPEC
-#define CONFIG_EXTPOWER_GPIO
-
-/* Increase tx buffer size, as we'd like to stream EC log to AP. */
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 8192
-
-/* Wakeup pin: EC_WAKE(PA0) - WKUP1 */
-#define CONFIG_FORCE_CONSOLE_RESUME
-#define CONFIG_HIBERNATE
-#define CONFIG_HIBERNATE_WAKEUP_PINS (STM32_PWR_CSR_EWUP1)
-
-/* Other configs */
-#define CONFIG_HOST_COMMAND_STATUS
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_COMMON
-#define CONFIG_USB_CHARGER
-#define CONFIG_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_VBOOT_HASH
-#undef CONFIG_WATCHDOG_HELP
-#define CONFIG_SWITCH
-#define CONFIG_BOARD_VERSION_GPIO
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_DPTF
-
-/* Type-C */
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DUAL_ROLE
-
-#define CONFIG_USB_PD_LOGGING
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_ANX7688
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#undef CONFIG_TCPC_I2C_BASE_ADDR_FLAGS
-#define CONFIG_TCPC_I2C_BASE_ADDR_FLAGS 0x2C
-#define CONFIG_USB_PD_ANX7688
-
-/* UART DMA */
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-/* BC 1.2 charger */
-#define CONFIG_BC12_DETECT_PI3USB9281
-#define CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT 1
-
-/* Optional features */
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-/* Mark host command structs as aligned */
-#define CONFIG_HOSTCMD_ALIGNED
-/* By default, set hcdebug to off */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-#define CONFIG_CMD_I2C_PROTECT
-#define CONFIG_HOSTCMD_PD_CONTROL
-
-/*
- * Flash layout:
- * PSTATE(4KB)
- * |
- * (124KB) v (132KB)
- * |<-----Protected Region------>|<------Unprotected Region----->|
- * |<--------RO image--------->| | |<--------RW image----------->|
- * 0 (120KB) ^ ^ (128KB)
- * | |
- * | sector 31(132KB sector)
- * |
- * sector 30(4KB sector)
- */
-#undef CONFIG_RW_MEM_OFF
-#undef CONFIG_RW_SIZE
-#undef CONFIG_EC_WRITABLE_STORAGE_OFF
-#undef CONFIG_EC_WRITABLE_STORAGE_SIZE
-#undef CONFIG_WP_STORAGE_SIZE
-#define CONFIG_RW_MEM_OFF (128 * 1024)
-#define CONFIG_RW_SIZE (128 * 1024)
-#define CONFIG_EC_WRITABLE_STORAGE_OFF (128 * 1024)
-#define CONFIG_EC_WRITABLE_STORAGE_SIZE (128 * 1024)
-#define CONFIG_WP_STORAGE_SIZE (128 * 1024)
-
-/* Drivers */
-#ifndef __ASSEMBLER__
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Keyboard output port list */
-#define KB_OUT_PORT_LIST GPIO_A, GPIO_B, GPIO_C, GPIO_D
-
-/* 2 I2C master ports, connect to battery, charger, pd and USB switches */
-#define I2C_PORT_MASTER 0
-#define I2C_PORT_ACCEL 0
-#define I2C_PORT_BATTERY 0
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_PERICOM 0
-#define I2C_PORT_THERMAL 0
-#define I2C_PORT_PD_MCU 1
-#define I2C_PORT_USB_MUX 1
-#define I2C_PORT_TCPC 1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* First SPI master port (SPI2) */
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 4
-
-/* Define the host events which are allowed to wakeup AP in S3. */
-#define CONFIG_MKBP_HOST_EVENT_WAKEUP_MASK \
- (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEYBOARD_RECOVERY) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEYBOARD_FASTBOOT))
-
-#include "gpio_signal.h"
-
-enum power_signal {
- MTK_POWER_GOOD = 0,
- MTK_SUSPEND_ASSERTED,
- /* Number of power signals */
- POWER_SIGNAL_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_POWER_LED = 0,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum adc_channel {
- ADC_PSYS = 0, /* PC1: STM32_AIN(2) */
- ADC_AMON_BMON, /* PC0: STM32_AIN(10) */
- ADC_VBUS, /* PA2: STM32_AIN(11) */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- /* TMP432 local and remote sensors */
- TEMP_SENSOR_I2C_TMP432_LOCAL,
- TEMP_SENSOR_I2C_TMP432_REMOTE1,
- TEMP_SENSOR_I2C_TMP432_REMOTE2,
-#endif
- /* Battery temperature sensor */
- TEMP_SENSOR_BATTERY,
-
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- BASE_ACCEL,
- LID_ACCEL,
- SENSOR_COUNT,
-};
-
-/* TODO: determine the following board specific type-C power constants */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA CONFIG_CHARGER_MAX_INPUT_CURRENT
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* The lower the input voltage, the higher the power efficiency. */
-#define PD_PREFER_LOW_VOLTAGE
-
-/* Reset PD MCU */
-void board_reset_pd_mcu(void);
-/* Set AP reset pin according to parameter */
-void board_set_ap_reset(int asserted);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/elm/build.mk b/board/elm/build.mk
deleted file mode 100644
index 172a88e843..0000000000
--- a/board/elm/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-#-*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-# STmicro STM32F091VC
-CHIP := stm32
-CHIP_FAMILY := stm32f0
-CHIP_VARIANT:= stm32f09x
-
-board-y = board.o battery.o led.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/elm/ec.tasklist b/board/elm/ec.tasklist
deleted file mode 100644
index 3ea68bf9f8..0000000000
--- a/board/elm/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(MOTIONSENSE, motion_sense_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE)
diff --git a/board/elm/gpio.inc b/board/elm/gpio.inc
deleted file mode 100644
index 0dc89269ba..0000000000
--- a/board/elm/gpio.inc
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(AC_PRESENT, PIN(C, 6), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(LID_OPEN, PIN(C, 13), GPIO_INT_BOTH, lid_interrupt) /* LID switch detection */
-GPIO_INT(SUSPEND_L, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt) /* AP suspend/resume state */
-GPIO_INT(SOC_POWER_GOOD, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PD_MCU_INT, PIN(E, 0), GPIO_INT_RISING, pd_mcu_interrupt) /* Signal from PD MCU, external pull-up */
-GPIO_INT(BC12_CABLE_INT, PIN(E, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb_evt) /* interrupt from BC12 and CABLE_DET */
-GPIO_INT(POWER_BUTTON_L, PIN(B, 5), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_UP, spi_event) /* SPI Chip Select */
-
-/* Keyboard inputs */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH)
-#define GPIO_KB_OUTPUT GPIO_ODR_HIGH
-
-GPIO_INT(KB_IN00, PIN(C, 8), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN01, PIN(C, 9), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN02, PIN(C, 10), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN03, PIN(C, 11), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN04, PIN(C, 12), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN05, PIN(C, 14), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN06, PIN(C, 15), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN07, PIN(D, 2), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-
-GPIO(KB_OUT00, PIN(B, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(B, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT02, PIN(B, 12), GPIO_OUT_LOW) /* KSO2 is inverted */
-GPIO(KB_OUT03, PIN(B, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT04, PIN(A, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(D, 14), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(D, 13), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(D, 15), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(C, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(B, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(C, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(C, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(D, 5), GPIO_KB_OUTPUT)
-
-
-/* Inputs without interrupt handlers */
-GPIO(5V_POWER_GOOD, PIN(A, 1), GPIO_INPUT)
-GPIO(EC_WAKE, PIN(A, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(WP_L, PIN(B, 4), GPIO_INPUT) /* Write protect input */
-GPIO(BAT_PRESENT_L, PIN(E, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(USB_C0_VBUS_WAKE_L, PIN(D, 12), GPIO_INPUT)
-GPIO(EC_INT_L, PIN(B, 9), GPIO_ODR_HIGH)
-
-/* Board version */
-GPIO(BOARD_VERSION1, PIN(E, 10), GPIO_INPUT) /* Board ID 0 */
-GPIO(BOARD_VERSION2, PIN(E, 9), GPIO_INPUT) /* Board ID 1 */
-GPIO(BOARD_VERSION3, PIN(E, 12), GPIO_INPUT) /* Board ID 2 */
-GPIO(BOARD_VERSION4, PIN(E, 11), GPIO_INPUT) /* Board ID 3 */
-
-/* Outputs */
-GPIO(BAT_LED0, PIN(A, 11), GPIO_OUT_LOW) /* LED_BLUE */
-GPIO(BAT_LED1, PIN(B, 11), GPIO_OUT_LOW) /* LED_ORANGE */
-GPIO(PWR_LED0, PIN(E, 8), GPIO_OUT_LOW) /* LED_BLUE */
-GPIO(PWR_LED1, PIN(D, 6), GPIO_OUT_LOW) /* LED_ORANGE */
-
-GPIO(EC_BL_OVERRIDE, PIN(F, 1), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(F, 0), GPIO_OUT_LOW)
-
-GPIO(AP_RESET_L, PIN(C, 3), GPIO_ODR_HIGH) /* Connect to the PMU_SYSRSTB */
-GPIO(BC12_WAKE_L, PIN(D, 7), GPIO_INPUT)
-GPIO(USB_C0_CABLE_DET_L,PIN(E, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-GPIO(SYSTEM_POWER_H, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(PMIC_PWRON_H, PIN(A, 12), GPIO_OUT_LOW)
-GPIO(PMIC_WARM_RESET_H, PIN(B, 3), GPIO_OUT_LOW)
-GPIO(LEVEL_SHIFT_EN_L, PIN(F, 10), GPIO_OUT_LOW) /* LID/AC level shift */
-
-GPIO(USB_C0_5V_EN, PIN(D, 8), GPIO_OUT_LOW) /* USBC port 0 5V */
-GPIO(USB_C0_CHARGE_L, PIN(D, 9), GPIO_OUT_LOW) /* USBC port 0 charge */
-GPIO(USB_C0_RST, PIN(D, 10), GPIO_ODR_HIGH) /* ANX7688 reset */
-GPIO(USB_C0_PWR_EN_L, PIN(B, 15), GPIO_ODR_HIGH) /* ANX7688 power enable */
-GPIO(USB_C0_EXTPWR_EN, PIN(F, 2), GPIO_OUT_LOW) /* ANX7688 3.3V ext power enable */
-GPIO(USB_DP_HPD, PIN(F, 3), GPIO_INPUT)
-GPIO(EN_TP_INT_L, PIN(E, 14), GPIO_OUT_LOW) /* touchpad interrupt enable */
-
-/* Analog pins */
-GPIO(VDC_BOOSTIN_SENSE, PIN(C, 1), GPIO_ANALOG) /* ADC_IN11 */
-GPIO(PSYS_MONITOR, PIN(A, 2), GPIO_ANALOG) /* ADC_IN2 */
-GPIO(AMON_BMON, PIN(C, 0), GPIO_ANALOG) /* ADC_IN10 */
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C0_SCL, PIN(B, 6), GPIO_INPUT) /* EC I2C */
-GPIO(I2C0_SDA, PIN(B, 7), GPIO_INPUT)
-GPIO(I2C1_SCL, PIN(B, 13), GPIO_INPUT) /* PD I2C */
-GPIO(I2C1_SDA, PIN(B, 14), GPIO_INPUT)
-
-/* SPI MASTER. For SPI sensor */
-GPIO(SPI2_NSS, PIN(D, 0), GPIO_OUT_HIGH) /* mainboard */
-GPIO(SPI2_NSS_DB, PIN(F, 6), GPIO_OUT_HIGH) /* daughterboard */
-
-/* sensor power control */
-GPIO(SENSOR_PWR_EN_L, PIN(D, 11), GPIO_OUT_LOW)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, GPIO_PULL_UP) /* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, 0) /* I2C MASTER:PB6/7 */
-ALTERNATE(PIN_MASK(B, 0x6000), 5, MODULE_I2C, 0) /* I2C MASTER:PB13/14 */
-ALTERNATE(PIN_MASK(A, 0x00f0), 0, MODULE_SPI, 0) /* SPI SLAVE:PA4/5/6/7 */
-ALTERNATE(PIN_MASK(D, 0x001A), 1, MODULE_SPI_CONTROLLER, 0) /* SPI MASTER:PD1/3/4 */
diff --git a/board/elm/led.c b/board/elm/led.c
deleted file mode 100644
index d73cc05c1b..0000000000
--- a/board/elm/led.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Copyright 2016 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.
- *
- * Battery LED and Power LED control for Elm Board.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "util.h"
-#include "system.h"
-
-#define CRITICAL_LOW_BATTERY_PERMILLAGE 71
-#define LOW_BATTERY_PERMILLAGE 137
-#define FULL_BATTERY_PERMILLAGE 937
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- BAT_LED_BLUE = 0,
- BAT_LED_ORANGE,
- PWR_LED_BLUE,
- PWR_LED_ORANGE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int bat_led_set(enum led_color color, int on)
-{
- switch (color) {
- case BAT_LED_BLUE:
- gpio_set_level(GPIO_BAT_LED0, on); /* BAT_LED_BLUE */
- break;
- case BAT_LED_ORANGE:
- gpio_set_level(GPIO_BAT_LED1, on); /* BAT_LED_ORANGE */
- break;
- case PWR_LED_BLUE:
- gpio_set_level(GPIO_PWR_LED0, on); /* PWR_LED_BLUE */
- break;
- case PWR_LED_ORANGE:
- gpio_set_level(GPIO_PWR_LED1, on); /* PWR_LED_ORANGE */
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- /* Ignoring led_id as both leds support the same colors */
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (EC_LED_ID_BATTERY_LED == led_id) {
- if (brightness[EC_LED_COLOR_BLUE] != 0) {
- bat_led_set(BAT_LED_BLUE, 1);
- bat_led_set(BAT_LED_ORANGE, 0);
- } else if (brightness[EC_LED_COLOR_AMBER] != 0) {
- bat_led_set(BAT_LED_BLUE, 0);
- bat_led_set(BAT_LED_ORANGE, 1);
- } else {
- bat_led_set(BAT_LED_BLUE, 0);
- bat_led_set(BAT_LED_ORANGE, 0);
- }
- return EC_SUCCESS;
- } else if (EC_LED_ID_POWER_LED == led_id) {
- if (brightness[EC_LED_COLOR_BLUE] != 0) {
- bat_led_set(PWR_LED_BLUE, 1);
- bat_led_set(PWR_LED_ORANGE, 0);
- } else if (brightness[EC_LED_COLOR_AMBER] != 0) {
- bat_led_set(PWR_LED_BLUE, 0);
- bat_led_set(PWR_LED_ORANGE, 1);
- } else {
- bat_led_set(PWR_LED_BLUE, 0);
- bat_led_set(PWR_LED_ORANGE, 0);
- }
- return EC_SUCCESS;
- } else {
- return EC_ERROR_UNKNOWN;
- }
-}
-
-static unsigned blink_second;
-
-static void elm_led_set_power(void)
-{
- /*
- * PWR LED behavior:
- * Power on: Blue ON
- * Suspend: Orange in breeze mode ( 1 sec on/ 3 sec off)
- * Power off: OFF
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- bat_led_set(PWR_LED_BLUE, 0);
- bat_led_set(PWR_LED_ORANGE, 0);
- } else if (chipset_in_state(CHIPSET_STATE_ON)) {
- bat_led_set(PWR_LED_BLUE, 1);
- bat_led_set(PWR_LED_ORANGE, 0);
- } else if (chipset_in_state(CHIPSET_STATE_SUSPEND)) {
- bat_led_set(PWR_LED_BLUE, 0);
- bat_led_set(PWR_LED_ORANGE,
- (blink_second & 3) ? 0 : 1);
- }
-}
-
-static void elm_led_set_battery(void)
-{
- /*
- * BAT LED behavior:
- * - Fully charged / normal idle: Blue ON
- * - Charging: Orange ON
- * - Battery discharging capacity<10%, Orange blink(1:3)
- * < 3%, Orange blink(1:1)
- * - Battery error: Orange blink(1:1)
- * - Factory force idle: Blue 2 sec, Orange 2 sec
- */
- uint32_t charge_flags = charge_get_flags();
- int remaining_capacity;
- int full_charge_capacity;
- int permillage;
-
- /* Make the percentage approximate to UI shown */
- remaining_capacity = *(int *)host_get_memmap(EC_MEMMAP_BATT_CAP);
- full_charge_capacity = *(int *)host_get_memmap(EC_MEMMAP_BATT_LFCC);
- permillage = !full_charge_capacity ? 0 :
- (1000 * remaining_capacity) / full_charge_capacity;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- if (permillage < FULL_BATTERY_PERMILLAGE) {
- bat_led_set(BAT_LED_BLUE, 0);
- bat_led_set(BAT_LED_ORANGE, 1);
- } else {
- bat_led_set(BAT_LED_BLUE, 1);
- bat_led_set(BAT_LED_ORANGE, 0);
- }
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- bat_led_set(BAT_LED_BLUE, 1);
- bat_led_set(BAT_LED_ORANGE, 0);
- break;
- case PWR_STATE_DISCHARGE:
- bat_led_set(BAT_LED_BLUE, 0);
- if (!chipset_in_state(CHIPSET_STATE_ANY_OFF) &&
- permillage <= CRITICAL_LOW_BATTERY_PERMILLAGE)
- bat_led_set(BAT_LED_ORANGE,
- (blink_second & 1) ? 0 : 1);
- else if (!chipset_in_state(CHIPSET_STATE_ANY_OFF) &&
- permillage <= LOW_BATTERY_PERMILLAGE)
- bat_led_set(BAT_LED_ORANGE,
- (blink_second & 3) ? 0 : 1);
- else
- bat_led_set(BAT_LED_ORANGE, 0);
- break;
- case PWR_STATE_ERROR:
- bat_led_set(BAT_LED_BLUE, 0);
- bat_led_set(BAT_LED_ORANGE, (blink_second & 1) ? 0 : 1);
- break;
- case PWR_STATE_IDLE: /* Ext. power connected in IDLE. */
- if (charge_flags & CHARGE_FLAG_FORCE_IDLE) {
- bat_led_set(BAT_LED_BLUE, (blink_second & 2) ? 0 : 1);
- bat_led_set(BAT_LED_ORANGE, (blink_second & 2) ? 1 : 0);
- } else {
- bat_led_set(BAT_LED_BLUE, 1);
- bat_led_set(BAT_LED_ORANGE, 0);
- }
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/**
- * Called by hook task every 1 sec
- */
-static void led_second(void)
-{
- blink_second++;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- elm_led_set_power();
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- elm_led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
diff --git a/board/elm/usb_pd_policy.c b/board/elm/usb_pd_policy.c
deleted file mode 100644
index 2eeab736d9..0000000000
--- a/board/elm/usb_pd_policy.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "atomic.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/anx7688.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
- /* Provide VBUS */
- gpio_set_level(GPIO_USB_C0_5V_EN, 1);
-
- anx7688_set_power_supply_ready(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- gpio_set_level(GPIO_USB_C0_5V_EN, 0);
-
- anx7688_power_supply_reset(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since 5V power source is off */
- return gpio_get_level(GPIO_5V_POWER_GOOD);
-}
-
-/* ----------------- Vendor Defined Messages ------------------ */
-#ifdef CONFIG_USB_PD_ALT_MODE_DFP
-__override int svdm_dp_attention(int port, uint32_t *payload)
-{
- int cur_lvl;
- int lvl = PD_VDO_DPSTS_HPD_LVL(payload[1]);
- int irq = PD_VDO_DPSTS_HPD_IRQ(payload[1]);
- int ack = 1;
-
- anx7688_update_hpd(port, lvl, irq);
-
- dp_status[port] = payload[1];
- cur_lvl = gpio_get_level(GPIO_USB_DP_HPD);
-
- /* Its initial DP status message prior to config */
- if (!(dp_flags[port] & DP_FLAGS_DP_ON)) {
- if (lvl)
- dp_flags[port] |= DP_FLAGS_HPD_HI_PENDING;
- return ack;
- }
-
- if (!(irq & cur_lvl) && irq & !cur_lvl) {
- CPRINTF("ERR:HPD:IRQ&LOW\n");
- ack = 0; /* nak */
- }
- /* ack */
- return ack;
-}
-
-__override void svdm_exit_dp_mode(int port)
-{
- anx7688_hpd_disable(port);
-}
-#endif /* CONFIG_USB_PD_ALT_MODE_DFP */
diff --git a/board/elm/vif_override.xml b/board/elm/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/elm/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/endeavour/board.c b/board/endeavour/board.c
deleted file mode 100644
index f208da3819..0000000000
--- a/board/endeavour/board.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Endeavour board configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "bd99992gw.h"
-#include "board_config.h"
-#include "button.h"
-#include "chipset.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/pmic_tps650x30.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "espi.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "math_util.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static uint8_t board_version;
-static uint32_t oem;
-static uint32_t sku;
-
-#include "gpio_list.h"
-
-/* Hibernate wake configuration */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS] = {"VBUS", NPCX_ADC_CH2, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* TODO: Verify fan control and mft */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_FAN_PWR_EN,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2500,
- .rpm_start = 2500,
- .rpm_max = 5400,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-const struct i2c_port_t i2c_ports[] = {
- {"pse", I2C_PORT_PSE, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
- {"pmic", I2C_PORT_PMIC, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", I2C_PORT_THERMAL, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_USB_C0_5V_EN,
- GPIO_USB_FP0_5V_EN,
- GPIO_USB_FP1_5V_EN,
- GPIO_USB_FP3_5V_EN,
-};
-
-/*
- * TMP431 has one local and one remote sensor.
- *
- * Temperature sensors data; must be in same order as enum temp_sensor_id.
- * Sensor index and name must match those present in coreboot:
- * src/mainboard/google/${board}/acpi/dptf.asl
- */
-const struct temp_sensor_t temp_sensors[] = {
- {"TMP431_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_LOCAL},
- {"TMP431_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE1},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Thermal limits for each temp sensor. All temps are in degrees K. Must be in
- * same order as enum temp_sensor_id. To always ignore any temp, use 0.
- */
-struct ec_thermal_config thermal_params[] = {
- /* {Twarn, Thigh, Thalt}, <on>
- * {Twarn, Thigh, X }, <off>
- * fan_off, fan_max
- */
- {{0, C_TO_K(81), C_TO_K(82)}, {0, C_TO_K(77), 0},
- C_TO_K(19), C_TO_K(74)}, /* TMP431_Internal */
- {{0, 0, 0}, {0, 0, 0}, 0, 0}, /* TMP431_Sensor_1 */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Initialize PMIC */
-#define I2C_PMIC_READ(reg, data) \
- i2c_read8(I2C_PORT_PMIC, TPS650X30_I2C_ADDR1_FLAGS, (reg), (data))
-
-#define I2C_PMIC_WRITE(reg, data) \
- i2c_write8(I2C_PORT_PMIC, TPS650X30_I2C_ADDR1_FLAGS, (reg), (data))
-
-static void board_pmic_init(void)
-{
- int err;
- int error_count = 0;
- static uint8_t pmic_initialized = 0;
-
- if (pmic_initialized)
- return;
-
- /* Read vendor ID */
- while (1) {
- int data;
- err = I2C_PMIC_READ(TPS650X30_REG_VENDORID, &data);
- if (!err && data == TPS650X30_VENDOR_ID)
- break;
- else if (error_count > 5)
- goto pmic_error;
- error_count++;
- }
-
- /*
- * VCCIOCNT register setting
- * [6] : CSDECAYEN
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_VCCIOCNT, 0x4A);
- if (err)
- goto pmic_error;
-
- /*
- * VRMODECTRL:
- * [4] : VCCIOLPM clear
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_VRMODECTRL, 0x2F);
- if (err)
- goto pmic_error;
-
- /*
- * PGMASK1 : Exclude VCCIO from Power Good Tree
- * [7] : MVCCIOPG clear
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PGMASK1, 0x80);
- if (err)
- goto pmic_error;
-
- /*
- * PWFAULT_MASK1 Register settings
- * [7] : 1b V4 Power Fault Masked
- * [4] : 1b V7 Power Fault Masked
- * [2] : 1b V9 Power Fault Masked
- * [0] : 1b V13 Power Fault Masked
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PWFAULT_MASK1, 0x95);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 4 register configuration
- * [7:6] : 00b Reserved
- * [5:4] : 01b V3.3S discharge resistance (V6S), 100 Ohm
- * [3:2] : 01b V18S discharge resistance (V8S), 100 Ohm
- * [1:0] : 01b V100S discharge resistance (V11S), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT4, 0x15);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 3 register configuration
- * [7:6] : 01b V1.8U_2.5U discharge resistance (V9), 100 Ohm
- * [5:4] : 01b V1.2U discharge resistance (V10), 100 Ohm
- * [3:2] : 01b V100A discharge resistance (V11), 100 Ohm
- * [1:0] : 01b V085A discharge resistance (V12), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT3, 0x55);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 2 register configuration
- * [7:6] : 01b V5ADS3 discharge resistance (V5), 100 Ohm
- * [5:4] : 01b V33A_DSW discharge resistance (V6), 100 Ohm
- * [3:2] : 01b V33PCH discharge resistance (V7), 100 Ohm
- * [1:0] : 01b V18A discharge resistance (V8), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT2, 0x55);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 1 register configuration
- * [7:2] : 00b Reserved
- * [1:0] : 01b VCCIO discharge resistance (V4), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT1, 0x01);
- if (err)
- goto pmic_error;
-
- /*
- * Increase Voltage
- * [7:0] : 0x2a default
- * [5:4] : 10b default
- * [5:4] : 01b 5.1V (0x1a)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_V5ADS3CNT, 0x1a);
- if (err)
- goto pmic_error;
-
- /*
- * PBCONFIG Register configuration
- * [7] : 1b Power button debounce, 0ms (no debounce)
- * [6] : 0b Power button reset timer logic, no action (default)
- * [5:0] : 011111b Force an Emergency reset time, 31s (default)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PBCONFIG, 0x9F);
- if (err)
- goto pmic_error;
-
- /*
- * V3.3A_DSW (VR3) control. Default: 0x2A.
- * [7:6] : 00b Disabled
- * [5:4] : 00b Vnom + 3%. (default: 10b 0%)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_V33ADSWCNT, 0x0A);
- if (err)
- goto pmic_error;
-
- CPRINTS("PMIC init done");
- pmic_initialized = 1;
- return;
-
-pmic_error:
- CPRINTS("PMIC init failed");
-}
-
-void chipset_pre_init_callback(void)
-{
- board_pmic_init();
-}
-
-/**
- * Notify PCH of the AC presence.
- */
-static void board_extpower(void)
-{
- gpio_set_level(GPIO_PCH_ACPRESENT, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED_RED] = { 3, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_WHITE] = { 5, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_FAN] = {4, PWM_CONFIG_OPEN_DRAIN, 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct fan_step {
- int on;
- int off;
- int rpm;
-};
-
-/* Note: Do not make the fan on/off point equal to 0 or 100 */
-static const struct fan_step fan_table0[] = {
- {.on = 0, .off = 2, .rpm = 0},
- {.on = 11, .off = 2, .rpm = 2500},
- {.on = 38, .off = 29, .rpm = 3200},
- {.on = 65, .off = 36, .rpm = 3500},
- {.on = 76, .off = 64, .rpm = 3900},
- {.on = 84, .off = 75, .rpm = 4500},
- {.on = 91, .off = 82, .rpm = 5100},
- {.on = 98, .off = 89, .rpm = 5400},
-};
-/* All fan tables must have the same number of levels */
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_table0)
-
-static const struct fan_step *fan_table = fan_table0;
-
-
-static void cbi_init(void)
-{
- uint32_t val;
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT8_MAX)
- board_version = val;
- CPRINTS("Board Version: 0x%02x", board_version);
-
- if (cbi_get_oem_id(&val) == EC_SUCCESS && val < OEM_COUNT)
- oem = val;
- CPRINTS("OEM: %d", oem);
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku = val;
- CPRINTS("SKU: 0x%08x", sku);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_init(void)
-{
- board_extpower();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int fan_percent_to_rpm(int fan, int pct)
-{
- static int current_level;
- static int previous_pct;
- int i;
-
- /*
- * Compare the pct and previous pct, we have the three paths :
- * 1. decreasing path. (check the off point)
- * 2. increasing path. (check the on point)
- * 3. invariant path. (return the current RPM)
- */
- if (pct < previous_pct) {
- for (i = current_level; i >= 0; i--) {
- if (pct <= fan_table[i].off)
- current_level = i - 1;
- else
- break;
- }
- } else if (pct > previous_pct) {
- for (i = current_level + 1; i < NUM_FAN_LEVELS; i++) {
- if (pct >= fan_table[i].on)
- current_level = i;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- previous_pct = pct;
-
- if (fan_table[current_level].rpm !=
- fan_get_rpm_target(FAN_CH(fan)))
- cprints(CC_THERMAL, "Setting fan RPM to %d",
- fan_table[current_level].rpm);
-
- return fan_table[current_level].rpm;
-}
diff --git a/board/endeavour/board.h b/board/endeavour/board.h
deleted file mode 100644
index 36afe69d6c..0000000000
--- a/board/endeavour/board.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Endeavour board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands.
- * TODO: Remove this config before production.
- */
-#undef CONFIG_SYSTEM_UNLOCKED
-#define CONFIG_USB_PD_COMM_LOCKED
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_EMULATED_SYSRQ
-#define CONFIG_LED_COMMON
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_DPTF
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#undef CONFIG_LID_SWITCH
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_PWM
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25X40
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
-#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_DX_WLAN
-#define CONFIG_FANS 1
-#define CONFIG_FAN_RPM_CUSTOM
-#define CONFIG_THROTTLE_AP
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_PWM
-
-/* EC console commands */
-#define CONFIG_CMD_BUTTON
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_HAS_PRE_INIT_CALLBACK
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-
-/* Sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_TMP432
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_DUMB
-#define USB_PORT_COUNT 4
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 1 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_PSE NPCX_I2C_PORT0_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT0_1
-#define I2C_PORT_PMIC NPCX_I2C_PORT2
-#define I2C_PORT_THERMAL NPCX_I2C_PORT3
-
-/* I2C addresses */
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum charge_port {
- CHARGE_PORT_BARRELJACK,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_COUNT
-};
-
-enum adc_channel {
- ADC_VBUS,
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED_RED,
- PWM_CH_LED_WHITE,
- PWM_CH_FAN,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0,
- /* Number of MFT channels */
- MFT_CH_COUNT
-};
-
-enum OEM_ID {
- OEM_ENDEAVOUR = 9,
- /* Number of OEM IDs */
- OEM_COUNT
-};
-
-/* Board specific handlers */
-void show_critical_error(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/endeavour/build.mk b/board/endeavour/build.mk
deleted file mode 100644
index 20f3f4d02c..0000000000
--- a/board/endeavour/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o
-board-y+=led.o
-board-y+=pse.o
diff --git a/board/endeavour/ec.tasklist b/board/endeavour/ec.tasklist
deleted file mode 100644
index ef58c6267a..0000000000
--- a/board/endeavour/ec.tasklist
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 2048) \
- /* Larger stack for RW verification (i.e. sha256, rsa) */ \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/endeavour/gpio.inc b/board/endeavour/gpio.inc
deleted file mode 100644
index 85904aab0c..0000000000
--- a/board/endeavour/gpio.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(7, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_SUS_L, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PMIC_DPWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(RECOVERY_L, PIN(8, 2), GPIO_INT_BOTH, button_interrupt) /* Recovery button */
-
-/* TODO(jnchase): configure as interrupt when code is ready / if needed*/
-GPIO(POE_LTC_PGOOD, PIN(C, 5), GPIO_INPUT) /* PoE power good */
-GPIO(PSE_PWM_INT, PIN(3, 7), GPIO_INPUT) /* PoE LTC interrupt */
-GPIO(V3P3A_I350_PG, PIN(4, 4), GPIO_INPUT) /* Disconnected */
-GPIO(USB_C0_VBUS_DET_L, PIN(9, 7), GPIO_INPUT) /* USB-C VBUS */
-GPIO(USB_C0_POL_L, PIN(3, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* USB-C Polarity */
-
-GPIO(PCH_RTCRST, PIN(E, 7), GPIO_OUT_LOW) /* RTCRST# to SOC */
-GPIO(WLAN_OFF_L, PIN(7, 2), GPIO_OUT_LOW) /* Disable WLAN */
-GPIO(PP3300_DX_WLAN, PIN(A, 7), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(CPU_PROCHOT, PIN(8, 1), GPIO_OUT_HIGH) /* PROCHOT# to SOC */
-GPIO(PCH_ACPRESENT, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(7, 4), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(EC_PLATFORM_RST, PIN(4, 5), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(PMIC_SLP_SUS_L, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_HAVEN_RESET_ODL, PIN(0, 2), GPIO_ODR_HIGH) /* H1 Reset */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(PMIC_INT_L, PIN(6, 0), GPIO_INPUT) /* PMIC interrupt */
-GPIO(EC_RST_LTC4291_L, PIN(9, 4), GPIO_OUT_HIGH) /* PSE controller reset */
-
-GPIO(POWER_RATE, PIN(7, 1), GPIO_INPUT) /* High: i3/5/7. Low: Celeron */
-GPIO(PP3300_USB_PD_EN, PIN(6, 7), GPIO_OUT_HIGH) /* Initialize PP3300_USB_PD_EN as output high */
-
-GPIO(LAN_PWR_EN, PIN(8, 3), GPIO_OUT_HIGH) /* Ethernet power enabled */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_LTC_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_LTC_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* TP184 */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* TP185 */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_ROP_I2C_CLK */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_ROP_I2C_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_THEM_CLK */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_THEM_SDA */
-
-/* 5V enables: INPUT=1.5A, OUT_LOW=OFF, OUT_HIGH=3A */
-GPIO(USB_C0_5V_EN, PIN(4, 2), GPIO_OUT_LOW | GPIO_PULL_UP) /* C0 5V Enable */
-GPIO(USB_C0_VBUS_ILIM, PIN(3, 5), GPIO_OUT_HIGH)
-GPIO(FAN_PWR_EN, PIN(9, 5), GPIO_OUT_HIGH) /* Fan power */
-GPIO(PI3_BC12_DET_L, PIN(D, 3), GPIO_INPUT) /* USB-C */
-GPIO(USB_FP3_CHARGE_EN_L, PIN(C, 6), GPIO_OUT_LOW) /* USB-C */
-GPIO(USB_FP0_5V_EN, PIN(0, 0), GPIO_OUT_LOW) /* Front port 1 */
-GPIO(USB_FP1_5V_EN, PIN(B, 1), GPIO_OUT_LOW) /* Front port 2 */
-GPIO(USB_FP3_5V_EN, PIN(A, 1), GPIO_OUT_LOW) /* Front port 3 */
-GPIO(USB_FP_CHARGE_EN_L, PIN(A, 5), GPIO_OUT_LOW) /* USB-A */
-GPIO(PP3300_TPU_EN, PIN(0, 1), GPIO_OUT_HIGH) /* TPU 3.3V enable */
-
-/* Not connected */
-GPIO(USB_C0_CHARGE_L, PIN(C, 0), GPIO_OUT_LOW) /* C0 Charge enable */
-GPIO(AC_JACK_CHARGE_L, PIN(C, 3), GPIO_OUT_LOW) /* AC jack charge enable */
-GPIO(USB_C0_PD_RST_ODL, PIN(0, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_TCPC_PWR, PIN(8, 4), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(TYPE_C_65W, PIN(3, 4), GPIO_OUTPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 */ /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 */ /* EC_I2C2_PMIC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(A, 0x40), 1, MODULE_PWM, 0) /* GPIOA6 */ /* TACH2 */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 */ /* EC_I2C0_0_LTC_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0) /* GPIOB6 */ /* EC_FAN_PWM */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 */ /* EC_I2C0_1_EEPROM_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 */ /* EC_I2C3_SENSOR_1V8_SDA/SCL */
-/* Alternate functions for LED PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0) /* GPIO80 PWM3 Red*/
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* GPOB7 PWM5 Green*/
diff --git a/board/endeavour/led.c b/board/endeavour/led.c
deleted file mode 100644
index b75de503e5..0000000000
--- a/board/endeavour/led.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Endeavour
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_WHITE,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int white = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_WHITE:
- white = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (white)
- pwm_set_duty(PWM_CH_LED_WHITE, duty);
- else
- pwm_set_duty(PWM_CH_LED_WHITE, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec. */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define LED_PULSE_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- LED_PULSE_TICK(LED_PULSE_TICK_US, LED_WHITE);
- led_tick();
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend, HOOK_PRIO_DEFAULT);
-
-static void led_shutdown(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task. */
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_WHITE, 1);
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_suspend();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown();
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_DEFAULT);
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "white")) {
- set_color(id, LED_WHITE, 100);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|white|off|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_WHITE])
- return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/endeavour/pse.c b/board/endeavour/pse.c
deleted file mode 100644
index 671288ccf5..0000000000
--- a/board/endeavour/pse.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* 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.
- */
-
-/*
- * The LTC4291 is a power over ethernet (PoE) power sourcing equipment (PSE)
- * controller.
- */
-
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "string.h"
-#include "timer.h"
-#include "util.h"
-
-#define LTC4291_I2C_ADDR 0x2C
-
-#define LTC4291_REG_SUPEVN_COR 0x0B
-#define LTC4291_REG_STATPWR 0x10
-#define LTC4291_REG_STATPIN 0x11
-#define LTC4291_REG_OPMD 0x12
-#define LTC4291_REG_DISENA 0x13
-#define LTC4291_REG_DETENA 0x14
-#define LTC4291_REG_DETPB 0x18
-#define LTC4291_REG_PWRPB 0x19
-#define LTC4291_REG_RSTPB 0x1A
-#define LTC4291_REG_ID 0x1B
-#define LTC4291_REG_DEVID 0x43
-#define LTC4291_REG_HPMD1 0x46
-#define LTC4291_REG_HPMD2 0x4B
-#define LTC4291_REG_HPMD3 0x50
-#define LTC4291_REG_HPMD4 0x55
-#define LTC4291_REG_LPWRPB 0x6E
-
-#define LTC4291_FLD_STATPIN_AUTO BIT(0)
-#define LTC4291_FLD_RSTPB_RSTALL BIT(4)
-
-#define LTC4291_STATPWR_ON_PORT(port) (0x01 << (port))
-#define LTC4291_DETENA_EN_PORT(port) (0x11 << (port))
-#define LTC4291_DETPB_EN_PORT(port) (0x11 << (port))
-#define LTC4291_PWRPB_OFF_PORT(port) (0x10 << (port))
-
-#define LTC4291_OPMD_AUTO 0xFF
-#define LTC4291_DISENA_ALL 0x0F
-#define LTC4291_DETENA_ALL 0xFF
-#define LTC4291_ID 0x64
-#define LTC4291_DEVID 0x38
-#define LTC4291_HPMD_MIN 0x00
-#define LTC4291_HPMD_MAX 0xA8
-
-#define LTC4291_PORT_MAX 4
-
-#define LTC4291_RESET_DELAY_US (20 * MSEC)
-
-#define I2C_PSE_READ(reg, data) \
- i2c_read8(I2C_PORT_PSE, LTC4291_I2C_ADDR, LTC4291_REG_##reg, (data))
-
-#define I2C_PSE_WRITE(reg, data) \
- i2c_write8(I2C_PORT_PSE, LTC4291_I2C_ADDR, LTC4291_REG_##reg, (data))
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-static int pse_write_hpmd(int port, int val)
-{
- switch (port) {
- case 0:
- return I2C_PSE_WRITE(HPMD1, val);
- case 1:
- return I2C_PSE_WRITE(HPMD2, val);
- case 2:
- return I2C_PSE_WRITE(HPMD3, val);
- case 3:
- return I2C_PSE_WRITE(HPMD4, val);
- default:
- return EC_ERROR_INVAL;
- }
-}
-
-/*
- * Port 1: 100W
- * Port 2-4: 15W
- */
-static int pse_port_hpmd[4] = {
- LTC4291_HPMD_MAX,
- LTC4291_HPMD_MIN,
- LTC4291_HPMD_MIN,
- LTC4291_HPMD_MIN,
-};
-
-static int pse_port_enable(int port)
-{
- /* Enable detection and classification */
- return I2C_PSE_WRITE(DETPB, LTC4291_DETPB_EN_PORT(port));
-}
-
-static int pse_port_disable(int port)
-{
- /* Request power off (this also disables detection/classification) */
- return I2C_PSE_WRITE(PWRPB, LTC4291_PWRPB_OFF_PORT(port));
-}
-
-static int pse_init_worker(void)
-{
- timestamp_t deadline;
- int err, id, devid, statpin, port;
-
- /* Ignore errors -- may already be resetting */
- I2C_PSE_WRITE(RSTPB, LTC4291_FLD_RSTPB_RSTALL);
-
- deadline.val = get_time().val + LTC4291_RESET_DELAY_US;
- while ((err = I2C_PSE_READ(ID, &id)) != 0) {
- if (timestamp_expired(deadline, NULL))
- return err;
- }
-
- err = I2C_PSE_READ(DEVID, &devid);
- if (err != 0)
- return err;
-
- if (id != LTC4291_ID || devid != LTC4291_DEVID)
- return EC_ERROR_INVAL;
-
- err = I2C_PSE_READ(STATPIN, &statpin);
- if (err != 0)
- return err;
-
- /*
- * We don't want to supply power until we've had a chance to set the
- * limits.
- */
- if (statpin & LTC4291_FLD_STATPIN_AUTO)
- CPRINTS("WARN: PSE reset in AUTO mode");
-
- err = I2C_PSE_WRITE(OPMD, LTC4291_OPMD_AUTO);
- if (err != 0)
- return err;
-
- /* Set maximum power each port is allowed to allocate. */
- for (port = 0; port < LTC4291_PORT_MAX; port++) {
- err = pse_write_hpmd(port, pse_port_hpmd[port]);
- if (err != 0)
- return err;
- }
-
- err = I2C_PSE_WRITE(DISENA, LTC4291_DISENA_ALL);
- if (err != 0)
- return err;
-
- err = I2C_PSE_WRITE(DETENA, LTC4291_DETENA_ALL);
- if (err != 0)
- return err;
-
- return 0;
-}
-
-static void pse_init(void)
-{
- int err;
-
- err = pse_init_worker();
- if (err != 0)
- CPRINTS("PSE init failed: %d", err);
- else
- CPRINTS("PSE init done");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, pse_init, HOOK_PRIO_DEFAULT);
-
-/* Also reset the PSE on a reboot to toggle the power. */
-DECLARE_HOOK(HOOK_CHIPSET_RESET, pse_init, HOOK_PRIO_DEFAULT);
-
-static int command_pse(int argc, char **argv)
-{
- int port;
-
- /*
- * TODO(b/156399232): endeavour: PSE controller reset by PLTRST
- *
- * Initialization does not reliably work after reset because the device
- * is held in reset by the AP. Running this command after boot finishes
- * always succeeds. Remove once the reset signal changes.
- */
- if (!strncmp(argv[1], "init", 4))
- return pse_init_worker();
-
- if (argc != 3)
- return EC_ERROR_PARAM_COUNT;
-
- port = atoi(argv[1]);
- if (port < 0 || port >= LTC4291_PORT_MAX)
- return EC_ERROR_PARAM1;
-
- if (!strncmp(argv[2], "off", 3))
- return pse_port_disable(port);
- else if (!strncmp(argv[2], "on", 2))
- return pse_port_enable(port);
- else if (!strncmp(argv[2], "min", 3))
- return pse_write_hpmd(port, LTC4291_HPMD_MIN);
- else if (!strncmp(argv[2], "max", 3))
- return pse_write_hpmd(port, LTC4291_HPMD_MAX);
- else
- return EC_ERROR_PARAM2;
-}
-DECLARE_CONSOLE_COMMAND(pse, command_pse,
- "<port# 0-3> <off | on | min | max>",
- "Set PSE port power");
-
-static int ec_command_pse_status(int port, uint8_t *status)
-{
- int detena, statpwr;
- int err;
-
- err = I2C_PSE_READ(DETENA, &detena);
- if (err != 0)
- return err;
-
- err = I2C_PSE_READ(STATPWR, &statpwr);
- if (err != 0)
- return err;
-
- if ((detena & LTC4291_DETENA_EN_PORT(port)) == 0)
- *status = EC_PSE_STATUS_DISABLED;
- else if ((statpwr & LTC4291_STATPWR_ON_PORT(port)) == 0)
- *status = EC_PSE_STATUS_ENABLED;
- else
- *status = EC_PSE_STATUS_POWERED;
-
- return 0;
-}
-
-static enum ec_status ec_command_pse(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pse *p = args->params;
- int err = 0;
-
- if (p->port >= LTC4291_PORT_MAX)
- return EC_RES_INVALID_PARAM;
-
- switch (p->cmd) {
- case EC_PSE_STATUS: {
- struct ec_response_pse_status *r = args->response;
-
- args->response_size = sizeof(*r);
- err = ec_command_pse_status(p->port, &r->status);
- break;
- }
- case EC_PSE_ENABLE:
- err = pse_port_enable(p->port);
- break;
- case EC_PSE_DISABLE:
- err = pse_port_disable(p->port);
- break;
- default:
- return EC_RES_INVALID_PARAM;
- }
-
- if (err)
- return EC_RES_ERROR;
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PSE, ec_command_pse, EC_VER_MASK(0));
diff --git a/board/eve/battery.c b/board/eve/battery.c
deleted file mode 100644
index b5fb949ffe..0000000000
--- a/board/eve/battery.c
+++ /dev/null
@@ -1,656 +0,0 @@
-/* Copyright 2016 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.
- *
- * Placeholder values for temporary battery pack.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "bd9995x.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define SB_SHUTDOWN_DATA 0x0010
-
-/* Vendor CTO command parameter */
-#define SB_VENDOR_PARAM_CTO_DISABLE 0
-/* Flash address of Enabled Protections C Regsiter */
-#define SB_VENDOR_ENABLED_PROTECT_C 0x482C
-/* Expected CTO disable value */
-#define EXPECTED_CTO_DISABLE_VALUE 0x05
-
-/* Vendor OTD Recovery Temperature command parameter */
-#define SB_VENDOR_PARAM_OTD_RECOVERY_TEMP 1
-/* Flash address of OTD Recovery Temperature Register */
-#define SB_VENDOR_OTD_RECOVERY_TEMP 0x486F
-/* Expected OTD recovery temperature in 0.1C */
-#define EXPECTED_OTD_RECOVERY_TEMP 400
-
-enum battery_type {
- BATTERY_LG,
- BATTERY_LISHEN,
- BATTERY_SIMPLO,
- BATTERY_TYPE_COUNT,
-};
-
-struct board_batt_params {
- const char *manuf_name;
- const struct battery_info *batt_info;
-};
-
-/*
- * Set LISHEN as default since the LG precharge current level could cause the
- * LISHEN battery to not accept charge when it's recovering from a fully
- * discharged state.
- */
-#define DEFAULT_BATTERY_TYPE BATTERY_LISHEN
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-static enum battery_type board_battery_type = BATTERY_TYPE_COUNT;
-
-/* Battery may delay reporting battery present */
-static int battery_report_present = 1;
-
-/*
- * Battery protect_c register value.
- * Because this value can only be read when the battery is unsealed, the read of
- * this register is only done if the value is changed.
- */
-static int protect_c_reg = -1;
-
-/*
- * Battery OTD recovery temperature register value.
- * Because this value can only be read when the battery is unsealed, the read of
- * this register is only done if the value is changed.
- */
-static int otd_recovery_temp_reg = -1;
-
-/*
- * Battery info for LG A50. Note that the fields start_charging_min/max and
- * charging_min/max are not used for the Eve charger. The effective temperature
- * limits are given by discharging_min/max_c.
- */
-static const struct battery_info batt_info_lg = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5), /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6100, /* Add 100mV for charger accuracy */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 10,
- .charging_max_c = 50,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-/*
- * Battery info for LISHEN. Note that the fields start_charging_min/max and
- * charging_min/max are not used for the Eve charger. The effective temperature
- * limits are given by discharging_min/max_c.
- */
-static const struct battery_info batt_info_lishen = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5), /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6100, /* Add 100mV for charger accuracy */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 10,
- .charging_max_c = 50,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static const struct board_batt_params info[] = {
- [BATTERY_LG] = {
- .manuf_name = "LG A50",
- .batt_info = &batt_info_lg,
- },
-
- [BATTERY_LISHEN] = {
- .manuf_name = "Lishen A50",
- .batt_info = &batt_info_lishen,
- },
-
- [BATTERY_SIMPLO] = {
- .manuf_name = "Simplo A50",
- .batt_info = &batt_info_lishen,
- },
-
-};
-BUILD_ASSERT(ARRAY_SIZE(info) == BATTERY_TYPE_COUNT);
-
-/* Get type of the battery connected on the board */
-static int board_get_battery_type(void)
-{
- char name[3];
- int i;
-
- if (!battery_manufacturer_name(name, sizeof(name))) {
- for (i = 0; i < BATTERY_TYPE_COUNT; i++) {
- if (!strncasecmp(name, info[i].manuf_name,
- ARRAY_SIZE(name)-1)) {
- board_battery_type = i;
- break;
- }
- }
- }
-
- return board_battery_type;
-}
-
-/*
- * Initialize the battery type for the board.
- *
- * Very first battery info is called by the charger driver to initialize
- * the charger parameters hence initialize the battery type for the board
- * as soon as the I2C is initialized.
- */
-static void board_init_battery_type(void)
-{
- if (board_get_battery_type() != BATTERY_TYPE_COUNT)
- CPRINTS("found batt: %s", info[board_battery_type].manuf_name);
- else
- CPRINTS("battery not found");
-}
-DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1);
-
-const struct battery_info *battery_get_info(void)
-{
- return info[board_battery_type == BATTERY_TYPE_COUNT ?
- DEFAULT_BATTERY_TYPE : board_battery_type].batt_info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA);
- if (rv != EC_SUCCESS)
- return EC_RES_ERROR;
-
- rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA);
- return rv ? EC_RES_ERROR : EC_RES_SUCCESS;
-}
-
-static int charger_should_discharge_on_ac(struct charge_state_data *curr)
-{
- /* Can not discharge on AC without battery */
- if (curr->batt.is_present != BP_YES)
- return 0;
-
- /* Do not discharge on AC if the battery is still waking up */
- if (!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- !(curr->batt.status & STATUS_FULLY_CHARGED))
- return 0;
-
- /*
- * In light load (<450mA being withdrawn from VSYS) the DCDC of the
- * charger operates intermittently i.e. DCDC switches continuously
- * and then stops to regulate the output voltage and current, and
- * sometimes to prevent reverse current from flowing to the input.
- * This causes a slight voltage ripple on VSYS that falls in the
- * audible noise frequency (single digit kHz range). This small
- * ripple generates audible noise in the output ceramic capacitors
- * (caps on VSYS and any input of DCDC under VSYS).
- *
- * To overcome this issue enable the battery learning operation
- * and suspend USB charging and DC/DC converter.
- */
- if (!battery_is_cut_off() &&
- !(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- (curr->batt.status & STATUS_FULLY_CHARGED))
- return 1;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC 2till the new charger is detected and charge
- * detect delay has passed.
- */
- if (!chg_ramp_is_detected() && curr->batt.state_of_charge > 2)
- return 1;
-
- return 0;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- const struct battery_info *batt_info;
- /* battery temp in 0.1 deg C */
- int bat_temp_c = curr->batt.temperature - 2731;
- int disch_on_ac = charger_should_discharge_on_ac(curr);
-
- charger_discharge_on_ac(disch_on_ac);
-
- if (disch_on_ac) {
- curr->state = ST_DISCHARGE;
- return 0;
- }
-
- batt_info = battery_get_info();
- /* Don't charge if outside of allowable temperature range */
- if (bat_temp_c >= batt_info->charging_max_c * 10 ||
- bat_temp_c < batt_info->charging_min_c * 10) {
- curr->requested_current = 0;
- curr->requested_voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- curr->state = ST_IDLE;
- }
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_BATTERY_PRESENT_L) ? BP_NO : BP_YES;
-}
-
-static int battery_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- !!(batt_status & STATUS_INITIALIZED);
-}
-
-/* Allow booting now that the battery has woke up */
-static void battery_now_present(void)
-{
- CPRINTS("battery will now report present");
- battery_report_present = 1;
-}
-DECLARE_DEFERRED(battery_now_present);
-
-/*
- * Check for case where XDSG bit is set indicating that even
- * though the FG can be read from the battery, the battery is not able to be
- * charged or discharged. This situation will happen if a battery disconnect was
- * intiaited via H1 setting the DISCONN signal to the battery. This will put the
- * battery pack into a sleep state and when power is reconnected, the FG can be
- * read, but the battery is still not able to provide power to the system. The
- * calling function returns batt_pres = BP_NO, which instructs the charging
- * state machine to prevent powering up the AP on battery alone which could lead
- * to a brownout event when the battery isn't able yet to provide power to the
- * system. .
- */
-static int battery_check_disconnect(void)
-{
- int rv;
- uint8_t data[6];
-
- /* Check if battery discharging is disabled. */
- rv = sb_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
-
- if (data[3] & BATTERY_DISCHARGING_DISABLED)
- return BATTERY_DISCONNECTED;
-
- return BATTERY_NOT_DISCONNECTED;
-}
-
-/*
- * Physical detection of battery.
- */
-enum battery_present battery_is_present(void)
-{
- enum battery_present batt_pres;
- static int battery_report_present_timer_started;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * Make sure battery status is implemented, I2C transactions are
- * success & the battery status is Initialized to find out if it
- * is a working battery and it is not in the cut-off mode.
- *
- * If battery I2C fails but VBATT is high, battery is booting from
- * cut-off mode.
- *
- * FETs are turned off after Power Shutdown time.
- * The device will wake up when a voltage is applied to PACK.
- * Battery status will be inactive until it is initialized.
- */
- if (batt_pres == BP_YES && batt_pres_prev != batt_pres &&
- (battery_is_cut_off() != BATTERY_CUTOFF_STATE_NORMAL ||
- battery_check_disconnect() != BATTERY_NOT_DISCONNECTED ||
- battery_init() == 0)) {
- battery_report_present = 0;
- } else if (batt_pres == BP_YES && batt_pres_prev == BP_NO &&
- !battery_report_present_timer_started) {
- /*
- * Wait 1 second before reporting present if it was
- * previously reported as not present
- */
- battery_report_present_timer_started = 1;
- battery_report_present = 0;
- hook_call_deferred(&battery_now_present_data, SECOND);
- }
-
- if (!battery_report_present)
- batt_pres = BP_NO;
-
- batt_pres_prev = batt_pres;
-
- return batt_pres;
-}
-
-int board_battery_initialized(void)
-{
- return battery_hw_present() == batt_pres_prev;
-}
-
-static int board_battery_sb_write(uint8_t access, int cmd)
-{
- int rv;
- uint8_t buf[1 + sizeof(uint16_t)];
-
- /*
- * Note, the i2c_lock must be handled by the calling function. The
- * battery unseal operation requires two writes without any other access
- * taking place. Therefore the calling function handles when to
- * grab/release the lock.
- */
-
- buf[0] = access;
- buf[1] = cmd & 0xff;
- buf[2] = (cmd >> 8) & 0xff;
-
- rv = i2c_xfer(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS,
- buf, 1 + sizeof(uint16_t), NULL, 0);
-
- return rv;
-}
-
-int board_battery_read_mfgacc(int offset, int access,
- uint8_t *buf, int len)
-{
- int rv;
- uint8_t block_len, reg;
-
- /* start read */
- i2c_lock(I2C_PORT_BATTERY, 1);
-
- /* Send write block */
- rv = board_battery_sb_write(SB_MANUFACTURER_ACCESS, offset);
- if (rv) {
- i2c_lock(I2C_PORT_BATTERY, 0);
- return rv;
- }
-
- reg = access;
- rv = i2c_xfer_unlocked(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS, &reg, 1,
- &block_len, 1, I2C_XFER_START);
- if (rv) {
- i2c_lock(I2C_PORT_BATTERY, 0);
- return rv;
- }
-
- /* Compare block length to desired read length */
- if (len && (block_len > len))
- block_len = len;
-
- rv = i2c_xfer_unlocked(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS, NULL, 0,
- buf, block_len, I2C_XFER_STOP);
- i2c_lock(I2C_PORT_BATTERY, 0);
-
- return rv;
-}
-
-static int board_battery_unseal(uint32_t param)
-{
- int rv;
- uint8_t data[6];
-
- /* Get Operation Status */
- rv = board_battery_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
-
- if (rv)
- return EC_ERROR_UNKNOWN;
-
- if ((data[3] & 0x3) == 0x3) {
- /*
- * Hold the lock for both writes to ensure that no other
- * manufactuer access opertion can take place.
- */
- i2c_lock(I2C_PORT_BATTERY, 1);
- rv = board_battery_sb_write(SB_MANUFACTURER_ACCESS,
- param & 0xffff);
- if (rv)
- goto unseal_fail;
-
- rv = board_battery_sb_write(SB_MANUFACTURER_ACCESS,
- (param >> 16) & 0xffff);
- if (rv)
- goto unseal_fail;
-
- i2c_lock(I2C_PORT_BATTERY, 0);
-
- /* Verify that battery is unsealed */
- rv = board_battery_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv || ((data[3] & 0x3) != 0x2))
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-
-unseal_fail:
- i2c_lock(I2C_PORT_BATTERY, 0);
- return EC_RES_ERROR;
-}
-
-static int board_battery_seal(void)
-{
- int rv;
-
- i2c_lock(I2C_PORT_BATTERY, 1);
- rv = board_battery_sb_write(SB_MANUFACTURER_ACCESS, 0x0030);
- i2c_lock(I2C_PORT_BATTERY, 0);
-
- if (rv != EC_SUCCESS)
- return EC_RES_ERROR;
-
- return EC_SUCCESS;
-}
-
-static int board_battery_write_flash(int addr, uint32_t data, int len)
-{
- int rv;
- uint8_t buf[sizeof(uint32_t) + 4];
-
- if (len > 4)
- return EC_ERROR_INVAL;
-
- buf[0] = SB_ALT_MANUFACTURER_ACCESS;
- /* Number of bytes to write, including the address */
- buf[1] = len + 2;
- /* Put in the flash address */
- buf[2] = addr & 0xff;
- buf[3] = (addr >> 8) & 0xff;
-
- /* Add data to be written */
- buf[4] = data & 0xff;
- buf[5] = (data >> 8) & 0xff;
- buf[6] = (data >> 16) & 0xff;
- buf[7] = (data >> 24) & 0xff;
- /* Account for command, length, and address */
- len += 4;
-
- i2c_lock(I2C_PORT_BATTERY, 1);
- rv = i2c_xfer(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS, buf,
- len, NULL, 0);
- i2c_lock(I2C_PORT_BATTERY, 0);
-
- return rv;
-}
-
-static int board_battery_read_flash(int block, int len, uint8_t *buf)
-{
- uint8_t data[6];
- int rv;
- int i;
-
- if (len > 4)
- len = 4;
- rv = board_battery_read_mfgacc(block,
- SB_ALT_MANUFACTURER_ACCESS, data, len + 2);
- if (rv)
- return EC_RES_ERROR;
-
- for (i = 0; i < len; i++)
- buf[i] = data[i+2];
-
- return EC_SUCCESS;
-}
-
-static int board_battery_disable_cto(uint32_t value)
-{
- uint8_t protect_c;
-
- if (board_battery_unseal(value))
- return EC_RES_ERROR;
-
- /* Check CTO enable */
- if (board_battery_read_flash(SB_VENDOR_ENABLED_PROTECT_C, 1,
- &protect_c)) {
- board_battery_seal();
- return EC_RES_ERROR;
- }
-
- if (protect_c != EXPECTED_CTO_DISABLE_VALUE) {
- board_battery_write_flash(SB_VENDOR_ENABLED_PROTECT_C,
- EXPECTED_CTO_DISABLE_VALUE, 1);
- /* After flash write, allow time for it to complete */
- msleep(100);
- /* Read the current protect_c register value */
- if (board_battery_read_flash(SB_VENDOR_ENABLED_PROTECT_C, 1,
- &protect_c) == EC_SUCCESS)
- protect_c_reg = protect_c;
- } else {
- protect_c_reg = protect_c;
- }
-
- if (board_battery_seal()) {
- /* If failed, then wait one more time and seal again */
- msleep(100);
- if (board_battery_seal())
- return EC_RES_ERROR;
- }
-
- return EC_SUCCESS;
-}
-
-static int board_battery_fix_otd_recovery_temp(uint32_t value)
-{
- int16_t otd_recovery_temp;
-
- if (board_battery_unseal(value))
- return EC_RES_ERROR;
-
- /* Check current OTD recovery temp */
- if (board_battery_read_flash(SB_VENDOR_OTD_RECOVERY_TEMP, 2,
- (uint8_t *)&otd_recovery_temp)) {
- board_battery_seal();
- return EC_RES_ERROR;
- }
-
- if (otd_recovery_temp != EXPECTED_OTD_RECOVERY_TEMP) {
- board_battery_write_flash(SB_VENDOR_OTD_RECOVERY_TEMP,
- EXPECTED_OTD_RECOVERY_TEMP, 2);
- /* After flash write, allow time for it to complete */
- msleep(100);
- /* Read the current OTD recovery temperature */
- if (!board_battery_read_flash(SB_VENDOR_OTD_RECOVERY_TEMP, 2,
- (uint8_t *)&otd_recovery_temp))
- otd_recovery_temp_reg = otd_recovery_temp;
- } else {
- otd_recovery_temp_reg = otd_recovery_temp;
- }
-
- if (board_battery_seal()) {
- /* If failed, then wait one more time and seal again */
- msleep(100);
- if (board_battery_seal())
- return EC_RES_ERROR;
- }
-
- return EC_SUCCESS;
-}
-
-int battery_get_vendor_param(uint32_t param, uint32_t *value)
-{
- /*
- * These registers can't be read directly because the flash area
- * of the battery is protected, unless it's been
- * unsealed. The key is only able to be passed in the set
- * function. The get function is always called following the set
- * function. Therefore when the set function is called, this
- * register value is read and saved to protect_c_reg. If this
- * value is < 0, then the set function wasn't called and
- * therefore the value can't be known.
- */
- switch (param) {
- case SB_VENDOR_PARAM_CTO_DISABLE:
- if (protect_c_reg >= 0) {
- *value = protect_c_reg;
- return EC_SUCCESS;
- }
- break;
- case SB_VENDOR_PARAM_OTD_RECOVERY_TEMP:
- if (otd_recovery_temp_reg >= 0) {
- *value = otd_recovery_temp_reg;
- return EC_SUCCESS;
- }
- break;
- default:
- return EC_ERROR_UNIMPLEMENTED;
- }
- return EC_RES_ERROR;
-}
-
-int battery_set_vendor_param(uint32_t param, uint32_t value)
-{
- switch (param) {
- case SB_VENDOR_PARAM_CTO_DISABLE:
- if (board_battery_disable_cto(value))
- return EC_ERROR_UNKNOWN;
- break;
- case SB_VENDOR_PARAM_OTD_RECOVERY_TEMP:
- if (board_battery_fix_otd_recovery_temp(value))
- return EC_ERROR_UNKNOWN;
- break;
- default:
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/eve/board.c b/board/eve/board.c
deleted file mode 100644
index f73118e8f2..0000000000
--- a/board/eve/board.c
+++ /dev/null
@@ -1,981 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Eve board-specific configuration */
-
-#include "acpi.h"
-#include "bd99992gw.h"
-#include "board_config.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "device_event.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kxcj9.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_si114x.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "driver/temp_sensor/bd99992gw.h"
-#include "extpower.h"
-#include "gesture.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "keyboard_8042_sharedlib.h"
-#include "lid_angle.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_lid.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-#include "espi.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-/*
- * enable_input_devices() is called by the tablet_mode ISR, but changes the
- * state of GPIOs, so its definition must reside after including gpio_list.
- */
-static void enable_input_devices(void);
-DECLARE_DEFERRED(enable_input_devices);
-
-#define LID_DEBOUNCE_US (30 * MSEC)
-void tablet_mode_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&enable_input_devices_data, LID_DEBOUNCE_US);
-}
-
-/* Send event to wake AP based on trackpad input */
-void trackpad_interrupt(enum gpio_signal signal)
-{
- device_set_single_event(EC_DEVICE_EVENT_TRACKPAD);
-}
-
-/* Send event to wake AP based on DSP interrupt */
-void dsp_interrupt(enum gpio_signal signal)
-{
- device_set_single_event(EC_DEVICE_EVENT_DSP);
-}
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
-static void anx74xx_c0_cable_det_handler(void)
-{
- int cable_det = gpio_get_level(GPIO_USB_C0_CABLE_DET);
- int reset_n = gpio_get_level(GPIO_USB_C0_PD_RST_L);
-
- /*
- * A cable_det low->high transition was detected. If following the
- * debounce time, cable_det is high, and reset_n is low, then ANX3429 is
- * currently in standby mode and needs to be woken up. Set the
- * TCPC_RESET event which will bring the ANX3429 out of standby
- * mode. Setting this event is gated on reset_n being low because the
- * ANX3429 will always set cable_det when transitioning to normal mode
- * and if in normal mode, then there is no need to trigger a tcpc reset.
- */
- if (cable_det && !reset_n)
- task_set_event(TASK_ID_PD_C0, PD_EVENT_TCPC_RESET);
-}
-DECLARE_DEFERRED(anx74xx_c0_cable_det_handler);
-
-static void anx74xx_c1_cable_det_handler(void)
-{
- int cable_det = gpio_get_level(GPIO_USB_C1_CABLE_DET);
- int reset_n = gpio_get_level(GPIO_USB_C1_PD_RST_L);
-
- /*
- * A cable_det low->high transition was detected. If following the
- * debounce time, cable_det is high, and reset_n is low, then ANX3429 is
- * currently in standby mode and needs to be woken up. Set the
- * TCPC_RESET event which will bring the ANX3429 out of standby
- * mode. Setting this event is gated on reset_n being low because the
- * ANX3429 will always set cable_det when transitioning to normal mode
- * and if in normal mode, then there is no need to trigger a tcpc reset.
- */
- if (cable_det && !reset_n)
- task_set_event(TASK_ID_PD_C1, PD_EVENT_TCPC_RESET);
-}
-DECLARE_DEFERRED(anx74xx_c1_cable_det_handler);
-
-void anx74xx_cable_det_interrupt(enum gpio_signal signal)
-{
- /* Check if it is port 0 or 1, and debounce for 2 msec. */
- if (signal == GPIO_USB_C0_CABLE_DET)
- hook_call_deferred(&anx74xx_c0_cable_det_handler_data,
- (2 * MSEC));
- else
- hook_call_deferred(&anx74xx_c1_cable_det_handler_data,
- (2 * MSEC));
-}
-#endif
-
-#include "gpio_list.h"
-
-/* Keyboard scan. Increase output_settle_us to 80us from default 50us. */
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x3c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { 5, 0, 10000 },
- [PWM_CH_LED_L_RED] = { 2, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_L_GREEN] = { 3, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_L_BLUE] = { 4, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_R_RED] = { 1, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_R_GREEN] = { 0, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_R_BLUE] = { 6, PWM_CONFIG_DSLEEP, 100 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Hibernate wake configuration */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
- {"accelgyro", I2C_PORT_GYRO, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"sensors", I2C_PORT_LID_ACCEL, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"batt", I2C_PORT_BATTERY, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = ANX74XX_I2C_ADDR1_FLAGS,
- },
- .drv = &anx74xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = ANX74XX_I2C_ADDR1_FLAGS,
- },
- .drv = &anx74xx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &anx74xx_tcpm_usb_mux_driver,
- .hpd_update = &anx74xx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &anx74xx_tcpm_usb_mux_driver,
- .hpd_update = &anx74xx_tcpc_update_hpd_status,
- },
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = BD9995X_ADDR_FLAGS,
- .drv = &bd9995x_drv,
- },
-};
-
-/**
- * Power on (or off) a single TCPC.
- * minimum on/off delays are included.
- *
- * @param port Port number of TCPC.
- * @param mode 0: power off, 1: power on.
- */
-void board_set_tcpc_power_mode(int port, int mode)
-{
- switch (port) {
- case 0:
- if (mode) {
- gpio_set_level(GPIO_USB_C0_TCPC_PWR, 1);
- msleep(ANX74XX_PWR_H_RST_H_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- } else {
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- msleep(ANX74XX_RST_L_PWR_L_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_TCPC_PWR, 0);
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- }
- break;
- case 1:
- if (mode) {
- gpio_set_level(GPIO_USB_C1_TCPC_PWR, 1);
- msleep(ANX74XX_PWR_H_RST_H_DELAY_MS);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
- } else {
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(ANX74XX_RST_L_PWR_L_DELAY_MS);
- gpio_set_level(GPIO_USB_C1_TCPC_PWR, 0);
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- }
- break;
- }
-}
-
-void board_reset_pd_mcu(void)
-{
- /* Assert reset */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(ANX74XX_RST_L_PWR_L_DELAY_MS);
- /* Disable power */
- gpio_set_level(GPIO_USB_C0_TCPC_PWR, 0);
- gpio_set_level(GPIO_USB_C1_TCPC_PWR, 0);
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- /* Enable power */
- gpio_set_level(GPIO_USB_C0_TCPC_PWR, 1);
- gpio_set_level(GPIO_USB_C1_TCPC_PWR, 1);
- msleep(ANX74XX_PWR_H_RST_H_DELAY_MS);
- /* Deassert reset */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
-}
-
-void board_tcpc_init(void)
-{
- int count = 0;
- int port;
-
- /* Wait for disconnected battery to wake up */
- while (battery_hw_present() == BP_YES &&
- battery_is_present() == BP_NO) {
- usleep(100 * MSEC);
- /* Give up waiting after 2 seconds */
- if (++count > 20)
- break;
- }
-
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
- /* Enable CABLE_DET interrupt for ANX3429 wake from standby */
- gpio_enable_interrupt(GPIO_USB_C0_CABLE_DET);
- gpio_enable_interrupt(GPIO_USB_C1_CABLE_DET);
-#endif
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0},
-
- /* These BD99992GW temp sensors are only readable in S0 */
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM0},
- {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM1},
- {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM2},
- {"eMMC", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM3},
- {"Gyro", TEMP_SENSOR_TYPE_BOARD, bmi160_get_sensor_temp, BASE_GYRO},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Check if PMIC fault registers indicate VR fault. If yes, print out fault
- * register info to console. Additionally, set panic reason so that the OS can
- * check for fault register info by looking at offset 0x14(PWRSTAT1) and
- * 0x15(PWRSTAT2) in cros ec panicinfo.
- */
-static void board_report_pmic_fault(const char *str)
-{
- int vrfault, pwrstat1 = 0, pwrstat2 = 0;
- uint32_t info;
-
- /* RESETIRQ1 -- Bit 4: VRFAULT */
- if (i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, &vrfault)
- != EC_SUCCESS)
- return;
-
- if (!(vrfault & BIT(4)))
- return;
-
- /* VRFAULT has occurred, print VRFAULT status bits. */
-
- /* PWRSTAT1 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, &pwrstat1);
-
- /* PWRSTAT2 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, &pwrstat2);
-
- CPRINTS("PMIC VRFAULT: %s", str);
- CPRINTS("PMIC VRFAULT: PWRSTAT1=0x%02x PWRSTAT2=0x%02x", pwrstat1,
- pwrstat2);
-
- /* Clear all faults -- Write 1 to clear. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, BIT(4));
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, pwrstat1);
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, pwrstat2);
-
- /*
- * Status of the fault registers can be checked in the OS by looking at
- * offset 0x14(PWRSTAT1) and 0x15(PWRSTAT2) in cros ec panicinfo.
- */
- info = ((pwrstat2 & 0xFF) << 8) | (pwrstat1 & 0xFF);
- panic_set_reason(PANIC_SW_PMIC_FAULT, info, 0);
-}
-
-static void board_pmic_init(void)
-{
- board_report_pmic_fault("SYSJUMP");
-
- /* Clear power source events */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x04, 0xff);
-
- /* Disable power button shutdown timer */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x14, 0x00);
-
- /* Disable VCCIO in ALL_SYS_PWRGD for early boards */
- if (board_get_version() <= BOARD_VERSION_DVTB)
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x18, 0x80);
-
- if (system_jumped_late())
- return;
-
- /* DISCHGCNT2 - enable 100 ohm discharge on V3.3A and V1.8A */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3d, 0x05);
-
- /* DISCHGCNT3 - enable 100 ohm discharge on V1.00A */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3e, 0x04);
-
- /* Set CSDECAYEN / VCCIO decays to 0V at assertion of SLP_S0# */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x7a);
-
- /*
- * Set V100ACNT / V1.00A Control Register:
- * Nominal output = 1.0V.
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x37, 0x1a);
-
- /*
- * Set V085ACNT / V0.85A Control Register:
- * Lower power mode = 0.7V.
- * Nominal output = 1.0V.
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x7a);
-
- /* VRMODECTRL - disable low-power mode for all rails */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3b, 0x1f);
-}
-DECLARE_DEFERRED(board_pmic_init);
-
-static void board_set_tablet_mode(void)
-{
- int flipped_360_mode = !gpio_get_level(GPIO_TABLET_MODE_L);
-
- tablet_set_mode(flipped_360_mode, TABLET_TRIGGER_LID);
-
- /* Update DPTF profile based on mode */
- if (flipped_360_mode)
- acpi_dptf_set_profile_num(DPTF_PROFILE_FLIPPED_360_MODE);
- else
- acpi_dptf_set_profile_num(DPTF_PROFILE_CLAMSHELL);
-}
-
-int board_has_working_reset_flags(void)
-{
- int version = board_get_version();
-
- /* board version P1b to EVTb will lose reset flags on power cycle */
- if (version >= BOARD_VERSION_P1B && version <= BOARD_VERSION_EVTB)
- return 0;
-
- /* All other board versions should have working reset flags */
- return 1;
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enabure tablet mode is initialized */
- board_set_tablet_mode();
-
- /* Enable tablet mode interrupt for input device enable */
- gpio_enable_interrupt(GPIO_TABLET_MODE_L);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_L);
-
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCELGYRO3_INT_L);
-
- /* Provide AC status to the PCH */
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-
-#ifndef TEST_BUILD
- if (board_get_version() == BOARD_VERSION_EVT) {
- /* Set F13 to new defined key on EVT */
- CPRINTS("Overriding F13 scan code");
- set_scancode_set2(3, 9, 0xe007);
-#ifdef CONFIG_KEYBOARD_DEBUG
- set_keycap_label(3, 9, KLLI_F13);
-#endif
- }
-#endif
-
- /* Initialize PMIC */
- hook_call_deferred(&board_pmic_init_data, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__override enum pd_dual_role_states pd_get_drp_state_in_suspend(void)
-{
- /*
- * If board is not connected to charger it will disable VBUS
- * on all ports that acts as source when going to suspend.
- * Change DRP state to force sink, to inform TCPM about that.
- */
- if (!extpower_is_present())
- return PD_DRP_FORCE_SINK;
-
- return PD_DRP_TOGGLE_OFF;
-}
-
-/**
- * Buffer the AC present GPIO to the PCH.
- * Set appropriate DRP state when chipset in suspend
- */
-static void board_extpower(void)
-{
- enum pd_dual_role_states drp_state;
- int port;
-
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-
- if (chipset_in_or_transitioning_to_state(CHIPSET_STATE_SUSPEND)) {
- drp_state = pd_get_drp_state_in_suspend();
- for (port = 0; port < board_get_usb_pd_port_count(); port++)
- if (pd_get_dual_role(port) != drp_state)
- pd_set_dual_role(port, drp_state);
- }
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port != 0 && port != 1)
- panic("Invalid charge port\n");
-
- return bd9995x_is_vbus_provided(port);
-}
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- enum bd9995x_charge_port bd9995x_port;
- int bd9995x_port_select = 1;
-
- switch (charge_port) {
- case 0:
- case 1:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
-
- bd9995x_port = charge_port;
- break;
- case CHARGE_PORT_NONE:
- bd9995x_port_select = 0;
- bd9995x_port = BD9995X_CHARGE_PORT_BOTH;
-
- /*
- * To avoid inrush current from the external charger,
- * enable discharge on AC until the new charger is detected
- * and charge detect delay has passed.
- */
- if (charge_get_percent() > 2)
- charger_discharge_on_ac(1);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- CPRINTS("New chg p%d", charge_port);
-
- return bd9995x_select_input_port(bd9995x_port, bd9995x_port_select);
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Enable charging trigger by BC1.2 detection */
- int bc12_enable = (supplier == CHARGE_SUPPLIER_BC12_CDP ||
- supplier == CHARGE_SUPPLIER_BC12_DCP ||
- supplier == CHARGE_SUPPLIER_BC12_SDP ||
- supplier == CHARGE_SUPPLIER_OTHER);
-
- if (bd9995x_bc12_enable_charging(port, bc12_enable))
- return;
-
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-/**
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < BD9995X_BC12_MIN_VOLTAGE;
-}
-
-/* Clear pending interrupts and enable DSP for wake */
-static void dsp_wake_enable(int enable)
-{
- if (enable) {
- gpio_clear_pending_interrupt(GPIO_MIC_DSP_IRQ_1V8_L);
- gpio_enable_interrupt(GPIO_MIC_DSP_IRQ_1V8_L);
- } else {
- gpio_disable_interrupt(GPIO_MIC_DSP_IRQ_1V8_L);
- }
-}
-
-/* Clear pending interrupts and enable trackpad for wake */
-static void trackpad_wake_enable(int enable)
-{
- static int prev_enable = -1;
-
- if (prev_enable == enable)
- return;
- prev_enable = enable;
-
- if (enable) {
- gpio_clear_pending_interrupt(GPIO_TRACKPAD_INT_L);
- gpio_enable_interrupt(GPIO_TRACKPAD_INT_L);
- } else {
- gpio_disable_interrupt(GPIO_TRACKPAD_INT_L);
- }
-}
-
-/* Enable or disable input devices, based upon chipset state and tablet mode */
-static void enable_input_devices(void)
-{
- /* We need to turn on tablet mode for motion sense */
- board_set_tablet_mode();
-
- /*
- * Then, we disable peripherals only when the lid reaches 360 position.
- * (It's probably already disabled by motion_sense_task.)
- * We deliberately do not enable peripherals when the lid is leaving
- * 360 position. Instead, we let motion_sense_task enable it once it
- * reaches laptop zone (180 or less).
- */
- if (tablet_get_mode())
- lid_angle_peripheral_enable(0);
-}
-
-/* Enable or disable input devices, based on chipset state and tablet mode */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If suspended and the lid is in 360 position, ignore the lid angle,
- * which might be faulty. Disable keyboard and trackpad wake.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF) ||
- (tablet_get_mode() && chipset_in_state(CHIPSET_STATE_SUSPEND)))
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-
- /* Also disable trackpad wake if not in suspend */
- if (!chipset_in_state(CHIPSET_STATE_SUSPEND))
- enable = 0;
- trackpad_wake_enable(enable);
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- /* Enable Trackpad */
- gpio_set_level(GPIO_TRACKPAD_SHDN_L, 1);
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Disable Trackpad and DSP wake in S5 */
- trackpad_wake_enable(0);
- dsp_wake_enable(0);
- gpio_set_level(GPIO_TRACKPAD_SHDN_L, 0);
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- if (lid_is_open()) {
- /* Enable DSP wake if suspended with lid open */
- dsp_wake_enable(1);
-
- /* Enable trackpad wake if suspended and not in tablet mode */
- if (!tablet_get_mode())
- trackpad_wake_enable(1);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- dsp_wake_enable(0);
- trackpad_wake_enable(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_reset(void)
-{
- board_report_pmic_fault("CHIPSET RESET");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESET, board_chipset_reset, HOOK_PRIO_DEFAULT);
-
-/* Called on lid change */
-static void board_lid_change(void)
-{
- /* Disable trackpad and DSP wake if lid is closed */
- if (!lid_is_open()) {
- trackpad_wake_enable(0);
- dsp_wake_enable(0);
- }
-}
-DECLARE_HOOK(HOOK_LID_CHANGE, board_lid_change, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /* Enable both the VBUS & VCC ports before entering PG3 */
- bd9995x_select_input_port(BD9995X_CHARGE_PORT_BOTH, 1);
-
- /* Turn BGATE OFF for power saving */
- bd9995x_set_power_save_mode(BD9995X_PWR_SAVE_MAX);
-
- /* Shut down PMIC */
- CPRINTS("Triggering PMIC shutdown");
- uart_flush_output();
- if (i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x49, 0x01)) {
- /*
- * If we can't tell the PMIC to shutdown, instead reset
- * and don't start the AP. Hopefully we'll be able to
- * communicate with the PMIC next time.
- */
- CPRINTS("PMIC I2C failed");
- uart_flush_output();
- system_reset(SYSTEM_RESET_LEAVE_AP_OFF);
- }
- while (1)
- ;
-}
-
-int board_get_version(void)
-{
- static int ver;
-
- if (!ver) {
- /*
- * Read the board EC ID on the tristate strappings
- * using ternary encoding: 0 = 0, 1 = 1, Hi-Z = 2
- */
- uint8_t id0, id1, id2;
-
- id0 = gpio_get_ternary(GPIO_BOARD_VERSION1);
- id1 = gpio_get_ternary(GPIO_BOARD_VERSION2);
- id2 = gpio_get_ternary(GPIO_BOARD_VERSION3);
-
- ver = (id2 * 9) + (id1 * 3) + id0;
- CPRINTS("Board ID = %d", ver);
- }
-
- return ver;
-}
-
-void sensor_board_proc_double_tap(void)
-{
- led_register_double_tap();
-}
-
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-
-/* Lid Sensor mutex */
-static struct mutex g_lid_mutex;
-
-static struct kionix_accel_data g_kxcj9_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-static struct si114x_drv_data_t g_si114x_data = {
- .state = SI114X_NOT_READY,
- .covered = 0,
- .type_data = {
- /* Proximity - unused */
- {
- },
- /* light */
- {
- .base_data_reg = SI114X_ALS_VIS_DATA0,
- .irq_flags = SI114X_IRQ_ENABLE_ALS_IE_INT0 |
- SI114X_IRQ_ENABLE_ALS_IE_INT1,
- .scale = 1,
- .offset = -256,
- }
- }
-};
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t mag_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KXCJ9,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kxcj9_data,
- .port = I2C_PORT_LID_ACCEL,
- .i2c_spi_addr_flags = KXCJ9_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, enough for lid angle calculation. */
- .min_frequency = KXCJ9_ACCEL_MIN_FREQ,
- .max_frequency = KXCJ9_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S5 for battery detection */
- [SENSOR_CONFIG_EC_S5] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
- [BASE_MAG] = {
- .name = "Base Mag",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_MAG,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = BIT(11), /* 16LSB / uT, fixed */
- .rot_standard_ref = &mag_standard_ref,
- .min_frequency = BMM150_MAG_MIN_FREQ,
- .max_frequency = BMM150_MAG_MAX_FREQ(SPECIAL),
- },
-
- [LID_LIGHT] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_SI1141,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &si114x_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_si114x_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = SI114X_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 6000, /* 60.00%: int = 0 - frac = 6000/10000 */
- .min_frequency = SI114X_LIGHT_MIN_FREQ,
- .max_frequency = SI114X_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[LID_LIGHT],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
diff --git a/board/eve/board.h b/board/eve/board.h
deleted file mode 100644
index df80e4dccf..0000000000
--- a/board/eve/board.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Eve board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_BOARD_FORCE_RESET_PIN
-#define CONFIG_DEVICE_EVENT
-#define CONFIG_DPTF
-#define CONFIG_DPTF_MULTI_PROFILE
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-/* 7 day delay before hibernate */
-#undef CONFIG_HIBERNATE_DELAY_SEC
-#define CONFIG_HIBERNATE_DELAY_SEC (3600 * 24 * 7)
-/* 1 day delay before hibernate if battery is less than 10% */
-#define CONFIG_HIBERNATE_BATT_PCT 10
-#define CONFIG_HIBERNATE_BATT_SEC (3600 * 24)
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_SHA256_UNROLLED
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25X40
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
-#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_DX_WLAN
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 256
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BATT_MFG_ACCESS
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_HOSTCMD_PD_CONTROL
-
-/* EC console history configuration */
-#undef CONFIG_CONSOLE_HISTORY
-#define CONFIG_CONSOLE_HISTORY 1
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#undef CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_TABLET_MODE
-
-/* Battery */
-#define CONFIG_BATTERY_CRITICAL_SHUTDOWN_CUT_OFF
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-#define CONFIG_BATTERY_VENDOR_PARAM
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_BD9995X
-#define CONFIG_CHARGER_BD9995X_CHGEN
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_MAINTAIN_VBAT
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_PSYS_READ
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define BD9995X_IOUT_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_IOUT_GAIN_SET_20V
-#define BD9995X_PSYS_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_PMON_GAIN_SET_02UAW
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_PWR_STATE_DISCHARGE_FULL
-
-/* Sensor */
-#define CONFIG_MKBP_EVENT
-/* Don't wake up from suspend on any MKBP event. */
-#define CONFIG_MKBP_EVENT_WAKEUP_MASK 0
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCEL_KXCJ9
-#define CONFIG_ALS_SI114X 0x40
-#define CONFIG_ALS_SI114X_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_LIGHT)
-#define CONFIG_ALS_SI114X_POLLING
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_BD99992GW
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_MAG_BMI_BMM150
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_SEC_ADDR_FLAGS BMM150_ADDR0_FLAGS
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT /* Unused */
-#define CONFIG_MAG_CALIBRATE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_INVALID_CHECK
-#define CONFIG_LID_ANGLE_TABLET_MODE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Enable double tap detection */
-#define CONFIG_GESTURE_DETECTION
-#define CONFIG_GESTURE_HOST_DETECTION
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP
-#define CONFIG_GESTURE_SAMPLING_INTERVAL_MS 5
-#define CONFIG_GESTURE_TAP_THRES_MG 100
-#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 500
-#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_GESTURE_TAP_SENSOR)
-#define CONFIG_GESTURE_TAP_SENSOR 1
-
-/* USB */
-#define CONFIG_USB_PID 0x504B
-
-#define CONFIG_USB_CHARGER
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_DECODE_SOP
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_BD9995X_DELAY_INPUT_PORT_SELECT
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_TCPC_BOARD_INIT
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_ANX3429
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#undef CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC
-#define CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC 2
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV2
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT0_0
-#define I2C_PORT_TCPC1 NPCX_I2C_PORT0_1
-#define I2C_PORT_GYRO NPCX_I2C_PORT1
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-#define I2C_PORT_LID_ACCEL NPCX_I2C_PORT2
-#define I2C_PORT_ALS NPCX_I2C_PORT2
-#define I2C_PORT_PMIC NPCX_I2C_PORT3
-#define I2C_PORT_BATTERY NPCX_I2C_PORT3
-#define I2C_PORT_CHARGER NPCX_I2C_PORT3
-#define I2C_PORT_THERMAL I2C_PORT_PMIC
-#define I2C_PORT_MP2949 NPCX_I2C_PORT3
-
-/* I2C addresses */
-#define I2C_ADDR_BD99992_FLAGS 0x30
-#define I2C_ADDR_MP2949_FLAGS 0x20
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum board_version_list {
- BOARD_VERSION_P0,
- BOARD_VERSION_P0B,
- BOARD_VERSION_P1,
- BOARD_VERSION_P1B,
- BOARD_VERSION_EVT,
- BOARD_VERSION_EVTB,
- BOARD_VERSION_DVT,
- BOARD_VERSION_DVTB,
- BOARD_VERSION_PVT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY, /* BD99956GW TSENSE */
- TEMP_SENSOR_AMBIENT, /* BD99992GW SYSTHERM0 */
- TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_EMMC, /* BD99992GW SYSTHERM3 */
- TEMP_SENSOR_GYRO,
- TEMP_SENSOR_COUNT
-};
-
-/*
- * The PWM channel enums for the LEDs need to be in Red, Green, Blue order as
- * the 'set_color()' function assumes this order. The left vs right order
- * doesn't matter as long as each side follows RGB order.
- */
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_LED_L_RED,
- PWM_CH_LED_L_GREEN,
- PWM_CH_LED_L_BLUE,
- PWM_CH_LED_R_RED,
- PWM_CH_LED_R_GREEN,
- PWM_CH_LED_R_BLUE,
- PWM_CH_COUNT
-};
-
-/*
- * For backward compatibility, to report ALS via ACPI,
- * Define the number of ALS sensors: motion_sensor copy the data to the ALS
- * memmap region.
- */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- BASE_MAG,
- LID_LIGHT,
- SENSOR_COUNT,
-};
-
-enum adc_channel {
- ADC_CH_COUNT
-};
-
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Board specific handlers */
-int board_get_version(void);
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-void board_tcpc_init(void);
-void led_register_double_tap(void);
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL) | BIT(LID_LIGHT))
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/eve/build.mk b/board/eve/build.mk
deleted file mode 100644
index f47b5d9caf..0000000000
--- a/board/eve/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/eve/ec.tasklist b/board/eve/ec.tasklist
deleted file mode 100644
index 99de365243..0000000000
--- a/board/eve/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(LED, led_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/eve/gpio.inc b/board/eve/gpio.inc
deleted file mode 100644
index f9b0c3cfc4..0000000000
--- a/board/eve/gpio.inc
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(CHARGER_INT_L, PIN(3, 3), GPIO_INT_FALLING, bd9995x_vbus_interrupt)
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(C, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_SUS_L, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PMIC_DPWROK, PIN(9, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(6, 7), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(3, 6), GPIO_INT_BOTH, tablet_mode_interrupt)
-/* Volume buttons are swapped in the schematic */
-GPIO_INT(VOLUME_DOWN_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(8, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(WP_L, PIN(4, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(ACCELGYRO3_INT_L, PIN(9, 3), GPIO_INT_FALLING, bmi160_interrupt)
-GPIO_INT(TRACKPAD_INT_L, PIN(7, 1), GPIO_INT_FALLING, trackpad_interrupt)
-/* DSP IRQ is active low in schematic but DSP treats as active high */
-GPIO_INT(MIC_DSP_IRQ_1V8_L, PIN(C, 6), GPIO_INT_RISING | GPIO_SEL_1P8V, dsp_interrupt)
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
-GPIO_INT(USB_C0_CABLE_DET, PIN(D, 2), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-GPIO_INT(USB_C1_CABLE_DET, PIN(D, 3), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-#else
-GPIO(USB_C0_CABLE_DET, PIN(D, 2), GPIO_INPUT)
-GPIO(USB_C1_CABLE_DET, PIN(D, 3), GPIO_INPUT)
-#endif
-
-/* Lid KCJX9 accelerometer sensor interrupt */
-GPIO(ACCEL1_INT_L, PIN(C, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-GPIO(PCH_RTCRST, PIN(E, 7), GPIO_OUT_LOW) /* RTCRST# to SOC */
-GPIO(ENABLE_BACKLIGHT, PIN(5, 6), GPIO_OUT_LOW) /* Enable Backlight */
-GPIO(TRACKPAD_SHDN_L, PIN(3, 2), GPIO_OUT_LOW) /* Enable Trackpad */
-GPIO(WLAN_OFF_L, PIN(7, 2), GPIO_OUT_LOW) /* Disable WLAN */
-GPIO(PP3300_DX_WLAN, PIN(A, 7), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(CHARGER_RST_ODL, PIN(0, 1), GPIO_INPUT | GPIO_PULL_UP) /* CHARGER_RST_ODL, no-connect */
-GPIO(CPU_PROCHOT, PIN(8, 1), GPIO_OUT_LOW) /* PROCHOT to SOC */
-GPIO(PCH_ACOK, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(4, 1), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(EC_PLATFORM_RST, PIN(A, 6), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(PMIC_SLP_SUS_L, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(BATTERY_PRESENT_L, PIN(3, 4), GPIO_INPUT) /* Battery Present */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_HAVEN_RESET_ODL, PIN(0, 2), GPIO_INPUT | GPIO_PULL_UP) /* H1 Reset, no-connect */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(PMIC_INT_L, PIN(6, 0), GPIO_INPUT) /* PMIC interrupt */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C00_USB_C0_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C00_USB_C0_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C01_USB_C1_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C01_USB_C1_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C1_GYRO_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C1_GYRO_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C2_SENSOR_3V3_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C2_SENSOR_3V3_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C3_POWER_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C3_POWER_SDA */
-
-/*
- * For P1 and prior: 5V enables: INPUT=1.5A, OUT_LOW=OFF, OUT_HIGH=3A
- * For P1B and later: 5V enables: OUT_LOW=VBUS Off, OUT_HIGH=VBUS On
- */
-GPIO(USB_C0_5V_EN, PIN(4, 2), GPIO_OUT_LOW | GPIO_PULL_UP) /* C0 5V Enable */
-GPIO(USB_C1_5V_EN, PIN(B, 1), GPIO_OUT_LOW | GPIO_PULL_UP) /* C1 5V Enable */
-GPIO(EN_USB_C0_3A, PIN(6, 6), GPIO_OUT_LOW) /* 1.5/3.0 C0 current limit selection */
-GPIO(EN_USB_C1_3A, PIN(3, 5), GPIO_OUT_LOW) /* 1.5/3.0 C1 current limit selection */
-GPIO(USB_C0_PD_RST_L, PIN(0, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(7, 4), GPIO_OUT_LOW) /* C1 PD Reset */
-GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(A, 5), GPIO_INPUT) /* C1 DP Hotplug Detect */
-GPIO(USB_C0_TCPC_PWR, PIN(8, 4), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(USB_C1_TCPC_PWR, PIN(0, 0), GPIO_OUT_LOW) /* Enable C1 TCPC Power */
-GPIO(USB2_OTG_ID, PIN(A, 1), GPIO_OUT_LOW) /* OTG ID */
-GPIO(USB2_OTG_VBUSSENSE, PIN(9, 5), GPIO_OUT_LOW) /* OTG VBUS Sense */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(4, 3), GPIO_INPUT | GPIO_PULL_UP) /* Board ID bit0 */
-GPIO(BOARD_VERSION2, PIN(4, 4), GPIO_INPUT | GPIO_PULL_UP) /* Board ID bit1 */
-GPIO(BOARD_VERSION3, PIN(4, 5), GPIO_INPUT | GPIO_PULL_UP) /* Board ID bit2 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 */ /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 */ /* EC_I2C1_GYRO_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 */ /* EC_I2C1_GYRO_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 */ /* EC_I2C2_SENSOR_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 */ /* EC_I2C00_USB_C0_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 */ /* EC_I2C01_USB_C1_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 */ /* EC_I2C3_POWER_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* GPIOB7 */ /* KBD_BL_PWM */
-/* Left LED PWM Channels */
-ALTERNATE(PIN_MASK(C, 0x10), 1, MODULE_PWM, 0) /* GPIOC4 PWM2 Red*/
-ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0) /* GPOB6 PWM3 Green*/
-ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0) /* GPIO80 PWM4 Blue*/
-/* Right LED PWM Channels */
-ALTERNATE(PIN_MASK(C, 0x04), 1, MODULE_PWM, 0) /* GPIOC2 PWM1 Red*/
-ALTERNATE(PIN_MASK(C, 0x08), 1, MODULE_PWM, 0) /* GPIOC3 PWM0 Green */
-ALTERNATE(PIN_MASK(C, 0x01), 1, MODULE_PWM, 0) /* GPIOC0 PWM6 Blue */
-
-/* Set unused pins as Input+PU */
-GPIO(TP_EC_GPIO_57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(0, 0xe0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_KB_OUTPUT_COL2)
diff --git a/board/eve/led.c b/board/eve/led.c
deleted file mode 100644
index 91a7b24a2b..0000000000
--- a/board/eve/led.c
+++ /dev/null
@@ -1,676 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power/Battery LED control for Eve
- */
-
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "console.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "math_util.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_PWM, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_PWM, format, ## args)
-
-#define LED_TICK_TIME (500 * MSEC)
-#define LED_TICKS_PER_BEAT 1
-#define NUM_PHASE 2
-#define DOUBLE_TAP_TICK_LEN (LED_TICKS_PER_BEAT * 8)
-#define LED_FRAC_BITS 4
-#define LED_STEP_MSEC 45
-
-/*
- * The PWM % on levels to transition from intensity 0 (black) to intensity 1.0
- * (white) in the HSI color space converted back to RGB space (0 - 255) and
- * converted to a % for PWM. This table is used for Red <--> White and Green
- * <--> Transitions. In HSI space white = (0, 0, 1), red = (0, .5, .33), green =
- * (120, .5, .33). For the transitions of interest only S and I are changed and
- * they are changed linearly in HSI space.
- */
-static const uint8_t trans_steps[] = {0, 4, 9, 16, 24, 33, 44, 56, 69, 84, 100};
-
-/* List of LED colors used */
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_BLUE,
- LED_WHITE,
- LED_RED_HALF,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-/* List of supported LED patterns */
-enum led_pattern {
- OFF = 0,
- SOLID_GREEN,
- WHITE_GREEN,
- SOLID_WHITE,
- WHITE_RED,
- SOLID_RED,
- PULSE_RED,
- BLINK_RED,
- LED_NUM_PATTERNS,
-};
-
-enum led_side {
- LED_LEFT = 0,
- LED_RIGHT,
- LED_BOTH
-};
-
-struct led_info {
- /* LED pattern manage variables */
- int ticks;
- int pattern_sel;
- int tap_tick_count;
- enum led_color color;
- /* Color transition variables */
- int state;
- int step;
- uint8_t rgb_current[3];
- const uint8_t *rgb_target;
- uint8_t trans[ARRAY_SIZE(trans_steps)];
-};
-
-/*
- * LED patterns are described as two phases. Each phase has an associated LED
- * color and length in beats. The length of each beat is defined by the macro
- * LED_TICKS_PER_BEAT.
- */
-struct led_phase {
- uint8_t color[NUM_PHASE];
- uint8_t len[NUM_PHASE];
- uint8_t tap_len;
-};
-
-static int led_debug;
-static int double_tap;
-static int led_charge_side;
-static struct led_info led[LED_BOTH];
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED, EC_LED_ID_RIGHT_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-/*
- * Pattern table. The len field is beats per color. 0 for len indicates that a
- * particular pattern never changes from the first phase.
- */
-static const struct led_phase pattern[LED_NUM_PATTERNS] = {
- { {LED_OFF, LED_OFF}, {0, 0}, DOUBLE_TAP_TICK_LEN },
- { {LED_GREEN, LED_GREEN}, {0, 0}, DOUBLE_TAP_TICK_LEN },
- { {LED_WHITE, LED_GREEN}, {2, 4}, DOUBLE_TAP_TICK_LEN },
- { {LED_WHITE, LED_WHITE}, {0, 0}, DOUBLE_TAP_TICK_LEN },
- { {LED_WHITE, LED_RED}, {2, 4}, DOUBLE_TAP_TICK_LEN },
- { {LED_RED, LED_RED}, {0, 0}, DOUBLE_TAP_TICK_LEN},
- { {LED_RED, LED_RED_HALF}, {4, 4}, DOUBLE_TAP_TICK_LEN * 2 +
- DOUBLE_TAP_TICK_LEN / 2},
- { {LED_RED, LED_OFF}, {1, 5}, DOUBLE_TAP_TICK_LEN * 3 +
- DOUBLE_TAP_TICK_LEN / 2},
-};
-
-/*
- * Brightness vs. color, in the order of off, red, green and blue. Values are
- * for % on PWM duty cycle time.
- */
-#define PWM_CHAN_PER_LED 3
-static const uint8_t color_brightness[LED_COLOR_COUNT][PWM_CHAN_PER_LED] = {
- /* {Red, Green, Blue}, */
- [LED_OFF] = {0, 0, 0},
- [LED_RED] = {80, 0, 0},
- [LED_GREEN] = {0, 80, 0},
- [LED_BLUE] = {0, 0, 80},
- [LED_WHITE] = {100, 100, 100},
- [LED_RED_HALF] = {40, 0, 0},
-};
-
-/*
- * When a double tap event occurs, a LED pattern is displayed based on the
- * current battery charge level. The LED patterns used for double tap under low
- * battery conditions are same patterns displayed when the battery is not
- * charging. The table below shows what battery charge level displays which
- * pattern.
- */
-struct range_map {
- uint8_t max;
- uint8_t pattern;
-};
-
-#if (CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC >= 3)
-#error "LED: PULSE_RED battery level <= BLINK_RED level"
-#endif
-static const struct range_map pattern_tbl[] = {
- {CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC - 1, BLINK_RED},
- {5, PULSE_RED},
- {15, SOLID_RED},
- {25, WHITE_RED},
- {75, SOLID_WHITE},
- {95, WHITE_GREEN},
- {100, SOLID_GREEN},
-};
-
-enum led_state_change {
- LED_STATE_INTENSITY_DOWN,
- LED_STATE_INTENSITY_UP,
- LED_STATE_DONE,
-};
-
-/**
- * Set LED color
- *
- * @param pwm Pointer to 3 element RGB color level (0 -> 100)
- * @param side Left LED, Right LED, or both LEDs
- */
-static void set_color(const uint8_t *pwm, enum led_side side)
-{
- int i;
- static uint8_t saved_duty[LED_BOTH][PWM_CHAN_PER_LED];
-
- /* Set color for left LED */
- if (side == LED_LEFT || side == LED_BOTH) {
- for (i = 0; i < PWM_CHAN_PER_LED; i++) {
- if (saved_duty[LED_LEFT][i] != pwm[i]) {
- pwm_set_duty(PWM_CH_LED_L_RED + i,
- 100 - pwm[i]);
- saved_duty[LED_LEFT][i] = pwm[i];
- }
- }
- }
-
- /* Set color for right LED */
- if (side == LED_RIGHT || side == LED_BOTH) {
- for (i = 0; i < PWM_CHAN_PER_LED; i++) {
- if (saved_duty[LED_RIGHT][i] != pwm[i]) {
- pwm_set_duty(PWM_CH_LED_R_RED + i,
- 100 - pwm[i]);
- saved_duty[LED_RIGHT][i] = pwm[i];
- }
- }
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_BLUE] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- /* Set brightness for left LED */
- pwm_set_duty(PWM_CH_LED_L_RED,
- 100 - brightness[EC_LED_COLOR_RED]);
- pwm_set_duty(PWM_CH_LED_L_BLUE,
- 100 - brightness[EC_LED_COLOR_BLUE]);
- pwm_set_duty(PWM_CH_LED_L_GREEN,
- 100 - brightness[EC_LED_COLOR_GREEN]);
- break;
- case EC_LED_ID_RIGHT_LED:
- /* Set brightness for right LED */
- pwm_set_duty(PWM_CH_LED_R_RED,
- 100 - brightness[EC_LED_COLOR_RED]);
- pwm_set_duty(PWM_CH_LED_R_BLUE,
- 100 - brightness[EC_LED_COLOR_BLUE]);
- pwm_set_duty(PWM_CH_LED_R_GREEN,
- 100 - brightness[EC_LED_COLOR_GREEN]);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_register_double_tap(void)
-{
- double_tap = 1;
-}
-
-static void led_setup_color_change(int old_idx, int new_idx, enum led_side side)
-{
- int i;
- int increase = 0;
- /*
- * Using the color indices, poplulate the current and target R, G, B
- * arrays. The arrays are indexed R = 0, G = 1, B = 2. If the target of
- * any of the 3 is greater than the current, then this color change is
- * an increase in intensity. Otherwise, it's a decrease.
- */
- led[side].rgb_target = color_brightness[new_idx];
- for (i = 0; i < PWM_CHAN_PER_LED; i++) {
- led[side].rgb_current[i] = color_brightness[old_idx][i];
- if (led[side].rgb_current[i] < led[side].rgb_target[i]) {
- /* increase in color */
- increase = 1;
- }
- }
- /* Check to see if increasing or decreasing color */
- if (increase) {
- led[side].state = LED_STATE_INTENSITY_UP;
- /* First entry of transition table == current level */
- led[side].step = 1;
- } else {
- /* Last entry of transition table == current level */
- led[side].step = ARRAY_SIZE(trans_steps) - 2;
- led[side].state = LED_STATE_INTENSITY_DOWN;
- }
-
- /*
- * Populate transition table based on the number of R, G, B components
- * changing. If only 1 componenet is changing, then can just do linear
- * steps over the range. If more than 1 component is changing, then
- * this is a white <--> color transition and will use
- * the precomputed steps which are derived by converting to HSI space
- * and then linearly transitioning S and I to go from the starting color
- * to white and vice versa.
- */
- if (old_idx == LED_WHITE || new_idx == LED_WHITE) {
- for (i = 0; i < ARRAY_SIZE(trans_steps); i++)
- led[side].trans[i] = trans_steps[i];
- } else {
- int delta_per_step;
- int step_value;
- int start_lvl;
- int total_change;
- /* Assume that the R component (index = 0) is changing */
- int rgb_index = 0;
-
- /*
- * Since the new or old color is not white, then this change
- * must involve only either red or green. There are no red <-->
- * green transitions. So only 1 color is being changed in this
- * case. Assume it's red (index = 0), but check if it's green
- * (index = 1).
- */
-
- if (old_idx == LED_GREEN || new_idx == LED_GREEN)
- rgb_index = 1;
-
- /*
- * Determine the total change assuming current level is higher
- * than target level. The transitions steps are always ordered
- * lower to higher. The starting index is adjusted if intensity
- * is decreasing.
- */
- start_lvl = led[side].rgb_target[rgb_index];
-
- if (led[side].state == LED_STATE_INTENSITY_UP)
- /*
- * Increasing in intensity, current level or R/G is
- * the starting level.
- */
- start_lvl = led[side].rgb_current[rgb_index];
-
- /*
- * Compute change per step using fractional bits. The step
- * change accumulates fractional bits and is truncated after
- * rounding before being added to the starting value.
- */
- total_change = ABS(led[side].rgb_current[rgb_index] -
- led[side].rgb_target[rgb_index]);
- delta_per_step = (total_change << LED_FRAC_BITS)
- / (ARRAY_SIZE(trans_steps) - 1);
- step_value = 0;
- for (i = 0; i < ARRAY_SIZE(trans_steps); i++) {
- led[side].trans[i] = start_lvl +
- ((step_value +
- (1 << (LED_FRAC_BITS - 1)))
- >> LED_FRAC_BITS);
- step_value += delta_per_step;
- }
- }
-
-}
-
-static void led_adjust_color_step(int side)
-{
- int i;
- int change = 0;
- uint8_t lvl = led[side].trans[led[side].step];
- uint8_t *rgb_c = led[side].rgb_current;
- const uint8_t *rgb_t = led[side].rgb_target;
-
- if (led[side].state == LED_STATE_INTENSITY_DOWN) {
- /*
- * Colors are going from higher to lower level. If the current
- * level of R, G, or B is higher than both the next step in the
- * transition table and and the target level, then move to
- * the larger of the two. The MAX is used to make sure that it
- * doens't drop below the target level.
- */
- for (i = 0; i < PWM_CHAN_PER_LED; i++) {
- if ((rgb_c[i] > rgb_t[i]) && (rgb_c[i] >= lvl)) {
- rgb_c[i] = MAX(lvl, rgb_t[i]);
- change = 1;
- }
- }
- /*
- * If nothing changed this iteration, or if lowest table entry
- * has been used, then the change is complete.
- */
- if (!change || --led[side].step < 0)
- led[side].state = LED_STATE_DONE;
-
- } else if (led[side].state == LED_STATE_INTENSITY_UP) {
- /*
- * Colors are going from lower to higher level. If the current
- * level of R, G, B is lower than both the target level and the
- * transition table entry for a given color, then move up to
- * the MIN of next transition step and target level.
- */
- for (i = 0; i < PWM_CHAN_PER_LED; i++) {
- if ((rgb_c[i] < rgb_t[i]) && (rgb_c[i] <= lvl)) {
- rgb_c[i] = MIN(lvl, rgb_t[i]);
- change = 1;
- }
- }
- /*
- * If nothing changed this iteration, or if highest table entry
- * has been used, then the change is complete.
- */
- if (!change || ++led[side].step >= ARRAY_SIZE(trans_steps))
- led[side].state = LED_STATE_DONE;
- }
- /* Apply current R, G, B levels */
- set_color(rgb_c, side);
-}
-
-static void led_change_color(void)
-{
- int i;
-
- /* Will loop here until the color change is complete. */
- while (led[LED_LEFT].state != LED_STATE_DONE ||
- led[LED_RIGHT].state != LED_STATE_DONE) {
-
- for (i = 0; i < LED_BOTH; i++) {
- if (led[i].state != LED_STATE_DONE)
- /* Move one step in the transition table */
- led_adjust_color_step(i);
-
- }
- msleep(LED_STEP_MSEC);
- }
-}
-
-static void led_manage_patterns(enum led_pattern *pattern_desired, int tap)
-{
- int color;
- int phase;
- int i;
- int color_change = 0;
-
- for (i = 0; i < LED_BOTH; i++) {
- /* For each led check if the pattern needs to change */
- if (pattern_desired[i] != led[i].pattern_sel) {
- /*
- * Pattern needs to change, but if double tap sequence
- * is active, then need to wait until that
- * completes. Unless the pattern change is due to
- * external charger state change, make that happen
- * immediately.
- */
- if (i == led_charge_side || !led[i].tap_tick_count) {
- led[i].ticks = 0;
- led[i].tap_tick_count = tap ?
- pattern[pattern_desired[i]].tap_len : 0;
- led[i].pattern_sel = pattern_desired[i];
- }
- }
- /* Determine pattern phase and color for current phase */
- phase = led[i].ticks < LED_TICKS_PER_BEAT *
- pattern[led[i].pattern_sel].len[0] ? 0 : 1;
- color = pattern[led[i].pattern_sel].color[phase];
- /* If color is changing, then setup the transition. */
- if (led[i].color != color) {
- led_setup_color_change(led[i].color, color, i);
- led[i].color = color;
- color_change = 1;
- }
- }
-
- if (color_change)
- /* Change color is done for both LEDs simultaneously */
- led_change_color();
-
- for (i = 0; i < LED_BOTH; i++) {
- /* Set color for the current phase */
- set_color(color_brightness[led[i].color], i);
-
- /*
- * Update led_ticks. If the len field is 0, then the pattern
- * being used is just one color so no need to increase the tick
- * count.
- */
- if (pattern[led[i].pattern_sel].len[0])
- if (++led[i].ticks == LED_TICKS_PER_BEAT *
- (pattern[led[i].pattern_sel].len[0] +
- pattern[led[i].pattern_sel].len[1]))
- led[i].ticks = 0;
-
- /* If double tap display is active, decrement its counter */
- if (led[i].tap_tick_count)
- led[i].tap_tick_count--;
- }
-}
-
-static enum led_pattern led_get_double_tap_pattern(int percent_chg)
-{
- int i;
- enum led_pattern pattern = OFF;
-
- for (i = 0; i < ARRAY_SIZE(pattern_tbl); i++) {
- if (percent_chg <= pattern_tbl[i].max) {
- pattern = pattern_tbl[i].pattern;
- break;
- }
- }
-
- return pattern;
-}
-
-static void led_select_pattern(enum led_pattern *pattern_desired, int tap)
-{
- enum charge_state chg_state = charge_get_state();
- int side;
- int percent_chg;
- enum led_pattern new_pattern;
-
- /* Get active charge port which maps directly to left/right LED */
- side = charge_manager_get_active_charge_port();
- /*
- * Maintain a copy of the side associated with charging. If there is no
- * active charging port, then charge_side = -1. This value is used to
- * manage the double_tap tick counts on a per LED basis.
- */
- led_charge_side = side;
- /* Ensure that side can be safely used as an index */
- if (side < 0 || side >= CONFIG_USB_PD_PORT_MAX_COUNT)
- side = LED_BOTH;
-
- /* Get percent charge */
- percent_chg = charge_get_percent();
-
- if (side == LED_BOTH) {
- /*
- * External charger is not connected. Find the pattern that
- * would be used for double tap event.
- */
- new_pattern = led_get_double_tap_pattern(percent_chg);
-
- /*
- * The patterns used for double tap and for not charging
- * state are the same for low battery cases. But, if
- * battery charge is high enough to be above SOLID_RED,
- * then only display LED pattern if double tap has
- * occurred.
- */
- if (!tap && new_pattern <= WHITE_RED)
- new_pattern = OFF;
- /*
- * When external charger is not connected, always apply pattern
- * to both LEDs.
- */
- pattern_desired[LED_LEFT] = new_pattern;
- pattern_desired[LED_RIGHT] = new_pattern;
-
- } else {
- /*
- * External charger is connected. First determine pattern for
- * charging side LED.
- */
- if (chg_state == PWR_STATE_CHARGE_NEAR_FULL ||
- ((chg_state == PWR_STATE_DISCHARGE_FULL)
- && extpower_is_present())) {
- new_pattern = SOLID_GREEN;
- } else if (chg_state == PWR_STATE_CHARGE) {
- new_pattern = SOLID_WHITE;
- } else {
- new_pattern = OFF;
- }
- pattern_desired[side] = new_pattern;
-
- /* Check for double tap for side not associated with charger */
- new_pattern = led_get_double_tap_pattern(percent_chg);
- if (!tap && new_pattern != BLINK_RED)
- new_pattern = OFF;
- /* Apply this pattern to the non-charging side LED */
- pattern_desired[side ^ 1] = new_pattern;
- }
-}
-
-static void led_init(void)
-{
- int i;
-
- /*
- * Enable PWMs and set to 0% duty cycle. If they're disabled,
- * seems to ground the pins instead of letting them float.
- */
- /* Initialize PWM channels for left LED */
- pwm_enable(PWM_CH_LED_L_RED, 1);
- pwm_enable(PWM_CH_LED_L_GREEN, 1);
- pwm_enable(PWM_CH_LED_L_BLUE, 1);
-
- /* Initialize PWM channels for right LED */
- pwm_enable(PWM_CH_LED_R_RED, 1);
- pwm_enable(PWM_CH_LED_R_GREEN, 1);
- pwm_enable(PWM_CH_LED_R_BLUE, 1);
-
- set_color(color_brightness[LED_OFF], LED_BOTH);
-
- /*
- * Initialize LED descriptors. The members that are used for changing
- * colors don't neet to be initialized as they are always computed
- * when a color change is required.
- */
- for (i = 0; i < LED_BOTH; i++) {
- led[i].pattern_sel = OFF;
- led[i].color = LED_OFF;
- led[i].ticks = 0;
- led[i].tap_tick_count = 0;
- led[i].state = LED_STATE_DONE;
- }
-
-}
-
-void led_task(void *u)
-{
- uint32_t start_time;
- uint32_t task_duration;
-
- led_init();
-
- usleep(SECOND);
-
- while (1) {
- enum led_pattern pattern_desired[LED_BOTH];
- int tap = 0;
-
- start_time = get_time().le.lo;
-
- if (double_tap) {
- /* Clear double tap indication */
- if (!chipset_in_state(CHIPSET_STATE_ON))
- /* If not in S0, then set tap on */
- tap = 1;
- double_tap = 0;
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED) &&
- led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED) &&
- led_debug != 1) {
- /* Determine desired LED patterns for both LEDS */
- led_select_pattern(pattern_desired, tap);
- /* Update LED patterns/colors (if necessary) */
- led_manage_patterns(pattern_desired, tap);
- }
- /* Compute time for this iteration */
- task_duration = get_time().le.lo - start_time;
- /*
- * Compute wait time required to for next desired LED tick. If
- * the duration exceeds the tick time, then don't sleep.
- */
- if (task_duration < LED_TICK_TIME)
- usleep(LED_TICK_TIME - task_duration);
- }
-}
-
-/******************************************************************/
-/* Console commands */
-static int command_led(int argc, char **argv)
-{
- int side = LED_BOTH;
- char *e;
- enum led_color color;
-
- if (argc > 1) {
- if (argc > 2) {
- side = strtoi(argv[2], &e, 10);
- if (*e)
- return EC_ERROR_PARAM2;
- if (side > 1)
- return EC_ERROR_PARAM2;
- }
-
- if (!strcasecmp(argv[1], "debug")) {
- led_debug ^= 1;
- CPRINTF("led_debug = %d\n", led_debug);
- return EC_SUCCESS;
- }
-
- if (!strcasecmp(argv[1], "off"))
- color = LED_OFF;
- else if (!strcasecmp(argv[1], "red"))
- color = LED_RED;
- else if (!strcasecmp(argv[1], "green"))
- color = LED_GREEN;
- else if (!strcasecmp(argv[1], "blue"))
- color = LED_BLUE;
- else if (!strcasecmp(argv[1], "white"))
- color = LED_WHITE;
- else
- return EC_ERROR_PARAM1;
-
- set_color(color_brightness[color], side);
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|green|blue|white|amber|off <0|1>]",
- "Change LED color");
diff --git a/board/eve/usb_pd_policy.c b/board/eve/usb_pd_policy.c
deleted file mode 100644
index d6dd5ad1be..0000000000
--- a/board/eve/usb_pd_policy.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio_5v_en = port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN;
- enum gpio_signal gpio_3a_en = port ? GPIO_EN_USB_C1_3A :
- GPIO_EN_USB_C0_3A;
- int flags;
-
- if (system_get_board_version() >= BOARD_VERSION_P1B) {
- /*
- * For P1B and beyond, 1.5 vs 3.0 A limit is controlled by a
- * dedicated gpio where high = 3.0A and low = 1.5A. VBUS on/off
- * is controlled by GPIO_USB_C0/1_5V_EN. Both of these signals
- * can remain outputs.
- */
- gpio_set_level(gpio_3a_en, vbus_rp[port] == TYPEC_RP_3A0 ?
- 1 : 0);
- gpio_set_level(gpio_5v_en, vbus_en[port]);
- } else {
- /*
- * For P1 and earlier board revs, a single gpio signal is
- * used to both enable VBUS and set the current limit.
- * Driving USB_Cx_5V_EN high, actually put a 16.5k resistance
- * (2x 33k in parallel) on the NX5P3290 load switch ILIM pin,
- * setting a minimum OCP current of 3186 mA.
- * Putting an internal pull-up on USB_Cx_5V_EN, effectively put
- * a 33k resistor on ILIM, setting a minimum OCP current of
- * 1505 mA.
- */
- flags = (vbus_rp[port] == TYPEC_RP_1A5 && vbus_en[port]) ?
- (GPIO_INPUT | GPIO_PULL_UP) :
- (GPIO_OUTPUT | GPIO_PULL_UP);
- gpio_set_level(gpio_5v_en, vbus_en[port]);
- gpio_set_flags(gpio_5v_en, flags);
- }
-}
-
-void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Ensure we're not charging from this port */
- bd9995x_select_input_port(port, 0);
-
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_PMIC_SLP_SUS_L);
-}
-
-void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Only port 0 supports device mode. */
- if (port != 0)
- return;
-
- gpio_set_level(GPIO_USB2_OTG_ID,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
- gpio_set_level(GPIO_USB2_OTG_VBUSSENSE,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
-}
diff --git a/board/eve/vif_override.xml b/board/eve/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/eve/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/ezkinil/analyzestack.yaml b/board/ezkinil/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/ezkinil/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/ezkinil/battery.c b/board/ezkinil/battery.c
deleted file mode 100644
index 8c5ec9e1d7..0000000000
--- a/board/ezkinil/battery.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Zork battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AP19B8M */
- [BATTERY_AP19B8M] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G024",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13350,
- .voltage_normal = 11610,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP18C7M */
- [BATTERY_AP18C7M] = {
- .fuel_gauge = {
- .manuf_name = "SMP KT00407008",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 17600,
- .voltage_normal = 15400,
- .voltage_min = 12000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP19B8M;
diff --git a/board/ezkinil/board.c b/board/ezkinil/board.c
deleted file mode 100644
index 14f8e6e915..0000000000
--- a/board/ezkinil/board.c
+++ /dev/null
@@ -1,827 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "button.h"
-#include "cbi_ssfc.h"
-#include "charge_state_v2.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/ppc/aoz1380.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/retimer/pi3hdx1204.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-
-#include "gpio_list.h"
-
-static int board_ver;
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-const mat33_fp_t base_standard_ref_1 = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref_1,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_1,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-const struct power_signal_info power_signal_list[] = {
- [X86_SLP_S3_N] = {
- .gpio = GPIO_PCH_SLP_S3_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S3_DEASSERTED",
- },
- [X86_SLP_S5_N] = {
- .gpio = GPIO_PCH_SLP_S5_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S5_DEASSERTED",
- },
- [X86_S0_PGOOD] = {
- .gpio = GPIO_S0_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S0_PGOOD",
- },
- [X86_S5_PGOOD] = {
- .gpio = GPIO_S5_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S5_PGOOD",
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
- [PWM_CH_FAN] = {
- .channel = 2,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-const int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB,
-};
-
-const struct pi3hdx1204_tuning pi3hdx1204_tuning = {
- .eq_ch0_ch1_offset = PI3HDX1204_EQ_DB710,
- .eq_ch2_ch3_offset = PI3HDX1204_EQ_DB710,
- .vod_offset = PI3HDX1204_VOD_130_ALL_CHANNELS,
- .de_offset = PI3HDX1204_DE_DB_MINUS5,
-};
-
-/*
- * USB C0 port SBU mux use standalone FSUSB42UMX
- * chip and it need a board specific driver.
- * Overall, it will use chained mux framework.
- */
-static int fsusb42umx_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
- if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
- else
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 0);
- return EC_SUCCESS;
-}
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-const struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = fsusb42umx_set_mux,
-};
-/*
- * Since FSUSB42UMX is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-const struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
-
-/*****************************************************************************
- * Base Gyro Sensor dynamic configuration
- */
-
-static int base_gyro_config;
-
-static void setup_base_gyro_config(void)
-{
- base_gyro_config = ec_config_has_base_gyro_sensor();
-
- if (base_gyro_config == BASE_GYRO_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else if (base_gyro_config == BASE_GYRO_BMI160)
- ccprints("BASE GYRO is BMI160");
-}
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_gyro_config) {
- case BASE_GYRO_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case BASE_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration
- */
-
-int board_usbc1_retimer_inhpd = IOEX_USB_C1_HPD_IN_DB;
-
-static void setup_mux(void)
-{
- enum ec_ssfc_c1_mux mux = get_cbi_ssfc_c1_mux();
-
- if (mux == SSFC_C1_MUX_NONE && ec_config_has_usbc1_retimer_tusb544())
- mux = SSFC_C1_MUX_TUSB544;
-
- if (mux == SSFC_C1_MUX_PS8818) {
- ccprints("C1 PS8818 detected");
- /*
- * Main MUX is FP5, secondary MUX is PS8818
- *
- * Replace usb_muxes[USBC_PORT_C1] with the AMD FP5
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_amd_fp5_usb_mux,
- sizeof(struct usb_mux));
- /* Set the PS8818 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_ps8818;
- } else if (mux == SSFC_C1_MUX_TUSB544) {
- ccprints("C1 TUSB544 detected");
- /*
- * Main MUX is FP5, secondary MUX is TUSB544
- *
- * Replace usb_muxes[USBC_PORT_C1] with the AMD FP5
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_amd_fp5_usb_mux,
- sizeof(struct usb_mux));
- /* Set the TUSB544 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_tusb544;
- } else if (ec_config_has_usbc1_retimer_ps8743()) {
- ccprints("C1 PS8743 detected");
- /*
- * Main MUX is PS8743, secondary MUX is modified FP5
- *
- * Replace usb_muxes[USBC_PORT_C1] with the PS8743
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_ps8743,
- sizeof(struct usb_mux));
- /* Set the AMD FP5 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_amd_fp5_usb_mux;
- /* Don't have the AMD FP5 flip */
- usbc1_amd_fp5_usb_mux.flags = USB_MUX_FLAG_SET_WITHOUT_FLIP;
- }
-}
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
- },
- [USBC_PORT_C1] = {
- /* Filled in dynamically at startup */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static int board_tusb544_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* Enable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 1);
- } else {
- /* Disable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 0);
- }
- return EC_SUCCESS;
-}
-
-static int board_ps8743_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- if (mux_state & USB_PD_MUX_DP_ENABLED)
- /* Enable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 1);
- else
- /* Disable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 0);
-
- return EC_SUCCESS;
-}
-
-const struct usb_mux usbc1_tusb544 = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS1,
- .driver = &tusb544_drv,
- .board_set = &board_tusb544_mux_set,
-};
-const struct usb_mux usbc1_ps8743 = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PS8743_I2C_ADDR1_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .board_set = &board_ps8743_mux_set,
-};
-
-/*****************************************************************************
- * PPC
- */
-
-static int ppc_id;
-
-static void setup_c1_ppc_config(void)
-{
- /*
- * Read USB_C1_POWER_SWITCH_ID to choose DB ppc chip
- * 0: NX20P3483UK
- * 1: AOZ1380DI
- */
-
- ioex_get_level(IOEX_USB_C1_POWER_SWITCH_ID, &ppc_id);
-
- ccprints("C1: PPC is %s", ppc_id ? "AOZ1380DI" : "NX20P3483UK");
-
- if (ppc_id) {
- ppc_chips[USBC_PORT_C1].drv = &aoz1380_drv;
- ioex_set_flags(IOEX_USB_C1_PPC_ILIM_3A_EN, GPIO_OUT_LOW);
- }
-}
-
-__override void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_FAULT_ODL:
- aoz1380_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- if (ppc_id)
- aoz1380_interrupt(USBC_PORT_C1);
- else
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-__override int board_aoz1380_set_vbus_source_current_limit(int port,
- enum tcpc_rp_value rp)
-{
- int rv;
-
- /* Use the TCPC to set the current limit */
- rv = ioex_set_level(port ? IOEX_USB_C1_PPC_ILIM_3A_EN
- : IOEX_USB_C0_PPC_ILIM_3A_EN,
- (rp == TYPEC_RP_3A0) ? 1 : 0);
-
- return rv;
-}
-
-/*****************************************************************************
- * Use FW_CONFIG to set correct configuration.
- */
-
-static void setup_v0_charger(void)
-{
- int rv;
-
- rv = cbi_get_board_version(&board_ver);
- if (rv) {
- ccprints("Fail to get board_ver");
- /* Default for v3 */
- board_ver = 3;
- }
-
- if (board_ver == 1)
- chg_chips[0].i2c_port = I2C_PORT_CHARGER_V0;
-}
-/*
- * Use HOOK_PRIO_INIT_I2C so we re-map before charger_chips_init()
- * talks to the charger.
- */
-DECLARE_HOOK(HOOK_INIT, setup_v0_charger, HOOK_PRIO_INIT_I2C);
-
-static void setup_fw_config(void)
-{
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
-
- setup_mux();
-
- if (board_ver >= 3)
- setup_c1_ppc_config();
-
- if (ec_config_has_hdmi_conn_hpd()) {
- if (board_ver < 3)
- ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB);
- else
- gpio_enable_interrupt(GPIO_DP1_HPD_EC_IN);
- }
-
- setup_base_gyro_config();
-}
-/* Use HOOK_PRIO_INIT_I2C + 2 to be after ioex_init(). */
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-static int check_hdmi_hpd_status(void)
-{
- int hpd = 0;
-
- if (board_ver < 3)
- ioex_get_level(IOEX_HDMI_CONN_HPD_3V3_DB, &hpd);
- else
- hpd = gpio_get_level(GPIO_DP1_HPD_EC_IN);
-
- return hpd;
-}
-
-static void hdmi_hpd_handler(void)
-{
- /* Pass HPD through from DB OPT1 HDMI connector to AP's DP1. */
- int hpd = check_hdmi_hpd_status();
-
- gpio_set_level(GPIO_DP1_HPD, hpd);
- ccprints("HDMI HPD %d", hpd);
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- chipset_in_or_transitioning_to_state(CHIPSET_STATE_ON)
- && hpd);
-}
-DECLARE_DEFERRED(hdmi_hpd_handler);
-
-void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- /* Debounce for 2 msec. */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
-
-void hdmi_hpd_interrupt_v2(enum ioex_signal signal)
-{
- /* Debounce for 2 msec. */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
-
-/*****************************************************************************
- * Board suspend / resume
- */
-
-static void board_chipset_resume(void)
-{
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 1);
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 1);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 1);
- msleep(PI3HDX1204_POWER_ON_DELAY_MS);
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- check_hdmi_hpd_status());
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_suspend(void)
-{
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 0);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 0);
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 0);
- }
-
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************
- * Fan
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3200,
- .rpm_start = 3200,
- .rpm_max = 6000,
-};
-const struct fan_t fans[] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-int board_get_temp(int idx, int *temp_k)
-{
- int mv;
- int temp_c;
- enum adc_channel channel;
-
- /* idx is the sensor index set in board temp_sensors[] */
- switch (idx) {
- case TEMP_SENSOR_CHARGER:
- channel = ADC_TEMP_SENSOR_CHARGER;
- break;
- case TEMP_SENSOR_SOC:
- /* thermistor is not powered in G3 */
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- channel = ADC_TEMP_SENSOR_SOC;
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- mv = adc_read_channel(channel);
- if (mv < 0)
- return EC_ERROR_INVAL;
-
- temp_c = thermistor_linear_interpolate(mv, &thermistor_info);
- *temp_k = C_TO_K(temp_c);
- return EC_SUCCESS;
-}
-
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_SOC,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_thermistor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(95),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
-};
-
-const static struct ec_thermal_config thermal_soc = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(32),
- .temp_fan_max = C_TO_K(75),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-struct fan_step {
- int on;
- int off;
- int rpm;
-};
-
-/* Note: Do not make the fan on/off point equal to 0 or 100 */
-static const struct fan_step fan_table0[] = {
- {.on = 0, .off = 1, .rpm = 0},
- {.on = 9, .off = 1, .rpm = 3200},
- {.on = 21, .off = 7, .rpm = 3500},
- {.on = 28, .off = 16, .rpm = 3900},
- {.on = 37, .off = 26, .rpm = 4200},
- {.on = 47, .off = 35, .rpm = 4600},
- {.on = 56, .off = 44, .rpm = 5100},
- {.on = 72, .off = 60, .rpm = 5500},
-};
-/* All fan tables must have the same number of levels */
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_table0)
-
-static const struct fan_step *fan_table = fan_table0;
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_CHARGER] = thermal_thermistor;
- thermal_params[TEMP_SENSOR_SOC] = thermal_soc;
-}
-DECLARE_HOOK(HOOK_INIT, setup_fans, HOOK_PRIO_DEFAULT);
-
-int fan_percent_to_rpm(int fan, int pct)
-{
- static int current_level;
- static int previous_pct;
- int i;
- /*
- * Compare the pct and previous pct, we have the three paths :
- * 1. decreasing path. (check the off point)
- * 2. increasing path. (check the on point)
- * 3. invariant path. (return the current RPM)
- */
- if (pct < previous_pct) {
- for (i = current_level; i >= 0; i--) {
- if (pct <= fan_table[i].off)
- current_level = i - 1;
- else
- break;
- }
- } else if (pct > previous_pct) {
- for (i = current_level + 1; i < NUM_FAN_LEVELS; i++) {
- if (pct >= fan_table[i].on)
- current_level = i;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- previous_pct = pct;
-
- if (fan_table[current_level].rpm !=
- fan_get_rpm_target(FAN_CH(fan))) {
- cprints(CC_THERMAL, "Setting fan RPM to %d",
- fan_table[current_level].rpm);
- board_print_temps();
- }
-
- return fan_table[current_level].rpm;
-}
-
-__override void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Limit the input current to 95% negotiated limit,
- * to account for the charger chip margin.
- */
- charge_ma = charge_ma * 95 / 100;
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
diff --git a/board/ezkinil/board.h b/board/ezkinil/board.h
deleted file mode 100644
index e3ec10d456..0000000000
--- a/board/ezkinil/board.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_TREMBYLE
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_FAN_RPM_CUSTOM
-
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* Type C mux/retimer */
-#define CONFIG_USB_MUX_PS8743
-#define CONFIG_USBC_RETIMER_TUSB544
-#define TUSB544_I2C_ADDR_FLAGS1 0x0F
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_DP1_HPD GPIO_EC_DP1_HPD
-#define IOEX_HDMI_CONN_HPD_3V3_DB IOEX_USB_C1_PPC_ILIM_3A_EN
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_AP19B8M,
- BATTERY_AP18C7M,
- BATTERY_TYPE_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * EZKINIL_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: none
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- EZKINIL_MB_USBAC = 0,
-};
-
-/**
- * EZKINIL_DB_T_OPT1_USBC_HDMI
- * USB-A1 none
- * USB-C1 Speed: 5 Gbps
- * Retimer: TUSB544
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: PI3HDX1204
- * MST Hub: none
- *
- * EZKINIL_DB_T_OPT2_USBAC
- * USB-A1 Speed: 5 Gbps
- * Retimer: TUSB522
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8743
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: no
- * Retimer: none
- * MST Hub: none
- */
-enum ec_cfg_usb_db_type {
- EZKINIL_DB_T_OPT1_USBC_HDMI = 0,
- EZKINIL_DB_T_OPT2_USBAC = 1,
-};
-
-#include "cbi_ec_fw_config.h"
-
-#define HAS_USBA1_RETIMER_TUSB522 \
- (BIT(EZKINIL_DB_T_OPT2_USBAC))
-
-static inline bool ec_config_has_usba1_retimer_tusb522(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBA1_RETIMER_TUSB522);
-}
-
-#define HAS_USBC1_RETIMER_PS8743 \
- (BIT(EZKINIL_DB_T_OPT2_USBAC))
-
-static inline bool ec_config_has_usbc1_retimer_ps8743(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8743);
-}
-
-#define HAS_USBC1_RETIMER_TUSB544 \
- (BIT(EZKINIL_DB_T_OPT1_USBC_HDMI))
-
-static inline bool ec_config_has_usbc1_retimer_tusb544(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_TUSB544);
-}
-
-#define HAS_HDMI_RETIMER_PI3HDX1204 \
- (BIT(EZKINIL_DB_T_OPT1_USBC_HDMI))
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_RETIMER_PI3HDX1204);
-}
-
-#define HAS_HDMI_CONN_HPD \
- (BIT(EZKINIL_DB_T_OPT1_USBC_HDMI))
-
-static inline bool ec_config_has_hdmi_conn_hpd(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_CONN_HPD);
-}
-
-/* TODO: Fill in with GPIO values */
-#define PORT_TO_HPD(port) ((port == 0) \
- ? GPIO_USB_C0_HPD \
- : (ec_config_has_usbc1_retimer_ps8743()) \
- ? GPIO_DP1_HPD \
- : GPIO_DP2_HPD)
-
-extern const struct usb_mux usbc1_tusb544;
-extern const struct usb_mux usbc1_ps8818;
-extern const struct usb_mux usbc1_ps8743;
-extern struct usb_mux usbc1_amd_fp5_usb_mux;
-
-void motion_interrupt(enum gpio_signal signal);
-void hdmi_hpd_interrupt(enum gpio_signal signal);
-void hdmi_hpd_interrupt_v2(enum ioex_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/ezkinil/build.mk b/board/ezkinil/build.mk
deleted file mode 100644
index 1c0cbc4f63..0000000000
--- a/board/ezkinil/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/ezkinil/ec.tasklist b/board/ezkinil/ec.tasklist
deleted file mode 100644
index d9c1606eb2..0000000000
--- a/board/ezkinil/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/ezkinil/gpio.inc b/board/ezkinil/gpio.inc
deleted file mode 100644
index 8e75ec9975..0000000000
--- a/board/ezkinil/gpio.inc
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, motion_interrupt)
-GPIO_INT(DP1_HPD_EC_IN, PIN(7, 5), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 2), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(D, 3), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB_C0_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(EC_DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(DP2_HPD, PIN(C, 1), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_PPC_ILIM_3A_EN, EXPIN(USBC_PORT_C1, 1, 0), GPIO_INT_BOTH, hdmi_hpd_interrupt_v2) /* v3:C1 3A Current Limit Enable; v2:HDMI_CONN_HPD_3V3_DB */
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(USBC_PORT_C1, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_C0_FAULT_ODL, EXPIN(USBC_PORT_C0, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C0, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(USBC_PORT_C0, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(USBC_PORT_C0, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(EN_USB_A0_5V, EXPIN(USBC_PORT_C0, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(USBC_PORT_C0, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-IOEX(USB_C0_SBU_FLIP, EXPIN(USBC_PORT_C0, 1, 7), GPIO_OUT_LOW) /* C0 SBU Flip */
-
-IOEX(USB_A1_RETIMER_EN, EXPIN(USBC_PORT_C1, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(USB_C1_POWER_SWITCH_ID, EXPIN(USBC_PORT_C1, 0, 1), GPIO_INPUT) /* C1 PPC ID, 0: NX20P34, 1: AOZ1380 */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(USBC_PORT_C1, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-IOEX(HDMI_POWER_EN_DB, EXPIN(USBC_PORT_C1, 0, 3), GPIO_OUT_LOW) /* HDMI retimer power enable */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C1, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_MUX_RST_DB, EXPIN(USBC_PORT_C1, 1, 1), GPIO_OUT_LOW) /* C1 Mux Reset */
-IOEX(USB_C1_PPC_EN_L, EXPIN(USBC_PORT_C1, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(HDMI_DATA_EN_DB, EXPIN(USBC_PORT_C1, 1, 4), GPIO_OUT_LOW) /* HDMI Retimer Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(USBC_PORT_C1, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB, EXPIN(USBC_PORT_C1, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L, EXPIN(USBC_PORT_C1, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC_POWER_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID_POWER_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(FCH_I2C_AUDIO_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_AUDIO_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(C, BIT(4)), 0, MODULE_PWM, 0) /* PWM2 - EC_FAN_PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* TA1 - EC_FAN_SPEED */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/ezkinil/led.c b/board/ezkinil/led.c
deleted file mode 100644
index 7c425fa138..0000000000
--- a/board/ezkinil/led.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 100;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{LED_OFF, 1 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
-};
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_FULL_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
diff --git a/board/ezkinil/vif_override.xml b/board/ezkinil/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/ezkinil/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/felwinter/battery.c b/board/felwinter/battery.c
deleted file mode 100644
index e0c1213130..0000000000
--- a/board/felwinter/battery.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "compile_time_macros.h"
-
-/*
- * Battery info for all Brya battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C536] = {
- /* BQ40Z50 Fuel Gauge */
- .fuel_gauge = {
- .manuf_name = "AS3GXAE3jB",
- .device_name = "C536-49",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0054,
- .reg_mask = 0x0006, /* XDSG */
- .disconnect_val = 0x0006,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11800, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C536;
diff --git a/board/felwinter/board.c b/board/felwinter/board.c
deleted file mode 100644
index c4dfe8e530..0000000000
--- a/board/felwinter/board.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dso.h"
-#include "fw_config.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power_button.h"
-#include "power.h"
-#include "registers.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-__override void board_cbi_init(void)
-{
- config_usb_db_type();
-}
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_CHARGE_RAMP_SW
-
-/*
- * TODO(b/181508008): tune this threshold
- */
-
-#define BC12_MIN_VOLTAGE 4400
-
-/**
- * Return true if VBUS is too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- if (voltage == 0) {
- CPRINTS("%s: must be disconnected", __func__);
- return 1;
- }
-
- if (voltage < BC12_MIN_VOLTAGE) {
- CPRINTS("%s: port %d: vbus %d lower than %d", __func__,
- port, voltage, BC12_MIN_VOLTAGE);
- return 1;
- }
-
- return 0;
-}
-
-#endif /* CONFIG_CHARGE_RAMP_SW */
-
-enum battery_present battery_hw_present(void)
-{
- enum gpio_signal batt_pres;
- batt_pres = GPIO_EC_BATT_PRES_ODL;
-
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(batt_pres) ? BP_NO : BP_YES;
-}
-
-static void board_init(void)
-{
- if (ec_cfg_usb_db_type() == DB_USB4_NCT3807)
- db_update_usb4_config_from_config();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/felwinter/board.h b/board/felwinter/board.h
deleted file mode 100644
index d9fb63c789..0000000000
--- a/board/felwinter/board.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/*
- * Early brya boards are not set up for vivaldi
- */
-#undef CONFIG_KEYBOARD_VIVALDI
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-#define CONFIG_MP2964
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-#define GPIO_PWR_LED_WHITE_L GPIO_LED_1_L
-#define GPIO_BAT_LED_AMBER_L GPIO_LED_3_L
-#define GPIO_BAT_LED_WHITE_L GPIO_LED_4_L
-
-/* Sensors */
-#define CONFIG_ACCELGYRO_LSM6DSO /* Base accel */
-#define CONFIG_ACCEL_LSM6DSO_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-/* Lid accel */
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_LIS2DW_AS_BASE
-#define CONFIG_ACCEL_LIS2DW12_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-/* Sensor console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_NCT38XX
-#define CONFIG_IO_EXPANDER_PORT_COUNT 2
-
-#define CONFIG_USB_PD_TCPM_PS8815
-#define CONFIG_USBC_RETIMER_INTEL_BB
-
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_NX20P3483
-
-/* TODO: b/177608416 - measure and check these values on brya */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* I2C Bus Configuration */
-
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-
-#define I2C_PORT_USB_C2_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C2_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C2_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C2_MUX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1
-
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define I2C_ADDR_MP2964_FLAGS 0x20
-
-/*
- *
- */
-#define USBC_PORT_BB_RETIMER_I2C_ADDR 0x57
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-/* Retimer */
-#define CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/*
- * TODO(b/181271666): no fan control loop until sensors are tuned
- */
-/* #define CONFIG_FANS FAN_CH_COUNT */
-
-/* Charger defines */
-#define CONFIG_CHARGER_BQ25720
-#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR_SOC,
- ADC_TEMP_SENSOR_2_FAN,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR_SOC,
- TEMP_SENSOR_2_FAN,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum ioex_port {
- IOEX_C2_NCT38XX = 0,
- IOEX_C1_NCT38XX,
- IOEX_PORT_COUNT
-};
-
-enum battery_type {
- BATTERY_C536,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/felwinter/build.mk b/board/felwinter/build.mk
deleted file mode 100644
index df453187bf..0000000000
--- a/board/felwinter/build.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Brya board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=usbc_config.o
diff --git a/board/felwinter/charger.c b/board/felwinter/charger.c
deleted file mode 120000
index 476ce97df2..0000000000
--- a/board/felwinter/charger.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/brya/charger_bq25720.c \ No newline at end of file
diff --git a/board/felwinter/ec.tasklist b/board/felwinter/ec.tasklist
deleted file mode 100644
index 290c17c748..0000000000
--- a/board/felwinter/ec.tasklist
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/felwinter/fans.c b/board/felwinter/fans.c
deleted file mode 100644
index d966056331..0000000000
--- a/board/felwinter/fans.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * TOOD(b/180681346): need to update for real fan
- *
- * Prototype fan spins at about 7200 RPM at 100% PWM.
- * Set minimum at around 30% PWM.
- */
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 7200,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-#ifndef CONFIG_FANS
-
-/*
- * TODO(b/181271666): use static fan speeds until fan and sensors are
- * tuned. for now, use:
- *
- * AP off: 33%
- * AP on: 100%
- */
-
-static void fan_slow(void)
-{
- const int duty_pct = 33;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-static void fan_max(void)
-{
- const int duty_pct = 100;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-DECLARE_HOOK(HOOK_INIT, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_RESET, fan_max, HOOK_PRIO_FIRST);
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, fan_max, HOOK_PRIO_DEFAULT);
-
-#endif /* CONFIG_FANS */
diff --git a/board/felwinter/fw_config.c b/board/felwinter/fw_config.c
deleted file mode 100644
index 7afdae3837..0000000000
--- a/board/felwinter/fw_config.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union brya_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for brya if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union brya_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PS8815,
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Brya FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-}
-
-union brya_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void)
-{
- return fw_config.usb_db;
-}
diff --git a/board/felwinter/fw_config.h b/board/felwinter/fw_config.h
deleted file mode 100644
index f9de98a93f..0000000000
--- a/board/felwinter/fw_config.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_BRYA_FW_CONFIG_H_
-#define __BOARD_BRYA_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for felwinter board.
- *
- * Source of truth is the project/brya/felwinter/config.star configuration file.
- */
-
-enum ec_cfg_usb_db_type {
- DB_USB3_PS8815 = 1,
- DB_USB4_NCT3807 = 2
-};
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-union brya_cbi_fw_config {
- struct {
- enum ec_cfg_usb_db_type usb_db : 4;
- uint32_t sd_db : 2;
- uint32_t lte_db : 1;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union brya_cbi_fw_config get_fw_config(void);
-
-/**
- * Get the USB daughter board type from FW_CONFIG.
- *
- * @return the USB daughter board type.
- */
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void);
-
-#endif /* __BOARD_BRYA_FW_CONFIG_H_ */
diff --git a/board/felwinter/gpio.inc b/board/felwinter/gpio.inc
deleted file mode 100644
index ba7116847a..0000000000
--- a/board/felwinter/gpio.inc
+++ /dev/null
@@ -1,151 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_ACCEL_INT_R_L, PIN(8, 1), GPIO_SEL_1P8V | GPIO_INT_FALLING, lis2dw12_interrupt)
-GPIO_INT(EC_IMU_INT_R_L, PIN(5, 6), GPIO_SEL_1P8V | GPIO_INT_FALLING, lsm6dso_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(USB_C2_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(5, 0), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C2_BC12_INT_ODL, PIN(8, 3), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C2_PPC_INT_ODL, PIN(7, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C2_RT_INT_ODL, PIN(4, 1), GPIO_INT_FALLING, retimer_interrupt)
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(7, 3), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_KB_BL_EN_L, PIN(8, 6), GPIO_OUT_HIGH)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(4, 3), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C0_C2_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RST_ODL, PIN(9, 6), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_INT_ODL, PIN(A, 0), GPIO_INPUT)
-GPIO(USB_C1_RT_RST_R_ODL, PIN(0, 2), GPIO_ODR_LOW)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-
-/* LED */
-GPIO(LED_4_L, PIN(6, 0), GPIO_OUT_HIGH) /* battery led white */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH) /* battery led amber */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* power led white */
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, GPIO_SEL_1P8V) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(6, 6)) /* GPIO66 */
-UNUSED(PIN(C, 3)) /* GPIOC3 */
-UNUSED(PIN(E, 1)) /* GPIOE1 */
-UNUSED(PIN(D, 4)) /* GPIOD4 */
-UNUSED(PIN(C, 6)) /* GPIOC6 */
-UNUSED(PIN(6, 2)) /* GPIO62 */
-UNUSED(PIN(B, 1)) /* GPIOB1 */
-
-/* Pre-configured PSL balls: J8 K6 */
-
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-
-/* GPIO02_P2 to PU */
-/* GPIO03_P2 to PU */
-
-IOEX(USB_C1_OC_ODL, EXPIN(IOEX_C1_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-
-IOEX(USB_C2_RT_RST_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 2), GPIO_ODR_LOW)
-IOEX(USB_C2_OC_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C2_FRS_EN, EXPIN(IOEX_C2_NCT38XX, 0, 6), GPIO_LOW)
-/* GPIO07_P2 to PU */
diff --git a/board/felwinter/i2c.c b/board/felwinter/i2c.c
deleted file mode 100644
index b54cc98de8..0000000000
--- a/board/felwinter/i2c.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C0 */
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C_SENSOR_SCL,
- .sda = GPIO_EC_I2C_SENSOR_SDA,
- },
- {
- /* I2C1 */
- .name = "tcpc2",
- .port = I2C_PORT_USB_C2_TCPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc2",
- .port = I2C_PORT_USB_C2_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SDA,
- },
- {
- /* I2C3 */
- .name = "retimer2",
- .port = I2C_PORT_USB_C2_MUX,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_RT_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_RT_SDA,
- },
- {
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C6 */
- .name = "ppc1",
- .port = I2C_PORT_USB_C1_PPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_C1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/felwinter/keyboard.c b/board/felwinter/keyboard.c
deleted file mode 100644
index a9f033130d..0000000000
--- a/board/felwinter/keyboard.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/felwinter/led.c b/board/felwinter/led.c
deleted file mode 100644
index 3b7e649470..0000000000
--- a/board/felwinter/led.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for felwinter
- */
-
-#include "chipset.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "system.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 94;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/felwinter/pwm.c b/board/felwinter/pwm.c
deleted file mode 100644
index 985305449b..0000000000
--- a/board/felwinter/pwm.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_pwm_init(void)
-{
- pwm_enable(PWM_CH_KBLIGHT, 1);
- pwm_set_duty(PWM_CH_KBLIGHT, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT);
diff --git a/board/felwinter/sensors.c b/board/felwinter/sensors.c
deleted file mode 100644
index 87025c017e..0000000000
--- a/board/felwinter/sensors.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "accelgyro.h"
-#include "adc_chip.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dso.h"
-#include "hooks.h"
-#include "motion_sense.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR_SOC] = {
- .name = "TEMP_DDR_SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_FAN] = {
- .name = "TEMP_FAN",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-K_MUTEX_DEFINE(g_lid_accel_mutex);
-K_MUTEX_DEFINE(g_base_accel_mutex);
-static struct stprivate_data g_lis2dw12_data;
-static struct lsm6dso_data lsm6dso_data;
-
-/* TODO(b/184779333): calibrate the orientation matrix on later board stage */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* TODO(b/184779743): verify orientation matrix */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DW12,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_lis2dw12_data,
- .int_signal = GPIO_EC_ACCEL_INT_R_L,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DW12_ADDR0,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .rot_standard_ref = &lid_standard_ref, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSO_ST_DATA(lsm6dso_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSO_ST_DATA(lsm6dso_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void baseboard_sensors_init(void)
-{
- /* Enable gpio interrupt for lid accel sensor */
- gpio_enable_interrupt(GPIO_EC_ACCEL_INT_R_L);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR_SOC] = {
- .name = "DDR and SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR_SOC
- },
- [TEMP_SENSOR_2_FAN] = {
- .name = "FAN",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_FAN
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-static const struct ec_thermal_config thermal_fan = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/* this should really be "const" */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_2_FAN] = thermal_fan,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/felwinter/usbc_config.c b/board/felwinter/usbc_config.c
deleted file mode 100644
index a301826c6a..0000000000
--- a/board/felwinter/usbc_config.c
+++ /dev/null
@@ -1,409 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/tcpm/ps8xxx_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C2] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C2_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_NO_DEBUG_ACC_CONTROL,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-struct tcpc_config_t tcpc_config_c1 = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_NO_DEBUG_ACC_CONTROL,
-};
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C2_PPC,
- .i2c_addr_flags = SYV682X_ADDR2_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- /* Compatible with Silicon Mitus SM536A0 */
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = NX20P3483_ADDR2_FLAGS,
- .drv = &nx20p348x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-struct ppc_config_t ppc_chips_c1 = {
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-static const struct usb_mux usbc2_tcss_usb_mux = {
- .usb_port = USBC_PORT_C2,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-static const struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set
- * to the virtual_usb_mux_driver so the AP gets notified of mux changes
- * and updates the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C2] = {
- .usb_port = USBC_PORT_C2,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C2_MUX,
- .i2c_addr_flags = USBC_PORT_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc2_tcss_usb_mux,
- },
- [USBC_PORT_C1] = {
- /* PS8815 DB */
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct usb_mux usb_muxes_c1 = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C1_MUX,
- .i2c_addr_flags = USBC_PORT_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc1_tcss_usb_mux,
-};
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C2_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_1_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/*
- * USB C0 and C2 uses burnside bridge chips and have their reset
- * controlled by their respective TCPC chips acting as GPIO expanders.
- *
- * ioex_init() is normally called before we take the TCPCs out of
- * reset, so we need to start in disabled mode, then explicitly
- * call ioex_init().
- */
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C1_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C1_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_C2_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C2_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-void config_usb_db_type(void)
-{
- enum ec_cfg_usb_db_type db_type = ec_cfg_usb_db_type();
-
- /*
- * TODO(b/180434685): implement multiple DB types
- */
-
- CPRINTS("Configured USB DB type number is %d", db_type);
-}
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- enum ioex_signal rst_signal;
-
- if (me->usb_port == USBC_PORT_C1)
- rst_signal = GPIO_USB_C1_RT_RST_R_ODL;
- else if (me->usb_port == USBC_PORT_C2)
- rst_signal = IOEX_USB_C2_RT_RST_ODL;
- else
- return EC_ERROR_INVAL;
-
- /*
- * We do not have a load switch for the burnside bridge chips,
- * so we only need to sequence reset.
- */
-
- if (enable) {
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- ioex_set_level(rst_signal, 1);
- /*
- * Allow 1ms time for the retimer to power up lc_domain
- * which powers I2C controller within retimer
- */
- msleep(1);
- } else {
- ioex_set_level(rst_signal, 0);
- msleep(1);
- }
- return EC_SUCCESS;
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b/179648104): figure out correct timing
- */
-
- gpio_set_level(GPIO_USB_C0_C2_TCPC_RST_ODL, 0);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 0);
-
- if (ec_cfg_usb_db_type() == DB_USB4_NCT3807)
- gpio_set_level(GPIO_USB_C1_RST_ODL, 0);
-
-
- /*
- * delay for power-on to reset-off and min. assertion time
- */
-
- msleep(20);
-
- gpio_set_level(GPIO_USB_C0_C2_TCPC_RST_ODL, 1);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 1);
-
- if (ec_cfg_usb_db_type() == DB_USB4_NCT3807)
- gpio_set_level(GPIO_USB_C1_RST_ODL, 1);
-
- /* wait for chips to come up */
-
- msleep(50);
-}
-
-static void enable_ioex(int ioex)
-{
- ioex_config[ioex].flags &= ~IOEX_FLAGS_DISABLED;
- ioex_init(ioex);
-}
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
-
- /*
- * These IO expander pins are implemented using the
- * C0/C2 TCPC, so they must be set up after the TCPC has
- * been taken out of reset.
- */
- if (ec_cfg_usb_db_type() == DB_USB4_NCT3807)
- enable_ioex(IOEX_C1_NCT38XX);
- enable_ioex(IOEX_C2_NCT38XX);
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C2_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C2)
- return gpio_get_level(GPIO_USB_C2_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C1)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- return 0;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C2_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C2);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C2_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C1_PPC_INT_ODL:
- switch (ec_cfg_usb_db_type()) {
- case DB_USB3_PS8815:
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
- case DB_USB4_NCT3807:
- syv682x_interrupt(USBC_PORT_C1);
- break;
- }
- break;
- case GPIO_USB_C2_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C2);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C2;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- if ((port == USBC_PORT_C2) ||
- ((port == USBC_PORT_C1) &&
- (ec_cfg_usb_db_type() == DB_USB4_NCT3807)))
- return true;
-
- return false;
-}
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- if (!board_is_tbt_usb4_port(port))
- return TBT_SS_RES_0;
-
- return TBT_SS_TBT_GEN3;
-}
-
-void db_update_usb4_config_from_config(void)
-{
- tcpc_config[USBC_PORT_C1] = tcpc_config_c1;
- ppc_chips[USBC_PORT_C1] = ppc_chips_c1;
- usb_muxes[USBC_PORT_C1] = usb_muxes_c1;
-}
diff --git a/board/felwinter/usbc_config.h b/board/felwinter/usbc_config.h
deleted file mode 100644
index cea53dcaa2..0000000000
--- a/board/felwinter/usbc_config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-enum usbc_port {
- USBC_PORT_C2 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void config_usb_db_type(void);
-void db_update_usb4_config_from_config(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/felwinter/vif_override.xml b/board/felwinter/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/felwinter/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/fennel/battery.c b/board/fennel/battery.c
deleted file mode 100644
index cfd17a136f..0000000000
--- a/board/fennel/battery.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* LGC L20L3PG2, Gauge IC: RAJ240047A20DNP. */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L20L3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L20D3PG2, Gauge IC: BQ40Z697A. */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L20D3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SIMPLO L20M3PG2, Gauge IC: BQ40Z697A. */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- },
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -40,
- .discharging_max_c = 73,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/fennel/board.c b/board/fennel/board.c
deleted file mode 100644
index 0706813592..0000000000
--- a/board/fennel/board.c
+++ /dev/null
@@ -1,683 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm42607.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "keyboard_backlight.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- /* Pull SPI_NSS pin to low to prevent a leakage. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_NSS, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_NSS, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(-1) }
-};
-
-/* sensor private data */
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm42607_data;
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_ICM426XX = 2,
-};
-
-static enum base_accelgyro_type base_accelgyro_config;
-
-struct motion_sensor_t icm42607_base_accel = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm42607_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm42607_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = NULL,
- .min_frequency = ICM42607_ACCEL_MIN_FREQ,
- .max_frequency = ICM42607_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm42607_base_gyro = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm42607_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm42607_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = ICM42607_GYRO_MIN_FREQ,
- .max_frequency = ICM42607_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_detect_motionsensor(void)
-{
- int ret;
- int val;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (base_accelgyro_config != BASE_GYRO_NONE)
- return;
- /* Check base accelgyro chip */
- ret = icm_read8(&icm42607_base_accel,
- ICM42607_REG_WHO_AM_I, &val);
- if (ret)
- ccprints("Get ICM fail.");
- if (val == ICM42607_CHIP_ICM42607P) {
- motion_sensors[BASE_ACCEL] = icm42607_base_accel;
- motion_sensors[BASE_GYRO] = icm42607_base_gyro;
- }
- base_accelgyro_config = (val == ICM42607_CHIP_ICM42607P)
- ? BASE_GYRO_ICM426XX : BASE_GYRO_BMI160;
- ccprints("BASE Accelgyro: %s", (val == ICM42607_CHIP_ICM42607P)
- ? "ICM42607" : "BMI160");
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-/*
- * board_spi_enable() will be called in the board_init() when sysjump to rw
- * the board_init() is DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT)
- * the board_detect_motionsensor() reads data via sensor SPI
- * so the priority of board_detect_motionsensor should be HOOK_PRIO_DEFAULT+1
- */
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_DEFAULT + 1);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_accelgyro_config) {
- case BASE_GYRO_ICM426XX:
- icm42607_interrupt(signal);
- break;
- case BASE_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-const struct it8801_pwm_t it8801_pwm_channels[] = {
- [IT8801_PWM_CH_KBLIGHT] = {.index = 4},
-};
-
-void board_kblight_init(void)
-{
- kblight_register(&kblight_it8801);
-}
-
-bool board_has_kb_backlight(void)
-{
- /* Default enable keyboard backlight */
- return true;
-}
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Battery functions */
-#define SB_SMARTCHARGE 0x26
-/* Quick charge enable bit */
-#define SMART_QUICK_CHARGE 0x02
-/* Quick charge support bit */
-#define MODE_QUICK_CHARGE_SUPPORT 0x01
-
-static void sb_quick_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_SMARTCHARGE, &val);
- if (rv || !(val & MODE_QUICK_CHARGE_SUPPORT))
- return;
-
- if (enable)
- val |= SMART_QUICK_CHARGE;
- else
- val &= ~SMART_QUICK_CHARGE;
-
- sb_write(SB_SMARTCHARGE, val);
-}
-
-/* Called on AP S0iX -> S0 transition */
-static void board_chipset_resume(void)
-{
-#ifndef VARIANT_KUKUI_NO_SENSORS
- if (board_has_kb_backlight())
- ioex_set_level(IOEX_KB_BL_EN, 1);
-#endif
-
- /* Normal charge mode */
- sb_quick_charge_mode(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S0iX transition */
-static void board_chipset_suspend(void)
-{
-#ifndef VARIANT_KUKUI_NO_SENSORS
- if (board_has_kb_backlight())
- ioex_set_level(IOEX_KB_BL_EN, 0);
-#endif
-
- /* Quick charge mode */
- sb_quick_charge_mode(1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return board_get_version() == 1 ? 2 : 1;
-}
-
-int board_get_battery_i2c(void)
-{
- return board_get_version() >= 1 ? 2 : 1;
-}
-
-#ifdef SECTION_IS_RW
-static int it8801_get_target_channel(enum pwm_channel *channel,
- int type, int index)
-{
- switch (type) {
- case EC_PWM_TYPE_GENERIC:
- *channel = index;
- break;
- default:
- return -1;
- }
-
- return *channel >= 1;
-}
-
-static enum ec_status
-host_command_pwm_set_duty(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pwm_set_duty *p = args->params;
- enum pwm_channel channel;
- uint16_t duty;
-
- if (it8801_get_target_channel(&channel, p->pwm_type, p->index))
- return EC_RES_INVALID_PARAM;
-
- duty = (uint32_t) p->duty * 255 / 65535;
- it8801_pwm_set_raw_duty(channel, duty);
- it8801_pwm_enable(channel, p->duty > 0);
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PWM_SET_DUTY,
- host_command_pwm_set_duty,
- EC_VER_MASK(0));
-
-static enum ec_status
-host_command_pwm_get_duty(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pwm_get_duty *p = args->params;
- struct ec_response_pwm_get_duty *r = args->response;
-
- enum pwm_channel channel;
-
- if (it8801_get_target_channel(&channel, p->pwm_type, p->index))
- return EC_RES_INVALID_PARAM;
-
- r->duty = (uint32_t) it8801_pwm_get_raw_duty(channel) * 65535 / 255;
- args->response_size = sizeof(*r);
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PWM_GET_DUTY,
- host_command_pwm_get_duty,
- EC_VER_MASK(0));
-#endif
diff --git a/board/fennel/board.h b/board/fennel/board.h
deleted file mode 100644
index 697480770c..0000000000
--- a/board/fennel/board.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Fennel */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-#undef CONFIG_CMD_MFALLOW
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-#undef CONFIG_SYSTEM_UNLOCKED
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#undef I2C_BITBANG_PORT_COUNT
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#define CONFIG_LED_ONOFF_STATES
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM42607 /* Base accel second source*/
-#define CONFIG_ACCELGYRO_ICM42607_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define CONFIG_ALS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#ifdef SECTION_IS_RW
-#define CONFIG_IO_EXPANDER_IT8801_PWM
-#define CONFIG_KEYBOARD_BACKLIGHT
-#endif
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_CHARGER board_get_charger_i2c()
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_BATTERY 2
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_SMP,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- IT8801_PWM_CH_KBLIGHT = 0,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-void motion_interrupt(enum gpio_signal signal);
-
-/* returns the i2c port number of charger/battery */
-int board_get_charger_i2c(void);
-int board_get_battery_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/fennel/build.mk b/board/fennel/build.mk
deleted file mode 100644
index a6e1c010d7..0000000000
--- a/board/fennel/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/fennel/ec.tasklist b/board/fennel/ec.tasklist
deleted file mode 100644
index c1330b86f8..0000000000
--- a/board/fennel/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/fennel/gpio.inc b/board/fennel/gpio.inc
deleted file mode 100644
index 29518fbc4e..0000000000
--- a/board/fennel/gpio.inc
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- motion_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-IOEX(BAT_LED_GREEN_FULL_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
-IOEX(BAT_LED_RED_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-IOEX(KB_BL_EN, EXPIN(0, 0, 7), GPIO_OUT_LOW)
-
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-
-
-/* SPI1 */
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* SPI2 */
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/fennel/led.c b/board/fennel/led.c
deleted file mode 100644
index 7d95c4807e..0000000000
--- a/board/fennel/led.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Fennel
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_GREEN:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_RED:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_ON_LVL);
- break;
- default:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/fennel/vif_override.xml b/board/fennel/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/fennel/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/fizz/board.c b/board/fizz/board.c
deleted file mode 100644
index 5b830b9150..0000000000
--- a/board/fizz/board.c
+++ /dev/null
@@ -1,834 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Fizz board-specific configuration */
-
-#include "adc.h"
-#include "als.h"
-#include "battery.h"
-#include "bd99992gw.h"
-#include "board_config.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/pmic_tps650x30.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "espi.h"
-#include "extpower.h"
-#include "espi.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "math_util.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static uint16_t board_version;
-static uint8_t oem;
-static uint8_t sku;
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#define ADP_DEBOUNCE_MS 1000 /* Debounce time for BJ plug/unplug */
-/*
- * ADP_IN pin state. It's initialized to 1 (=unplugged) because the IRQ won't
- * be triggered if BJ is the power source.
- */
-static int adp_in_state = 1;
-
-static void adp_in_deferred(void);
-DECLARE_DEFERRED(adp_in_deferred);
-static void adp_in_deferred(void)
-{
- struct charge_port_info pi = { 0 };
- int level = gpio_get_level(GPIO_ADP_IN_L);
-
- /* Debounce */
- if (level == adp_in_state)
- return;
- if (!level) {
- /* BJ is inserted but the voltage isn't effective because PU3
- * is still disabled. */
- pi.voltage = 19500;
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- /*
- * It doesn't matter what we set here because we'll
- * brown out anyway when charge_manager switches
- * input.
- */
- pi.current = 3330;
- }
- charge_manager_update_charge(CHARGE_SUPPLIER_DEDICATED,
- DEDICATED_CHARGE_PORT, &pi);
- /*
- * Explicitly notifies the host that BJ is plugged or unplugged
- * (when running on a type-c adapter).
- */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
- adp_in_state = level;
-}
-
-/* IRQ for BJ plug/unplug. It shouldn't be called if BJ is the power source. */
-void adp_in(enum gpio_signal signal)
-{
- if (adp_in_state == gpio_get_level(GPIO_ADP_IN_L))
- return;
- hook_call_deferred(&adp_in_deferred_data, ADP_DEBOUNCE_MS * MSEC);
-}
-
-void vbus0_evt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_PD_C0);
-}
-
-#include "gpio_list.h"
-
-/* Hibernate wake configuration */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS] = {"VBUS", NPCX_ADC_CH2, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_FAN_PWR_EN,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 5600,
-};
-
-const struct fan_rpm fan_rpm_1 = {
- .rpm_min = 2800,
- .rpm_start = 2800,
- .rpm_max = 5600,
-};
-
-struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc", NPCX_I2C_PORT0_0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
- {"eeprom", NPCX_I2C_PORT0_1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
- {"charger", NPCX_I2C_PORT1, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"pmic", NPCX_I2C_PORT2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", NPCX_I2C_PORT3, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = I2C_ADDR_TCPC0_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-static int ps8751_tune_mux(const struct usb_mux *me)
-{
- /* 0x98 sets lower EQ of DP port (4.5db) */
- mux_write(me, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
- return EC_SUCCESS;
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .board_init = &ps8751_tune_mux,
- }
-};
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_USB1_ENABLE,
- GPIO_USB2_ENABLE,
- GPIO_USB3_ENABLE,
- GPIO_USB4_ENABLE,
- GPIO_USB5_ENABLE,
-};
-
-void board_reset_pd_mcu(void)
-{
- gpio_set_level(GPIO_USB_C0_PD_RST_ODL, 0);
- msleep(1);
- gpio_set_level(GPIO_USB_C0_PD_RST_ODL, 1);
-}
-
-void board_tcpc_init(void)
-{
- int reg;
-
- /* This needs to be executed only once per boot. It could be run by RO
- * if we boot in recovery mode. It could be run by RW if we boot in
- * normal or dev mode. Note EFS makes RO jump to RW before HOOK_INIT. */
- board_reset_pd_mcu();
-
- /*
- * Wake up PS8751. If PS8751 remains in low power mode after sysjump,
- * TCPM_INIT will fail due to not able to access PS8751.
- * Note PS8751 A3 will wake on any I2C access.
- */
- i2c_read8(I2C_PORT_TCPC0, I2C_ADDR_TCPC0_FLAGS, 0xA0, &reg);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- return status;
-}
-
-/*
- * TMP431 has one local and one remote sensor.
- *
- * Temperature sensors data; must be in same order as enum temp_sensor_id.
- * Sensor index and name must match those present in coreboot:
- * src/mainboard/google/${board}/acpi/dptf.asl
- */
-const struct temp_sensor_t temp_sensors[] = {
- {"TMP431_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_LOCAL},
- {"TMP431_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE1},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Thermal limits for each temp sensor. All temps are in degrees K. Must be in
- * same order as enum temp_sensor_id. To always ignore any temp, use 0.
- */
-struct ec_thermal_config thermal_params[] = {
- /* {Twarn, Thigh, Thalt}, <on>
- * {Twarn, Thigh, X }, <off>
- * fan_off, fan_max
- */
- {{0, C_TO_K(80), C_TO_K(81)}, {0, C_TO_K(78), 0},
- C_TO_K(4), C_TO_K(76)}, /* TMP431_Internal */
- {{0, 0, 0}, {0, 0, 0}, 0, 0}, /* TMP431_Sensor_1 */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Initialize PMIC */
-#define I2C_PMIC_READ(reg, data) \
- i2c_read8(I2C_PORT_PMIC, TPS650X30_I2C_ADDR1_FLAGS, (reg), (data))
-
-#define I2C_PMIC_WRITE(reg, data) \
- i2c_write8(I2C_PORT_PMIC, TPS650X30_I2C_ADDR1_FLAGS, (reg), (data))
-
-static void board_pmic_init(void)
-{
- int err;
- int error_count = 0;
- static uint8_t pmic_initialized = 0;
-
- if (pmic_initialized)
- return;
-
- /* Read vendor ID */
- while (1) {
- int data;
- err = I2C_PMIC_READ(TPS650X30_REG_VENDORID, &data);
- if (!err && data == TPS650X30_VENDOR_ID)
- break;
- else if (error_count > 5)
- goto pmic_error;
- error_count++;
- }
-
- /*
- * VCCIOCNT register setting
- * [6] : CSDECAYEN
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_VCCIOCNT, 0x4A);
- if (err)
- goto pmic_error;
-
- /*
- * VRMODECTRL:
- * [4] : VCCIOLPM clear
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_VRMODECTRL, 0x2F);
- if (err)
- goto pmic_error;
-
- /*
- * PGMASK1 : Exclude VCCIO from Power Good Tree
- * [7] : MVCCIOPG clear
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PGMASK1, 0x80);
- if (err)
- goto pmic_error;
-
- /*
- * PWFAULT_MASK1 Register settings
- * [7] : 1b V4 Power Fault Masked
- * [4] : 1b V7 Power Fault Masked
- * [2] : 1b V9 Power Fault Masked
- * [0] : 1b V13 Power Fault Masked
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PWFAULT_MASK1, 0x95);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 4 register configuration
- * [7:6] : 00b Reserved
- * [5:4] : 01b V3.3S discharge resistance (V6S), 100 Ohm
- * [3:2] : 01b V18S discharge resistance (V8S), 100 Ohm
- * [1:0] : 01b V100S discharge resistance (V11S), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT4, 0x15);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 3 register configuration
- * [7:6] : 01b V1.8U_2.5U discharge resistance (V9), 100 Ohm
- * [5:4] : 01b V1.2U discharge resistance (V10), 100 Ohm
- * [3:2] : 01b V100A discharge resistance (V11), 100 Ohm
- * [1:0] : 01b V085A discharge resistance (V12), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT3, 0x55);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 2 register configuration
- * [7:6] : 01b V5ADS3 discharge resistance (V5), 100 Ohm
- * [5:4] : 01b V33A_DSW discharge resistance (V6), 100 Ohm
- * [3:2] : 01b V33PCH discharge resistance (V7), 100 Ohm
- * [1:0] : 01b V18A discharge resistance (V8), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT2, 0x55);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 1 register configuration
- * [7:2] : 00b Reserved
- * [1:0] : 01b VCCIO discharge resistance (V4), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT1, 0x01);
- if (err)
- goto pmic_error;
-
- /*
- * Increase Voltage
- * [7:0] : 0x2a default
- * [5:4] : 10b default
- * [5:4] : 01b 5.1V (0x1a)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_V5ADS3CNT, 0x1a);
- if (err)
- goto pmic_error;
-
- /*
- * PBCONFIG Register configuration
- * [7] : 1b Power button debounce, 0ms (no debounce)
- * [6] : 0b Power button reset timer logic, no action (default)
- * [5:0] : 011111b Force an Emergency reset time, 31s (default)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PBCONFIG, 0x9F);
- if (err)
- goto pmic_error;
-
- /*
- * V3.3A_DSW (VR3) control. Default: 0x2A.
- * [7:6] : 00b Disabled
- * [5:4] : 00b Vnom + 3%. (default: 10b 0%)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_V33ADSWCNT, 0x0A);
- if (err)
- goto pmic_error;
-
- /*
- * V100ACNT Register Field Description. Default: 0x2A
- * [1:0] : 11b Forced PWM Operation.
- * [5:4] : 01b Output Voltage Select Vnom (1V)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_V100ACNT, 0x1B);
- if (err)
- goto pmic_error;
-
- CPRINTS("PMIC init done");
- pmic_initialized = 1;
- return;
-
-pmic_error:
- CPRINTS("PMIC init failed");
-}
-
-void chipset_pre_init_callback(void)
-{
- board_pmic_init();
-}
-
-/**
- * Notify the AC presence GPIO to the PCH.
- */
-static void board_extpower(void)
-{
- gpio_set_level(GPIO_PCH_ACPRESENT, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/* Mapping to the old schematics */
-#define GPIO_U42_P GPIO_TYPE_C_60W
-#define GPIO_U22_C GPIO_TYPE_C_65W
-
-/*
- * Board version 2.1 or before uses a different current monitoring circuitry.
- */
-static void set_charge_limit(int charge_ma)
-{
- /*
- * We have two FETs connected to two registers: PR257 & PR258.
- * These control thresholds of the over current monitoring system.
- *
- * PR257, PR258
- * For 4.62A (90W BJ adapter), on, off
- * For 3.33A (65W BJ adapter), off, on
- * For 3.00A (Type-C adapter), off, off
- *
- * The over current monitoring system doesn't support less than 3A
- * (e.g. 2.25A, 2.00A). These current most likely won't be enough to
- * power the system. However, if they're needed, EC can monitor
- * PMON_PSYS and trigger H_PROCHOT by itself.
- */
- if (charge_ma >= 4620) {
- gpio_set_level(GPIO_U42_P, 1);
- gpio_set_level(GPIO_U22_C, 0);
- } else if (charge_ma >= 3330) {
- gpio_set_level(GPIO_U42_P, 0);
- gpio_set_level(GPIO_U22_C, 1);
- } else if (charge_ma >= 3000) {
- gpio_set_level(GPIO_U42_P, 0);
- gpio_set_level(GPIO_U22_C, 0);
- } else {
- /* TODO(http://crosbug.com/p/65013352) */
- CPRINTS("Current %dmA not supported", charge_ma);
- }
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int p87w = 0, p65w = 0, p60w = 0;
-
- /*
- * Turn on/off power shortage alert. Performs the same check as
- * system_can_boot_ap(). It's repeated here because charge_manager
- * hasn't updated charge_current/voltage when board_set_charge_limit
- * is called.
- */
- led_alert(charge_ma * charge_mv <
- CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON * 1000);
-
- /*
- * In terms of timing, this should always work because
- * HOOK_PRIO_CHARGE_MANAGER_INIT is notified after HOOK_PRIO_INIT_I2C.
- * If CBI isn't initialized or contains invalid data, we assume it's
- * a new board.
- */
- if (0 < board_version && board_version < 0x0202)
- return set_charge_limit(charge_ma);
- /*
- * We have three FETs connected to three registers: PR257, PR258,
- * PR7824. These control the thresholds of the current monitoring
- * system.
- *
- * PR257 PR7824 PR258
- * For BJ (65W or 90W) off off off
- * For 4.35A (87W) on off off
- * For 3.25A (65W) off off on
- * For 3.00A (60W) off on off
- *
- * The system power consumption is capped by PR259, which is stuffed
- * differently depending on the SKU (65W v.s. 90W or U42 v.s. U22).
- * So, we only need to monitor type-c adapters. For example:
- *
- * a 90W system powered by 65W type-c charger
- * b 65W system powered by 60W type-c charger
- * c 65W system powered by 87W type-c charger
- *
- * In a case such as (c), we actually do not need to monitor the current
- * because the max is capped by PR259.
- *
- * AP is expected to read type-c adapter wattage from EC and control
- * power consumption to avoid over-current or system browns out.
- *
- */
- if (supplier != CHARGE_SUPPLIER_DEDICATED) {
- /* Apple 87W charger offers 4.3A @20V. */
- if (charge_ma >= 4300) {
- p87w = 1;
- } else if (charge_ma >= 3250) {
- p65w = 1;
- } else if (charge_ma >= 3000) {
- p60w = 1;
- } else {
- /*
- * TODO:http://crosbug.com/p/65013352.
- * The current monitoring system doesn't support lower
- * current. These currents are most likely not enough to
- * power the system. However, if they're needed, EC can
- * monitor PMON_PSYS and trigger H_PROCHOT by itself.
- */
- p60w = 1;
- CPRINTS("Current %dmA not supported", charge_ma);
- }
- }
-
- gpio_set_level(GPIO_TYPE_C_87W, p87w);
- gpio_set_level(GPIO_TYPE_C_65W, p65w);
- gpio_set_level(GPIO_TYPE_C_60W, p60w);
-}
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED_RED] = { 3, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_GREEN] = { 5, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_FAN] = {4, PWM_CONFIG_OPEN_DRAIN, 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct fan_step {
- int on;
- int off;
- int rpm;
-};
-
-static const struct fan_step *fan_table;
-
-/* Note: Do not make the fan on/off point equal to 0 or 100 */
-static const struct fan_step fan_table0[] = {
- {.on = 0, .off = 1, .rpm = 0},
- {.on = 36, .off = 1, .rpm = 2800},
- {.on = 58, .off = 58, .rpm = 3200},
- {.on = 66, .off = 61, .rpm = 3400},
- {.on = 75, .off = 69, .rpm = 4200},
- {.on = 81, .off = 76, .rpm = 4800},
- {.on = 88, .off = 83, .rpm = 5200},
- {.on = 98, .off = 91, .rpm = 5600},
-};
-static const struct fan_step fan_table1[] = {
- {.on = 0, .off = 1, .rpm = 0},
- {.on = 36, .off = 1, .rpm = 2800},
- {.on = 62, .off = 58, .rpm = 3200},
- {.on = 68, .off = 63, .rpm = 3400},
- {.on = 75, .off = 69, .rpm = 4200},
- {.on = 81, .off = 76, .rpm = 4800},
- {.on = 88, .off = 83, .rpm = 5200},
- {.on = 98, .off = 91, .rpm = 5600},
-};
-static const struct fan_step fan_table2[] = {
- {.on = 0, .off = 1, .rpm = 0},
- {.on = 36, .off = 1, .rpm = 2200},
- {.on = 63, .off = 56, .rpm = 2900},
- {.on = 69, .off = 65, .rpm = 3000},
- {.on = 75, .off = 70, .rpm = 3300},
- {.on = 80, .off = 76, .rpm = 3600},
- {.on = 87, .off = 81, .rpm = 3900},
- {.on = 98, .off = 91, .rpm = 5000},
-};
-static const struct fan_step fan_table3[] = {
- {.on = 0, .off = 1, .rpm = 0},
- {.on = 36, .off = 22, .rpm = 2500},
- {.on = 54, .off = 49, .rpm = 3200},
- {.on = 61, .off = 56, .rpm = 3500},
- {.on = 68, .off = 63, .rpm = 3900},
- {.on = 75, .off = 69, .rpm = 4500},
- {.on = 82, .off = 76, .rpm = 5100},
- {.on = 92, .off = 85, .rpm = 5400},
-};
-/* All fan tables must have the same number of levels */
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_table0)
-BUILD_ASSERT(ARRAY_SIZE(fan_table1) == NUM_FAN_LEVELS);
-BUILD_ASSERT(ARRAY_SIZE(fan_table2) == NUM_FAN_LEVELS);
-BUILD_ASSERT(ARRAY_SIZE(fan_table3) == NUM_FAN_LEVELS);
-
-static void setup_fan(void)
-{
- /* Configure Fan */
- switch (oem) {
- case OEM_KENCH:
- case OEM_TEEMO:
- case OEM_BLEEMO:
- default:
- fans[FAN_CH_0].rpm = &fan_rpm_1;
- fan_table = fan_table0;
- break;
- case OEM_SION:
- fans[FAN_CH_0].rpm = &fan_rpm_1;
- fan_table = fan_table1;
- break;
- case OEM_WUKONG_N:
- case OEM_WUKONG_A:
- case OEM_WUKONG_M:
- fans[FAN_CH_0].rpm = &fan_rpm_0;
- fan_table = fan_table2;
- break;
- case OEM_JAX:
- fan_set_count(0);
- break;
- case OEM_EXCELSIOR:
- fans[FAN_CH_0].rpm = &fan_rpm_0;
- fan_table = fan_table3;
- break;
- }
-}
-
-static void cbi_init(void)
-{
- uint32_t val;
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- CPRINTS("Board Version: 0x%04x", board_version);
-
- if (cbi_get_oem_id(&val) == EC_SUCCESS && val < OEM_COUNT)
- oem = val;
- CPRINTS("OEM: %d", oem);
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS && val <= UINT8_MAX)
- sku = val;
- CPRINTS("SKU: 0x%02x", sku);
-
- setup_fan();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* List of BJ adapters shipped with Fizz or its variants */
-enum bj_adapter {
- BJ_65W_19V,
- BJ_90W_19V,
- BJ_65W_19P5V,
- BJ_90W_19P5V,
-};
-
-/* BJ adapter specs */
-static const struct charge_port_info bj_adapters[] = {
- [BJ_65W_19V] = { .current = 3420, .voltage = 19000 },
- [BJ_90W_19V] = { .current = 4740, .voltage = 19000 },
- [BJ_65W_19P5V] = { .current = 3330, .voltage = 19500 },
- [BJ_90W_19P5V] = { .current = 4620, .voltage = 19500 },
-};
-
-/*
- * Bit masks to map SKU ID to BJ adapter wattage. 1:90W 0:65W
- * KBL-R i7 8550U 4 90
- * KBL-R i5 8250U 5 90
- * KBL-R i3 8130U 6 90
- * KBL-U i7 7600 3 65
- * KBL-U i5 7500 2 65
- * KBL-U i3 7100 1 65
- * KBL-U Celeron 3965 7 65
- * KBL-U Celeron 3865 0 65
- */
-#define BJ_ADAPTER_90W_MASK (BIT(4) | BIT(5) | BIT(6))
-
-static void setup_bj(void)
-{
- enum bj_adapter bj;
-
- switch (oem) {
- case OEM_KENCH:
- bj = (BJ_ADAPTER_90W_MASK & BIT(sku)) ?
- BJ_90W_19P5V : BJ_65W_19P5V;
- break;
- case OEM_TEEMO:
- case OEM_BLEEMO:
- case OEM_SION:
- case OEM_WUKONG_N:
- case OEM_WUKONG_A:
- case OEM_WUKONG_M:
- case OEM_EXCELSIOR:
- bj = (BJ_ADAPTER_90W_MASK & BIT(sku)) ?
- BJ_90W_19V : BJ_65W_19V;
- break;
- case OEM_JAX:
- bj = BJ_65W_19V;
- break;
- default:
- bj = (BJ_ADAPTER_90W_MASK & BIT(sku)) ?
- BJ_90W_19P5V : BJ_65W_19P5V;
- break;
- }
-
- charge_manager_update_charge(CHARGE_SUPPLIER_DEDICATED,
- DEDICATED_CHARGE_PORT, &bj_adapters[bj]);
-}
-
-/*
- * Since fizz has no battery, it must source all of its power from either
- * USB-C or the barrel jack (preferred). Fizz operates in continuous safe
- * mode (charge_manager_leave_safe_mode() will never be called), which
- * modifies port / ILIM selection as follows:
- *
- * - Dual-role / dedicated capability of the port partner is ignored.
- * - Charge ceiling on PD voltage transition is ignored.
- * - CHARGE_PORT_NONE will never be selected.
- */
-static void board_charge_manager_init(void)
-{
- enum charge_port port;
- int i, j;
-
- /* Initialize all charge suppliers to 0 */
- for (i = 0; i < CHARGE_PORT_COUNT; i++) {
- for (j = 0; j < CHARGE_SUPPLIER_COUNT; j++)
- charge_manager_update_charge(j, i, NULL);
- }
-
- port = gpio_get_level(GPIO_ADP_IN_L) ?
- CHARGE_PORT_TYPEC0 : CHARGE_PORT_BARRELJACK;
- CPRINTS("Power source is p%d (%s)", port,
- port == CHARGE_PORT_TYPEC0 ? "USB-C" : "BJ");
-
- /* Initialize the power source supplier */
- switch (port) {
- case CHARGE_PORT_TYPEC0:
- typec_set_input_current_limit(port, 3000, 5000);
- break;
- case CHARGE_PORT_BARRELJACK:
- setup_bj();
- break;
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_charge_manager_init,
- HOOK_PRIO_CHARGE_MANAGER_INIT + 1);
-
-static void board_init(void)
-{
- /* Provide AC status to the PCH */
- board_extpower();
-
- gpio_enable_interrupt(GPIO_USB_C0_VBUS_WAKE_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int fan_percent_to_rpm(int fan, int pct)
-{
- static int current_level;
- static int previous_pct;
- int i;
-
- /*
- * Compare the pct and previous pct, we have the three paths :
- * 1. decreasing path. (check the off point)
- * 2. increasing path. (check the on point)
- * 3. invariant path. (return the current RPM)
- */
- if (pct < previous_pct) {
- for (i = current_level; i >= 0; i--) {
- if (pct <= fan_table[i].off)
- current_level = i - 1;
- else
- break;
- }
- } else if (pct > previous_pct) {
- for (i = current_level + 1; i < NUM_FAN_LEVELS; i++) {
- if (pct >= fan_table[i].on)
- current_level = i;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- previous_pct = pct;
-
- if (fan_table[current_level].rpm !=
- fan_get_rpm_target(FAN_CH(fan)))
- cprints(CC_THERMAL, "Setting fan RPM to %d",
- fan_table[current_level].rpm);
-
- return fan_table[current_level].rpm;
-}
diff --git a/board/fizz/board.h b/board/fizz/board.h
deleted file mode 100644
index d0cccd09ac..0000000000
--- a/board/fizz/board.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Eve board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands.
- * TODO: Remove this config before production.
- */
-#undef CONFIG_SYSTEM_UNLOCKED
-#define CONFIG_USB_PD_COMM_LOCKED
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_CRC8
-#define CONFIG_CEC
-#define CONFIG_CBI_EEPROM
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_EMULATED_SYSRQ
-#define CONFIG_LED_COMMON
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_DPTF
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#undef CONFIG_LID_SWITCH
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_PWM
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25X40
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
-#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_DX_WLAN
-#define WIRELESS_GPIO_WWAN GPIO_PP3300_DX_LTE
-#define CEC_GPIO_OUT GPIO_CEC_OUT
-#define CEC_GPIO_IN GPIO_CEC_IN
-#define CEC_GPIO_PULL_UP GPIO_CEC_PULL_UP
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_FAN_DYNAMIC
-#define CONFIG_FAN_RPM_CUSTOM
-#define CONFIG_THROTTLE_AP
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_PWM
-
-/* EC console commands */
-#define CONFIG_CMD_BUTTON
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_HAS_PRE_INIT_CALLBACK
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 50000
-
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-
-/* Sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_TMP432
-
-/* USB */
-#undef CONFIG_USB_CHARGER /* dnojiri: verify */
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* Charge ports */
-#undef CONFIG_DEDICATED_CHARGE_PORT_COUNT
-#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 1
-#define DEDICATED_CHARGE_PORT 1
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_DUMB
-#define USB_PORT_COUNT 5
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 1 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT0_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT0_1
-#define I2C_PORT_BATTERY NPCX_I2C_PORT1
-#define I2C_PORT_CHARGER NPCX_I2C_PORT1
-#define I2C_PORT_PMIC NPCX_I2C_PORT2
-#define I2C_PORT_THERMAL NPCX_I2C_PORT3
-
-/* I2C addresses */
-#define I2C_ADDR_TCPC0_FLAGS 0x0b
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-/* Verify and jump to RW image on boot */
-#define CONFIG_VBOOT_EFS
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-/*
- * Flash layout. Since config_flash_layout.h is included before board.h,
- * we can only overwrite (=undef/define) these parameters here.
- *
- * Flash stores 3 images: RO, RW_A, RW_B. We divide the flash by 4.
- * A public key is stored at the end of RO. Signatures are stored at the
- * end of RW_A and RW_B, respectively.
- */
-#define CONFIG_RW_B
-#define CONFIG_RW_B_MEM_OFF CONFIG_RO_MEM_OFF
-#undef CONFIG_RO_SIZE
-#define CONFIG_RO_SIZE (CONFIG_FLASH_SIZE_BYTES / 4)
-#undef CONFIG_RW_SIZE
-#define CONFIG_RW_SIZE CONFIG_RO_SIZE
-#define CONFIG_RW_A_STORAGE_OFF CONFIG_RW_STORAGE_OFF
-#define CONFIG_RW_B_STORAGE_OFF (CONFIG_RW_A_STORAGE_OFF + \
- CONFIG_RW_SIZE)
-#define CONFIG_RW_A_SIGN_STORAGE_OFF (CONFIG_RW_A_STORAGE_OFF + \
- CONFIG_RW_SIZE - CONFIG_RW_SIG_SIZE)
-#define CONFIG_RW_B_SIGN_STORAGE_OFF (CONFIG_RW_B_STORAGE_OFF + \
- CONFIG_RW_SIZE - CONFIG_RW_SIG_SIZE)
-
-#define CONFIG_RWSIG
-#define CONFIG_RWSIG_TYPE_RWSIG
-#define CONFIG_RSA
-#ifdef SECTION_IS_RO
-#define CONFIG_RSA_OPTIMIZED
-#endif
-#define CONFIG_SHA256
-#ifdef SECTION_IS_RO
-#define CONFIG_SHA256_UNROLLED
-#endif
-#define CONFIG_RSA_KEY_SIZE 3072
-#define CONFIG_RSA_EXPONENT_3
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum charge_port {
- CHARGE_PORT_TYPEC0,
- CHARGE_PORT_BARRELJACK,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_COUNT
-};
-
-enum adc_channel {
- ADC_VBUS,
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_FAN,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0,
- /* Number of MFT channels */
- MFT_CH_COUNT
-};
-
-enum OEM_ID {
- OEM_KENCH = 0,
- OEM_TEEMO = 1,
- OEM_SION = 2,
- OEM_WUKONG_N = 3,
- OEM_WUKONG_A = 4,
- OEM_WUKONG_M = 5,
- OEM_BLEEMO = 6,
- OEM_JAX = 8,
- OEM_EXCELSIOR = 10,
- /* Number of OEM IDs */
- OEM_COUNT
-};
-
-/* TODO(crosbug.com/p/61098): Verify the numbers below. */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power. Since Fizz doesn't have a battery to charge,
- * we're not interested in any power lower than the AP power-on threshold. */
-#define PD_OPERATING_POWER_MW CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define PD_MAX_POWER_MW 100000
-#define PD_MAX_CURRENT_MA 5000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Board specific handlers */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-void led_alert(int enable);
-void led_critical(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/fizz/build.mk b/board/fizz/build.mk
deleted file mode 100644
index 74094ac834..0000000000
--- a/board/fizz/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
-board-y+=led.o
diff --git a/board/fizz/dev_key.pem b/board/fizz/dev_key.pem
deleted file mode 100644
index b72c787613..0000000000
--- a/board/fizz/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4gIBAAKCAYEAseZZZlXXDP+KrjqV+XhP0ZgPlU5mX4GCm27yzTqcKiFWLlHZ
-3f8seGG0lKNiL7WvHim8uSEDaPbp2us4uaJ6nTHEpbSGi2QVp90tE3aJG34HyKlg
-jcaE1r/0n6ynG/bf0Xx4O63Plp3Czi3TBYW49vT6+T/Jyfl2JpGQ9KNcD0umafsv
-uaEmdrLGrzjN8w1mFZfwscFkfVDh0cdiFNJ+UkTSpO9/yPapXbo4/lOMwdO9xILF
-cEZV9I7K7lBSvQ5Uep+w0SqNPTh2cGhoeEeDyH+Ce0LA8H7ZwbVnwLe1RswF9Wek
-uzqp9lMSNkkwMtTkumTuJLLGJX9rc0MVQTKgNV8wIzizf5lkCCBCJLf7aRBaeWCJ
-cXjKiavSPOZXDcnqCWqRJT3jN4ibAsU1GQtqLa8pTAi2wkE0fjuvAWK3NYuvpukg
-qNq2LI+BJkF4+dCZoeB1PDNyFNzdOFvkxj2+ImS3DLlPYVng4vHsTK1HRUUpL5Ag
-jjfMhMs4NC7HMOCTAgEDAoIBgHaZkO7j5LNVBx7RuVD63+EQCmOJmZUBAbz0od4n
-EsbA5B7hO+lUyFBBIw3CQXUjyhQb0yYWAkX58Tyc0HvBpxN2gxkjBFztY8U+Hgz5
-sLz+r9sblbPZreR/+GpzGhKklTZS+tJz37m+gd7JN1kD0KSjUft/29v7pBm2YKMX
-krTdGZv8ynvAxE8h2col3qII7rkP9cvWQv416+EvlriMVDbYjG30/9tPG5PRe1Q3
-syvifoMB2PWEOU20h0mK4dNe4d7E96s1Q+RTmTUtyipxUp6d4PIufAjMtM8yfkb0
-/0z81IsWQ0NOhefrMAi8TEcDkbyNSBPqHqbqH2FosFWo2cU3r6TXv2LdvFzc5BA+
-U6c+fXz7BDjv+NT3Bh98whKvTdJYcIgSg6vqzW7ZWJWWllZQtpJnQccIq4sPaL4S
-osFg8jd1kcbjVakCN0wYtfvMa/+WBZNNsZLUHoeIJvO7qnT7VKzhceoKHCJCMxNR
-Ypu5eELxCwebTXiImDqmFsKIawKBwQDpDjff6eatHbjmGV1elTyV5MLi95Tc0T7P
-FZHC1KLXkA/mEuXjAGfoZuLB5a3WmrA8r8fWNZoKV+0RBKIs3at1JFxZn9YiA0Hy
-5qmnYkXjMaY4p5AyO3eJsc2kbsh9r0cy2cb5GdwFDApeoVICoQh+dW9FpvIS+9AF
-0DVc2/Rg//cuXLlCMonF+PZVmDxRNhjBvwvRjxeowiu2ntI4sa83nHMhXI/RfvV4
-xcSng8gSIvabUmunDcPKvqO3rnpHzVECgcEAw2oFcHDAuZ1Xuopb2ghLRK3uLQVy
-BnqLu9QYk3OTe8C3PrNZ80R5MgtnZ0kP8bTZ4uE6MJ3+IMhPUCFqk9euGGdMUlU+
-SUmHie5CZPg4CwD4BUBy6dVdwId7aTxrdBOuGwwhYAhBsJxcfd3eNgiALcCoKsbi
-BLhjJ9Rch2rOsnpNJVwMvFMr6RM33oQrrufe4MBhDa/QD9yDtnDYH/KPO09E6AqU
-sMvBNsjbCC9rSYv+L9QkW8EUhT+wJIcqxUajAoHBAJtez+qb7x4T0JlmPj8OKGPt
-10H6Yz3g1IoOYSyNweUKtUQMmUIARUWZ7IFDyTm8dX3KhTl5EVw6ngtYbB3pHPjC
-6Du/5Bas1qHvG8TsLpd2btBvtXbST7EhM8L0hakfhMyRL1C76ANdXD8WNqxrWv74
-9NkZ9rdSiq6Kzj3n+ECqpMmTJiwhsS6l+Y5lfYt5ZdZ/XTZfZRssHSRp4XshH3po
-TMDoX+D/TlCD2G+tMAwXTxI28m9egocpwnp0UYUziwKBwQCCRq5K9dXRE4/RsZKR
-WtzYc/QeA6FZpwfSjWW3omJSgHopzOaiLaYhXO+aMLVLzeaXQNF1vqlrMDTgFkcN
-OnQQRN2MONQw26+xSYGYpXqyAKVY1aHxOOkrBPzw0vJNYnQSCBZABYEgaD2pPpQk
-BarJKxrHL0FYeuzFOD2vnInMUYjDkrMoN3KbYiU/AsfJ7+nrKutedTVf6FfO9eVq
-obTSNNiasbh13St52zywH5zbsql1OBg9K2MDf8rDBMcuLxcCgcBfM9FWZivdG2tJ
-5REvL0vPAQfcjVi4HUHvnaCuwMYEuF5T2Xf9P8d8ZflfWHaGlkl/qPvE897fns2l
-PZvvhRnr9GlHKt940ZOTI2v+hjlwcHGAAQc+p7BcKeUYLChwhVK/cZ9f6ZCotZNh
-543ecG4KZiJaqBZ/mDRaW7Py0w6lbOAzprrHF3ChvQ6VAllajoWx4CeINRcxX2vP
-bAPZxvt0gwpoHtUAsZo/bKEF0sM5qM/fK43gH5KhJeunq/xHO7E=
------END RSA PRIVATE KEY-----
diff --git a/board/fizz/ec.tasklist b/board/fizz/ec.tasklist
deleted file mode 100644
index 75a09a43df..0000000000
--- a/board/fizz/ec.tasklist
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 2048) \
- /* Larger stack for RW verification (i.e. sha256, rsa) */ \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CEC, cec_task, NULL, TASK_STACK_SIZE)
diff --git a/board/fizz/gpio.inc b/board/fizz/gpio.inc
deleted file mode 100644
index 7da0bfce71..0000000000
--- a/board/fizz/gpio.inc
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(PCH_SLP_S3_L, PIN(7, 3), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PCH_SLP_SUS_L, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PMIC_DPWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(ADP_IN_L, PIN(C, 5), GPIO_INT_BOTH | GPIO_PULL_UP, adp_in) /* Low: BJ detected */
-GPIO_INT(USB_C0_VBUS_WAKE_L, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, vbus0_evt)
-GPIO_INT(RECOVERY_L, PIN(8, 2), GPIO_INT_BOTH, button_interrupt) /* Recovery button */
-GPIO(PCH_RTCRST, PIN(E, 7), GPIO_OUT_LOW) /* RTCRST# to SOC */
-GPIO(WLAN_OFF_L, PIN(7, 2), GPIO_OUT_LOW) /* Disable WLAN */
-GPIO(PP3300_DX_WLAN, PIN(A, 7), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(CPU_PROCHOT, PIN(8, 1), GPIO_OUT_HIGH) /* PROCHOT# to SOC */
-GPIO(PCH_ACPRESENT, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(7, 4), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(EC_PLATFORM_RST, PIN(4, 5), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(PMIC_SLP_SUS_L, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_HAVEN_RESET_ODL, PIN(0, 2), GPIO_ODR_HIGH) /* H1 Reset */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(PMIC_INT_L, PIN(6, 0), GPIO_INPUT) /* PMIC interrupt */
-GPIO(TYPE_C_60W, PIN(3, 3), GPIO_OUTPUT | GPIO_PULL_DOWN)
-GPIO(TYPE_C_65W, PIN(3, 4), GPIO_OUTPUT | GPIO_PULL_DOWN)
-GPIO(TYPE_C_87W, PIN(4, 4), GPIO_OUTPUT | GPIO_PULL_DOWN)
-GPIO(POWER_RATE, PIN(7, 1), GPIO_INPUT) /* High: i3/5/7. Low: Celeron */
-
-/* Fizz specific pins */
-GPIO(LAN_PWR_EN, PIN(8, 3), GPIO_OUT_HIGH) /* Ethernet power enabled */
-
-GPIO(PP5000_DX_NFC, PIN(1, 5), GPIO_OUTPUT)
-
-GPIO(PP3300_DX_CAM, PIN(1, 0), GPIO_OUT_HIGH)
-GPIO(CAM_PMIC_RST_L, PIN(0, 7), GPIO_INPUT)
-
-GPIO(WLAN_PE_RST, PIN(1, 2), GPIO_OUTPUT)
-GPIO(PP3300_DX_LTE, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(PP3300_DX_BASE, PIN(1, 1), GPIO_OUT_LOW)
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_BAT_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_BAT_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_ROP_I2C_CLK */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_ROP_I2C_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_THEM_CLK */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_THEM_SDA */
-
-/* 5V enables: INPUT=1.5A, OUT_LOW=OFF, OUT_HIGH=3A */
-GPIO(USB_C0_5V_EN, PIN(4, 2), GPIO_OUT_LOW | GPIO_PULL_UP) /* C0 5V Enable */
-GPIO(USB_C0_CHARGE_L, PIN(C, 0), GPIO_OUT_LOW) /* C0 Charge enable */
-GPIO(AC_JACK_CHARGE_L, PIN(C, 3), GPIO_OUT_LOW) /* AC jack charge enable */
-GPIO(USB_C0_PD_RST_ODL, PIN(0, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */
-GPIO(USB_C0_TCPC_PWR, PIN(8, 4), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(FAN_PWR_EN, PIN(9, 5), GPIO_OUT_HIGH) /* Fan power */
-GPIO(USB1_ENABLE, PIN(3, 2), GPIO_OUT_LOW) /* Rear port, bottom */
-GPIO(USB2_ENABLE, PIN(C, 6), GPIO_OUT_LOW) /* Rear port, top */
-GPIO(USB3_ENABLE, PIN(A, 1), GPIO_OUT_LOW) /* Rear port, single */
-GPIO(USB4_ENABLE, PIN(0, 0), GPIO_OUT_LOW) /* Front port 1 */
-GPIO(USB5_ENABLE, PIN(B, 1), GPIO_OUT_LOW) /* Front port 2 */
-GPIO(USB_A_CHARGE_EN_L, PIN(A, 5), GPIO_OUT_LOW)
-
-GPIO(CEC_OUT, PIN(3, 6), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
-GPIO(CEC_IN, PIN(4, 0), GPIO_INPUT)
-GPIO(CEC_PULL_UP, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 4), GPIO_INPUT) /* Board ID bit0 */
-GPIO(BOARD_VERSION2, PIN(C, 2), GPIO_INPUT) /* Board ID bit1 */
-GPIO(BOARD_VERSION3, PIN(0, 1), GPIO_INPUT) /* Board ID bit2 */
-
-/* Test points */
-GPIO(TP248, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* EC_GPIO57 */
-GPIO(TP249, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP) /* EC_GPO66_ARM_L */
-GPIO(TP250, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP) /* EC_GPIO35_TEST_L */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 */ /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 */ /* EC_I2C1_3V3_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 */ /* EC_I2C1_3V3_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 */ /* EC_I2C2_PMIC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(A, 0x40), 1, MODULE_PWM, 0) /* GPIOA6 */ /* TACH2 */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 */ /* EC_I2C0_0_USBC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0) /* GPIOB6 */ /* EC_FAN_PWM */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 */ /* EC_I2C0_1_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 */ /* EC_I2C3_SENSOR_1V8_SDA/SCL */
-/* Alternate functions for LED PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0) /* GPIO80 PWM3 Red*/
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* GPOB7 PWM5 Green*/
diff --git a/board/fizz/led.c b/board/fizz/led.c
deleted file mode 100644
index 9b6942d241..0000000000
--- a/board/fizz/led.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power and battery LED control for Fizz
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_AMBER,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int green = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_GREEN:
- green = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- case LED_AMBER:
- green = 1;
- red = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (green)
- pwm_set_duty(PWM_CH_LED_GREEN, duty);
- else
- pwm_set_duty(PWM_CH_LED_GREEN, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec. */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIG_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
- static uint8_t pwm_enabled = 0;
-
- if (!pwm_enabled) {
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_GREEN, 1);
- pwm_enabled = 1;
- }
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIG_TICK(LED_PULSE_TICK_US, LED_GREEN);
- led_tick();
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend, HOOK_PRIO_DEFAULT);
-
-static void led_shutdown(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task. */
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_GREEN, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown();
- }
-}
-
-void led_critical(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "green")) {
- set_color(id, LED_GREEN, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- led_critical();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|green|amber|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_GREEN])
- return set_color(id, LED_GREEN, brightness[EC_LED_COLOR_GREEN]);
- else if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/fizz/usb_pd_policy.c b/board/fizz/usb_pd_policy.c
deleted file mode 100644
index 5de57f3c9b..0000000000
--- a/board/fizz/usb_pd_policy.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP |\
- PDO_FIXED_COMM_CAP)
-
-const uint32_t pd_src_pdo[] = {
- PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS),
-};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, PDO_FIXED_FLAGS),
- PDO_BATT(4750, 21000, 50000),
- PDO_VAR(4750, 21000, 3000),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-int board_vbus_source_enabled(int port)
-{
- if (port != 0)
- return 0;
- return gpio_get_level(GPIO_USB_C0_5V_EN);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
-
- /* Enable VBUS source */
- gpio_set_level(GPIO_USB_C0_5V_EN, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS source */
- gpio_set_level(GPIO_USB_C0_5V_EN, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return !gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L);
-}
-
-__override int pd_check_power_swap(int port)
-{
- /* If type-c port is supplying power, we never swap PR (to source) */
- if (port == charge_manager_get_active_charge_port())
- return 0;
- /*
- * Allow power swap as long as we are acting as a dual role device,
- * otherwise assume our role is fixed (not in S0 or console command
- * to fix our role).
- */
- return pd_get_dual_role(port) == PD_DRP_TOGGLE_ON ? 1 : 0;
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_PMIC_SLP_SUS_L);
-}
-
-int board_set_active_charge_port(int port)
-{
- const int active_port = charge_manager_get_active_charge_port();
-
- if (port < 0 || CHARGE_PORT_COUNT <= port)
- return EC_ERROR_INVAL;
-
- if (port == active_port)
- return EC_SUCCESS;
-
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(port))
- return EC_ERROR_INVAL;
-
- CPRINTS("New charger p%d", port);
-
- switch (port) {
- case CHARGE_PORT_TYPEC0:
- /* This is connected to TP on board version 2.2+ thus no-op */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 0);
- gpio_set_level(GPIO_AC_JACK_CHARGE_L, 1);
- gpio_enable_interrupt(GPIO_ADP_IN_L);
- break;
- case CHARGE_PORT_BARRELJACK:
- /* Make sure BJ adapter is sourcing power */
- if (gpio_get_level(GPIO_ADP_IN_L))
- return EC_ERROR_INVAL;
- /* This will cause brown out when switching from type-c on
- * board version 2.2+ thus the rest of the code is no-op. */
- gpio_set_level(GPIO_AC_JACK_CHARGE_L, 0);
- /* If type-c voltage > BJ voltage, we'll brown out due to the
- * reverse current protection of PU3 but it's intended. */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
- gpio_disable_interrupt(GPIO_ADP_IN_L);
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-}
-
-int board_get_battery_soc(void)
-{
- return 100;
-}
diff --git a/board/fizz/vif_override.xml b/board/fizz/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/fizz/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/fleex/analyzestack.yaml b/board/fleex/analyzestack.yaml
deleted file mode 100644
index 08c8ba93a9..0000000000
--- a/board/fleex/analyzestack.yaml
+++ /dev/null
@@ -1,278 +0,0 @@
-# Size of extra stack frame needed by exception context switch.
-# See core/cortex-m/switch.S
-exception_frame_size: 224
-# Missing calls
-add:
- # TCPC stack
- tcpm_set_cc[driver/tcpm/tcpm.h:139]:
- - tcpci_tcpm_set_cc
- tcpm_set_rx_enable[driver/tcpm/tcpm.h:160]:
- - tcpci_tcpm_set_rx_enable
- tcpm_set_snk_ctrl[driver/tcpm/tcpm.h:179]:
- - tcpci_tcpm_set_snk_ctrl
- tcpm_get_cc[driver/tcpm/tcpm.h:124]:
- - tcpci_tcpm_get_cc
- enter_low_power_mode[driver/usb_mux.c:42]:
- - tcpci_enter_low_power_mode
- svdm_exit_dp_mode[baseboard/octopus/usb_pd_policy.c:346]:
- - anx7447_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- tcpm_set_src_ctrl[driver/tcpm/tcpm.h:187]:
- - tcpci_tcpm_set_src_ctrl
- tcpm_init[driver/tcpm/tcpm.h:106]:
- - anx7447_init
- - tcpci_tcpm_init
- tcpm_get_vbus_level[driver/tcpm/tcpm.h:129]:
- - anx7447_tcpm_get_vbus_level
- - tcpci_tcpm_get_vbus_level
- baseboard_tcpc_init[baseboard/octopus/baseboard.c:212]:
- - anx7447_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- tcpm_get_chip_info[driver/tcpm/tcpm.h:240]:
- - tcpci_get_chip_info
- - ps8xxx_get_chip_info
- tcpm_transmit[driver/tcpm/tcpm.h:172]:
- - tcpci_tcpm_transmit
- - ps8xxx_tcpm_transmit
- tcpc_alert[driver/tcpm/tcpm.h:195]:
- - anx7447_tcpc_alert
- - tcpci_tcpc_alert
- tcpm_set_msg_header[driver/tcpm/tcpm.h:154]:
- - tcpci_tcpm_set_msg_header
- tcpm_set_vconn[driver/tcpm/tcpm.h:149]:
- - tcpci_tcpm_set_vconn
- tcpm_select_rp_value[driver/tcpm/tcpm.h:134]:
- - tcpci_tcpm_select_rp_value
- tcpm_enqueue_message[driver/tcpm/tcpci.c:404]:
- - tcpci_tcpm_get_message_raw
- svdm_dp_post_config[baseboard/octopus/usb_pd_policy.c:320]:
- - anx7447_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- svdm_dp_attention[baseboard/octopus/usb_pd_policy.c:335]:
- - anx7447_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- tcpm_release[driver/tcpm/tcpm.h:119]:
- - anx7447_release
- - ps8xxx_tcpm_release
- tcpm_set_polarity[driver/tcpm/tcpm.h:144]:
- - tcpci_tcpm_set_polarity
- tcpm_enable_drp_toggle[driver/tcpm/tcpm.h:211]:
- - tcpci_tcpc_drp_toggle
- tcpm_enter_low_power_mode[driver/tcpm/tcpm.h:218]:
- - tcpci_enter_low_power_mode
- # USB mux
- usb_mux_flip[driver/usb_mux.c:163]:
- - anx7447_mux_get
- - tcpci_tcpm_mux_get
- usb_mux_flip[driver/usb_mux.c:174]:
- - anx7447_mux_set
- - tcpci_tcpm_mux_set
- usb_mux_set[driver/usb_mux.c:112]:
- - anx7447_mux_set
- - tcpci_tcpm_mux_set
- usb_mux_init[driver/usb_mux.c:64]:
- - anx7447_mux_init
- - tcpci_tcpm_mux_init
- usb_mux_get[driver/usb_mux.c:140]:
- - anx7447_mux_get
- - tcpci_tcpm_mux_get
- hc_usb_pd_mux_info[driver/usb_mux.c:240]:
- - anx7447_mux_get
- - tcpci_tcpm_mux_get
- # PPC
- ppc_is_sourcing_vbus[common/usbc_ppc.c:42]:
- - nx20p348x_is_sourcing_vbus
- ppc_init[common/usbc_ppc.c:26]:
- - nx20p348x_init
- ppc_vbus_sink_enable[common/usbc_ppc.c:86]:
- - nx20p348x_vbus_sink_enable
- ppc_discharge_vbus[common/usbc_ppc.c:68]:
- - nx20p348x_discharge_vbus
- ppc_vbus_source_enable[common/usbc_ppc.c:107]:
- - nx20p348x_vbus_source_enable
- ppc_set_vbus_source_current_limit[common/usbc_ppc.c:60]:
- - nx20p348x_set_vbus_source_current_limit
- command_ppc_dump[common/usbc_ppc.c:135]:
- - nx20p348x_dump
- # Motion sensors
- command_accelrange[common/motion_sense.c:1513]:
- - set_range[driver/accel_lis2dh.c]
- - set_range[driver/accelgyro_lsm6dsm.c]
- command_accelrange[common/motion_sense.c:1519]:
- - get_range[driver/accel_lis2dh.c]
- - get_range[driver/accelgyro_lsm6dsm.c]
- motion_sensor_time_to_read[common/motion_sense.c:213]:
- - st_get_data_rate[driver/stm_mems_common.c]
- motion_sense_read[common/motion_sense.c:694]:
- - st_get_data_rate[driver/stm_mems_common.c]
- motion_sense_read[common/motion_sense.c:707]:
- - read[driver/accel_lis2dh.c]
- - read[driver/accelgyro_lsm6dsm.c]
- motion_sense_process[common/motion_sense.c:719]:
- - irq_handler[driver/accelgyro_lsm6dsm.c]
- sensor_init_done[common/motion_sense.c:468]:
- - set_range[driver/accel_lis2dh.c]
- - set_range[driver/accelgyro_lsm6dsm.c]
- sensor_init_done[common/motion_sense.c:471]:
- - get_range[driver/accel_lis2dh.c]
- - get_range[driver/accelgyro_lsm6dsm.c]
- motion_sense_set_ec_rate_from_ap[common/motion_sense.c:305]:
- - st_get_data_rate[driver/stm_mems_common.c]
- host_cmd_motion_sense[common/motion_sense.c:1242]:
- - set_range[driver/accel_lis2dh.c]
- - set_range[driver/accelgyro_lsm6dsm.c]
- host_cmd_motion_sense[common/motion_sense.c:1253]:
- - get_range[driver/accel_lis2dh.c]
- - get_range[driver/accelgyro_lsm6dsm.c]
- host_cmd_motion_sense[common/motion_sense.c:1268]:
- - st_set_offset[driver/stm_mems_common.c]
- host_cmd_motion_sense[common/motion_sense.c:1303]:
- - None
- host_cmd_motion_sense[common/motion_sense.c:1306]:
- - st_get_offset[driver/stm_mems_common.c]
- motion_sense_init[common/motion_sense.c:447]:
- - init[driver/accel_lis2dh.c]
- - init[driver/accelgyro_lsm6dsm.c]
- motion_sense_set_data_rate[common/motion_sense.c:267]:
- - set_data_rate[driver/accel_lis2dh.c]
- - set_data_rate[driver/accelgyro_lsm6dsm.c]
- motion_sense_set_data_rate[common/motion_sense.c:287]:
- - st_get_data_rate[driver/stm_mems_common.c]
- motion_sense_set_motion_intervals[common/motion_sense.c:411]:
- - st_get_data_rate[driver/stm_mems_common.c]
- calculate_lid_angle[common/motion_lid.c:385]:
- - get_range[driver/accelgyro_lsm6dsm.c]
- calculate_lid_angle[common/motion_lid.c:386]:
- - get_range[driver/accel_lis2dh.c]
- motion_sense_set_data_rate[common/motion_sense.c:286]:
- - st_get_data_rate[driver/stm_mems_common.c]
- command_accel_read_xyz[common/motion_sense.c:1657]:
- - read[driver/accel_lis2dh.c]
- - read[driver/accelgyro_lsm6dsm.c]
- host_cmd_motion_sense[common/motion_sense.c:1294]:
- - None
- host_cmd_motion_sense[common/motion_sense.c:1297]:
- - st_get_offset[driver/stm_mems_common.c]
- command_accelresolution[common/motion_sense.c:1562]:
- - None
- command_accelresolution[common/motion_sense.c:1566]:
- - st_get_resolution[driver/stm_mems_common.c]
- command_accelrange[common/motion_sense.c:1518]:
- - get_range[driver/accel_lis2dh.c]
- - get_range[driver/accelgyro_lsm6dsm.c]
- st_normalize[driver/stm_mems_common.c:137]:
- - get_range[driver/accel_lis2dh.c]
- - get_range[driver/accelgyro_lsm6dsm.c]
- command_accel_data_rate[common/motion_sense.c:1621]:
- - st_get_data_rate[driver/stm_mems_common.c]
- # Misc.
- host_send_response[common/host_command.c:153]:
- - host_packet_respond
- pd_dfp_enter_mode[common/usb_pd_policy.c:465]:
- - svdm_enter_dp_mode[baseboard/octopus/usb_pd_policy.c]
- - svdm_enter_gfu_mode[baseboard/octopus/usb_pd_policy.c]
- pd_svdm[common/usb_pd_policy.c:773]:
- - svdm_dp_status[baseboard/octopus/usb_pd_policy.c]
- - svdm_gfu_status[baseboard/octopus/usb_pd_policy.c]
- pd_svdm[common/usb_pd_policy.c:784]:
- - svdm_dp_config[baseboard/octopus/usb_pd_policy.c]
- - svdm_gfu_config[baseboard/octopus/usb_pd_policy.c]
- pd_svdm[common/usb_pd_policy.c:790]:
- - svdm_dp_post_config[baseboard/octopus/usb_pd_policy.c]
- dfp_consume_attention[common/usb_pd_policy.c:503]:
- - svdm_dp_attention[baseboard/octopus/usb_pd_policy.c]
- - svdm_gfu_attention[baseboard/octopus/usb_pd_policy.c]
- kblight_set_deferred[common/keyboard_backlight.c:35]:
- - kblight_pwm_set
- temp_sensor_read[common/temp_sensor.c:26]:
- - charge_get_battery_temp
- - get_temp_3v3_51k1_47k_4050b
- - get_temp_3v3_13k7_47k_4050b
- kblight_enable[common/keyboard_backlight.c:61]:
- - kblight_pwm_enable
- host_packet_respond[common/host_command.c:240]:
- - lpc_send_response
- kblight_init[common/keyboard_backlight.c:28]:
- - kblight_pwm_init
- vfnprintf[common/printf.c:75]:
- - __tx_char
- vfnprintf[common/printf.c:88]:
- - __tx_char
- vfnprintf[common/printf.c:96]:
- - __tx_char
- vfnprintf[common/printf.c:171]:
- - __tx_char
- vfnprintf[common/printf.c:172]:
- - __tx_char
- vfnprintf[common/printf.c:310]:
- - __tx_char
- vfnprintf[common/printf.c:315]:
- - __tx_char
- vfnprintf[common/printf.c:318]:
- - __tx_char
- pd_dfp_exit_mode[common/usb_pd_policy.c:569]:
- - svdm_exit_dp_mode[baseboard/octopus/usb_pd_policy.c]
- - svdm_exit_gfu_mode[baseboard/octopus/usb_pd_policy.c]
- pd_dfp_exit_mode[common/usb_pd_policy.c:586]:
- - svdm_exit_dp_mode[baseboard/octopus/usb_pd_policy.c]
- - svdm_exit_gfu_mode[baseboard/octopus/usb_pd_policy.c]
- # Indirect callsites in common structures - likely common for all boards
- handle_command[common/console.c:248]:
- - { name: __cmds, stride: 16, offset: 4 }
- host_command_process[common/host_command.c:704]:
- - { name: __hcmds, stride: 12, offset: 0 }
- mkbp_get_next_event[common/mkbp_event.c:160]:
- - { name: __mkbp_evt_srcs, stride: 8, offset: 4 }
- hook_task[common/hooks.c:199]:
- - { name: __deferred_funcs, stride: 4, offset: 0 }
- # Note: This assumes worse case, where all hook functions can be called from
- # any hook_notify call
- # Generate using `grep hooks_.*_end build/$BOARD/R*/ec.R*.smap |
- # sed -e 's/.*\(__hooks.*\)_end/ - { name: \1, stride: 8, offset: 0 }/' |
- # sort -u`
- hook_notify[common/hooks.c:129]:
- - { name: __hooks_ac_change, stride: 8, offset: 0 }
- - { name: __hooks_base_attached_change, stride: 8, offset: 0 }
- - { name: __hooks_battery_soc_change, stride: 8, offset: 0 }
- - { name: __hooks_chipset_pre_init, stride: 8, offset: 0 }
- - { name: __hooks_chipset_reset, stride: 8, offset: 0 }
- - { name: __hooks_chipset_resume, stride: 8, offset: 0 }
- - { name: __hooks_chipset_shutdown, stride: 8, offset: 0 }
- - { name: __hooks_chipset_startup, stride: 8, offset: 0 }
- - { name: __hooks_chipset_suspend, stride: 8, offset: 0 }
- - { name: __hooks_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_init, stride: 8, offset: 0 }
- - { name: __hooks_lid_change, stride: 8, offset: 0 }
- - { name: __hooks_pre_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_pwrbtn_change, stride: 8, offset: 0 }
- - { name: __hooks_second, stride: 8, offset: 0 }
- - { name: __hooks_sysjump, stride: 8, offset: 0 }
- - { name: __hooks_tablet_mode_change, stride: 8, offset: 0 }
- - { name: __hooks_tick, stride: 8, offset: 0 }
- - { name: __hooks_usb_pd_disconnect, stride: 8, offset: 0 }
- # NULL function pointers
- i2c_command_passthru[common/i2c_master.c:678]:
- - None
- pd_svdm[common/usb_pd_policy.c:720]:
- - None
- usb_mux_init[driver/usb_mux.c:75]:
- - None
-remove:
-# Remove panic callsites. Once panicking, we no longer care about stack usage
-- panic_assert_fail
-# Remove reset_device_and_notify for all non-PD analysis since it can only be called from PD task IDs. Comment this out for the PD tasks
-- reset_device_and_notify
-# Remove the LPM path because the PD_FLAGS_LPM_TRANSITION flag presents this loop
-- [ reset_device_and_notify, tcpci_tcpm_init, [ tcpc_read, tcpc_write16 ], pd_wait_for_wakeup ]
-# Remove nonesense hook paths that come from the general hook_notify above (Note: these are not a comprehensive list, but a list of
-# paths that came up as longest during analysis
-# These functions do not call HOOK_INIT
-- [ [ s0ix_transition, charger_task, power_button_change_deferred, jump_to_image, tablet_set_mode, pd_set_suspend, set_state, extpower_deferred, lid_switch_open, lid_switch_close, espi_chipset_reset, lpc_chipset_reset ], hook_notify, [ usb_charger_init, baseboard_tcpc_init, motion_sense_startup, gmr_tablet_switch_init, powerbtn_x86_init, cbi_init ] ]
-# These functions do not call HOOK_CHIPSET_SHUTDOWN
-- [ [ s0ix_transition, charger_task, power_button_change_deferred, jump_to_image, tablet_set_mode, pd_set_suspend, set_state, extpower_deferred, lid_switch_open, lid_switch_close, hook_task, espi_chipset_reset, lpc_chipset_reset ], hook_notify, [ system_common_shutdown, motion_sense_shutdown, board_disable_a1_redriver ] ]
-# These functions do not call HOOK_LID_CHANGE
-- [ [ s0ix_transition, charger_task, power_button_change_deferred, jump_to_image, tablet_set_mode, pd_set_suspend, set_state, extpower_deferred, hook_task, espi_chipset_reset, lpc_chipset_reset ], hook_notify, powerbtn_x86_lid_change ]
-# These functions do not call HOOK_BATTERY_SOC_CHANGE
-- [ [ s0ix_transition, power_button_change_deferred, jump_to_image, tablet_set_mode, pd_set_suspend, set_state, extpower_deferred, lid_switch_open, lid_switch_close, hook_task, espi_chipset_reset, lpc_chipset_reset ], hook_notify, power_up_inhibited_cb ]
-# These functions do not call HOOK_CHIPSET_STARTUP
-- [ [ charger_task, power_button_change_deferred, jump_to_image, tablet_set_mode, pd_set_suspend, set_state, extpower_deferred, lid_switch_open, lid_switch_close, hook_task, espi_chipset_reset, lpc_chipset_reset ], hook_notify, board_enable_a1_redriver ]
diff --git a/board/fleex/battery.c b/board/fleex/battery.c
deleted file mode 100644
index 57a5246052..0000000000
--- a/board/fleex/battery.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all fleex battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* BYD Battery Information */
- [BATTERY_BYD] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* BYD 16DPHYMD Battery Information */
- [BATTERY_BYD16] = {
- .fuel_gauge = {
- .manuf_name = "BYD-BYD3.685",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.553",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC JPFMRYMD Battery Information */
- [BATTERY_LGC3] = {
- .fuel_gauge = {
- .manuf_name = "LGC-LGC3.685",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO Battery Information */
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI3.72",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO-ATL 7T0D3YMD Battery Information */
- [BATTERY_SIMPLO_ATL] = {
- .fuel_gauge = {
- .manuf_name = "SMP-ATL3.61",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO-LISHEN 7T0D3YMD Battery Information */
- [BATTERY_SIMPLO_LS] = {
- .fuel_gauge = {
- .manuf_name = "SMP-LS3.66",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* SIMPLO-COSMX 7T0D3YMD Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "SMP-COS3.63",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x043,
- .reg_mask = 0x0001,
- .disconnect_val = 0x000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-ATL 65N6HYMD Battery Information */
- [BATTERY_SWD_ATL] = {
- .fuel_gauge = {
- .manuf_name = "SWD-ATL3.618",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-
- /* SWD-COSLIGHT 65N6HYMD Battery Information */
- [BATTERY_SWD_COS] = {
- .fuel_gauge = {
- .manuf_name = "SWD-COS3.634",
- .ship_mode = {
- .wb_support = 1,
- .reg_addr = 0x44,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC;
diff --git a/board/fleex/board.c b/board/fleex/board.c
deleted file mode 100644
index 7e11d671c6..0000000000
--- a/board/fleex/board.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Fleex board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/charger/isl923x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-static int is_support_syv_ppc;
-
-const struct ppc_config_t ppc_syv682x_port0 = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-const struct ppc_config_t ppc_syv682x_port1 = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-/* Check PPC_ID pin status to decide which one ppc is used. */
-static int board_is_syv_ppc(void)
-{
- return gpio_get_level(GPIO_PPC_ID);
-}
-
-static void board_update_ppc_config_from_board(void)
-{
- if (!is_support_syv_ppc)
- return;
-
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_0],
- &ppc_syv682x_port0,
- sizeof(struct ppc_config_t));
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_1],
- &ppc_syv682x_port1,
- sizeof(struct ppc_config_t));
-
- gpio_set_flags(GPIO_USB_PD_C0_INT_ODL, GPIO_INT_BOTH);
- gpio_set_flags(GPIO_USB_PD_C1_INT_ODL, GPIO_INT_BOTH);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- if (is_support_syv_ppc)
- syv682x_interrupt(0);
- else
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- if (is_support_syv_ppc)
- syv682x_interrupt(1);
- else
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C0] = {"VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C1] = {"VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
- const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
- };
-
-/* sensor private data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- /* We only use 2g because its resolution is only 8-bits */
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static int board_is_convertible(void)
-{
- return sku_id == 0x21 || sku_id == 0x22 || sku_id == 0x23
- || sku_id == 0xff;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- ccprints("SKU: 0x%04x", sku_id);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-static void charger_set_buck_boost_mode(void)
-{
- int reg;
- /* Reduce Buck-boost mode switching frequency to improve power efficiency. */
- if (i2c_read16(I2C_PORT_CHARGER, I2C_ADDR_CHARGER_FLAGS,
- ISL9238_REG_CONTROL3, &reg) == EC_SUCCESS) {
- reg |= ISL9238_C3_BB_SWITCHING_PERIOD;
- if (i2c_write16(I2C_PORT_CHARGER, I2C_ADDR_CHARGER_FLAGS,
- ISL9238_REG_CONTROL3, reg))
- ccprints("Failed to set isl9238");
- }
-}
-
-static void board_init(void)
-{
- charger_set_buck_boost_mode();
-
- is_support_syv_ppc = board_is_syv_ppc();
-
- board_update_ppc_config_from_board();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int ppc_get_alert_status(int port)
-{
- if (port == 0)
- return gpio_get_level(GPIO_USB_PD_C0_INT_ODL) == 0;
-
- return gpio_get_level(GPIO_USB_PD_C1_INT_ODL) == 0;
-}
diff --git a/board/fleex/board.h b/board/fleex/board.h
deleted file mode 100644
index cd04f31687..0000000000
--- a/board/fleex/board.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Fleex board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/*
- * Some fuel gagues will return 1% immediately, without the battery being
- * charged to the point of being able to withstand Vbus loss, so re-set
- * allowable Try.SRC level and reset level to 2%
- */
-#undef CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC
-#define CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC 2
-
-#define CONFIG_USB_PD_RESET_MIN_BATT_SOC 2
-
-/* Sensors */
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-/* Volume button */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* TI gauge IC 500ms WDT timeout setting under battery sleep mode
- * induced battery cut-off, under the following conditions:
- * 1. SMBus communication on FC is once per minute which allows
- * battery entering sleep mode;
- * 2. System load < 10mA and accumulate 5 hours will trigger battery
- * simulation and result in a 500ms WDT timeout. So change charge
- * max sleep time from once/minute to once/10 seconds to prevent
- * battery entering sleep mode. See b/133375756.
- */
-#define CHARGE_MAX_SLEEP_USEC (10 * SECOND)
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Additional PPC second source */
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_DEDICATED_INT
-/* SYV682 isn't connected to CC, so TCPC must provide VCONN */
-#define CONFIG_USBC_PPC_SYV682X_NO_CC
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_BYD,
- BATTERY_BYD16,
- BATTERY_LGC,
- BATTERY_LGC3,
- BATTERY_SIMPLO,
- BATTERY_SIMPLO_ATL,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_LS,
- BATTERY_SWD_ATL,
- BATTERY_SWD_COS,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/fleex/build.mk b/board/fleex/build.mk
deleted file mode 100644
index 7e806f4667..0000000000
--- a/board/fleex/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/fleex/ec.tasklist b/board/fleex/ec.tasklist
deleted file mode 100644
index d98db145e7..0000000000
--- a/board/fleex/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/fleex/gpio.inc b/board/fleex/gpio.inc
deleted file mode 100644
index efedd6989b..0000000000
--- a/board/fleex/gpio.inc
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(LED_1_PWR_WHITE_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(LED_2_CHG_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH)
-
-/* Not implemented in hardware */
-UNIMPLEMENTED(KB_BL_PWR_EN)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Misc. */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Camera */
-GPIO(EC_GPIO03, PIN(0, 3), GPIO_INPUT) /* TP only */
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-GPIO(PPC_ID, PIN(9, 7), GPIO_INPUT | GPIO_PULL_DOWN) /* PPC ID Pin */
-
-/* Unused Pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(LED_3_L, PIN(D, 7), GPIO_INPUT)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/fleex/led.c b/board/fleex/led.c
deleted file mode 100644
index 4d89f657cd..0000000000
--- a/board/fleex/led.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Fleex
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 10;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Fleex: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_PWR_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_CHG_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/fleex/usb_pd_policy.c b/board/fleex/usb_pd_policy.c
deleted file mode 100644
index 82922f9a4d..0000000000
--- a/board/fleex/usb_pd_policy.c
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "common.h"
-
-/* TODO(b/78638238): Remove file if still unused after DVT */
diff --git a/board/fleex/vif_override.xml b/board/fleex/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/fleex/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/fluffy/board.c b/board/fluffy/board.c
deleted file mode 100644
index a4de29a160..0000000000
--- a/board/fluffy/board.c
+++ /dev/null
@@ -1,405 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Fluffy configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "ec_version.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "usb_descriptor.h"
-#include "registers.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Fluffy"),
- /* This gets filled in at runtime. */
- [USB_STR_SERIALNO] = USB_STRING_DESC(""),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Fluffy Shell"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Sensing the VBUS voltage at the DUT side. Converted to mV. */
- [ADC_PPVAR_VBUS_DUT] = {
- .name = "PPVAR_VBUS_DUT",
- .factor_mul = 3300,
- .factor_div = 4096,
- .shift = 0,
- .channel = STM32_AIN(0),
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "master",
- .port = 1,
- .kbps = 400,
- .scl = GPIO_I2C_SCL,
- .sda = GPIO_I2C_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-static enum gpio_signal enabled_port = GPIO_EN_C0;
-static uint8_t output_en;
-
-static void print_port_status(void)
-{
- if (!output_en)
- CPRINTS("No ports enabled. zZZ");
- else
- CPRINTS("Port %d is ON", enabled_port - GPIO_EN_C0);
-
- CPRINTS("CC Flip: %s", gpio_get_level(GPIO_EN_CC_FLIP) ? "YES" : "NO");
- CPRINTS("USB MUX: %s", gpio_get_level(GPIO_EN_USB_MUX2) ? "ON" : "OFF");
-}
-
-static int command_cc_flip(int argc, char *argv[])
-{
- int enable;
-
- if (argc != 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!parse_bool(argv[1], &enable))
- return EC_ERROR_INVAL;
-
- if (output_en) {
- gpio_set_level(enabled_port, 0);
- gpio_set_level(GPIO_EN_USB_MUX2, 0);
- /* Wait long enough for CC to discharge. */
- usleep(500 * MSEC);
- }
-
- gpio_set_level(GPIO_EN_CC_FLIP, enable);
- /* Allow some time for new CC configuration to settle. */
- usleep(500 * MSEC);
-
- if (output_en) {
- gpio_set_level(enabled_port, 1);
- gpio_set_level(GPIO_EN_USB_MUX2, 1);
- }
-
- print_port_status();
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(ccflip, command_cc_flip,
- "<enable/disable>",
- "enable or disable flipping CC orientation");
-/*
- * Support tca6416 I2C ioexpander.
- */
-#define GPIOX_I2C_ADDR_FLAGS 0x20
-#define GPIOX_IN_PORT_A 0x0
-#define GPIOX_IN_PORT_B 0x1
-#define GPIOX_OUT_PORT_A 0x2
-#define GPIOX_OUT_PORT_B 0x3
-#define GPIOX_DIR_PORT_A 0x6
-#define GPIOX_DIR_PORT_B 0x7
-#define I2C_PORT_MASTER 1
-
-static void i2c_expander_init(void)
-{
- gpio_set_level(GPIO_XP_RESET_L, 1);
-
- /*
- * Setup P00, P02, P04, P10, and P12 on the I/O expander as an output.
- */
- i2c_write8(I2C_PORT_MASTER, GPIOX_I2C_ADDR_FLAGS,
- GPIOX_DIR_PORT_A, 0xea);
- i2c_write8(I2C_PORT_MASTER, GPIOX_I2C_ADDR_FLAGS,
- GPIOX_DIR_PORT_B, 0xfa);
-}
-DECLARE_HOOK(HOOK_INIT, i2c_expander_init, HOOK_PRIO_INIT_I2C+1);
-
-/* Write to a GPIO register on the tca6416 I2C ioexpander. */
-static void write_ioexpander(int bank, int gpio, int reg, int val)
-{
- int tmp;
-
- /* Read output port register */
- i2c_read8(I2C_PORT_MASTER, GPIOX_I2C_ADDR_FLAGS,
- reg + bank, &tmp);
- if (val)
- tmp |= BIT(gpio);
- else
- tmp &= ~BIT(gpio);
- /* Write back modified output port register */
- i2c_write8(I2C_PORT_MASTER, GPIOX_I2C_ADDR_FLAGS,
- reg + bank, tmp);
-}
-
-enum led_ch {
- LED_5V = 0,
- LED_9V,
- LED_12V,
- LED_15V,
- LED_20V,
- LED_COUNT,
-};
-
-static void set_led(enum led_ch led, int enable)
-{
- int bank;
- int gpio;
-
- switch (led) {
- case LED_5V:
- bank = 0;
- gpio = 0;
- break;
-
- case LED_9V:
- bank = 0;
- gpio = 2;
- break;
-
- case LED_12V:
- bank = 0;
- gpio = 4;
- break;
-
- case LED_15V:
- bank = 1;
- gpio = 0;
- break;
-
- case LED_20V:
- bank = 1;
- gpio = 2;
- break;
-
- default:
- return;
- }
-
- /*
- * Setup the LED as an output if enabled, otherwise as an input to keep
- * the LEDs off.
- */
- write_ioexpander(bank, gpio, GPIOX_DIR_PORT_A, !enable);
-
- /* The LEDs are active low. */
- if (enable)
- write_ioexpander(bank, gpio, GPIOX_OUT_PORT_A, 0);
-}
-
-void show_output_voltage_on_leds(void);
-DECLARE_DEFERRED(show_output_voltage_on_leds);
-
-static void board_init(void)
-{
- /* Do a sweeping LED dance. */
- for (enum led_ch led = 0; led < LED_COUNT; led++) {
- set_led(led, 1);
- msleep(100);
- }
-
- msleep(500);
-
- for (enum led_ch led = 0; led < LED_COUNT; led++)
- set_led(led, 0);
-
- show_output_voltage_on_leds();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-
-enum usb_mux {
- USB_MUX0 = 0,
- USB_MUX1,
- USB_MUX2,
- USB_MUX_COUNT,
-};
-
-static void set_mux(enum usb_mux mux, uint8_t val)
-{
- enum gpio_signal c0;
- enum gpio_signal c1;
- enum gpio_signal c2;
-
- switch (mux) {
- case USB_MUX0:
- c0 = GPIO_USB_MUX0_C0;
- c1 = GPIO_USB_MUX0_C1;
- c2 = GPIO_USB_MUX0_C2;
- break;
-
- case USB_MUX1:
- c0 = GPIO_USB_MUX1_C0;
- c1 = GPIO_USB_MUX1_C1;
- c2 = GPIO_USB_MUX1_C2;
- break;
-
- case USB_MUX2:
- c0 = GPIO_USB_MUX2_C0;
- c1 = GPIO_USB_MUX2_C1;
- c2 = GPIO_USB_MUX2_C2;
- break;
-
- default:
- break;
- }
-
- val &= 0x7;
-
- gpio_set_level(c0, val & BIT(0));
- gpio_set_level(c1, val & BIT(1));
- gpio_set_level(c2, val & BIT(2));
-}
-
-/* This function assumes only 1 port works at a time. */
-static int command_portctl(int argc, char **argv)
-{
- int port;
- int enable;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- port = atoi(argv[1]);
- if ((port < 0) || (port > 19) || !parse_bool(argv[2], &enable))
- return EC_ERROR_INVAL;
-
- gpio_set_level(GPIO_EN_USB_MUX2, 0);
-
- /*
- * For each port, we must configure the USB 2.0 muxes and make sure that
- * the power enables are configured as desired.
- */
-
- gpio_set_level(enabled_port, 0);
- if (enabled_port != GPIO_EN_C0 + port)
- CPRINTS("Port %d: disabled", enabled_port-GPIO_EN_C0);
-
- /* Allow time for an "unplug" to allow VBUS and CC to fall. */
- usleep(1 * SECOND);
-
- /*
- * The USB 2.0 lines are arranged using 3x 8:1 muxes. Ports 0-7 are
- * handled by the first mux, ports 8-15 are handled by the 2nd mux, then
- * the outputs of those muxes are fed into the third mux along with
- * ports 16-19. The schematic contains the truth table.
- */
- if (enable) {
- enabled_port = GPIO_EN_C0 + port;
- gpio_set_level(enabled_port, 1);
-
- if (port < 8) {
- set_mux(USB_MUX0, 7-port);
- set_mux(USB_MUX2, 3);
- } else if (port < 16) {
- if (port < 14)
- set_mux(USB_MUX1, 5-(port-8));
- else
- set_mux(USB_MUX1, 7-(port-14));
-
- set_mux(USB_MUX2, 1);
- } else {
- set_mux(USB_MUX2, 7-(port-16));
- }
-
- gpio_set_level(GPIO_EN_USB_MUX2, 1);
- output_en = 1;
- } else {
- gpio_set_level(enabled_port, 0);
- output_en = 0;
- }
-
- print_port_status();
- return EC_SUCCESS;
-}
-
-DECLARE_CONSOLE_COMMAND(portctl, command_portctl,
- "<port# 0-19> <enable/disable>",
- "enable or disable a port");
-
-static int command_status(int argc, char **argv)
-{
- int vbus_mv = adc_read_channel(ADC_PPVAR_VBUS_DUT);
-
- CPRINTS("PPVAR_VBUS_DUT: %dmV (raw: %d)", vbus_mv*7692/1000,
- vbus_mv);
- print_port_status();
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(status, command_status, NULL, "show current status");
-
-/*
- * According to the USB PD Spec, the minimum voltage for a fixed source is 95%
- * of the new source voltage with an additional 500mV drop.
- *
- * vSrcNew | min | vSrcNew(min) + vSrcValid
- * 5V | 4.75V | 4.25V | 553mV
- * 9V | 8.55V | 8.05V | 1047mV
- * 12V | 11.4V | 10.9V | 1417mV
- * 15V | 14.25V | 13.75V | 1788mV
- * 20V | 19V | 18.5V | 2405mV
- *
- * With the resistor divider that fluffy has, the ADC is only seeing 0.13 of the
- * actual voltage.
- */
-void show_output_voltage_on_leds(void)
-{
- int read = adc_read_channel(ADC_PPVAR_VBUS_DUT);
- uint32_t vbus_mv = (uint32_t)read;
- static int prev_vbus_mv;
- int i;
- int act;
- enum led_ch max_on_exclusive = LED_5V;
-
- if (read != ADC_READ_ERROR) {
- if (vbus_mv >= 2405)
- max_on_exclusive = LED_COUNT;
- else if (vbus_mv >= 1788)
- max_on_exclusive = LED_20V;
- else if (vbus_mv >= 1417)
- max_on_exclusive = LED_15V;
- else if (vbus_mv >= 1047)
- max_on_exclusive = LED_12V;
- else if (vbus_mv >= 553)
- max_on_exclusive = LED_9V;
-
- for (i = 0; i < LED_COUNT; i++)
- set_led(i, i < max_on_exclusive);
-
- act = (vbus_mv * 76667) / 10000;
- if ((vbus_mv > prev_vbus_mv+2) || (vbus_mv < prev_vbus_mv-2)) {
- CPRINTS("PPVAR_VBUS_DUT: %d mV (raw: %d)", act,
- vbus_mv);
- prev_vbus_mv = vbus_mv;
- }
- }
-
- /*
- * The reason we reschedule this ourselves as opposed to declaring it as
- * a hook with a HOOK_TICK period is to allow the LED sweep sequence
- * when the board boots up.
- */
- hook_call_deferred(&show_output_voltage_on_leds_data,
- 500 * MSEC);
-}
diff --git a/board/fluffy/board.h b/board/fluffy/board.h
deleted file mode 100644
index 75e9843b83..0000000000
--- a/board/fluffy/board.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Fluffy configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* This is not an EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_CONSOLE
-#define CONFIG_USB_PID 0x503b
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_COUNT 1
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_COUNT 2
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-
-#define CONFIG_ADC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_CONSOLE_NAME,
- USB_STR_COUNT
-};
-
-enum adc_channel {
- ADC_PPVAR_VBUS_DUT,
- ADC_CH_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/fluffy/build.mk b/board/fluffy/build.mk
deleted file mode 100644
index b6761a4692..0000000000
--- a/board/fluffy/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072CBU6TR
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-# Use coreboot-sdk
-$(call set-option,CROSS_COMPILE_arm,\
- $(CROSS_COMPILE_coreboot_sdk_arm),\
- /opt/coreboot-sdk/bin/arm-eabi-)
-
-board-y=board.o
diff --git a/board/fluffy/ec.tasklist b/board/fluffy/ec.tasklist
deleted file mode 100644
index c732944a23..0000000000
--- a/board/fluffy/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/fluffy/gpio.inc b/board/fluffy/gpio.inc
deleted file mode 100644
index 4c802554f9..0000000000
--- a/board/fluffy/gpio.inc
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Misc */
-GPIO(XP_RESET_L, PIN(A, 10), GPIO_OUT_LOW)
-GPIO(EN_CC_FLIP, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(ADC_PPVAR_VBUS_DUT, PIN(A, 0), GPIO_ANALOG)
-
-/* Port Enables */
-GPIO(EN_C0, PIN(B, 0), GPIO_OUT_LOW)
-GPIO(EN_C1, PIN(B, 1), GPIO_OUT_LOW)
-GPIO(EN_C2, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EN_C3, PIN(B, 3), GPIO_OUT_LOW)
-GPIO(EN_C4, PIN(B, 4), GPIO_OUT_LOW)
-GPIO(EN_C5, PIN(B, 5), GPIO_OUT_LOW)
-GPIO(EN_C6, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(EN_C7, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_C8, PIN(B, 8), GPIO_OUT_LOW)
-GPIO(EN_C9, PIN(B, 9), GPIO_OUT_LOW)
-GPIO(EN_C10, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(EN_C11, PIN(B, 11), GPIO_OUT_LOW)
-GPIO(EN_C12, PIN(B, 12), GPIO_OUT_LOW)
-GPIO(EN_C13, PIN(A, 8), GPIO_OUT_LOW)
-GPIO(EN_C14, PIN(A, 9), GPIO_OUT_LOW)
-GPIO(EN_C15, PIN(B, 15), GPIO_OUT_LOW)
-GPIO(EN_C16, PIN(C, 13), GPIO_OUT_LOW)
-GPIO(EN_C17, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EN_C18, PIN(C, 15), GPIO_OUT_LOW)
-GPIO(EN_C19, PIN(F, 0), GPIO_OUT_LOW)
-
-/* I2C Port for I/O expander */
-GPIO(I2C_SCL, PIN(B, 13), GPIO_INPUT)
-GPIO(I2C_SDA, PIN(B, 14), GPIO_INPUT)
-
-/* USB 2.0 Muxes */
-GPIO(USB_MUX0_C0, PIN(A, 1), GPIO_OUT_LOW)
-GPIO(USB_MUX0_C1, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(USB_MUX0_C2, PIN(A, 3), GPIO_OUT_LOW)
-
-GPIO(USB_MUX1_C0, PIN(A, 5), GPIO_OUT_LOW)
-GPIO(USB_MUX1_C1, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(USB_MUX1_C2, PIN(A, 7), GPIO_OUT_LOW)
-
-GPIO(EN_USB_MUX2, PIN(A, 13), GPIO_OUT_LOW)
-GPIO(USB_MUX2_C0, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_MUX2_C1, PIN(A, 15), GPIO_OUT_LOW)
-GPIO(USB_MUX2_C2, PIN(F, 1), GPIO_OUT_LOW)
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(B, 0x6000), 5, MODULE_I2C, GPIO_ODR_HIGH) /* PB13/14 I2C2 */
diff --git a/board/foob/battery.c b/board/foob/battery.c
deleted file mode 100644
index 01a6654920..0000000000
--- a/board/foob/battery.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all phaser battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- /* SMP 5B10Q13163 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* LGC 5B10Q13162 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 181, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L18D3PG1 */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* GF Battery Information */
- [BATTERY_GF] = {
- .fuel_gauge = {
- .manuf_name = "GF",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* GuoGuang 50Wh/38Wh Battery Information */
- [BATTERY_AEC] = {
- .fuel_gauge = {
- .manuf_name = "AEC",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC;
diff --git a/board/foob/board.c b/board/foob/board.c
deleted file mode 100644
index 3e7725ac2e..0000000000
--- a/board/foob/board.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Phaser board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/anx7447.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "util.h"
-#include "battery_smart.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate lid and base sensor into standard reference frame */
-const mat33_fp_t standard_rot_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &standard_rot_ref,
- /* We only use 2g because its resolution is only 8-bits */
- .default_range = 2, /* g */
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &standard_rot_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &standard_rot_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static int board_is_convertible(void)
-{
- return sku_id == 9 || sku_id == 255;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- ccprints("SKU: 0x%04x", sku_id);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-int board_is_lid_angle_tablet_mode(void)
-{
- return board_is_convertible();
-}
-
-/* Battery functions */
-#define SB_OPTIONALMFG_FUNCTION2 0x3e
-/* Optional mfg function2 */
-#define SMART_QUICK_CHARGE (1<<12)
-/* Quick charge support */
-#define MODE_QUICK_CHARGE_SUPPORT (1<<4)
-
-static void sb_quick_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_BATTERY_MODE, &val);
- if (rv || !(val & MODE_QUICK_CHARGE_SUPPORT))
- return;
-
- rv = sb_read(SB_OPTIONALMFG_FUNCTION2, &val);
- if (rv)
- return;
-
- if (enable)
- val |= SMART_QUICK_CHARGE;
- else
- val &= ~SMART_QUICK_CHARGE;
-
- sb_write(SB_OPTIONALMFG_FUNCTION2, val);
-}
-
-/* Called on AP S3/S0ix -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Normal charge current */
- sb_quick_charge_mode(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3/S0ix transition */
-static void board_chipset_suspend(void)
-{
- /* Quick charge current */
- sb_quick_charge_mode(1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
diff --git a/board/foob/board.h b/board/foob/board.h
deleted file mode 100644
index c20c1ad33b..0000000000
--- a/board/foob/board.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Phaser board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_LED_COMMON
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* Sensors */
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_PANASONIC,
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_GF,
- BATTERY_AEC,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/foob/build.mk b/board/foob/build.mk
deleted file mode 100644
index 137e208b53..0000000000
--- a/board/foob/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/foob/ec.tasklist b/board/foob/ec.tasklist
deleted file mode 100644
index 6eac78a042..0000000000
--- a/board/foob/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/foob/gpio.inc b/board/foob/gpio.inc
deleted file mode 100644
index ad6773a211..0000000000
--- a/board/foob/gpio.inc
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-/*
- * High-to-low transition on POWER_BUTTON_L is treated as a wake event from
- * hibernate. Absence of GPIO_HIB_WAKE_HIGH flag is treated as wake on
- * high-to-low edge.
- */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_RED_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_GREEN_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(PWR_LED_WHITE_L, PIN(D, 7), GPIO_OUT_HIGH) /* LED_3_L */
-
-/* Not implemented in hardware */
-UNIMPLEMENTED(KB_BL_PWR_EN)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Camera */
-GPIO(EC_GPIO_03, PIN(0, 3), GPIO_INPUT) /* TP only */
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-/* Misc. */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Unused pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_GPIO97, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/foob/led.c b/board/foob/led.c
deleted file mode 100644
index c08203ccda..0000000000
--- a/board/foob/led.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Phaser
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/foob/vif_override.xml b/board/foob/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/foob/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/fusb307bgevb/board.c b/board/fusb307bgevb/board.c
deleted file mode 100644
index 41b12d5a82..0000000000
--- a/board/fusb307bgevb/board.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/* 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.
- */
-/* FUSB307BGEVB configuration */
-
-#include "common.h"
-#include "ec_version.h"
-#include "fusb307.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "lcd.h"
-#include "printf.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "usart-stm32f0.h"
-#include "usart_tx_dma.h"
-#include "usart_rx_dma.h"
-#include "usb_gpio.h"
-#include "usb-stream.h"
-#include "usb_common.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0);
-}
-
-/******************************************************************************
- * Handle button presses. Press BUTTON REFRESH to refresh pdos shown on lcd.
- * Press BUTTON DOWN to select pdo. Prss BUTTON ENTER to confirm selection.
- */
-static int count;
-
-static void button_enter_event_deferred(void)
-{
- uint32_t ma, mv, unused;
-
- CPRINTS("Button enter event");
-
- if (count >= 0 && count < pd_get_src_cap_cnt(0)) {
- pd_extract_pdo_power(pd_get_src_caps(0)[count], &ma, &mv,
- &unused);
- pd_request_source_voltage(0, mv);
- } else {
- CPRINTS("ERROR: button counter weird value.");
- return;
- }
-}
-DECLARE_DEFERRED(button_enter_event_deferred);
-
-void button_enter_event(enum gpio_signal signal)
-{
- hook_call_deferred(&button_enter_event_deferred_data, 100 * MSEC);
-}
-
-static void button_refresh_event_deferred(void)
-{
- int i;
- uint32_t ma, mv, unused;
- char c[20];
-
- CPRINTS("Button refresh event");
- count = 0;
-
- /* Display supply voltage on first page. */
- lcd_clear();
- for (i = 0; i < MIN(pd_get_src_cap_cnt(0), 4); i++) {
- pd_extract_pdo_power(pd_get_src_caps(0)[i], &ma, &mv, &unused);
- snprintf(c, ARRAY_SIZE(c), "[%d] %dmV %dmA", i, mv, ma);
- lcd_set_cursor(0, i);
- lcd_print_string(c);
- }
-
- /* Display selector */
- lcd_set_cursor(19, 0);
- lcd_print_string("V");
-}
-DECLARE_DEFERRED(button_refresh_event_deferred);
-
-void button_refresh_event(enum gpio_signal signal)
-{
- hook_call_deferred(&button_refresh_event_deferred_data, 100 * MSEC);
-}
-
-static void button_down_event_deferred(void)
-{
- int i;
- uint32_t ma, mv, unused;
- char c[20];
-
- CPRINTS("Button down event");
- if (pd_get_src_cap_cnt(0) > 0)
- count = (count + 1) % pd_get_src_cap_cnt(0);
- else {
- /* Hasn't plug in adaptor yet, do nothing. */
- return;
- }
-
- /* Display all supply voltage, count will never be greater than 7 */
- if (count == 0) {
- lcd_clear();
- for (i = 0; i < MIN(pd_get_src_cap_cnt(0), 4); i++) {
- pd_extract_pdo_power(pd_get_src_caps(0)[i], &ma, &mv,
- &unused);
- snprintf(c, ARRAY_SIZE(c), "[%d] %dmV %dmA", i, mv, ma);
- lcd_set_cursor(0, i);
- lcd_print_string(c);
- }
- }
- if (count == 4) {
- lcd_clear();
- for (i = 4; i < pd_get_src_cap_cnt(0); i++) {
- pd_extract_pdo_power(pd_get_src_caps(0)[i], &ma, &mv,
- &unused);
- snprintf(c, ARRAY_SIZE(c), "[%d] %dmV %dmA", i, mv, ma);
- lcd_set_cursor(0, i - 4);
- lcd_print_string(c);
- }
- }
-
- /* Clear last col on LCD */
- for (i = 0; i < 4; i++) {
- lcd_set_cursor(19, i);
- lcd_print_string(" ");
- }
- /* Display selector */
- lcd_set_cursor(19, count % 4);
- lcd_print_string("V");
-}
-DECLARE_DEFERRED(button_down_event_deferred);
-
-void button_down_event(enum gpio_signal signal)
-{
- hook_call_deferred(&button_down_event_deferred_data, 100 * MSEC);
-}
-
-/******************************************************************************
- * Build GPIO tables and expose a subset of the GPIOs over USB.
- */
-#include "gpio_list.h"
-
-static enum gpio_signal const usb_gpio_list[] = {
- GPIO_USER_BUTTON_ENTER,
- GPIO_USER_BUTTON_REFRESH,
- GPIO_USER_BUTTON_DOWN,
-};
-
-/*
- * This instantiates struct usb_gpio_config const usb_gpio, plus several other
- * variables, all named something beginning with usb_gpio_
- */
-USB_GPIO_CONFIG(usb_gpio,
- usb_gpio_list,
- USB_IFACE_GPIO,
- USB_EP_GPIO);
-
-/******************************************************************************
- * Setup USART1 as a loopback device, it just echo's back anything sent to it.
- */
-static struct usart_config const loopback_usart;
-
-static struct queue const loopback_queue =
- QUEUE_DIRECT(64, uint8_t,
- loopback_usart.producer,
- loopback_usart.consumer);
-
-static struct usart_rx_dma const loopback_rx_dma =
- USART_RX_DMA(STM32_DMAC_CH3, 8);
-
-static struct usart_tx_dma const loopback_tx_dma =
- USART_TX_DMA(STM32_DMAC_CH2, 16);
-
-static struct usart_config const loopback_usart =
- USART_CONFIG(usart1_hw,
- loopback_rx_dma.usart_rx,
- loopback_tx_dma.usart_tx,
- 115200,
- 0,
- loopback_queue,
- loopback_queue);
-
-/******************************************************************************
- * Forward USART4 as a simple USB serial interface.
- */
-static struct usart_config const forward_usart;
-struct usb_stream_config const forward_usb;
-
-static struct queue const usart_to_usb = QUEUE_DIRECT(64, uint8_t,
- forward_usart.producer,
- forward_usb.consumer);
-static struct queue const usb_to_usart = QUEUE_DIRECT(64, uint8_t,
- forward_usb.producer,
- forward_usart.consumer);
-
-static struct usart_tx_dma const forward_tx_dma =
- USART_TX_DMA(STM32_DMAC_CH7, 16);
-
-static struct usart_config const forward_usart =
- USART_CONFIG(usart4_hw,
- usart_rx_interrupt,
- forward_tx_dma.usart_tx,
- 115200,
- 0,
- usart_to_usb,
- usb_to_usart);
-
-#define USB_STREAM_RX_SIZE 16
-#define USB_STREAM_TX_SIZE 16
-
-USB_STREAM_CONFIG(forward_usb,
- USB_IFACE_STREAM,
- USB_STR_STREAM_NAME,
- USB_EP_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart,
- usart_to_usb)
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("fusb307bgevb"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_STREAM_NAME] = USB_STRING_DESC("Forward"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Shell"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/******************************************************************************
- * I2C interface.
- */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc", I2C_PORT_TCPC, 400 /* kHz */, GPIO_I2C2_SCL, GPIO_I2C2_SDA}
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************
- * PD
- */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC,
- .addr_flags = FUSB307_I2C_ADDR_FLAGS,
- },
- .drv = &fusb307_tcpm_drv,
- },
-};
-
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-void board_reset_pd_mcu(void)
-{
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- /* No battery, nothing to do */
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- fusb307_power_supply_reset(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- return EC_SUCCESS;
-}
-
-int pd_board_checks(void)
-{
- return EC_SUCCESS;
-}
-
-/******************************************************************************
- * Initialize board.
- */
-static void board_init(void)
-{
- /* Enable button interrupts */
- gpio_enable_interrupt(GPIO_USER_BUTTON_ENTER);
- gpio_enable_interrupt(GPIO_USER_BUTTON_REFRESH);
- gpio_enable_interrupt(GPIO_USER_BUTTON_DOWN);
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- lcd_init(20, 4, 0);
- lcd_set_cursor(0, 0);
- lcd_print_string("USB-C");
- lcd_set_cursor(0, 1);
- lcd_print_string("Sink Advertiser");
- queue_init(&loopback_queue);
- queue_init(&usart_to_usb);
- queue_init(&usb_to_usart);
- usart_init(&loopback_usart);
- usart_init(&forward_usart);
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/fusb307bgevb/board.h b/board/fusb307bgevb/board.h
deleted file mode 100644
index 3495f7125f..0000000000
--- a/board/fusb307bgevb/board.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* 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.
- */
-
-/* Fusb307bgevb configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Debug Congifuation */
-#define DEBUG_GET_CC
-#define DEBUG_ROLE_CTRL_UPDATES
-
-/* Enable USART1,3,4 and USB streams */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART1
-#define CONFIG_STREAM_USART4
-#define CONFIG_STREAM_USB
-#define CONFIG_CMD_USART_INFO
-
-/* the UART console is on USART2 (PA14/PA15) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_HW_CRC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x1234
-#define CONFIG_USB_CONSOLE
-
-/* USB Power Delivery configuration */
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_REV30
-#define CONFIG_USB_PD_DECODE_SOP
-#define CONFIG_USBC_VCONN
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_TCPM_FUSB307
-
-/* delay to turn on/off vconn */
-/* Define operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_VOLTAGE_MV 20000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_POWER_MW ((PD_MAX_VOLTAGE_MV * PD_MAX_CURRENT_MA) / 1000)
-
-/* Degine board specific type-C power constants */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 160000 /* us */
-
-/* I2C master port connected to the TCPC */
-#define I2C_PORT_TCPC 1
-
-/* LCD Configuration */
-#define LCD_SLAVE_ADDR 0x27
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_STREAM 0
-#define USB_IFACE_GPIO 1
-#define USB_IFACE_SPI 2
-#define USB_IFACE_CONSOLE 3
-#define USB_IFACE_COUNT 4
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_STREAM 1
-#define USB_EP_GPIO 2
-#define USB_EP_SPI 3
-#define USB_EP_CONSOLE 4
-#define USB_EP_COUNT 5
-
-/* Enable control of GPIOs over USB */
-#define CONFIG_USB_GPIO
-
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_VERSION,
- USB_STR_STREAM_NAME,
- USB_STR_CONSOLE_NAME,
-
- USB_STR_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/fusb307bgevb/build.mk b/board/fusb307bgevb/build.mk
deleted file mode 100644
index 1372562107..0000000000
--- a/board/fusb307bgevb/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o lcd.o
diff --git a/board/fusb307bgevb/ec.tasklist b/board/fusb307bgevb/ec.tasklist
deleted file mode 100644
index e25b8f7a68..0000000000
--- a/board/fusb307bgevb/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/fusb307bgevb/gpio.inc b/board/fusb307bgevb/gpio.inc
deleted file mode 100644
index 16a845576d..0000000000
--- a/board/fusb307bgevb/gpio.inc
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-GPIO_INT(USER_BUTTON_ENTER, PIN(A, 0), GPIO_INT_FALLING, button_enter_event)
-GPIO_INT(USER_BUTTON_REFRESH, PIN(A, 1), GPIO_INT_FALLING, button_refresh_event)
-GPIO_INT(USER_BUTTON_DOWN, PIN(A, 2), GPIO_INT_FALLING, button_down_event)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C2_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(B, 11), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(B, 0x0C00), 1, MODULE_I2C, GPIO_ODR_HIGH ) /* I2C MASTER: PB10/11 */
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_USART, 0) /* USART1: PA09/PA10 */
-ALTERNATE(PIN_MASK(A, 0xC000), 1, MODULE_UART, 0) /* USART2: PA14/PA15 */
-ALTERNATE(PIN_MASK(C, 0x0C00), 0, MODULE_USART, 0) /* USART4: PC10/PC11 */
diff --git a/board/fusb307bgevb/lcd.c b/board/fusb307bgevb/lcd.c
deleted file mode 100644
index 892888329e..0000000000
--- a/board/fusb307bgevb/lcd.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* 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.
- *
- * LCD driver for I2C LCD 2004.
- */
-
-#include "i2c.h"
-#include "lcd.h"
-#include "timer.h"
-
-struct lcd_state_info {
- uint8_t addr;
- uint8_t displayfunction;
- uint8_t displaycontrol;
- uint8_t backlightval;
-};
-
-static struct lcd_state_info state = {
- .addr = LCD_SLAVE_ADDR,
- .backlightval = LCD_BACKLIGHT,
- .displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5X8DOTS,
-};
-
-/************ low level data pushing commands **********/
-/* write either command or data */
-static void expander_write(uint8_t data)
-{
- i2c_write8(I2C_PORT_TCPC, LCD_SLAVE_ADDR, 0x00, data |
- state.backlightval);
-}
-
-static void pulse_enable(uint8_t data)
-{
- expander_write(data | LCD_EN);/* En high */
- usleep(1); /* enable pulse must be >450ns */
-
- expander_write(data & ~LCD_EN);/* En low */
- usleep(50); /* commands need > 37us to settle */
-}
-
-static void write_4bits(uint8_t value)
-{
- expander_write(value);
- pulse_enable(value);
-}
-
-static void send(uint8_t value, uint8_t mode)
-{
- uint8_t highnib = value & 0xf0;
- uint8_t lownib = (value << 4) & 0xf0;
-
- write_4bits(highnib | mode);
- write_4bits(lownib | mode);
-}
-
-/*********** mid level commands, for sending data/cmds */
-static void command(uint8_t value)
-{
- send(value, 0);
-}
-
-/********** high level commands, for the user! */
-void lcd_clear(void)
-{
- command(LCD_CLEAR_DISPLAY);/* clear display, set cursor to zero */
- usleep(2000); /* this command takes a long time! */
-}
-
-void lcd_set_cursor(uint8_t col, uint8_t row)
-{
- int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 };
-
- command(LCD_SET_DDRAMADDR | (col + row_offsets[row]));
-}
-
-void lcd_print_char(char data)
-{
- send(data, LCD_RS);
-}
-
-void lcd_print_string(const char *str)
-{
- while (*str)
- lcd_print_char(*str++);
-}
-
-/* Turn the display on/off (quickly) */
-void lcd_disable_display(void)
-{
- state.displaycontrol &= ~LCD_DISPLAY_ON;
- command(LCD_DISPLAY_CONTROL | state.displaycontrol);
-}
-void lcd_enable_display(void)
-{
- state.displaycontrol |= LCD_DISPLAY_ON;
- command(LCD_DISPLAY_CONTROL | state.displaycontrol);
-}
-
-/* Turn the (optional) backlight off/on */
-void lcd_disable_backlight(void)
-{
- state.backlightval = LCD_NO_BACKLIGHT;
- expander_write(0);
-}
-
-void lcd_enable_backlight(void)
-{
- state.backlightval = LCD_BACKLIGHT;
- expander_write(0);
-}
-
-void lcd_init(uint8_t cols, uint8_t rows, uint8_t dotsize)
-{
- if (rows > 1)
- state.displayfunction |= LCD_2LINE;
-
- /* for some 1 line displays you can select a 10 pixel high font */
- if ((dotsize != 0) && (rows == 1))
- state.displayfunction |= LCD_5X10DOTS;
-
- /* SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION!
- * according to datasheet, we need at least 40ms after power rises
- * above 2.7V before sending commands. Arduino can turn on way
- * before 4.5V so we'll wait 50
- */
- usleep(50);
-
- /* Now we pull both RS and R/W low to begin commands */
- /* reset expanderand turn backlight off (Bit 8 =1) */
- expander_write(state.backlightval);
- usleep(1000);
-
- /* put the LCD into 4 bit mode
- * this is according to the hitachi HD44780 datasheet
- * figure 24, pg 46
- * we start in 8bit mode, try to set 4 bit mode
- */
- write_4bits(0x03 << 4);
- usleep(4500); /* wait min 4.1ms */
- /*second try */
- write_4bits(0x03 << 4);
- usleep(4500); /* wait min 4.1ms */
- /* third go! */
- write_4bits(0x03 << 4);
- usleep(150);
- /* finally, set to 4-bit interface */
- write_4bits(0x02 << 4);
-
- /* set # lines, font size, etc. */
- command(LCD_FUNCTION_SET | state.displayfunction);
-
- /* turn the display on with no cursor or blinking default */
- state.displaycontrol = LCD_DISPLAY_ON | LCD_CURSOR_OFF | LCD_BLINK_OFF;
- lcd_enable_display();
-
- /* clear it off */
- lcd_clear();
-
- /* Initialize to default text direction (for roman languages)
- * and set the entry mode
- */
- command(LCD_ENTRYMODE_SET | LCD_ENTRY_LEFT | LCD_ENTRY_SHIFT_DECREMENT);
-
- lcd_set_cursor(0, 0);
-}
diff --git a/board/fusb307bgevb/lcd.h b/board/fusb307bgevb/lcd.h
deleted file mode 100644
index 21b0ee9ce9..0000000000
--- a/board/fusb307bgevb/lcd.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* 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.
- *
- * LCD driver for I2C LCD 2004.
- */
-
-#ifndef __CROS_EC_LCD_H
-#define __CROS_EC_LCD_H
-
-#include "common.h"
-
-/* commands */
-#define LCD_CLEAR_DISPLAY BIT(0)
-#define LCD_RETURN_HOME BIT(1)
-#define LCD_ENTRYMODE_SET BIT(2)
-#define LCD_DISPLAY_CONTROL BIT(3)
-#define LCD_CURSOR_SHIFT BIT(4)
-#define LCD_FUNCTION_SET BIT(5)
-#define LCD_SET_CGRAMADDR BIT(6)
-#define LCD_SET_DDRAMADDR BIT(7)
-
-/* flags for display entry mode */
-#define LCD_ENTRY_RIGHT 0x00
-#define LCD_ENTRY_LEFT BIT(1)
-#define LCD_ENTRY_SHIFT_INCREMENT BIT(0)
-#define LCD_ENTRY_SHIFT_DECREMENT 0x00
-
-/* flags for display on/off control */
-#define LCD_DISPLAY_ON BIT(2)
-#define LCD_DISPLAY_OFF 0x00
-#define LCD_CURSOR_ON BIT(1)
-#define LCD_CURSOR_OFF 0x00
-#define LCD_BLINK_ON BIT(0)
-#define LCD_BLINK_OFF 0x00
-
-/* flags for display/cursor shift */
-#define LCD_DISPLAY_MOVE BIT(3)
-#define LCD_CURSOR_MOVE 0x00
-#define LCD_MOVE_RIGHT BIT(2)
-#define LCD_MOVE_LEFT 0x00
-
-/* flags for function set */
-#define LCD_8BITMODE BIT(4)
-#define LCD_4BITMODE 0x00
-#define LCD_2LINE BIT(3)
-#define LCD_1LINE 0x00
-#define LCD_5X10DOTS BIT(2)
-#define LCD_5X8DOTS 0x00
-
-/* flags for backlight control */
-#define LCD_BACKLIGHT BIT(3)
-#define LCD_NO_BACKLIGHT 0x00
-
-#define LCD_EN BIT(2) /* Enable bit */
-#define LCD_RW BIT(1) /* Read/Write bit */
-#define LCD_RS BIT(0) /* Register select bit */
-
-void lcd_init(uint8_t cols, uint8_t rows, uint8_t dotsize);
-void lcd_set_cursor(uint8_t col, uint8_t row);
-void lcd_set_char(char data);
-void lcd_print_string(const char *str);
-void lcd_clear(void);
-void lcd_enable_display(void);
-void lcd_disable_display(void);
-void lcd_enable_backlight(void);
-void lcd_disable_backlight(void);
-
-#endif /*__CROS_EC_LCD_H */
diff --git a/board/fusb307bgevb/vif_override.xml b/board/fusb307bgevb/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/fusb307bgevb/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/galtic/battery.c b/board/galtic/battery.c
deleted file mode 100644
index 765b2af926..0000000000
--- a/board/galtic/battery.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all waddledee battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C140254] = {
- .fuel_gauge = {
- .manuf_name = "AS3GXXE3KA",
- .device_name = "C140254",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000C,
- .disconnect_val = 0x000C,
- }
- },
- .batt_info = {
- .voltage_max = 8900, /* mV */
- .voltage_normal = 7970, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_C340184] = {
- .fuel_gauge = {
- .manuf_name = "AS3GXXH3KD",
- .device_name = "C340184",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000C,
- .disconnect_val = 0x000C,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0004,
- }
- },
- .batt_info = {
- .voltage_max = 8900, /* mV */
- .voltage_normal = 7960, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C140254;
diff --git a/board/galtic/board.c b/board/galtic/board.c
deleted file mode 100644
index 2c3cb41d17..0000000000
--- a/board/galtic/board.c
+++ /dev/null
@@ -1,892 +0,0 @@
-/* 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.
- */
-
-/* Waddledee board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-/* USB Retimer */
-enum tusb544_conf {
- USB_DP = 0,
- USB_DP_INV,
- USB,
- USB_INV,
- DP,
- DP_INV
-};
-
-static int board_tusb544_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
- enum tusb544_conf usb_mode = 0;
- /* USB */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* USB with DP */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_DP_INV
- : USB_DP;
- }
- /* USB without DP */
- else {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_INV
- : USB;
- }
- }
- /* DP without USB */
- else if (mux_state & USB_PD_MUX_DP_ENABLED) {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? DP_INV
- : DP;
- }
- /* Nothing enabled */
- else
- return EC_SUCCESS;
- /* Write the retimer config byte */
- if (usb_mode == USB_INV) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x15);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == USB) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x11);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == USB_DP_INV) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1F);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == USB_DP) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1B);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == DP_INV) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1E);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x99);
- } else if (usb_mode == DP) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1A);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x99);
- }
-
- return rv;
-}
-
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS0,
- .driver = &tusb544_drv,
- .board_set = &board_tusb544_set,
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- },
-};
-
-static const struct ec_response_keybd_config galith_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-static const struct ec_response_keybd_config galtic_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- if (get_cbi_fw_config_numeric_pad() == NUMERIC_PAD_PRESENT)
- return &galith_kb;
- else
- return &galtic_kb;
-}
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- if (get_cbi_fw_config_numeric_pad() == NUMERIC_PAD_ABSENT) {
- /* Disable scanning KSO13 and 14 if keypad isn't present. */
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
- } else {
- /* Setting scan mask KSO11, KSO12, KSO13 and KSO14 */
- keyscan_config.actual_key_mask[11] = 0xfe;
- keyscan_config.actual_key_mask[12] = 0xff;
- keyscan_config.actual_key_mask[13] = 0xff;
- keyscan_config.actual_key_mask[14] = 0xff;
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- raa489000_hibernate(CHARGER_PRIMARY, true);
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(CHARGER_SECONDARY, true);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, !!enable);
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ? "en" : "dis");
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (port == i)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref_icm = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref_bmi = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t bma253_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- /* We only use 2g because its resolution is only 8-bits */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t bmi160_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_bmi,
- .default_range = 4, /* g */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t bmi160_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_bmi,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
-};
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- /* We only use 2g because its resolution is only 8-bits */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_icm,
- .default_range = 4, /* g */
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BMI160)
- bmi160_interrupt(signal);
- else
- icm426xx_interrupt(signal);
-}
-
-static void board_sensors_init(void)
-{
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_BMA255) {
- motion_sensors[LID_ACCEL] = bma253_lid_accel;
- ccprints("LID_ACCEL is BMA253");
- } else
- ccprints("LID_ACCEL is KX022");
-
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BMI160) {
- motion_sensors[BASE_ACCEL] = bmi160_base_accel;
- motion_sensors[BASE_GYRO] = bmi160_base_gyro;
- ccprints("BASE_ACCEL is BMI160");
- } else
- ccprints("BASE_ACCEL is ICM426XX");
-}
-DECLARE_HOOK(HOOK_INIT, board_sensors_init, HOOK_PRIO_DEFAULT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Vcore",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_charger = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(98),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
-};
-const static struct ec_thermal_config thermal_vcore = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(50),
- },
-};
-const static struct ec_thermal_config thermal_ambient = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(50),
- },
-};
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1] = thermal_charger,
- [TEMP_SENSOR_2] = thermal_vcore,
- [TEMP_SENSOR_3] = thermal_ambient,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This cause Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
diff --git a/board/galtic/board.h b/board/galtic/board.h
deleted file mode 100644
index 1098281868..0000000000
--- a/board/galtic/board.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* 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.
- */
-
-/* Waddledee board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000 /* C0 and C1: Charger */
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_OCPC
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_USB_C1_INT_ODL
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI_COMM_I2C
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel */
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM_COMM_I2C
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_THROTTLE_AP
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-#define CONFIG_USBC_RETIMER_TUSB544 /* C1 Redriver: TUSB544 */
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_KEYBOARD_KEYPAD
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_C140254,
- BATTERY_C340184,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/galtic/build.mk b/board/galtic/build.mk
deleted file mode 100644
index 806168ea0d..0000000000
--- a/board/galtic/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/galtic/cbi_ssfc.c b/board/galtic/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/galtic/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/galtic/cbi_ssfc.h b/board/galtic/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/galtic/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/galtic/ec.tasklist b/board/galtic/ec.tasklist
deleted file mode 100644
index 762325a825..0000000000
--- a/board/galtic/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/galtic/gpio.inc b/board/galtic/gpio.inc
deleted file mode 100644
index bd8787acb3..0000000000
--- a/board/galtic/gpio.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(SUB_USB_C1_INT_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt)
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW) /* Board rev 1, NC board rev 0 */
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED_R_ODL, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(LED_G_ODL, PIN(A, 2), GPIO_OUT_HIGH)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOA0_NC, PIN(A, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOA3_NC, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOB5_NC, PIN(B, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC6_NC, PIN(C, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF1_NC, PIN(F, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ1_NC, PIN(J, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ3_NC, PIN(J, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(2)), 0, MODULE_ADC, 0) /* ADC15: TEMP_SENSOR_3 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
diff --git a/board/galtic/led.c b/board/galtic/led.c
deleted file mode 100644
index ecd40dc973..0000000000
--- a/board/galtic/led.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {LED_OFF, 2 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_G_ODL, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_R_ODL, LED_ON_LVL);
- gpio_set_level(GPIO_LED_G_ODL, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_G_ODL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- /* Battery error LED behavior as below:
- * S0: Blinking Amber LED, 1s on/ 1s off
- * S3/S5: following S3/S5 behavior
- * Add function to let battery error LED follow S3/S5 behavior in S3/S5.
- */
-
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/galtic/usb_pd_policy.c b/board/galtic/usb_pd_policy.c
deleted file mode 100644
index dde6d5c318..0000000000
--- a/board/galtic/usb_pd_policy.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/galtic/vif_override.xml b/board/galtic/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/galtic/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/garg/battery.c b/board/garg/battery.c
deleted file mode 100644
index 046a9b2d56..0000000000
--- a/board/garg/battery.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all garg battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo SDI 916Q2286H battery information */
- [BATTERY_SIMPLO_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI3320",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13050, 5), /* mV */
- .voltage_normal = 11460,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo BYD 916Q2294H battery information */
- [BATTERY_SIMPLO_BYD] = {
- .fuel_gauge = {
- .manuf_name = "SMP-LP485780",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5), /* mV */
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo CA475778G 916QA141H battery information */
- [BATTERY_SIMPLO_CA475778G] = {
- .fuel_gauge = {
- .manuf_name = "SMP-CA475778G",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11430,
- .voltage_min = 9000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_SDI;
diff --git a/board/garg/board.c b/board/garg/board.c
deleted file mode 100644
index c5e4b4b83f..0000000000
--- a/board/garg/board.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Garg board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "button.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_icm_ref,
- .default_range = 4, /* g */
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-static int board_is_convertible(void)
-{
- /*
- * Garg360: 37, 38, 39
- * Unprovisioned: 255
- */
- return sku_id == 37 || sku_id == 38 || sku_id == 39 || sku_id == 255;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- if (get_cbi_ssfc_sensor() == SSFC_SENSOR_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else
- ccprints("BASE GYRO is BMI160");
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-void sensor_interrupt(enum gpio_signal signal)
-{
- switch (motion_sensors[BASE_ACCEL].chip) {
- case MOTIONSENSE_CHIP_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case MOTIONSENSE_CHIP_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-/* Read CBI from i2c eeprom and initialize variables for board variants */
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) != EC_SUCCESS || val > UINT8_MAX)
- return;
- sku_id = val;
- CPRINTSUSB("SKU: %d", sku_id);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_hibernate_late(void)
-{
- int i;
-
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs before going to hibernate */
- {GPIO_BAT_LED_BLUE_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_ORANGE_L, GPIO_INPUT | GPIO_PULL_UP},
- };
-
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- /* HDMI SKU has one USB PD port */
- if (sku_id == 9 || sku_id == 19 || sku_id == 50 || sku_id == 52)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
diff --git a/board/garg/board.h b/board/garg/board.h
deleted file mode 100644
index 273601824c..0000000000
--- a/board/garg/board.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Garg board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Free up flash space */
-#define CONFIG_LTO
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-/* I2C bus configuraiton */
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LED_COMMON
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCELGYRO_ICM426XX /* 2nd Base accel */
-#define CONFIG_SYNC /* Camera VSYNC */
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-/* Motion Sense Task Events */
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-#ifndef __ASSEMBLER__
-
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- VSYNC,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SIMPLO_SDI,
- BATTERY_SIMPLO_BYD,
- BATTERY_SIMPLO_CA475778G,
- BATTERY_TYPE_COUNT,
-};
-
-void sensor_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/garg/build.mk b/board/garg/build.mk
deleted file mode 100644
index 137e208b53..0000000000
--- a/board/garg/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/garg/ec.tasklist b/board/garg/ec.tasklist
deleted file mode 100644
index 6eac78a042..0000000000
--- a/board/garg/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/garg/gpio.inc b/board/garg/gpio.inc
deleted file mode 100644
index 995986d600..0000000000
--- a/board/garg/gpio.inc
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, sensor_interrupt)
-
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_ORANGE_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_BLUE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(LED_3_L, PIN(D, 7), GPIO_OUT_HIGH)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Misc. */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Unused Pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_GPIO97, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(WFCAM_VSYNC, PIN(0, 3), GPIO_INPUT)
-GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_INPUT)
-GPIO(EC_GPIO80, PIN(8, 0), GPIO_INPUT)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* 1.8V I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/garg/led.c b/board/garg/led.c
deleted file mode 100644
index 6e0306edd9..0000000000
--- a/board/garg/led.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Garg
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Garg: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/garg/vif_override.xml b/board/garg/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/garg/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/genesis/board.c b/board/genesis/board.c
deleted file mode 100644
index 6f397bf1ab..0000000000
--- a/board/genesis/board.c
+++ /dev/null
@@ -1,480 +0,0 @@
-/* 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.
- */
-
-/* Puff board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "chipset.h"
-#include "common.h"
-#include "core/cortex-m/cpu.h"
-#include "cros_board_info.h"
-#include "driver/ina3221.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/cometlake-discrete.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_common.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-static void power_monitor(void);
-DECLARE_DEFERRED(power_monitor);
-
-static uint8_t usbc_overcurrent;
-static int32_t base_5v_power;
-
-/*
- * Power usage for each port as measured or estimated.
- * Units are milliwatts (5v x ma current)
- */
-#define PWR_BASE_LOAD (5*1335)
-#define PWR_FRONT_HIGH (5*1500)
-#define PWR_FRONT_LOW (5*900)
-#define PWR_REAR (5*1500)
-#define PWR_HDMI (5*562)
-#define PWR_C_HIGH (5*3740)
-#define PWR_C_LOW (5*2090)
-#define PWR_MAX (5*10000)
-
-/*
- * Update the 5V power usage, assuming no throttling,
- * and invoke the power monitoring.
- */
-static void update_5v_usage(void)
-{
- int front_ports = 0;
- /*
- * Recalculate the 5V load, assuming no throttling.
- */
- base_5v_power = PWR_BASE_LOAD;
- if (!gpio_get_level(GPIO_USB_A2_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- if (!gpio_get_level(GPIO_USB_A3_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- /*
- * Only 1 front port can run higher power at a time.
- */
- if (front_ports > 0)
- base_5v_power += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!gpio_get_level(GPIO_USB_A1_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_HDMI_CONN0_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (!gpio_get_level(GPIO_HDMI_CONN1_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (usbc_overcurrent)
- base_5v_power += PWR_C_HIGH;
- /*
- * Invoke the power handler immediately.
- */
- hook_call_deferred(&power_monitor_data, 0);
-}
-DECLARE_DEFERRED(update_5v_usage);
-/*
- * Start power monitoring after ADCs have been initialised.
- */
-DECLARE_HOOK(HOOK_INIT, update_5v_usage, HOOK_PRIO_INIT_ADC + 1);
-
-static void port_ocp_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&update_5v_usage_data, 0);
-}
-
-/******************************************************************************/
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_LED_RED] = { .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
- [PWM_CH_LED_WHITE] = { .channel = 2,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
-};
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {"ina", I2C_PORT_INA, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"ppc0", I2C_PORT_PPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"pse", I2C_PORT_PSE, 400, GPIO_I2C4_SCL, GPIO_I2C4_SDA},
- {"power", I2C_PORT_POWER, 400, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct adc_t adc_channels[] = {
- [ADC_SNS_PP3300] = {
- /*
- * 4700/5631 voltage divider: can take the value out of range
- * for 32-bit signed integers, so truncate to 470/563 yielding
- * <0.1% error and a maximum intermediate value of 1623457792,
- * which comfortably fits in int32.
- */
- .name = "SNS_PP3300",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT * 563,
- .factor_div = (ADC_READ_MAX + 1) * 470,
- },
- [ADC_SNS_PP1050] = {
- .name = "SNS_PP1050",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_VBUS] = { /* 5/39 voltage divider */
- .name = "VBUS",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT * 39,
- .factor_div = (ADC_READ_MAX + 1) * 5,
- },
- [ADC_PPVAR_IMON] = { /* 500 mV/A */
- .name = "PPVAR_IMON",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT * 2, /* Milliamps */
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR_1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CORE] = {
- .name = "Core",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* Wake up pins */
-const enum gpio_signal hibernate_wake_pins[] = {
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2500,
- .rpm_start = 2500,
- .rpm_max = 5200,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* Thermal control; drive fan based on temperature sensors. */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(84),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_CORE] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Power sensors */
-const struct ina3221_t ina3221[] = {
- { I2C_PORT_INA, 0x40, { "PP3300_G", "PP5000_A", "PP3300_WLAN" } },
- { I2C_PORT_INA, 0x42, { "PP3300_A", "PP3300_SSD", "PP3300_LAN" } },
- { I2C_PORT_INA, 0x43, { NULL, "PP1200_U", "PP2500_DRAM" } }
-};
-const unsigned int ina3221_count = ARRAY_SIZE(ina3221);
-
-static uint16_t board_version;
-static uint32_t sku_id;
-static uint32_t fw_config;
-
-static void cbi_init(void)
-{
- /*
- * Load board info from CBI to control per-device configuration.
- *
- * If unset it's safe to treat the board as a proto, just C10 gating
- * won't be enabled.
- */
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- if (cbi_get_fw_config(&val) == EC_SUCCESS)
- fw_config = val;
- CPRINTS("Board Version: %d, SKU ID: 0x%08x, F/W config: 0x%08x",
- board_version, sku_id, fw_config);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_init(void)
-{
- uint8_t *memmap_batt_flags;
-
- /* Override some GPIO interrupt priorities.
- *
- * These interrupts are timing-critical for AP power sequencing, so we
- * increase their NVIC priority from the default of 3. This affects
- * whole MIWU groups of 8 GPIOs since they share an IRQ.
- *
- * Latency at the default priority level can be hundreds of
- * microseconds while other equal-priority IRQs are serviced, so GPIOs
- * requiring faster response must be higher priority.
- */
- /* CPU_C10_GATE_L on GPIO6.7: must be ~instant for ~60us response. */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTH_1, 1);
- /*
- * slp_s3_interrupt (GPIOA.5 on WKINTC_0) must respond within 200us
- * (tPLT18); less critical than the C10 gate.
- */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTC_0, 2);
-
- /* Always claim AC is online, because we don't have a battery. */
- memmap_batt_flags = host_get_memmap(EC_MEMMAP_BATT_FLAG);
- *memmap_batt_flags |= EC_BATT_FLAG_AC_PRESENT;
- /*
- * For board version < 2, the directly connected recovery
- * button is not available.
- */
- if (board_version < 2)
- button_disable_gpio(GPIO_EC_RECOVERY_BTN_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* USB-A port control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USB_VBUS,
-};
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-int extpower_is_present(void)
-{
- /* genesis: If the EC is running, then there is external power */
- return 1;
-}
-
-int board_is_c10_gate_enabled(void)
-{
- return 0;
-}
-
-void board_enable_s0_rails(int enable)
-{
-}
-
-/*
- * Power monitoring and management.
- *
- * The overall goal is to gracefully manage the power demand so that
- * the power budgets are met without letting the system fall into
- * power deficit (perhaps causing a brownout).
- *
- * There are 2 power budgets that need to be managed:
- * - overall system power as measured on the main power supply rail.
- * - 5V power delivered to the USB and HDMI ports.
- *
- * The actual system power demand is calculated from the VBUS voltage and
- * the input current (read from a shunt), averaged over 5 readings.
- * The power budget limit is from the charge manager.
- *
- * The 5V power cannot be read directly. Instead, we rely on overcurrent
- * inputs from the USB and HDMI ports to indicate that the port is in use
- * (and drawing maximum power).
- *
- * There are 3 throttles that can be applied (in priority order):
- *
- * - Type A BC1.2 front port restriction (3W)
- * - Type C PD (throttle to 1.5A if sourcing)
- * - Turn on PROCHOT, which immediately throttles the CPU.
- *
- * The first 2 throttles affect both the system power and the 5V rails.
- * The third is a last resort to force an immediate CPU throttle to
- * reduce the overall power use.
- *
- * The strategy is to determine what the state of the throttles should be,
- * and to then turn throttles off or on as needed to match this.
- *
- * This function runs on demand, or every 2 ms when the CPU is up,
- * and continually monitors the power usage, applying the
- * throttles when necessary.
- *
- * All measurements are in milliwatts.
- */
-#define THROT_TYPE_A BIT(0)
-#define THROT_TYPE_C BIT(1)
-#define THROT_PROCHOT BIT(2)
-
-/*
- * Power gain if front USB A ports are limited.
- */
-#define POWER_GAIN_TYPE_A 3200
-/*
- * Power gain if Type C port is limited.
- */
-#define POWER_GAIN_TYPE_C 8800
-/*
- * Power is averaged over 10 ms, with a reading every 2 ms.
- */
-#define POWER_DELAY_MS 2
-#define POWER_READINGS (10/POWER_DELAY_MS)
-
-static void power_monitor(void)
-{
- static uint32_t current_state;
- int32_t delay;
- uint32_t new_state = 0, diff;
- int32_t headroom_5v = PWR_MAX - base_5v_power;
-
- /*
- * If CPU is off or suspended, no need to throttle
- * or restrict power.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
- CHIPSET_STATE_SUSPEND)) {
- /*
- * Slow down monitoring, assume no throttling required.
- */
- delay = 20 * MSEC;
- } else {
- delay = POWER_DELAY_MS * MSEC;
- }
- /*
- * Check the 5v power usage and if necessary,
- * adjust the throttles in priority order.
- *
- * Either throttle may have already been activated by
- * the overall power control.
- *
- * We rely on the overcurrent detection to inform us
- * if the port is in use.
- *
- * - If type C not already throttled:
- * * If not overcurrent, prefer to limit type C [1].
- * * If in overcurrentuse:
- * - limit type A first [2]
- * - If necessary, limit type C [3].
- * - If type A not throttled, if necessary limit it [2].
- */
- if (headroom_5v < 0) {
- /*
- * Check whether type C is not throttled,
- * and is not overcurrent.
- */
- if (!((new_state & THROT_TYPE_C) || usbc_overcurrent)) {
- /*
- * [1] Type C not in overcurrent, throttle it.
- */
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- new_state |= THROT_TYPE_C;
- }
- /*
- * [2] If type A not already throttled, and power still
- * needed, limit type A.
- */
- if (!(new_state & THROT_TYPE_A) && headroom_5v < 0) {
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- new_state |= THROT_TYPE_A;
- }
- /*
- * [3] If still under-budget, limit type C.
- * No need to check if it is already throttled or not.
- */
- if (headroom_5v < 0)
- new_state |= THROT_TYPE_C;
- }
- /*
- * Turn the throttles on or off if they have changed.
- */
- diff = new_state ^ current_state;
- current_state = new_state;
- if (diff & THROT_PROCHOT) {
- int prochot = (new_state & THROT_PROCHOT) ? 0 : 1;
-
- gpio_set_level(GPIO_EC_PROCHOT_ODL, prochot);
- }
- if (diff & THROT_TYPE_A) {
- int typea_bc = (new_state & THROT_TYPE_A) ? 1 : 0;
-
- gpio_set_level(GPIO_USB_A3_LOW_PWR_OD, typea_bc);
- }
- hook_call_deferred(&power_monitor_data, delay);
-}
diff --git a/board/genesis/board.h b/board/genesis/board.h
deleted file mode 100644
index 14d1a8475d..0000000000
--- a/board/genesis/board.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* 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.
- */
-
-/* Puff board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* NPCX7 config */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-#define NPCX_UART_MODULE2 1 /* GPIO64/65 are used as UART pins. */
-
-/* Internal SPI flash on NPCX796FC is 512 kB */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-/* EC Defines */
-#define CONFIG_ADC
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_DEDICATED_RECOVERY_BUTTON_2
-#define CONFIG_BUTTONS_RUNTIME_CONFIG
-#define CONFIG_BOARD_RESET_AFTER_POWER_ON
-/* TODO: (b/143496253) re-enable CEC */
-/* #define CONFIG_CEC */
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_KEYBOARD_BOOT_KEYS
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#undef CONFIG_KEYBOARD_RUNTIME_KEYS
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_LED_COMMON
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LTO
-#define CONFIG_PWM
-#define CONFIG_VBOOT_EFS2
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_SHA256
-
-/* EC Commands */
-#define CONFIG_CMD_BUTTON
-/* Include CLI command needed to support CCD testing. */
-#define CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_KEYBOARD
-#define CONFIG_HOSTCMD_PD_CONTROL
-#undef CONFIG_CMD_PWR_AVG
-#define CONFIG_CMD_PPC_DUMP
-#define CONFIG_CMD_TCPC_DUMP
-#ifdef SECTION_IS_RO
-/* Reduce RO size by removing less-relevant commands. */
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_HCDEBUG
-#undef CONFIG_CMD_MMAPINFO
-#endif
-
-#undef CONFIG_CONSOLE_CMDHELP
-
-/* Don't generate host command debug by default */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Enable AP Reset command for TPM with old firmware version to detect it. */
-#define CONFIG_CMD_AP_RESET_LOG
-#define CONFIG_HOSTCMD_AP_RESET
-
-/* Chipset config */
-#define CONFIG_CHIPSET_COMETLAKE_DISCRETE
-/* check */
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_BUTTON_X86
-/* Check: */
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-#define CONFIG_POWER_PP5000_CONTROL
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_SLEEP_FAILURE_DETECTION
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_INA3221
-
-/* Fan and temp. */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 0
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_ROA_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-#define CONFIG_THROTTLE_AP
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 0
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_DUMB
-/* There are five ports, but power enable is ganged across all of them. */
-#define USB_PORT_COUNT 1
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_INA NPCX_I2C_PORT0_0
-#define I2C_PORT_PPC0 NPCX_I2C_PORT1_0
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT3_0
-#define I2C_PORT_PSE NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define PP5000_PGOOD_POWER_SIGNAL_MASK POWER_SIGNAL_MASK(PP5000_A_PGOOD)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_SNS_PP3300, /* ADC2 */
- ADC_SNS_PP1050, /* ADC7 */
- ADC_VBUS, /* ADC4 */
- ADC_PPVAR_IMON, /* ADC9 */
- ADC_TEMP_SENSOR_1, /* ADC0 */
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_LED_RED,
- PWM_CH_LED_WHITE,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CORE,
- TEMP_SENSOR_COUNT
-};
-
-
-/* Board specific handlers */
-void led_alert(int enable);
-void show_critical_error(void);
-
-/*
- * firmware config fields
- */
-/*
- * Barrel-jack power (4 bits).
- */
-#define EC_CFG_BJ_POWER_L 0
-#define EC_CFG_BJ_POWER_H 3
-#define EC_CFG_BJ_POWER_MASK GENMASK(EC_CFG_BJ_POWER_H, EC_CFG_BJ_POWER_L)
-/*
- * USB Connector 4 not present (1 bit).
- */
-#define EC_CFG_NO_USB4_L 4
-#define EC_CFG_NO_USB4_H 4
-#define EC_CFG_NO_USB4_MASK GENMASK(EC_CFG_NO_USB4_H, EC_CFG_NO_USB4_L)
-/*
- * Thermal solution config (3 bits).
- */
-#define EC_CFG_THERMAL_L 5
-#define EC_CFG_THERMAL_H 7
-#define EC_CFG_THERMAL_MASK GENMASK(EC_CFG_THERMAL_H, EC_CFG_THERMAL_L)
-
-unsigned int ec_config_get_thermal_solution(void);
-
-#endif /* !__ASSEMBLER__ */
-
-/* Pin renaming */
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PP5000_A_PG_OD GPIO_PG_PP5000_A_OD
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_RECOVERY_L GPIO_EC_RECOVERY_BTN_ODL
-#define GPIO_RECOVERY_L_2 GPIO_H1_EC_RECOVERY_BTN_ODL
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_AC_PRESENT GPIO_BJ_ADP_PRESENT_L
-
-/*
- * There is no RSMRST input, so alias it to the output. This short-circuits
- * common_intel_x86_handle_rsmrst.
- */
-#define GPIO_RSMRST_L_PGOOD GPIO_PCH_RSMRST_L
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/genesis/build.mk b/board/genesis/build.mk
deleted file mode 100644
index 2785133e11..0000000000
--- a/board/genesis/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-
-board-y=board.o
-board-y+=led.o
-board-y+=pse.o
diff --git a/board/genesis/ec.tasklist b/board/genesis/ec.tasklist
deleted file mode 100644
index 3828142c55..0000000000
--- a/board/genesis/ec.tasklist
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/genesis/gpio.inc b/board/genesis/gpio.inc
deleted file mode 100644
index 6a905fdf04..0000000000
--- a/board/genesis/gpio.inc
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Pin names follow the schematic, and are aliased to other names if necessary.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Latency on this interrupt is extremely critical, so it comes first to ensure
- * it gets placed first in gpio_wui_table so gpio_interrupt() needs to do
- * minimal scanning. */
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, c10_gate_interrupt)
-
-/* Wake Source interrupts */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_PP5000_A_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1800_A_OD, PIN(3, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VPRIM_CORE_A_OD, PIN(2, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1050_A_OD, PIN(2, 2), GPIO_INT_BOTH, power_signal_interrupt)
-/* EC output, but also interrupt so this can be polled as a power signal */
-GPIO_INT(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUTPUT | GPIO_INT_F_RISING | GPIO_INT_F_FALLING, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_PP2500_DRAM_U_OD, PIN(2, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1200_U_OD, PIN(2, 1), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, slp_s3_interrupt)
-#endif
-GPIO_INT(PG_PP950_VCCIO_OD, PIN(1, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(IMVP8_VRRDY_OD, PIN(1, 6), GPIO_INT_BOTH, power_signal_interrupt)
-
-/*
- * Directly connected recovery button (not available on some boards).
- */
-GPIO_INT(EC_RECOVERY_BTN_ODL, PIN(F, 1), GPIO_INT_BOTH, button_interrupt)
-/*
- * Recovery button input from H1.
- */
-GPIO_INT(H1_EC_RECOVERY_BTN_ODL, PIN(2, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO(BJ_ADP_PRESENT_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP)
-
-/* Port power control interrupts */
-GPIO_INT(HDMI_CONN0_OC_ODL, PIN(0, 7), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(HDMI_CONN1_OC_ODL, PIN(0, 6), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A1_OC_ODL, PIN(A, 2), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A2_OC_ODL, PIN(F, 5), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A3_OC_ODL, PIN(0, 3), GPIO_INT_BOTH, port_ocp_interrupt)
-
-/* PCH/CPU signals */
-GPIO(EC_PCH_PWROK, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_ODR_HIGH)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Power control outputs */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_INA_H1_EC_ODL, PIN(5, 7), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_A, PIN(1, 5), GPIO_OUT_LOW)
-GPIO(VCCST_PG_OD, PIN(1, 4), GPIO_ODR_LOW)
-GPIO(EN_S0_RAILS, PIN(1, 1), GPIO_OUT_LOW)
-GPIO(EN_ROA_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP950_VCCIO, PIN(1, 0), GPIO_OUT_LOW)
-GPIO(EC_IMVP8_PE, PIN(A, 7), GPIO_OUT_LOW)
-GPIO(EN_IMVP8_VR, PIN(F, 4), GPIO_OUT_LOW)
-
-/* Barreljack */
-GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 4), GPIO_OUT_LOW)
-
-/* USB type A */
-GPIO(EN_PP5000_USB_VBUS, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(USB_A3_LOW_PWR_OD, PIN(5, 0), GPIO_ODR_LOW)
-GPIO(USB_A1_STATUS_L, PIN(6, 1), GPIO_INPUT)
-GPIO(USB_A2_STATUS_L, PIN(C, 7), GPIO_INPUT)
-GPIO(USB_A3_STATUS_L, PIN(D, 2), GPIO_INPUT)
-
-/* USB type C */
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_POL_L, PIN(0, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* USB-C Polarity */
-
-/* TPU */
-GPIO(PP3300_TPU_EN, PIN(E, 4), GPIO_OUT_HIGH)
-
-/* PSE controller */
-GPIO(EC_PSE_PWM_INT, PIN(B, 0), GPIO_INPUT) /* PSE controller interrupt */
-GPIO(EC_RST_LTC4291_L, PIN(9, 6), GPIO_OUT_HIGH) /* PSE controller reset */
-
-/* Misc. */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-GPIO(PACKET_MODE_EN, PIN(7, 5), GPIO_OUT_LOW)
-
-/* HDMI/CEC */
-GPIO(HDMI_CONN0_CEC_OUT, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN0_CEC_IN, PIN(4, 0), GPIO_INPUT)
-GPIO(HDMI_CONN1_CEC_OUT, PIN(9, 5), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN1_CEC_IN, PIN(D, 3), GPIO_INPUT)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_INA_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_INA_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_LTC_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_LTC_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_IMVP8_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_IMVP8_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x08), 0, MODULE_PWM, 0) /* PWM0 - Red Led */
-ALTERNATE(PIN_MASK(C, 0x10), 0, MODULE_PWM, 0) /* PWM2 - White Led */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - Fan 1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x2A), 0, MODULE_ADC, 0) /* ADC0, ADC2, ADC4 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* ADC7 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Unused pins */
-UNUSED(PIN(1, 3)) /* EC_GP_SEL1_ODL */
-UNUSED(PIN(C, 0)) /* FAN_PWM_2 */
-UNUSED(PIN(8, 0)) /* LED_BLUE_L */
-UNUSED(PIN(4, 4)) /* ADC1/TEMP_SENSOR_2 */
-UNUSED(PIN(4, 2)) /* ADC3/TEMP_SENSOR_3 */
-UNUSED(PIN(C, 2)) /* A12 NC */
-UNUSED(PIN(9, 2)) /* K8 NC */
-UNUSED(PIN(9, 1)) /* L8 NC */
-UNUSED(PIN(1, 2)) /* C6 NC */
-UNUSED(PIN(6, 6)) /* H4 NC */
-UNUSED(PIN(8, 1)) /* L6 NC */
-UNUSED(PIN(C, 6)) /* B11 NC */
-UNUSED(PIN(E, 2)) /* B8 NC */
-UNUSED(PIN(8, 5)) /* L7 NC */
-UNUSED(PIN(3, 2)) /* E5 NC */
-UNUSED(PIN(D, 6)) /* F6 NC */
-UNUSED(PIN(3, 5)) /* F5 NC */
-UNUSED(PIN(5, 6)) /* M2 NC */
-UNUSED(PIN(8, 6)) /* J8 NC */
-UNUSED(PIN(9, 3)) /* M11 NC */
-UNUSED(PIN(7, 2)) /* H6 NC */
diff --git a/board/genesis/led.c b/board/genesis/led.c
deleted file mode 100644
index c562dff27e..0000000000
--- a/board/genesis/led.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* 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.
- *
- * Power LED control for Puff.
- * Solid green - active power
- * Green flashing - suspended
- * Red flashing - alert
- * Solid red - critical
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
-
-/*
- * Due to the CSME-Lite processing, upon startup the CPU transitions through
- * S0->S3->S5->S3->S0, causing the LED to turn on/off/on, so
- * delay turning off the LED during suspend/shutdown.
- */
-#define LED_CPU_DELAY_MS (2000 * MSEC)
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_WHITE,
- LED_AMBER,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int white = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_WHITE:
- white = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- case LED_AMBER:
- red = 1;
- white = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (white)
- pwm_set_duty(PWM_CH_LED_WHITE, duty);
- else
- pwm_set_duty(PWM_CH_LED_WHITE, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec.
- */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIG_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIG_TICK(LED_PULSE_TICK_US, LED_WHITE);
- led_tick();
-}
-DECLARE_DEFERRED(led_suspend);
-
-static void led_shutdown(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_DEFERRED(led_shutdown);
-
-static void led_shutdown_hook(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown_hook, HOOK_PRIO_DEFAULT);
-
-static void led_suspend_hook(void)
-{
- hook_call_deferred(&led_shutdown_data, -1);
- hook_call_deferred(&led_suspend_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend_hook, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task.
- */
- hook_call_deferred(&led_tick_data, -1);
- /*
- * Avoid invoking the suspend/shutdown delayed hooks.
- */
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_WHITE, 1);
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_suspend();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown();
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_INIT_PWM + 1);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend_hook();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown_hook();
- }
-}
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "white")) {
- set_color(id, LED_WHITE, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|white|amber|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_WHITE])
- return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]);
- else if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/genesis/pse.c b/board/genesis/pse.c
deleted file mode 100644
index 671288ccf5..0000000000
--- a/board/genesis/pse.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* 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.
- */
-
-/*
- * The LTC4291 is a power over ethernet (PoE) power sourcing equipment (PSE)
- * controller.
- */
-
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "string.h"
-#include "timer.h"
-#include "util.h"
-
-#define LTC4291_I2C_ADDR 0x2C
-
-#define LTC4291_REG_SUPEVN_COR 0x0B
-#define LTC4291_REG_STATPWR 0x10
-#define LTC4291_REG_STATPIN 0x11
-#define LTC4291_REG_OPMD 0x12
-#define LTC4291_REG_DISENA 0x13
-#define LTC4291_REG_DETENA 0x14
-#define LTC4291_REG_DETPB 0x18
-#define LTC4291_REG_PWRPB 0x19
-#define LTC4291_REG_RSTPB 0x1A
-#define LTC4291_REG_ID 0x1B
-#define LTC4291_REG_DEVID 0x43
-#define LTC4291_REG_HPMD1 0x46
-#define LTC4291_REG_HPMD2 0x4B
-#define LTC4291_REG_HPMD3 0x50
-#define LTC4291_REG_HPMD4 0x55
-#define LTC4291_REG_LPWRPB 0x6E
-
-#define LTC4291_FLD_STATPIN_AUTO BIT(0)
-#define LTC4291_FLD_RSTPB_RSTALL BIT(4)
-
-#define LTC4291_STATPWR_ON_PORT(port) (0x01 << (port))
-#define LTC4291_DETENA_EN_PORT(port) (0x11 << (port))
-#define LTC4291_DETPB_EN_PORT(port) (0x11 << (port))
-#define LTC4291_PWRPB_OFF_PORT(port) (0x10 << (port))
-
-#define LTC4291_OPMD_AUTO 0xFF
-#define LTC4291_DISENA_ALL 0x0F
-#define LTC4291_DETENA_ALL 0xFF
-#define LTC4291_ID 0x64
-#define LTC4291_DEVID 0x38
-#define LTC4291_HPMD_MIN 0x00
-#define LTC4291_HPMD_MAX 0xA8
-
-#define LTC4291_PORT_MAX 4
-
-#define LTC4291_RESET_DELAY_US (20 * MSEC)
-
-#define I2C_PSE_READ(reg, data) \
- i2c_read8(I2C_PORT_PSE, LTC4291_I2C_ADDR, LTC4291_REG_##reg, (data))
-
-#define I2C_PSE_WRITE(reg, data) \
- i2c_write8(I2C_PORT_PSE, LTC4291_I2C_ADDR, LTC4291_REG_##reg, (data))
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-static int pse_write_hpmd(int port, int val)
-{
- switch (port) {
- case 0:
- return I2C_PSE_WRITE(HPMD1, val);
- case 1:
- return I2C_PSE_WRITE(HPMD2, val);
- case 2:
- return I2C_PSE_WRITE(HPMD3, val);
- case 3:
- return I2C_PSE_WRITE(HPMD4, val);
- default:
- return EC_ERROR_INVAL;
- }
-}
-
-/*
- * Port 1: 100W
- * Port 2-4: 15W
- */
-static int pse_port_hpmd[4] = {
- LTC4291_HPMD_MAX,
- LTC4291_HPMD_MIN,
- LTC4291_HPMD_MIN,
- LTC4291_HPMD_MIN,
-};
-
-static int pse_port_enable(int port)
-{
- /* Enable detection and classification */
- return I2C_PSE_WRITE(DETPB, LTC4291_DETPB_EN_PORT(port));
-}
-
-static int pse_port_disable(int port)
-{
- /* Request power off (this also disables detection/classification) */
- return I2C_PSE_WRITE(PWRPB, LTC4291_PWRPB_OFF_PORT(port));
-}
-
-static int pse_init_worker(void)
-{
- timestamp_t deadline;
- int err, id, devid, statpin, port;
-
- /* Ignore errors -- may already be resetting */
- I2C_PSE_WRITE(RSTPB, LTC4291_FLD_RSTPB_RSTALL);
-
- deadline.val = get_time().val + LTC4291_RESET_DELAY_US;
- while ((err = I2C_PSE_READ(ID, &id)) != 0) {
- if (timestamp_expired(deadline, NULL))
- return err;
- }
-
- err = I2C_PSE_READ(DEVID, &devid);
- if (err != 0)
- return err;
-
- if (id != LTC4291_ID || devid != LTC4291_DEVID)
- return EC_ERROR_INVAL;
-
- err = I2C_PSE_READ(STATPIN, &statpin);
- if (err != 0)
- return err;
-
- /*
- * We don't want to supply power until we've had a chance to set the
- * limits.
- */
- if (statpin & LTC4291_FLD_STATPIN_AUTO)
- CPRINTS("WARN: PSE reset in AUTO mode");
-
- err = I2C_PSE_WRITE(OPMD, LTC4291_OPMD_AUTO);
- if (err != 0)
- return err;
-
- /* Set maximum power each port is allowed to allocate. */
- for (port = 0; port < LTC4291_PORT_MAX; port++) {
- err = pse_write_hpmd(port, pse_port_hpmd[port]);
- if (err != 0)
- return err;
- }
-
- err = I2C_PSE_WRITE(DISENA, LTC4291_DISENA_ALL);
- if (err != 0)
- return err;
-
- err = I2C_PSE_WRITE(DETENA, LTC4291_DETENA_ALL);
- if (err != 0)
- return err;
-
- return 0;
-}
-
-static void pse_init(void)
-{
- int err;
-
- err = pse_init_worker();
- if (err != 0)
- CPRINTS("PSE init failed: %d", err);
- else
- CPRINTS("PSE init done");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, pse_init, HOOK_PRIO_DEFAULT);
-
-/* Also reset the PSE on a reboot to toggle the power. */
-DECLARE_HOOK(HOOK_CHIPSET_RESET, pse_init, HOOK_PRIO_DEFAULT);
-
-static int command_pse(int argc, char **argv)
-{
- int port;
-
- /*
- * TODO(b/156399232): endeavour: PSE controller reset by PLTRST
- *
- * Initialization does not reliably work after reset because the device
- * is held in reset by the AP. Running this command after boot finishes
- * always succeeds. Remove once the reset signal changes.
- */
- if (!strncmp(argv[1], "init", 4))
- return pse_init_worker();
-
- if (argc != 3)
- return EC_ERROR_PARAM_COUNT;
-
- port = atoi(argv[1]);
- if (port < 0 || port >= LTC4291_PORT_MAX)
- return EC_ERROR_PARAM1;
-
- if (!strncmp(argv[2], "off", 3))
- return pse_port_disable(port);
- else if (!strncmp(argv[2], "on", 2))
- return pse_port_enable(port);
- else if (!strncmp(argv[2], "min", 3))
- return pse_write_hpmd(port, LTC4291_HPMD_MIN);
- else if (!strncmp(argv[2], "max", 3))
- return pse_write_hpmd(port, LTC4291_HPMD_MAX);
- else
- return EC_ERROR_PARAM2;
-}
-DECLARE_CONSOLE_COMMAND(pse, command_pse,
- "<port# 0-3> <off | on | min | max>",
- "Set PSE port power");
-
-static int ec_command_pse_status(int port, uint8_t *status)
-{
- int detena, statpwr;
- int err;
-
- err = I2C_PSE_READ(DETENA, &detena);
- if (err != 0)
- return err;
-
- err = I2C_PSE_READ(STATPWR, &statpwr);
- if (err != 0)
- return err;
-
- if ((detena & LTC4291_DETENA_EN_PORT(port)) == 0)
- *status = EC_PSE_STATUS_DISABLED;
- else if ((statpwr & LTC4291_STATPWR_ON_PORT(port)) == 0)
- *status = EC_PSE_STATUS_ENABLED;
- else
- *status = EC_PSE_STATUS_POWERED;
-
- return 0;
-}
-
-static enum ec_status ec_command_pse(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pse *p = args->params;
- int err = 0;
-
- if (p->port >= LTC4291_PORT_MAX)
- return EC_RES_INVALID_PARAM;
-
- switch (p->cmd) {
- case EC_PSE_STATUS: {
- struct ec_response_pse_status *r = args->response;
-
- args->response_size = sizeof(*r);
- err = ec_command_pse_status(p->port, &r->status);
- break;
- }
- case EC_PSE_ENABLE:
- err = pse_port_enable(p->port);
- break;
- case EC_PSE_DISABLE:
- err = pse_port_disable(p->port);
- break;
- default:
- return EC_RES_INVALID_PARAM;
- }
-
- if (err)
- return EC_RES_ERROR;
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PSE, ec_command_pse, EC_VER_MASK(0));
diff --git a/board/gimble/battery.c b/board/gimble/battery.c
deleted file mode 100644
index 235503a6f1..0000000000
--- a/board/gimble/battery.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "compile_time_macros.h"
-
-/*
- * Battery info for all Brya battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 996QA193H Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* Cosmx CA407792G Battery Information */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_HIGHPOWER;
diff --git a/board/gimble/board.c b/board/gimble/board.c
deleted file mode 100644
index 6483d8ca6d..0000000000
--- a/board/gimble/board.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/charger/bq25710.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "driver/accel_bma2x2_public.h"
-#include "driver/accel_bma422.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "fw_config.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power_button.h"
-#include "power.h"
-#include "registers.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-__override void board_cbi_init(void)
-{
- config_usb_db_type();
-}
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
-
- /* TODO(b/190783131)
- * Need to implement specific keyboard backlight control method.
- */
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
-
- /* TODO(b/190783131)
- * Need to implement specific keyboard backlight control method.
- */
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_CHARGE_RAMP_SW
-
-/*
- * TODO(b/181508008): tune this threshold
- */
-
-#define BC12_MIN_VOLTAGE 4400
-
-/**
- * Return true if VBUS is too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- if (voltage == 0) {
- CPRINTS("%s: must be disconnected", __func__);
- return 1;
- }
-
- if (voltage < BC12_MIN_VOLTAGE) {
- CPRINTS("%s: port %d: vbus %d lower than %d", __func__,
- port, voltage, BC12_MIN_VOLTAGE);
- return 1;
- }
-
- return 0;
-}
-
-#endif /* CONFIG_CHARGE_RAMP_SW */
-
-enum battery_present battery_hw_present(void)
-{
- enum gpio_signal batt_pres;
-
- batt_pres = GPIO_EC_BATT_PRES_ODL;
-
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(batt_pres) ? BP_NO : BP_YES;
-}
-
-static void board_init(void)
-{
- /* The PPVAR_SYS must same as battery voltage(3 cells * 4.4V) */
- if (extpower_is_present() && battery_hw_present()) {
- bq25710_set_min_system_voltage(CHARGER_SOLO, 9200);
- } else {
- bq25710_set_min_system_voltage(CHARGER_SOLO, 13200);
- }
-}
-DECLARE_HOOK(HOOK_SECOND, board_init, HOOK_PRIO_DEFAULT);
-
-__override void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Follow OEM request to limit the input current to
- * 90% negotiated limit.
- */
- charge_ma = charge_ma * 90 / 100;
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
diff --git a/board/gimble/board.h b/board/gimble/board.h
deleted file mode 100644
index 9b01e09ad3..0000000000
--- a/board/gimble/board.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-#define CONFIG_MP2964
-
-/* Sensors */
-/* BMA253 accelerometer in lid */
-#define CONFIG_ACCEL_BMA255
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* BMA422 accelerometer in lid */
-#define CONFIG_ACCEL_BMA4XX
-
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel/gyro */
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-/* Lid accel */
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensor console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_NCT38XX
-#define CONFIG_IO_EXPANDER_PORT_COUNT 1
-
-#define CONFIG_USB_PD_TCPM_PS8815
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_NX20P3483
-
-/* measure and check these values on gimble */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* I2C Bus Configuration */
-
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-
-#define I2C_PORT_USB_C0_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C0_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C0_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT4_1
-
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0
-
-/* define this to aviod error on CONFIG_ACCELGYRO_BMI_COMM_I2C */
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define I2C_ADDR_MP2964_FLAGS 0x20
-
-/* Disabling Thunderbolt-compatible mode */
-#undef CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#undef CONFIG_USB_PD_USB4
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_FANS FAN_CH_COUNT
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/*
- * TODO(b/181271666): no fan control loop until sensors are tuned
- */
-/* Fan features */
-#define CONFIG_CUSTOM_FAN_CONTROL
-
-/* Charger defines */
-#define CONFIG_CHARGER_BQ25720
-#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR_SOC,
- ADC_TEMP_SENSOR_2_FAN,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR_SOC,
- TEMP_SENSOR_2_FAN,
- TEMP_SENSOR_3_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT38XX = 0,
- IOEX_PORT_COUNT
-};
-
-enum battery_type {
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED2 = 0, /* PWM0 (white charger) */
- PWM_CH_LED3, /* PWM1 (orange on DB) */
- PWM_CH_LED1, /* PWM2 (orange charger) */
- PWM_CH_KBLIGHT, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_LED4, /* PWM7 (white on DB) */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/gimble/build.mk b/board/gimble/build.mk
deleted file mode 100644
index c43f37b4dd..0000000000
--- a/board/gimble/build.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Brya board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=thermal.o
-board-y+=usbc_config.o
diff --git a/board/gimble/charger.c b/board/gimble/charger.c
deleted file mode 120000
index 476ce97df2..0000000000
--- a/board/gimble/charger.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/brya/charger_bq25720.c \ No newline at end of file
diff --git a/board/gimble/ec.tasklist b/board/gimble/ec.tasklist
deleted file mode 100644
index 290c17c748..0000000000
--- a/board/gimble/ec.tasklist
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/gimble/fans.c b/board/gimble/fans.c
deleted file mode 100644
index d966056331..0000000000
--- a/board/gimble/fans.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * TOOD(b/180681346): need to update for real fan
- *
- * Prototype fan spins at about 7200 RPM at 100% PWM.
- * Set minimum at around 30% PWM.
- */
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 7200,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-#ifndef CONFIG_FANS
-
-/*
- * TODO(b/181271666): use static fan speeds until fan and sensors are
- * tuned. for now, use:
- *
- * AP off: 33%
- * AP on: 100%
- */
-
-static void fan_slow(void)
-{
- const int duty_pct = 33;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-static void fan_max(void)
-{
- const int duty_pct = 100;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-DECLARE_HOOK(HOOK_INIT, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_RESET, fan_max, HOOK_PRIO_FIRST);
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, fan_max, HOOK_PRIO_DEFAULT);
-
-#endif /* CONFIG_FANS */
diff --git a/board/gimble/fw_config.c b/board/gimble/fw_config.c
deleted file mode 100644
index fb8acb635d..0000000000
--- a/board/gimble/fw_config.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union brya_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for brya if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union brya_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PS8815,
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Brya FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-
- if (get_board_id() == 0) {
- /*
- * Early boards have a zero'd out FW_CONFIG, so replace
- * it with a sensible default value. If DB_USB_ABSENT2
- * was used as an alternate encoding of DB_USB_ABSENT to
- * avoid the zero check, then fix it.
- */
- if (fw_config.raw_value == 0) {
- CPRINTS("CBI: FW_CONFIG is zero, using board defaults");
- fw_config = fw_config_defaults;
- } else if (fw_config.usb_db == DB_USB_ABSENT2) {
- fw_config.usb_db = DB_USB_ABSENT;
- }
- }
-}
-
-union brya_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void)
-{
- return fw_config.usb_db;
-}
diff --git a/board/gimble/fw_config.h b/board/gimble/fw_config.h
deleted file mode 100644
index 6e4eb3ef58..0000000000
--- a/board/gimble/fw_config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_BRYA_FW_CONFIG_H_
-#define __BOARD_BRYA_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for Brya board.
- *
- * Source of truth is the project/brya/brya/config.star configuration file.
- */
-
-enum ec_cfg_usb_db_type {
- DB_USB_ABSENT = 0,
- DB_USB3_PS8815 = 1,
- DB_USB_ABSENT2 = 15
-};
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-union brya_cbi_fw_config {
- struct {
- enum ec_cfg_usb_db_type usb_db : 4;
- uint32_t sd_db : 2;
- uint32_t lte_db : 1;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union brya_cbi_fw_config get_fw_config(void);
-
-/**
- * Get the USB daughter board type from FW_CONFIG.
- *
- * @return the USB daughter board type.
- */
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void);
-
-#endif /* __BOARD_BRYA_FW_CONFIG_H_ */
diff --git a/board/gimble/gpio.inc b/board/gimble/gpio.inc
deleted file mode 100644
index faec39af08..0000000000
--- a/board/gimble/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_IMU_INT_R_L, PIN(5, 6), GPIO_SEL_1P8V | GPIO_INT_FALLING, motion_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(5, 0), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(7, 3), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_KB_LOCK, PIN(0, 4), GPIO_INPUT)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(E, 1), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(4, 3), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(POWER_LED_GATE, PIN(B, 6), GPIO_OUT_LOW) /* Power LED: White */
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RT_RST_R_ODL, PIN(0, 2), GPIO_ODR_LOW)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, GPIO_SEL_1P8V) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(6, 0x01), 0, MODULE_PWM, 0) /* GPIO60/PWM7 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-ALTERNATE(PIN_MASK(C, 0x1c), 0, MODULE_PWM, 0) /* GPIOC4/PWM2, GPIOC3/PWM0, GPIOC2/PWM1/I2C6_SCL0 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(6, 6)) /* GPO66/ARM_L_x86 */
-UNUSED(PIN(8, 6)) /* GPIO86/TXD/CR_SOUT2 */
-UNUSED(PIN(D, 4)) /* GPIOD4/CR_SIN3 */
-UNUSED(PIN(D, 1)) /* GPIOD1/I2C3_SCL0 */
-UNUSED(PIN(D, 0)) /* GPIOD0/I2C3_SDA0 */
-UNUSED(PIN(8, 3)) /* KSO15/GPIO83 */
-UNUSED(PIN(B, 1)) /* KSO17/GPIOB1/CR_SIN4 */
-UNUSED(PIN(4, 1)) /* GPIO41/ADC4 */
-UNUSED(PIN(A, 0)) /* F_CS0_L/GPIOA0 */
-UNUSED(PIN(9, 6)) /* F_DIO1/GPIO96 */
-UNUSED(PIN(7, 0)) /* GPIO70/PS2_DAT0 */
-UNUSED(PIN(8, 1)) /* PECI DATA/GPIO81 */
-
-/* Pre-configured PSL balls: J8 K6 */
-
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-
-IOEX(USB_C0_FRS_EN, EXPIN(IOEX_C0_NCT38XX, 0, 4), GPIO_LOW)
-IOEX(USB_C0_OC_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 6), GPIO_ODR_HIGH)
-IOEX(USB_C0_RT_RST_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 2), GPIO_ODR_LOW)
diff --git a/board/gimble/i2c.c b/board/gimble/i2c.c
deleted file mode 100644
index ed763fffca..0000000000
--- a/board/gimble/i2c.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C0 */
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C_SENSOR_SCL,
- .sda = GPIO_EC_I2C_SENSOR_SDA,
- },
- {
- /* I2C1
- * TODO(b/194264003) Need to check the signals with a scope
- * before raising to 1MHz.
- */
- /* I2C1 */
- .name = "tcpc0",
- .port = I2C_PORT_USB_C0_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C0_C2_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0",
- .port = I2C_PORT_USB_C0_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SDA,
- },
- {
- /* I2C4
- * TODO(b/194264003) Need to check the signals with a scope
- * before raising to 1MHz.
- */
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/gimble/keyboard.c b/board/gimble/keyboard.c
deleted file mode 100644
index cec70e3d97..0000000000
--- a/board/gimble/keyboard.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config gimble_kb = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_KBD_BKLIGHT_TOGGLE, /* T8 */
- TK_PLAY_PAUSE, /* T9 */
- TK_MICMUTE, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &gimble_kb;
-}
diff --git a/board/gimble/led.c b/board/gimble/led.c
deleted file mode 100644
index 924aa53aff..0000000000
--- a/board/gimble/led.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-
-#include "charge_manager.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "pwm.h"
-#include "util.h"
-
-#define BAT_LED_ON_LVL 100
-#define BAT_LED_OFF_LVL 0
-
-#define PWR_LED_ON_LVL 1
-#define PWR_LED_OFF_LVL 0
-
-#define LED_SIDESEL_MB_PORT 0
-#define LED_SIDESEL_DB_PORT 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {
- {EC_LED_COLOR_WHITE, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC}
- },
- [STATE_FACTORY_TEST] = {
- {EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC}
- },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {
- {LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- int port;
-
- /* There are four battery leds, LED1/LED2 are on MB side and
- * LED3/LED4 are on DB side. All leds are OFF by default.
- */
- int led1_duty, led2_duty, led3_duty, led4_duty;
-
- led1_duty = led2_duty = led3_duty = led4_duty = BAT_LED_OFF_LVL;
-
- /* Check which port is the charging port,
- * and turn on the corresponding led.
- */
- port = charge_manager_get_active_charge_port();
- switch (port) {
- case LED_SIDESEL_MB_PORT:
- switch (color) {
- case EC_LED_COLOR_AMBER:
- led1_duty = BAT_LED_ON_LVL;
- break;
- case EC_LED_COLOR_WHITE:
- led2_duty = BAT_LED_ON_LVL;
- break;
- default: /* LED_OFF and other unsupported colors */
- break;
- }
- break;
- case LED_SIDESEL_DB_PORT:
- switch (color) {
- case EC_LED_COLOR_AMBER:
- led3_duty = BAT_LED_ON_LVL;
- break;
- case EC_LED_COLOR_WHITE:
- led4_duty = BAT_LED_ON_LVL;
- break;
- default: /* LED_OFF and other unsupported colors */
- break;
- }
- break;
- default: /* Unknown charging port */
- break;
- }
-
- pwm_set_duty(PWM_CH_LED1, led1_duty);
- pwm_set_duty(PWM_CH_LED2, led2_duty);
- pwm_set_duty(PWM_CH_LED3, led3_duty);
- pwm_set_duty(PWM_CH_LED4, led4_duty);
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_POWER_LED_GATE, PWR_LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_POWER_LED_GATE, PWR_LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- led_auto_control(led_id, 0);
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/gimble/pwm.c b/board/gimble/pwm.c
deleted file mode 100644
index 73f63821e0..0000000000
--- a/board/gimble/pwm.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED2] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED3] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED1] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_LED4] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_pwm_init(void)
-{
- /*
- * Turn off LED1 to LED4.
- * Turn on KB LED at 50%.
- */
- pwm_enable(PWM_CH_LED1, 1);
- pwm_set_duty(PWM_CH_LED1, 0);
- pwm_enable(PWM_CH_LED2, 1);
- pwm_set_duty(PWM_CH_LED2, 0);
- pwm_enable(PWM_CH_LED3, 1);
- pwm_set_duty(PWM_CH_LED3, 0);
- pwm_enable(PWM_CH_LED4, 1);
- pwm_set_duty(PWM_CH_LED4, 0);
-
- pwm_enable(PWM_CH_KBLIGHT, 1);
- pwm_set_duty(PWM_CH_KBLIGHT, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT);
diff --git a/board/gimble/sensors.c b/board/gimble/sensors.c
deleted file mode 100644
index 24c7215900..0000000000
--- a/board/gimble/sensors.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "accelgyro.h"
-#include "adc_chip.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_bma2x2_public.h"
-#include "driver/accel_bma422.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "motion_sense.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR_SOC] = {
- .name = "TEMP_DDR_SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_FAN] = {
- .name = "TEMP_FAN",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-K_MUTEX_DEFINE(g_lid_accel_mutex);
-K_MUTEX_DEFINE(g_base_accel_mutex);
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* LSM6DSM private data */
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* BMA422 private data */
-static struct accelgyro_saved_data_t g_bma422_data;
-
-/* TODO(b/192477578): calibrate the orientation matrix on later board stage */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref_id_1 = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* TODO(b/192477578): calibrate the orientation matrix on later board stage */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_standard_ref_id_1 = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR2_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t bma422_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA422,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma4_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma422_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA4_I2C_ADDR_SECONDARY,
- .rot_standard_ref = &lid_standard_ref_id_1,
- .min_frequency = BMA4_ACCEL_MIN_FREQ,
- .max_frequency = BMA4_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, enough for laptop. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-struct motion_sensor_t lsm6dsm_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_id_1,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t lsm6dsm_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref_id_1,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_board_id() >= 1)
- lsm6dsm_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-static void update_sensor_array(void)
-{
- if (get_board_id() >= 1) {
- motion_sensors[LID_ACCEL] = bma422_lid_accel;
- motion_sensors[BASE_ACCEL] = lsm6dsm_base_accel;
- motion_sensors[BASE_GYRO] = lsm6dsm_base_gyro;
- ccprints("LID ACCEL is BMA422");
- ccprints("BASE IMU is LSM6DSM");
- } else {
- ccprints("LID ACCEL is BMA253");
- ccprints("BASE IMU is BMI160");
- }
-}
-DECLARE_HOOK(HOOK_INIT, update_sensor_array, HOOK_PRIO_INIT_I2C);
-
-static void baseboard_sensors_init(void)
-{
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR_SOC] = {
- .name = "DDR and SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR_SOC
- },
- [TEMP_SENSOR_2_FAN] = {
- .name = "Fan",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_FAN
- },
- [TEMP_SENSOR_3_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3_CHARGER
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/194318801): confirm thermal limits setting for gimble
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/194318801): confirm thermal limits setting for gimble
- *
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-static const struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/* this should really be "const" */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR_SOC] = thermal_cpu,
- /* TODO(b/194318801): confirm thermal limits setting for gimble */
- [TEMP_SENSOR_2_FAN] = thermal_inductor,
- [TEMP_SENSOR_3_CHARGER] = thermal_inductor,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/gimble/thermal.c b/board/gimble/thermal.c
deleted file mode 100644
index 101c436886..0000000000
--- a/board/gimble/thermal.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "fan.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-/* Console output macros */
-#define CPUTS(outstr) cputs(CC_THERMAL, outstr)
-#define CPRINTS(format, args...) cprints(CC_THERMAL, format, ## args)
-
-
-
-struct fan_step {
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t on[TEMP_SENSOR_COUNT];
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t off[TEMP_SENSOR_COUNT];
- /* Fan rpm */
- uint16_t rpm[FAN_CH_COUNT];
-};
-/*
- * TODO(b/167931578) Only monitor sensor3 for now.
- * Will add more sensors support if needed.
- */
-static const struct fan_step fan_table[] = {
- {
- /* level 0 */
- .on = {44, -1, -1},
- .off = {0, -1, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {46, -1, -1},
- .off = {44, -1, -1},
- .rpm = {3200},
- },
- {
- /* level 2 */
- .on = {50, -1, -1},
- .off = {45, -1, -1},
- .rpm = {3600},
- },
- {
- /* level 3 */
- .on = {54, -1, -1},
- .off = {49, -1, -1},
- .rpm = {4100},
- },
- {
- /* level 4 */
- .on = {58, -1, -1},
- .off = {53, -1, -1},
- .rpm = {4900},
- },
- {
- /* level 5 */
- .on = {60, -1, -1},
- .off = {57, -1, -1},
- .rpm = {5200},
- },
-};
-const int num_fan_levels = ARRAY_SIZE(fan_table);
-
-int fan_table_to_rpm(int fan, int *temp, enum temp_sensor_id temp_sensor)
-{
- /* current fan level */
- static int current_level;
- /* previous fan level */
- static int prev_current_level;
-
- /* previous sensor temperature */
- static int prev_temp[TEMP_SENSOR_COUNT];
- int i;
- int new_rpm = 0;
-
- /*
- * Compare the current and previous temperature, we have
- * the three paths :
- * 1. decreasing path. (check the release point)
- * 2. increasing path. (check the trigger point)
- * 3. invariant path. (return the current RPM)
- */
- if (temp[temp_sensor] < prev_temp[temp_sensor]) {
- for (i = current_level; i > 0; i--) {
- if (temp[temp_sensor] <
- fan_table[i].off[temp_sensor])
- current_level = i - 1;
- else
- break;
- }
- } else if (temp[temp_sensor] >
- prev_temp[temp_sensor]) {
- for (i = current_level; i < num_fan_levels; i++) {
- if (temp[temp_sensor] >
- fan_table[i].on[temp_sensor])
- current_level = i + 1;
- else
- break;
- }
- }
- if (current_level < 0)
- current_level = 0;
-
- if (current_level != prev_current_level) {
- CPRINTS("temp: %d, prev_temp: %d", temp[temp_sensor],
- prev_temp[temp_sensor]);
- CPRINTS("current_level: %d", current_level);
- }
-
- prev_temp[temp_sensor] = temp[temp_sensor];
- prev_current_level = current_level;
-
- switch (fan) {
- case FAN_CH_0:
- new_rpm = fan_table[current_level].rpm[FAN_CH_0];
- break;
- default:
- break;
- }
- return new_rpm;
-}
-void board_override_fan_control(int fan, int *temp)
-{
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan),
- fan_table_to_rpm(FAN_CH(fan), temp, TEMP_SENSOR_1_DDR_SOC));
- } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Stop fan when enter S0ix */
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan), 0);
- }
-}
diff --git a/board/gimble/usbc_config.c b/board/gimble/usbc_config.c
deleted file mode 100644
index 9f9f702364..0000000000
--- a/board/gimble/usbc_config.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/ps8xxx_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- /* Compatible with Silicon Mitus SM536A0 */
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = NX20P3483_ADDR2_FLAGS,
- .drv = &nx20p348x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set
- * to the virtual_usb_mux_driver so the AP gets notified of mux changes
- * and updates the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- /* PS8815 DB */
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/*
- * ioex_init() is normally called before we take the TCPCs out of
- * reset, so we need to start in disabled mode, then explicitly
- * call ioex_init().
- */
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-void config_usb_db_type(void)
-{
- enum ec_cfg_usb_db_type db_type = ec_cfg_usb_db_type();
-
- /*
- * TODO(b/180434685): implement multiple DB types
- */
-
- CPRINTS("Configured USB DB type number is %d", db_type);
-}
-
-static void ps8815_reset(void)
-{
- int val;
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1_TCPC,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1_TCPC,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1_TCPC,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- /* Port0 */
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 0);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 1);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 1);
- /* wait for chips to come up */
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /* Port1 */
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-static void board_tcpc_init(void)
-{
- int i;
-
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
-
- for (i = 0; i < CONFIG_IO_EXPANDER_PORT_COUNT; ++i) {
- ioex_config[i].flags &= ~IOEX_FLAGS_DISABLED;
- ioex_init(i);
- }
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C1)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- return 0;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
diff --git a/board/gimble/usbc_config.h b/board/gimble/usbc_config.h
deleted file mode 100644
index 87e601ee3e..0000000000
--- a/board/gimble/usbc_config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void config_usb_db_type(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/gimble/vif_override.xml b/board/gimble/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/gimble/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/gingerbread/board.c b/board/gingerbread/board.c
deleted file mode 100644
index 6a2ae0c683..0000000000
--- a/board/gingerbread/board.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/* 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.
- */
-
-/* Gingerbread board-specific configuration */
-
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/stm32gx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/tusb1064.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "mp4245.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_descriptor.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "usb_descriptor.h"
-#include "usb_pd_dp_ufp.h"
-#include "usb_pe_sm.h"
-#include "usb_prl_sm.h"
-#include "usb_tc_sm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-#define QUICHE_PD_DEBUG_LVL 1
-
-#ifdef SECTION_IS_RW
-#define CROS_EC_SECTION "RW"
-#else
-#define CROS_EC_SECTION "RO"
-#endif
-
-#ifdef SECTION_IS_RW
-/*
- * C1 port on gingerbread does not have a PPC. However, C0 port does have a PPC
- * and therefore PPC related config options are defined. Defining a null driver
- * here so that functions from usbc_ppc.c will correctly dereference to a NULL
- * function pointer.
- */
-const struct ppc_drv board_ppc_null_drv = {};
-
-static int pd_dual_role_init[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- PD_DRP_TOGGLE_ON,
- PD_DRP_FORCE_SOURCE,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_HOST_USBC_PPC_INT_ODL:
- sn5s330_interrupt(USB_PD_PORT_HOST);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal s)
-{
- int port = -1;
-
- switch (s) {
- case GPIO_USBC_DP_MUX_ALERT_ODL:
- port = USB_PD_PORT_DP;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void hpd_interrupt(enum gpio_signal signal)
-{
- usb_pd_hpd_edge_event(signal);
-}
-
-static void board_pwr_btn_interrupt(enum gpio_signal signal)
-{
- baseboard_power_button_evt(gpio_get_level(signal));
-}
-#endif /* SECTION_IS_RW */
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/*
- * Table GPIO signals control both power rails and reset lines to various chips
- * on the board. The order the signals are changed and the delay between GPIO
- * signals is driven by USB/MST hub power sequencing requirements.
- */
-const struct power_seq board_power_seq[] = {
- {GPIO_EN_AC_JACK, 1, 20},
- {GPIO_EN_PP5000_A, 1, 31},
- {GPIO_EN_PP3300_A, 1, 135},
- {GPIO_EN_BB, 1, 30},
- {GPIO_EN_PP1100_A, 1, 30},
- {GPIO_EN_PP1000_A, 1, 20},
- {GPIO_EN_PP1050_A, 1, 30},
- {GPIO_EN_PP1200_A, 1, 20},
- {GPIO_EN_PP5000_HSPORT, 1, 31},
- {GPIO_EN_DP_SINK, 1, 80},
- {GPIO_MST_LP_CTL_L, 1, 80},
- {GPIO_MST_RST_L, 1, 41},
- {GPIO_EC_HUB1_RESET_L, 1, 41},
- {GPIO_EC_HUB2_RESET_L, 1, 33},
- {GPIO_USBC_DP_PD_RST_L, 1, 100},
- {GPIO_USBC_UF_RESET_L, 1, 33},
- {GPIO_DEMUX_DUAL_DP_PD_N, 1, 100},
- {GPIO_DEMUX_DUAL_DP_RESET_N, 1, 100},
- {GPIO_DEMUX_DP_HDMI_PD_N, 1, 10},
- {GPIO_DEMUX_DUAL_DP_MODE, 1, 10},
- {GPIO_DEMUX_DP_HDMI_MODE, 1, 1},
-};
-
-const size_t board_power_seq_count = ARRAY_SIZE(board_power_seq);
-
-/*
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Gingerbread"),
- [USB_STR_SERIALNO] = 0,
- [USB_STR_VERSION] =
- USB_STRING_DESC(CROS_EC_SECTION ":" CROS_EC_VERSION32),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-#ifndef SECTION_IS_RW
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[] = {
- [USB_PD_PORT_HOST] = {
- .i2c_port = I2C_PORT_I2C3,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- },
-};
-#endif
-
-#ifdef SECTION_IS_RW
-/*
- * TCPCs: 2 USBC/PD ports
- * port 0 -> host port -> STM32G4 UCPD
- * port 1 -> user data/display port -> PS8805
- */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &stm32gx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_I2C3,
- .addr_flags = PS8751_I2C_ADDR2_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .usb_port = USB_PD_PORT_HOST,
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = TUSB1064_I2C_ADDR0_FLAGS,
- .driver = &tusb1064_usb_mux_driver,
- },
- [USB_PD_PORT_DP] = {
- .usb_port = USB_PD_PORT_DP,
- .i2c_port = I2C_PORT_I2C3,
- .i2c_addr_flags = PS8751_I2C_ADDR2_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .i2c_port = I2C_PORT_I2C3,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- [USB_PD_PORT_DP] = {
- .drv = &board_ppc_null_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-const struct hpd_to_pd_config_t hpd_config = {
- .port = USB_PD_PORT_HOST,
- .signal = GPIO_DDI_MST_IN_HPD,
-};
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_SYSTEM, "Resetting TCPCs...");
- cflush();
- /*
- * Reset all TCPCs.
- * C0 -> ucpd (on chip TCPC)
- * C1 -> PS8805 TCPC -> USBC_DP_PD_RST_L
- * C2 -> PS8803 TCPC -> USBC_UF_RESET_L
- */
- gpio_set_level(GPIO_USBC_DP_PD_RST_L, 0);
- gpio_set_level(GPIO_USBC_UF_RESET_L, 0);
- msleep(PS8805_FW_INIT_DELAY_MS);
- gpio_set_level(GPIO_USBC_DP_PD_RST_L, 1);
- gpio_set_level(GPIO_USBC_UF_RESET_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-
-/* Power Delivery and charging functions */
-void board_enable_usbc_interrupts(void)
-{
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USBC_DP_MUX_ALERT_ODL);
-
- /* Enable HPD interrupt */
- gpio_enable_interrupt(GPIO_DDI_MST_IN_HPD);
-
-}
-
-/* Power Delivery and charging functions */
-void board_disable_usbc_interrupts(void)
-{
- /* Disable PPC interrupts. */
- gpio_disable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
-
- /* Disable TCPC interrupts. */
- gpio_disable_interrupt(GPIO_USBC_DP_MUX_ALERT_ODL);
-
- /* Disable HPD interrupt */
- gpio_disable_interrupt(GPIO_DDI_MST_IN_HPD);
-
-}
-
-void board_tcpc_init(void)
-{
- board_reset_pd_mcu();
-
- /* Enable board usbc interrupts */
- board_enable_usbc_interrupts();
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 2);
-
-enum pd_dual_role_states board_tc_get_initial_drp_mode(int port)
-{
- return pd_dual_role_init[port];
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USB_PD_PORT_HOST)
- return gpio_get_level(GPIO_HOST_USBC_PPC_INT_ODL) == 0;
-
- return 0;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USBC_DP_MUX_ALERT_ODL) &&
- gpio_get_level(GPIO_USBC_DP_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO: b/ - check correct operation for honeybuns */
-}
-
-int dock_get_mf_preference(void)
-{
- int rv;
- uint32_t fw_config;
- int mf = MF_OFF;
-
- /*
- * MF (multi function) preferece is indicated by bit 0 of the fw_config
- * data field. If this data field does not exist, then default to 4 lane
- * mode.
- */
- rv = cbi_get_fw_config(&fw_config);
- if (!rv)
- mf = CBI_FW_MF_PREFERENCE(fw_config);
-
- return mf;
-}
-
-#endif /* SECTION_IS_RW */
-
-static void board_init(void)
-{
-#ifdef SECTION_IS_RW
-
-#endif
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_debug_gpio_1_pulse(void)
-{
- gpio_set_level(GPIO_TRIGGER_1, 0);
-}
-DECLARE_DEFERRED(board_debug_gpio_1_pulse);
-
-static void board_debug_gpio_2_pulse(void)
-{
- gpio_set_level(GPIO_TRIGGER_2, 0);
-}
-DECLARE_DEFERRED(board_debug_gpio_2_pulse);
-
-void board_debug_gpio(enum debug_gpio trigger, int level, int pulse_usec)
-{
- switch (trigger) {
- case TRIGGER_1:
- gpio_set_level(GPIO_TRIGGER_1, level);
- if (pulse_usec)
- hook_call_deferred(&board_debug_gpio_1_pulse_data,
- pulse_usec);
- break;
- case TRIGGER_2:
- gpio_set_level(GPIO_TRIGGER_2, level);
- if (pulse_usec)
- hook_call_deferred(&board_debug_gpio_2_pulse_data,
- pulse_usec);
- break;
- default:
- CPRINTS("bad debug gpio selection");
- break;
- }
-}
diff --git a/board/gingerbread/board.h b/board/gingerbread/board.h
deleted file mode 100644
index cfc5bbf0a0..0000000000
--- a/board/gingerbread/board.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* 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.
- */
-
-/* Gingerbread board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-/*
- * For MP release, CONFIG_SYSTEM_UNLOCKED must be undefined, and
- * CONFIG_FLASH_PSTATE_LOCKED must be defined in order to enable write protect
- * using option bytes WRP registers.
- */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-#undef CONFIG_FLASH_PSTATE_LOCKED
-
-
-#define CONFIG_WP_ACTIVE_HIGH
-
-/* Console */
-#define CONFIG_UART_CONSOLE 3
-#define CONFIG_UART_TX_DMA_CH STM32_DMAC_USART3_TX
-#define CONFIG_UART_TX_DMA_PH DMAMUX_REQ_USART3_TX
-
-/* USB Type C and USB PD defines */
-#define USB_PD_PORT_HOST 0
-#define USB_PD_PORT_DP 1
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_MUX_TUSB1064
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define BOARD_C1_NO_PPC
-#define BOARD_C1_1A5_LIMIT
-
-#define CONFIG_USB_PID 0x5049
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-
-/* I2C port names */
-#define I2C_PORT_I2C1 0
-#define I2C_PORT_I2C2 1
-#define I2C_PORT_I2C3 2
-/* Required symbolic I2C port names */
-#define I2C_PORT_MP4245 I2C_PORT_I2C3
-#define I2C_PORT_EEPROM I2C_PORT_I2C1
-#define MP4245_I2C_ADDR_FLAGS MP4245_I2C_ADDR_0_FLAGS
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_WP GPIO_EC_WP_L
-
-/* Include math_util for bitmask_uint64 used in pd_timers */
-#define CONFIG_MATH_UTIL
-
-#ifndef __ASSEMBLER__
-
-#include "registers.h"
-
-#define GPIO_DP_HPD GPIO_DDI_MST_IN_HPD
-#define GPIO_BPWR_DET GPIO_TP71
-#define GPIO_PWR_BUTTON_RED GPIO_EC_STATUS_LED1
-#define GPIO_PWR_BUTTON_GREEN GPIO_EC_STATUS_LED2
-
-#define BUTTON_PRESSED_LEVEL 0
-#define BUTTON_RELEASED_LEVEL 1
-
-#define GPIO_TRIGGER_1 GPIO_USB3_A1_CDP_EN
-#define GPIO_TRIGGER_2 GPIO_USB3_A2_CDP_EN
-
-enum debug_gpio {
- TRIGGER_1 = 0,
- TRIGGER_2,
-};
-
-/*
- * Function used to control GPIO signals as a timing marker. This is intended to
- * be used for development/debugging purposes.
- *
- * @param trigger GPIO debug signal selection
- * @param level desired level of the debug gpio signal
- * @param pulse_usec pulse width if non-zero
- */
-void board_debug_gpio(enum debug_gpio trigger, int level, int pulse_usec);
-
-/*
- * Function called in power on case to enable usbc related interrupts
- */
-void board_enable_usbc_interrupts(void);
-
-/*
- * Function called in power off case to disable usbc related interrupts
- */
-void board_disable_usbc_interrupts(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/gingerbread/build.mk b/board/gingerbread/build.mk
deleted file mode 100644
index f994cc1434..0000000000
--- a/board/gingerbread/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=stm32
-# TODO(b/148493929): The chip family for honeybuns is STM32G4. The chip
-# variant is STM32G431x. Support for this chip is not yet in the Cros EC
-# codebase. Currently, using a variant of the F family so the project will
-# build properly.
-CHIP_FAMILY:=stm32g4
-CHIP_VARIANT:=stm32g473xc
-BASEBOARD:=honeybuns
-
-board-y=board.o
diff --git a/board/gingerbread/dev_key.pem b/board/gingerbread/dev_key.pem
deleted file mode 100644
index 7b1df5d805..0000000000
--- a/board/gingerbread/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG5AIBAAKCAYEA2hyGIDxIS/jWNh3Nhg7V4/5Ce8KT4CIb1XaLd0mR2gWCkYdZ
-iRWSjAjMsMCLSLM0gUDnFU5xJgbUdg1GeafXdPlRQojG2ztZ/z+JBNgQvsWtdJhR
-m9dMm1cbq3rajU5NoVu1hiLIWpayYo91w1qMnf3LRFAgrVDvEUt8elCpTB60uZiS
-QL3PSCJhZiGyK2QGix+vNKxri+GnM+SxXggi3IrLMI2gqpCTiTZl4t8Ecnsn4QMC
-OvgRzDj2TnYJhhAdFeg7SuQ9TKCXAyw0LAR9AcuQ8tbf3ox04umLdbAj518ScXZB
-ef2xrnXIBkXcA5UXZ2J6+YP7tvm6XCEnwdhEq5gi65Mjc1i8vihzABXbXrKhFdKt
-ACLdQ8V6eM2nTK4NwNIeHdF0KRBvln5APxapNfjQh9Fz67ytvxt7TaBQWOheWB1V
-8NL7AzfcEPUH5blCjdWNfLcUXNqZa6+Jxk5Zug5dPazo1y1R5XoLFKpZ76c33fPr
-ngV8jwkTNaXVU84jAgEDAoIBgQCRaFlq0trdUI7OvokECePtVCxSgbfqwWfjpFz6
-MQvmrlcLr5EGDmGysIh11bIwd3hWK0S43vYZWeL5Xi77xTpN+4uBsISSJ5FU1QYD
-OrXUg8j4ZYu9OjMSOhJyUecI3t5rknkEFzA8ZHbsX6PXkbMT/oeC4BXI4J9g3P2m
-4HDdac3REGGAfoowFuuZa8wc7VmyFR94cvJdQRoimHY+sBc9sdzLCRXHCw0GJEPs
-lK2hp2/rV1bR+raIJfmJpAZZYBIn4W8yHD2LX6/ofgnTIxw9jAL1eheBviKwpYw8
-QOr46FlX3SZs8cupHbCf+DiPbcwZce3viPPMXSF+XW4wmiXgQeJnAh7sStcu4WjF
-TWxppqto6mr/5D5uI+NWjm13puJVL6OsPkJrhEZ1gSW6u3pPxAotkj4sppIg2qUJ
-pmxohz4D8gChOyedxtg1DRBqMY9VDnfRN5DMuPiF9t77KkOuHfZI3tUwWIeZeRKV
-tJEldJjnTBZfqZirjznlIBq1oasCgcEA/9RLDoX70KACdkki4o8MOrqHvmU3fgtZ
-MWIxrbjFoR9JhjFIZm41Ak8/sMhbs0dOskS4FmNaeKgkhsalZR997HvZXDxAsB7X
-tWkYcqKI1XaB48rIB5g5rxFmnxh/vVrchlUh80YQS/jvetD+fmjzXHeyrC2OCAgR
-2cfrl0ZwbXDbvoWoUcAl9C8YuUWUYurJsyqnwNLg6uiGB5anjBITNVGOXYD8hdcv
-2RoOOSnuGwTHRtytphO1WJiUqn9yOV5jAoHBANpByXEz5SrxDLAmAozAxmq/BMQ6
-hR3j56iPB22V/dDjQud5P3Akyy55/2WJK3kpFo7y3fvTM4vF45fOXRPRje65dfTT
-tGDJokJtPWV/L+rCHhSoRHi0Re9+Ptffg1vY3bq1hqguADvRFmtriSiUfmHbDpdI
-iKC6wLQLmCfgPU6spZOsrK06GaJefwgb2uOEIdsVMgIQ2j7cnpsmk8F84P+P3XLd
-rIjRVqYqYPrxkhxzizwlHGhzYjUZp7N2Own9QQKBwQCqjYdfA/01wAGkMMHsX118
-fFp+7iT+sjt2QXZz0IPAv4ZZdjBESXisNNUghZJ3hN8hgyVkQjxQcBhZ2cOYv6lI
-UpDoKCsgFI/ORhBMbFs4+avtMdqvutEfYO8Uuv/TkehZjhaiLrWH+0pR4Kmpm0zo
-T8xyyQlasAvmhUe6LvWeSz0prnA2gBlNdLsmLmLsnIZ3ccUrN0CcmwQFDxpdYWIj
-i7Q+Vf2uj3U7ZrQmG/QSAy+Ekx5ut847EGMcVPbQ6ZcCgcEAkYEw9iKYx0tdysQB
-sysu8dSt2CcDaUKacF9aSQ6pNezXRPt/oBiHdFFU7ltyUMYPCfc+p+IiXS6XuomT
-Youz9Huj+I0i6zEW1vN+Q6of8da+uHAtpc2D9P7Uj+pXkpCT0c5ZxXQAJ+C5nPJb
-cGL+6+dfD4WwaycrIrJlb+rTichuYnMdyNFmbD7/Wr08l61r52N2rAs8KehpvMRi
-gP3rVQqToekdsIuPGXGV/KEMEveyKBi9mveWzhEad6QnW/4rAoHBAM1TgJVVYCKl
-tmUf8XcC8+bNQ+dlqPdBQa3cAPFlQdRZUzDIYU+ZHa66GWUWb2uuD2hFCDDEpC1l
-Ke34tNROiruDfj9lfD6UmJv8vw/wPG3m52Qb5iWdA+B1512MK8p7KZg9YQJot/Yj
-B2rNxv1O+IjWPxxtUEVsFpx/XGoEemc85iS+icjNXvtOwyEGdNliRFiQtVkh2mtX
-7uKbkUAL2HKzxfnJ/LbWZwDlW45x/qDQtncp93sTcM3k8FVE+MtLbw==
------END RSA PRIVATE KEY-----
diff --git a/board/gingerbread/ec.tasklist b/board/gingerbread/ec.tasklist
deleted file mode 100644
index cc36bf5a74..0000000000
--- a/board/gingerbread/ec.tasklist
+++ /dev/null
@@ -1,18 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(POWER_BUTTON, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_INT_C1, pd_interrupt_handler_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(UCPD, ucpd_task, 0, LARGER_TASK_STACK_SIZE)
diff --git a/board/gingerbread/gpio.inc b/board/gingerbread/gpio.inc
deleted file mode 100644
index 5b7b3a9619..0000000000
--- a/board/gingerbread/gpio.inc
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-#ifdef SECTION_IS_RW
-GPIO_INT(HOST_USBC_PPC_INT_ODL, PIN(C, 1), GPIO_INT_FALLING | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(USBC_DP_MUX_ALERT_ODL, PIN(C, 12), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-GPIO_INT(DDI_MST_IN_HPD, PIN(C, 14), GPIO_INT_BOTH, hpd_interrupt)
-GPIO_INT(PWR_BTN, PIN(A, 0), GPIO_INT_BOTH, board_pwr_btn_interrupt)
-#endif
-
-/* Power sequencing signals */
-GPIO(EN_AC_JACK, PIN(A, 1), GPIO_OUT_LOW)
-GPIO(EN_BB, PIN(C, 0), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(C, 10), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(C, 2), GPIO_OUT_LOW)
-GPIO(EN_PP1200_A, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EN_PP1100_A, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(EN_PP1000_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EN_PP1050_A, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(EN_PP5000_HSPORT, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EC_STATUS_LED1, PIN(A, 2), GPIO_OUT_HIGH)
-GPIO(EC_STATUS_LED2, PIN(B, 12), GPIO_OUT_HIGH)
-
-/* MST Hub signals */
-GPIO(MST_LP_CTL_L, PIN(B, 9), GPIO_OUT_LOW)
-GPIO(MST_RST_L, PIN(B, 3), GPIO_ODR_LOW)
-GPIO(MST_HUB_LANE_SWITCH, PIN(C, 15), GPIO_OUT_HIGH)
-
-/* Display Demux signals */
-GPIO(DEMUX_DUAL_DP_MODE, PIN(D, 8), GPIO_OUT_LOW)
-GPIO(DEMUX_DP_HDMI_MODE, PIN(D, 10), GPIO_OUT_LOW)
-GPIO(DEMUX_DUAL_DP_RESET_N, PIN(B, 14), GPIO_ODR_HIGH)
-GPIO(DEMUX_DUAL_DP_PD_N, PIN(D, 2), GPIO_ODR_HIGH)
-GPIO(DEMUX_DP_HDMI_PD_N, PIN(D, 9), GPIO_ODR_HIGH)
-
-/* USBC Mux and Demux Signals */
-GPIO(EN_DP_SINK, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(DP_SINK_RESET, PIN(B, 1), GPIO_OUT_LOW)
-GPIO(USBC_DP_PD_RST_L, PIN(C, 13), GPIO_ODR_LOW)
-GPIO(USBC_UF_RESET_L, PIN(C, 11), GPIO_ODR_LOW)
-
-/* USB Hubs signals */
-GPIO(EC_HUB1_RESET_L, PIN(E, 13), GPIO_ODR_LOW)
-GPIO(EC_HUB2_RESET_L, PIN(E, 14), GPIO_ODR_LOW)
-
-/* DEBUG signals */
-GPIO(DEBUG_GPIO1, PIN(B, 13), GPIO_OUT_LOW)
-
-/* Configure as output to enable @1.5A on USBA Ports
-* USB CDP enables. */
-GPIO(USB3_A1_CDP_EN, PIN(E, 7), GPIO_OUT_LOW)
-GPIO(USB3_A2_CDP_EN, PIN(E, 8), GPIO_OUT_LOW)
-GPIO(USB3_P3_CDP_EN, PIN(D, 1), GPIO_OUT_LOW)
-GPIO(USB3_P4_CDP_EN, PIN(E, 12), GPIO_OUT_LOW)
-
-/* Write protect */
-GPIO(EC_FLASH_WP_ODL, PIN(A, 3), GPIO_ODR_HIGH)
-GPIO(EC_WP_L, PIN(E, 11), GPIO_INT_BOTH)
-
-
-/* SPI Bus */
-GPIO(FLASH_SPI1_NSS, PIN(A, 4), GPIO_INT_FALLING)
-GPIO(FLASH_SPI1_SCK, PIN(A, 5), GPIO_INT_BOTH)
-GPIO(FLASH_SPI1_MISO, PIN(A, 6), GPIO_INT_BOTH)
-GPIO(FLASH_SPI1_MOSI, PIN(A, 7), GPIO_INT_BOTH)
-
-/* misc signals */
-GPIO(EC_DFU_MUX_CTRL, PIN(A, 8), GPIO_OUT_HIGH)
-GPIO(TP71, PIN(B, 0), GPIO_OUT_LOW)
-
-/*
- * I2C SCL/SDA pins. These will normally be under control of the peripheral from
- * alt fucntion setting below. But if a port gets wedged, the unwedge code uses
- * these signals as regular GPIOs.
- */
-GPIO(EC_I2C1_SCL, PIN(A, 15), GPIO_ODR_HIGH)
-GPIO(EC_I2C1_SDA, PIN(B, 7), GPIO_ODR_HIGH)
-GPIO(EC_I2C3_SCL, PIN(C, 8), GPIO_ODR_HIGH)
-GPIO(EC_I2C3_SDA, PIN(C, 9), GPIO_ODR_HIGH)
-
-UNIMPLEMENTED(EC_ENTERING_RW)
-
-ALTERNATE(PIN_MASK(B, 0x0C00), GPIO_ALT_USART, MODULE_UART, GPIO_PULL_UP) /* GPIOB 10-11:USART3_TX/RX */
-ALTERNATE(PIN_MASK(A, 0x00F0), 5, MODULE_SPI, 0) /* GPIOA4-7: SPI Signals */
-/* I2C Ports
- * I2C1: SDA/SCL -> PB7/PA15
- * I2C2: SDA/SCL -> PA8/PA9
- * I2C3: SDA/SCL -> PC8/PC9
- */
-ALTERNATE(PIN_MASK(B, 0x0080), 4, MODULE_I2C, GPIO_OPEN_DRAIN)
-ALTERNATE(PIN_MASK(A, 0X8000), 4, MODULE_I2C, GPIO_OPEN_DRAIN)
-ALTERNATE(PIN_MASK(C, 0x0300), 8, MODULE_I2C, GPIO_OPEN_DRAIN)
diff --git a/board/gooey/battery.c b/board/gooey/battery.c
deleted file mode 100644
index c40e0d7ec7..0000000000
--- a/board/gooey/battery.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all gooey battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP L18D3PG1 Battery Information */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* LGC L17L3PB0 Battery Information */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* Sunwoda L17M3PB0 Battery Information */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0018,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
diff --git a/board/gooey/board.c b/board/gooey/board.c
deleted file mode 100644
index 518e159f9d..0000000000
--- a/board/gooey/board.c
+++ /dev/null
@@ -1,519 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Gooey board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "keyboard_8042.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void hdmi_hpd_interrupt(enum gpio_signal s)
-{
- gpio_set_level(GPIO_USB_C1_DP_HPD, !gpio_get_level(s));
-}
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/**
- * Deferred function to handle pen detect change
- */
-static void pendetect_deferred(void)
-{
- static int debounced_pen_detect;
- int pen_detect = !gpio_get_level(GPIO_PEN_DET_ODL);
-
- if (pen_detect == debounced_pen_detect)
- return;
-
- debounced_pen_detect = pen_detect;
-
- gpio_set_level(GPIO_EN_PP5000_PEN, debounced_pen_detect);
- gpio_set_level(GPIO_PEN_DET_PCH, !debounced_pen_detect);
-}
-DECLARE_DEFERRED(pendetect_deferred);
-
-void pen_detect_interrupt(enum gpio_signal s)
-{
- /* Trigger deferred notification of pen detect change */
- hook_call_deferred(&pendetect_deferred_data,
- 500 * MSEC);
-}
-
-void board_hibernate(void)
-{
- /*
- * Charger IC need to be put into their "low power mode" before
- * entering the Z-state.
- */
- raa489000_hibernate(0, false);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
-};
-
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
-};
-
-void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- gpio_enable_interrupt(GPIO_HDMI_HPD_SUB_ODL);
- /* Enable gpio interrupt for pen detect */
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Make sure pen detection is triggered or not at sysjump */
- if (!gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_EN_PP5000_PEN, 1);
- if (gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_PEN_DET_PCH, 1);
-
- /* Set LEDs luminance */
- pwm_set_duty(PWM_CH_LED_RED, 70);
- pwm_set_duty(PWM_CH_LED_GREEN, 70);
- pwm_set_duty(PWM_CH_LED_WHITE, 70);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- if (port != 0 && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- CPRINTUSB("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(0, false);
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTUSB("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(0, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTUSB("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- },
-
- [PWM_CH_LED_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_GREEN] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_WHITE] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- }
-
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* Sensor Data */
-static struct stprivate_data g_lis2dwl_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-static const struct ec_response_keybd_config gooey_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &gooey_keybd;
-}
diff --git a/board/gooey/board.h b/board/gooey/board.h
deleted file mode 100644
index bf7f36c0b9..0000000000
--- a/board/gooey/board.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Gooey board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_KEEBY_EC_IT8320
-#include "baseboard.h"
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* DAC for PSYS */
-#define CONFIG_DAC
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux */
-#define CONFIG_USB_MUX_IT5205
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_LED_WHITE,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-void pen_detect_interrupt(enum gpio_signal s);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/gooey/build.mk b/board/gooey/build.mk
deleted file mode 100644
index ff15b3e8e4..0000000000
--- a/board/gooey/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=keeby
-
-board-y=board.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/gooey/ec.tasklist b/board/gooey/ec.tasklist
deleted file mode 100644
index bdcbcdf074..0000000000
--- a/board/gooey/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/gooey/gpio.inc b/board/gooey/gpio.inc
deleted file mode 100644
index 1eaae9e354..0000000000
--- a/board/gooey/gpio.inc
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(HDMI_HPD_SUB_ODL, PIN(E, 7), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Used by baseboard z-state enable, but not present on gooey */
-UNIMPLEMENTED(USB_C1_INT_ODL)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_A1_VBUS, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO_INT(PEN_DET_ODL, PIN(J, 1), GPIO_INT_BOTH | GPIO_PULL_UP, pen_detect_interrupt)
-GPIO(EN_PP5000_PEN, PIN(B, 5), GPIO_OUT_LOW)
-GPIO(PEN_DET_PCH, PIN(F, 1), GPIO_OUT_LOW)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(EC_CBI_WP, PIN(H, 5), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG0_NC, PIN(G, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH1_NC, PIN(H, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL2_NC, PIN(L, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* DAC */
-ALTERNATE(PIN_MASK(J, BIT(2)), 0, MODULE_DAC, 0) /* DAC2: EC_AP_PSYS */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0) | BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM, 0) /* KB_BL_PWM, LED_[R,G,B]_ODL */
diff --git a/board/gooey/led.c b/board/gooey/led.c
deleted file mode 100644
index 6d55ce2932..0000000000
--- a/board/gooey/led.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2021 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.
- *
- * Gooey specific PWM LED settings.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-#include "pwm.h"
-
-#define LED_OFF_LVL 0
-#define LED_ON_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- pwm_enable(PWM_CH_LED_WHITE, LED_ON_LVL);
- else
- pwm_enable(PWM_CH_LED_WHITE, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED_RED, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- pwm_enable(PWM_CH_LED_RED, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_GREEN, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/gooey/usb_pd_policy.c b/board/gooey/usb_pd_policy.c
deleted file mode 100644
index b7c0ca21df..0000000000
--- a/board/gooey/usb_pd_policy.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- if (port != 0)
- return;
-
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port != 0)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
diff --git a/board/gooey/vif_override.xml b/board/gooey/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/gooey/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/goroh/battery.c b/board/goroh/battery.c
deleted file mode 100644
index f07c38e1b8..0000000000
--- a/board/goroh/battery.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "chipset.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "system.h"
-#include "usb_pd.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C235] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWRc3KA",
- .device_name = "C235-41",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x0c,
- .disconnect_val = 0x0c,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C235;
diff --git a/board/goroh/board.c b/board/goroh/board.c
deleted file mode 100644
index b28322eca0..0000000000
--- a/board/goroh/board.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Copyright 2021 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.
- */
-/* Goroh board configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/mt6360.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/usb_mux/it5205.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "regulator.h"
-#include "spi.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable motion sensor interrupt */
- gpio_enable_interrupt(GPIO_BASE_IMU_INT_L);
- gpio_enable_interrupt(GPIO_LID_ACCEL_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Sensor */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct stprivate_data g_lis2dwl_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(1)},
-};
-
-static void update_rotation_matrix(void)
-{
- if (board_get_version() >= 2) {
- motion_sensors[BASE_ACCEL].rot_standard_ref =
- &base_standard_ref;
- motion_sensors[BASE_GYRO].rot_standard_ref =
- &base_standard_ref;
- }
-}
-DECLARE_HOOK(HOOK_INIT, update_rotation_matrix, HOOK_PRIO_INIT_ADC + 2);
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = NULL, /* identity matrix */
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = NULL, /* identity matrix */
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .int_signal = GPIO_LID_ACCEL_INT_L,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .rot_standard_ref = NULL, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- /* Convert to mV (3000mV/1024). */
- {"VBUS_C0", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0, CHIP_ADC_CH0},
- {"BOARD_ID_0", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH1},
- {"BOARD_ID_1", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH2},
- /* AMON/BMON gain = 17.97 */
- {"CHARGER_AMON_R", ADC_MAX_MVOLT * 1000 / 17.97, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH3},
- {"VBUS_C1", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0, CHIP_ADC_CH5},
- {"CHARGER_PMON", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH6},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* PWM */
-
-/*
- * PWM channels. Must be in the exactly same order as in enum pwm_channel.
- * There total three 16 bits clock prescaler registers for all pwm channels,
- * so use the same frequency and prescaler register setting is required if
- * number of pwm channel greater than three.
- */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 324, /* maximum supported frequency */
- .pcfsr_sel = PWM_PRESCALER_C4
- },
- [PWM_CH_LED2] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 324, /* maximum supported frequency */
- .pcfsr_sel = PWM_PRESCALER_C4
- },
- [PWM_CH_LED3] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 324, /* maximum supported frequency */
- .pcfsr_sel = PWM_PRESCALER_C4
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-int board_accel_force_mode_mask(void)
-{
- int version = board_get_version();
-
- if (version == -1 || version >= 2)
- return 0;
- return BIT(LID_ACCEL);
-}
-
-static void board_suspend(void)
-{
- if (board_get_version() >= 3)
- gpio_set_level(GPIO_EN_5V_USM, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- if (board_get_version() >= 3)
- gpio_set_level(GPIO_EN_5V_USM, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
-
-__override int syv682x_board_is_syv682c(int port)
-{
- return board_get_version() > 2;
-}
-
-#ifdef CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT
-enum adc_channel board_get_vbus_adc(int port)
-{
- if (port == 0)
- return ADC_VBUS_C0;
- if (port == 1)
- return ADC_VBUS_C1;
- CPRINTSUSB("Unknown vbus adc port id: %d", port);
- return ADC_VBUS_C0;
-}
-#endif /* CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT */
diff --git a/board/goroh/board.h b/board/goroh/board.h
deleted file mode 100644
index 29334c9d7e..0000000000
--- a/board/goroh/board.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 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.
- */
-/* Goroh board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* Chipset config */
-#define CONFIG_BRINGUP
-
-/* Optional features */
-#define CONFIG_LTO
-
-/*
- * TODO: Remove this option once the VBAT no longer keeps high when
- * system's power isn't presented.
- */
-#define CONFIG_IT83XX_RESET_PD_CONTRACT_IN_BRAM
-
-/* BC12 */
-/* TODO(b/159583342): remove after rev0 deprecated */
-#define CONFIG_MT6360_BC12_GPIO
-
-/* LED */
-#define CONFIG_LED_POWER_LED
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* PD / USB-C / PPC */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-
-/* Optional console commands */
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_STACKOVERFLOW
-
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 9000
-
-/* Sensor */
-#define CONFIG_GMR_TABLET_MODE
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_LIS2DW_AS_BASE
-#define CONFIG_ACCEL_LIS2DW12_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-/* TODO(b/171931139): remove this after rev1 board deprecated */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (board_accel_force_mode_mask())
-
-/* SPI / Host Command */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* USB-A */
-#define USBA_PORT_COUNT 1
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_C235,
- BATTERY_TYPE_COUNT,
-};
-
-enum sensor_id {
- BASE_ACCEL = 0,
- BASE_GYRO,
- LID_ACCEL,
-
- SENSOR_COUNT,
-};
-
-enum adc_channel {
- ADC_VBUS, /* ADC 0 */
- ADC_BOARD_ID_0, /* ADC 1 */
- ADC_BOARD_ID_1, /* ADC 2 */
- ADC_CHARGER_AMON_R, /* ADC 3 */
- ADC_VBUS_C1, /* ADC 5 */
- ADC_CHARGER_PMON, /* ADC 6 */
-
- /* Number of ADC channels */
- ADC_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1,
- PWM_CH_LED2,
- PWM_CH_LED3,
- PWM_CH_COUNT,
-};
-
-int board_accel_force_mode_mask(void);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/goroh/build.mk b/board/goroh/build.mk
deleted file mode 100644
index 468d9ad365..0000000000
--- a/board/goroh/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-
-# the IC is ITE IT8xxx2
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202bx_1024
-BASEBOARD:=goroh
-
-board-y+=battery.o board.o led.o
diff --git a/board/goroh/ec.tasklist b/board/goroh/ec.tasklist
deleted file mode 100644
index 75dbb1a828..0000000000
--- a/board/goroh/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(PDCMD, pd_command_task, NULL, 1024) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, 1280) \
-
diff --git a/board/goroh/gpio.inc b/board/goroh/gpio.inc
deleted file mode 100644
index 8ffbb16414..0000000000
--- a/board/goroh/gpio.inc
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH | GPIO_PULL_UP |
- GPIO_HIB_WAKE_HIGH, power_button_interrupt) /* H1_EC_PWR_BTN_ODL */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(J, 7), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Chipset interrupts */
-GPIO_INT(AP_EC_WARM_RST_REQ, PIN(D, 3), GPIO_INT_RISING | GPIO_SEL_1P8V,
- chipset_reset_request_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- chipset_watchdog_interrupt)
-GPIO_INT(AP_IN_SLEEP_L, PIN(F, 2),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PMIC_EC_PWRGD, PIN(F, 3),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_IMU_INT_L, PIN(J, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- bmi160_interrupt)
-GPIO_INT(LID_ACCEL_INT_L, PIN(J, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- lis2dw12_interrupt)
-GPIO(ALS_RGB_INT_ODL, PIN(F, 0), GPIO_INPUT)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(D, 1), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL,PIN(J, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(J, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(VOLUME_DOWN_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(VOLUME_UP_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-
-/* Other interrupts */
-GPIO_INT(AC_PRESENT, PIN(E, 5), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- extpower_interrupt) /* AC_OK / AC_PRESENT in rev1+ */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING,
- uart_deepsleep_interrupt) /* UART_DEBUG_TX_EC_RX */
-GPIO_INT(WP, PIN(I, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- switch_interrupt) /* EC_FLASH_WP_OD */
-GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING,
- spi_event) /* SPI slave Chip Select -- AP_SPI_EC_CS_L */
-GPIO_INT(X_EC_GPIO2, PIN(B, 2), GPIO_ODR_HIGH, x_ec_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EC_PMIC_EN_ODL, PIN(D, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_PMIC_WATCHDOG_L, PIN(H, 0), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_HIGH)
-GPIO(PG_MT6315_PROC_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(PG_MT6360_ODL, PIN(F, 1), GPIO_INPUT)
-GPIO(PG_PP5000_A_ODL, PIN(A, 6), GPIO_INPUT)
-GPIO(EN_SLP_Z, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(B, 6), GPIO_ODR_LOW)
-GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_INT_ODL */
-
-/* USB and USBC Signals */
-GPIO(DP_AUX_PATH_SEL, PIN(G, 0), GPIO_OUT_HIGH)
-GPIO(EC_DPBRDG_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_USB_A0_VBUS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS_EN, PIN(H, 3), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT)
-GPIO(BC12_DET_EN, PIN(J, 5), GPIO_OUT_LOW) /* EN_USB_C0_BC12_DET */
-GPIO(EN_EC_ID_ODL, PIN(H, 5), GPIO_ODR_LOW)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(EN_5V_USM, PIN(D, 7), GPIO_OUT_LOW)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT) /* I2C_CHG_BATT_SCL */
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT) /* I2C_CHG_BATT_SDA */
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SCL */
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SDA */
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT) /* I2C_USB_C1_SCL */
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT) /* I2C_USB_C1_SDA */
-
-/* SPI pins - Alternate function below configures SPI module on these pins */
-
-/* NC / TP */
-
-/* Keyboard pins */
-
-/* Subboards HDMI/TYPEC */
-GPIO(EC_X_GPIO1, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EC_X_GPIO3, PIN(J, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C B */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C */
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, 0x07), 1, MODULE_PWM, 0) /* PWM 0~2 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(I, 0x6F), 0, MODULE_ADC, 0) /* ADC 0,1,2,3,5,6 */
-
-/* SPI */
-ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI */
-
-/* Unimplemented Pins */
-GPIO(SET_VMC_VOLT_AT_1V8, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-GPIO(EN_PP3000_VMC_PMU, PIN(D, 2), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-GPIO(PACKET_MODE_EN, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-/* b/160218054: behavior not defined */
-/* *_ODL pin has external pullup so don't pull it down. */
-GPIO(USB_A0_FAULT_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(CHARGER_PROCHOT_ODL, PIN(C, 3), GPIO_INPUT)
-GPIO(PG_MT6315_GPU_ODL, PIN(H, 6), GPIO_INPUT)
-GPIO(EN_PP3000_SD_U, PIN(G, 1), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-/* reserved for future use */
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-/*
- * ADC pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPI7, PIN(I, 7), GPIO_OUT_LOW)
-/* NC pins, enable internal pull-up/down to avoid floating state. */
-GPIO(NC_GPM2, PIN(M, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPM3, PIN(M, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPM6, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(SPI_CLK_GPG6, PIN(G, 6), GPIO_INPUT | GPIO_PULL_UP)
-/*
- * These 4 pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPG3, PIN(G, 3), GPIO_OUT_LOW)
-GPIO(SPI_MOSI_GPG4, PIN(G, 4), GPIO_OUT_LOW)
-GPIO(SPI_MISO_GPG5, PIN(G, 5), GPIO_OUT_LOW)
-GPIO(SPI_CS_GPG7, PIN(G, 7), GPIO_OUT_LOW)
diff --git a/board/goroh/led.c b/board/goroh/led.c
deleted file mode 100644
index c06fdef0cb..0000000000
--- a/board/goroh/led.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-#include "driver/bc12/mt6360.h"
-
-const int led_charge_lvl_1 = 5;
-const int led_charge_lvl_2 = 95;
-
-struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-void led_set_color_battery(enum ec_led_colors color)
-{
- mt6360_led_set_brightness(MT6360_LED_RGB2, 50);
- mt6360_led_set_brightness(MT6360_LED_RGB3, 50);
-
- switch (color) {
- case EC_LED_COLOR_AMBER:
- mt6360_led_enable(MT6360_LED_RGB2, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 1);
- break;
- case EC_LED_COLOR_WHITE:
- mt6360_led_enable(MT6360_LED_RGB2, 1);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- default: /* LED_OFF and other unsupported colors */
- mt6360_led_enable(MT6360_LED_RGB2, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- }
-}
-
-void led_set_color_power(enum ec_led_colors color)
-{
- mt6360_led_set_brightness(MT6360_LED_RGB1, 1);
- mt6360_led_enable(MT6360_LED_RGB1, color == EC_LED_COLOR_WHITE);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] =
- MT6360_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_WHITE] =
- MT6360_LED_BRIGHTNESS_MAX;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] =
- MT6360_LED_BRIGHTNESS_MAX;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/goroh/vif_override.xml b/board/goroh/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/goroh/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/grunt/analyzestack.yaml b/board/grunt/analyzestack.yaml
deleted file mode 120000
index 9873122a08..0000000000
--- a/board/grunt/analyzestack.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/grunt/analyzestack.yaml \ No newline at end of file
diff --git a/board/grunt/battery.c b/board/grunt/battery.c
deleted file mode 100644
index 359ec9785b..0000000000
--- a/board/grunt/battery.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Grunt battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Panasonic AP15O5L Battery Information */
- [BATTERY_PANASONIC] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC;
diff --git a/board/grunt/board.c b/board/grunt/board.c
deleted file mode 100644
index 45aa4f4421..0000000000
--- a/board/grunt/board.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Grunt board-specific configuration */
-
-#include "button.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/led/lm3630a.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-
-#include "gpio_list.h"
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* I2C port map. */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", I2C_PORT_THERMAL_AP, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"kblight", I2C_PORT_KBLIGHT, 100, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 5,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
- [PWM_CH_LED1_AMBER] = {
- .channel = 0,
- .flags = (PWM_CONFIG_OPEN_DRAIN | PWM_CONFIG_ACTIVE_LOW
- | PWM_CONFIG_DSLEEP),
- .freq = 100,
- },
- [PWM_CH_LED2_BLUE] = {
- .channel = 2,
- .flags = (PWM_CONFIG_OPEN_DRAIN | PWM_CONFIG_ACTIVE_LOW
- | PWM_CONFIG_DSLEEP),
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-void board_update_sensor_config_from_sku(void)
-{
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
-}
-
-static void board_kblight_init(void)
-{
- /*
- * Enable keyboard backlight. This needs to be done here because
- * the chip doesn't have power until PP3300_S0 comes up.
- */
- gpio_set_level(GPIO_KB_BL_EN, 1);
- lm3630a_poweron();
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_kblight_init, HOOK_PRIO_DEFAULT);
diff --git a/board/grunt/board.h b/board/grunt/board.h
deleted file mode 100644
index 2585db17fd..0000000000
--- a/board/grunt/board.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Grunt board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_GRUNT_TCPC_0_ANX3429
-
-#include "baseboard.h"
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-#define CONFIG_MKBP_USE_HOST_EVENT
-
-/* Work around Grunt KSI03 HW bug and rework (b/79758966) */
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI3
-
-/* Power and battery LEDs */
-#define CONFIG_LED_COMMON
-#define CONFIG_CMD_LEDTEST
-
-#undef CONFIG_LED_PWM_NEAR_FULL_COLOR
-#undef CONFIG_LED_PWM_CHARGE_ERROR_COLOR
-#undef CONFIG_LED_PWM_SOC_ON_COLOR
-#undef CONFIG_LED_PWM_SOC_SUSPEND_COLOR
-
-#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_BLUE
-#define CONFIG_LED_PWM_CHARGE_ERROR_COLOR EC_LED_COLOR_AMBER
-#define CONFIG_LED_PWM_SOC_ON_COLOR EC_LED_COLOR_BLUE
-#define CONFIG_LED_PWM_SOC_SUSPEND_COLOR EC_LED_COLOR_BLUE
-
-#define CONFIG_LED_PWM_COUNT 1
-
-#define I2C_PORT_KBLIGHT NPCX_I2C_PORT5_0
-
-/* KB backlight driver */
-#define CONFIG_LED_DRIVER_LM3630A
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-/*
- * Slew rate on the PP1800_SENSOR load switch requires a short delay on startup.
- */
-#undef CONFIG_MOTION_SENSE_RESUME_DELAY_US
-#define CONFIG_MOTION_SENSE_RESUME_DELAY_US (10 * MSEC)
-
-#ifndef __ASSEMBLER__
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_LED1_AMBER,
- PWM_CH_LED2_BLUE,
- PWM_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_PANASONIC,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/grunt/build.mk b/board/grunt/build.mk
deleted file mode 100644
index c808e65aed..0000000000
--- a/board/grunt/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6f
-BASEBOARD:=grunt
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/grunt/ec.tasklist b/board/grunt/ec.tasklist
deleted file mode 100644
index dc898c4502..0000000000
--- a/board/grunt/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/grunt/gpio.inc b/board/grunt/gpio.inc
deleted file mode 100644
index 97f5afabfd..0000000000
--- a/board/grunt/gpio.inc
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(A, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S5_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S5_PGOOD, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(USB_C0_CABLE_DET, PIN(3, 7), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(8, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-
-GPIO(EN_PWR_A, PIN(E, 2), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EN_PP1800_SENSOR, PIN(6, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(ENABLE_BACKLIGHT_L, PIN(D, 3), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(SYS_RESET_L, PIN(0, 2), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT | GPIO_PULL_UP) /* Battery Present */
-GPIO(PCH_SYS_PWROK, PIN(D, 6), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_APU_RST, PIN(E, 4), GPIO_INPUT) /* Reset to SOC */
-GPIO(CPU_PROCHOT, PIN(3, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* PROCHOT to SOC */
-GPIO(APU_ALERT_L, PIN(A, 2), GPIO_INPUT) /* Alert to SOC */
-GPIO(3AXIS_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* 3 Axis Accel */
-GPIO(KB_BL_EN, PIN(F, 2), GPIO_OUT_LOW) /* Enable KB Backlight */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SIC */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SID */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL and
- EC_I2C_KB_BL_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_EEPROM_SDA and
- EC_I2C_KB_BL_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SDA */
-
-/*
- * The NPCX LPC driver configures and controls SCI and SMI,
- * so PCH_SCI_ODL [PIN(7, 6)] and PCH_SMI_ODL [PIN(C, 6)] are
- * not defined here as GPIOs.
- */
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT)
-
-GPIO(EN_USB_A0_5V, PIN(6, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(C, 0), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_C0_TCPC_PWR, PIN(6, 0), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(USB_C0_OC_L, PIN(7, 3), GPIO_OUT_HIGH) /* C0 Over Current */
-GPIO(USB_C1_OC_L, PIN(7, 2), GPIO_OUT_HIGH) /* C1 Over Current */
-GPIO(USB_C0_PD_RST_L, PIN(3, 2), GPIO_OUT_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(D, 5), GPIO_OUT_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON_L, PIN(4, 0), GPIO_ODR_HIGH) /* C0 BC1.2 Power */
-GPIO(USB_C1_BC12_VBUS_ON_L, PIN(B, 1), GPIO_ODR_HIGH | GPIO_PULL_UP) /* C1 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET, PIN(6, 2), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C1_BC12_CHG_DET, PIN(8, 3), GPIO_INPUT | GPIO_PULL_DOWN) /* C1 BC1.2 Detect */
-GPIO(USB_C0_DP_HPD, PIN(9, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(9, 6), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 7), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(9, 3), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(8, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(4, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x02), 0, MODULE_ADC, 0) /* ADC8 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* KB Backlight */
-ALTERNATE(PIN_MASK(C, 0x18), 0, MODULE_PWM, 0) /* LED 1 & 2 */
-
-/* Keyboard Pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x03), 0, MODULE_PMU, 0) /* GPIO00, GPIO01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 */
diff --git a/board/grunt/led.c b/board/grunt/led.c
deleted file mode 100644
index 824ec55f6c..0000000000
--- a/board/grunt/led.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-/*
- * We only have a blue and an amber LED, so setting any other colour results in
- * both LEDs being off.
- */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Amber, Blue */
- [EC_LED_COLOR_RED] = { 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 100 },
- [EC_LED_COLOR_YELLOW] = { 0, 0 },
- [EC_LED_COLOR_WHITE] = { 0, 0 },
- [EC_LED_COLOR_AMBER] = { 100, 0 },
-};
-
-/* One logical LED with amber and blue channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED1_AMBER,
- .ch1 = PWM_CH_LED2_BLUE,
- .ch2 = PWM_LED_NO_CHANNEL,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_BLUE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/grunt/vif_override.xml b/board/grunt/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/grunt/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/gumboz/analyzestack.yaml b/board/gumboz/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/gumboz/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/gumboz/battery.c b/board/gumboz/battery.c
deleted file mode 100644
index 7d1831fdbc..0000000000
--- a/board/gumboz/battery.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Gumboz battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo Coslight Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Samsung SDI Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack Cosmx Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Cosmx Battery Information */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_COS;
diff --git a/board/gumboz/board.c b/board/gumboz/board.c
deleted file mode 100644
index 4428819415..0000000000
--- a/board/gumboz/board.c
+++ /dev/null
@@ -1,651 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "button.h"
-#include "cros_board_info.h"
-#include "charge_state.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/aoz1380.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "usb_charge.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-int I2C_PORT_BATTERY = I2C_PORT_BATTERY_V1;
-
-#include "gpio_list.h"
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct lsm6dsm_data g_lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- /* We only use 2g because its resolution is only 8-bits */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/*****************************************************************************
- * Retimers
- */
-
-static void retimers_on(void)
-{
- /* usba retimer power on */
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, retimers_on, HOOK_PRIO_DEFAULT);
-
-static void retimers_off(void)
-{
- /* usba retimer power off */
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, retimers_off, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************
- * USB-C
- */
-
-/*
- * USB C0 port SBU mux use standalone PI3USB221
- * chip and it need a board specific driver.
- * Overall, it will use chained mux framework.
- */
-static int pi3usb221_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
- if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
- else
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 0);
-
- return EC_SUCCESS;
-}
-
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-const struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = pi3usb221_set_mux,
-};
-
-/*
- * Since PI3USB221 is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-const struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
-
-struct usb_mux usbc1_amd_fp5_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .flags = USB_MUX_FLAG_SET_WITHOUT_FLIP,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PS8743_I2C_ADDR1_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .next_mux = &usbc1_amd_fp5_usb_mux,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- /* Device does not talk I2C */
- .drv = &aoz1380_drv
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NX20P3483_ADDR1_FLAGS,
- .drv = &nx20p348x_drv
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_FAULT_ODL:
- aoz1380_interrupt(USBC_PORT_C0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- /*
- * Sensitive only to falling edges; GPIO is configured for both
- * because this input may be used for HDMI HPD instead.
- */
- if (!gpio_get_level(signal))
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
-
- default:
- break;
- }
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTSUSB("Disabling all charger ports");
-
- /* Disable all ports. */
- for (i = 0; i < ppc_cnt; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("Disabling C%d as sink failed.", i);
- }
-
- return EC_SUCCESS;
- } else if (!is_valid_port) {
- return EC_ERROR_INVAL;
- }
-
-
- /* Check if the port is sourcing VBUS. */
- if (ppc_is_sourcing_vbus(port)) {
- CPRINTFUSB("Skip enable C%d", port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTSUSB("New charge port: C%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < ppc_cnt; i++) {
- if (i == port)
- continue;
-
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("C%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (ppc_vbus_sink_enable(port, 1)) {
- CPRINTSUSB("C%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- switch (port) {
- case USBC_PORT_C0:
- ioex_set_level(IOEX_USB_C0_FAULT_ODL, !is_overcurrented);
- break;
-
- case USBC_PORT_C1:
- ioex_set_level(IOEX_USB_C1_FAULT_ODL, !is_overcurrented);
- break;
-
- default:
- break;
- }
-}
-
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-static void reset_nct38xx_port(int port)
-{
- enum gpio_signal reset_gpio_l;
-
- if (port == USBC_PORT_C0)
- reset_gpio_l = GPIO_USB_C0_TCPC_RST_L;
- else if (port == USBC_PORT_C1)
- reset_gpio_l = GPIO_USB_C1_TCPC_RST_L;
- else
- /* Invalid port: do nothing */
- return;
-
- gpio_set_level(reset_gpio_l, 0);
- msleep(NCT38XX_RESET_HOLD_DELAY_MS);
- gpio_set_level(reset_gpio_l, 1);
- nct38xx_reset_notify(port);
- if (NCT3807_RESET_POST_DELAY_MS != 0)
- msleep(NCT3807_RESET_POST_DELAY_MS);
-}
-
-
-void board_reset_pd_mcu(void)
-{
- /* Reset TCPC0 */
- reset_nct38xx_port(USBC_PORT_C0);
-
- /* Reset TCPC1 */
- reset_nct38xx_port(USBC_PORT_C1);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-int board_pd_set_frs_enable(int port, int enable)
-{
- int rv = EC_SUCCESS;
-
- /* Use the TCPC to enable fast switch when FRS included */
- if (port == USBC_PORT_C0) {
- rv = ioex_set_level(IOEX_USB_C0_TCPC_FASTSW_CTL_EN,
- !!enable);
- } else {
- rv = ioex_set_level(IOEX_USB_C1_TCPC_FASTSW_CTL_EN,
- !!enable);
- }
-
- return rv;
-}
-
-static void setup_fw_config(void)
-{
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_FAULT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC 1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-
- /* Enable SBU fault interrupts */
- ioex_enable_interrupt(IOEX_USB_C0_SBU_FAULT_ODL);
- ioex_enable_interrupt(IOEX_USB_C1_SBU_FAULT_DB_ODL);
-
- if (ec_config_has_lid_angle_tablet_mode()) {
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
- [IOEX_C1_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB,
-};
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {0, 5}, {1, 1}, {1, 0}, {0, 6}, {0, 7},
- {1, 4}, {1, 3}, {1, 6}, {1, 7}, {3, 1},
- {2, 0}, {1, 5}, {2, 6}, {2, 7}, {2, 1},
- {2, 4}, {2, 5}, {1, 2}, {2, 3}, {2, 2},
- {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-#define CHARGING_CURRENT_500MA 500
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int rv;
- static int thermal_sensor_temp;
- static int prev_thermal_sensor_temp;
- static int limit_charge;
- static int limit_usbc_power;
- static int limit_usbc_power_backup;
- enum tcpc_rp_value rp;
-
- rv = temp_sensor_read(TEMP_SENSOR_CHARGER, &thermal_sensor_temp);
-
- if (rv != EC_SUCCESS)
- return 0;
-
- if (thermal_sensor_temp > prev_thermal_sensor_temp) {
- if (thermal_sensor_temp > C_TO_K(63))
- limit_usbc_power = 1;
-
- else if (thermal_sensor_temp > C_TO_K(58)) {
- if (curr->state == ST_CHARGE)
- limit_charge = 1;
- }
- } else if (thermal_sensor_temp < prev_thermal_sensor_temp) {
- if (thermal_sensor_temp < C_TO_K(57)) {
- if (curr->state == ST_CHARGE)
- limit_charge = 0;
-
- } else if (thermal_sensor_temp < C_TO_K(62))
- limit_usbc_power = 0;
- }
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return 0;
-
- curr->requested_current = (limit_charge) ? CHARGING_CURRENT_500MA
- : curr->batt.desired_current;
-
- if (limit_usbc_power != limit_usbc_power_backup) {
- rp = (limit_usbc_power) ? TYPEC_RP_1A5
- : TYPEC_RP_3A0;
-
- ppc_set_vbus_source_current_limit(0, rp);
- tcpm_select_rp_value(0, rp);
- pd_update_contract(0);
- limit_usbc_power_backup = limit_usbc_power;
- }
-
- prev_thermal_sensor_temp = thermal_sensor_temp;
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-__override struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT] = {
- [TEMP_SENSOR_CHARGER] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(63),
- [EC_TEMP_THRESH_HALT] = C_TO_K(92),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(62),
- }
- },
- [TEMP_SENSOR_SOC] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(77),
- }
- },
- [TEMP_SENSOR_CPU] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(83),
- }
- },
-};
diff --git a/board/gumboz/board.h b/board/gumboz/board.h
deleted file mode 100644
index 0cf51b5166..0000000000
--- a/board/gumboz/board.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* 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.
- */
-
-/* Trembyle board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_DALBOZ
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_USBC_PPC_NX20P3483
-#define CONFIG_USB_MUX_PS8743
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PORT_ENABLE_DYNAMIC
-
-#undef CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 40000
-
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* USB-A config */
-#define GPIO_USB1_ILIM_SEL IOEX_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL IOEX_USB_A1_CHARGE_EN_DB_L
-
-/* LED */
-#undef CONFIG_LED_ONOFF_STATES
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_LSM6DSM
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-#ifndef __ASSEMBLER__
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-extern int I2C_PORT_BATTERY;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_SAMSUNG_SDI,
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_COS,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT3807 = 0,
- IOEX_C1_NCT3807,
- IOEX_PORT_COUNT
-};
-
-#define PORT_TO_HPD(port) ((port == 0) \
- ? GPIO_USB3_C0_DP2_HPD \
- : GPIO_DP1_HPD)
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * DALBOZ_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: none
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- DALBOZ_MB_USBAC = 0,
-};
-
-/**
- * GUMBOZ_DB_OPT1_USBC
- * USB-A1 Speed: 5 Gbps
- * Retimer: PS8719
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8743
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: no
- * Retimer: none
- * MST Hub: none
- */
-enum ec_cfg_usb_db_type {
- GUMBOZ_DB_OPT1_USBC = 0,
-};
-
-#include "cbi_ec_fw_config.h"
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return 0;
-}
-
-void board_reset_pd_mcu(void);
-
-/* Common definition for the USB PD interrupt handlers. */
-void tcpc_alert_event(enum gpio_signal signal);
-void bc12_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/gumboz/build.mk b/board/gumboz/build.mk
deleted file mode 100644
index 1c0cbc4f63..0000000000
--- a/board/gumboz/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/gumboz/ec.tasklist b/board/gumboz/ec.tasklist
deleted file mode 100644
index d9c1606eb2..0000000000
--- a/board/gumboz/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/gumboz/gpio.inc b/board/gumboz/gpio.inc
deleted file mode 100644
index 9beaecc17a..0000000000
--- a/board/gumboz/gpio.inc
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_BOTH | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(4, 4), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, lsm6dsm_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 7), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(7, 0), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB3_C0_DP2_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-GPIO(PWR_LED_WHITE_L, PIN(C, 3), GPIO_OUT_HIGH)
-
-/*
- * Gumboz has 1 DB options.
- * IOEX_C1_NCT3807 is the DB (USB-C1).
- */
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(IOEX_C1_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_C0_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C0_NCT3807, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(IOEX_C0_NCT3807, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(IOEX_C0_NCT3807, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(EN_USB_A0_5V, EXPIN(IOEX_C0_NCT3807, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(IOEX_C0_NCT3807, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-IOEX(USB_C0_SBU_FLIP, EXPIN(IOEX_C0_NCT3807, 1, 7), GPIO_OUT_LOW) /* C0 SBU Flip */
-
-IOEX(USB_A1_RETIMER_EN, EXPIN(IOEX_C1_NCT3807, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(IOEX_C1_NCT3807, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C1_NCT3807, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_PPC_EN_L, EXPIN(IOEX_C1_NCT3807, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(IOEX_C1_NCT3807, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB, EXPIN(IOEX_C1_NCT3807, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L,EXPIN(IOEX_C1_NCT3807, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-IOEX(C1_CHARGER_LED_WHITE_DB,EXPIN(IOEX_C1_NCT3807, 1, 0), GPIO_OUT_HIGH) /* C1 Charge LED White */
-IOEX(C1_CHARGER_LED_AMBER_DB,EXPIN(IOEX_C1_NCT3807, 1, 4), GPIO_OUT_HIGH) /* C1 Charge LED Amber */
-
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(I2C_AUDIO_USB_HUB_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_AUDIO_USB_HUB_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_BATT_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/gumboz/led.c b/board/gumboz/led.c
deleted file mode 100644
index 0640a6cd21..0000000000
--- a/board/gumboz/led.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "cros_board_info.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICKS_PER_CYCLE 10
-#define LED_ON_TICKS 5
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- LEFT_PORT = 0,
- RIGHT_PORT
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
- uint32_t board_ver = 0;
- int led_batt_on_lvl, led_batt_off_lvl;
-
- cbi_get_board_version(&board_ver);
- amber_led = (port == LEFT_PORT ? GPIO_LED_CHRG_L :
- IOEX_C1_CHARGER_LED_AMBER_DB);
- white_led = (port == LEFT_PORT ? GPIO_LED_FULL_L :
- IOEX_C1_CHARGER_LED_WHITE_DB);
-
- if ((board_ver >= 2) && (port == RIGHT_PORT)) {
- led_batt_on_lvl = 1;
- led_batt_off_lvl = 0;
- } else {
- led_batt_on_lvl = 0;
- led_batt_off_lvl = 1;
- }
-
- switch (color) {
- case LED_WHITE:
- gpio_or_ioex_set_level(white_led, led_batt_on_lvl);
- gpio_or_ioex_set_level(amber_led, led_batt_off_lvl);
- break;
- case LED_AMBER:
- gpio_or_ioex_set_level(white_led, led_batt_off_lvl);
- gpio_or_ioex_set_level(amber_led, led_batt_on_lvl);
- break;
- case LED_OFF:
- gpio_or_ioex_set_level(white_led, led_batt_off_lvl);
- gpio_or_ioex_set_level(amber_led, led_batt_off_lvl);
- break;
- default:
- break;
- }
-}
-
-void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- break;
- case EC_LED_ID_POWER_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(LED_WHITE);
- else
- led_set_color_power(LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_set_color_power((power_tick %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/gumboz/vif_override.xml b/board/gumboz/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/gumboz/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/guybrush/battery.c b/board/guybrush/battery.c
deleted file mode 100644
index ddf3adff50..0000000000
--- a/board/guybrush/battery.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-
-/*
- * Battery info for all Guybrush battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AEC 5477109 */
- [BATTERY_AEC] = {
- .fuel_gauge = {
- .manuf_name = "AEC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .sleep_mode = {
- .sleep_supported = true,
- .reg_addr = 0x00,
- .reg_data = 0x0011,
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 100, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* AP18F4M / LIS4163ACPC */
- [BATTERY_AP18F4M] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00404001",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 5500,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* POW-TECH Battery Information */
- [BATTERY_POWER_TECH] = {
- .fuel_gauge = {
- .manuf_name = "POW-TECH",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .sleep_mode = {
- .sleep_supported = true,
- .reg_addr = 0x00,
- .reg_data = 0x0011,
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 88, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP18F4M;
diff --git a/board/guybrush/board.c b/board/guybrush/board.c
deleted file mode 100644
index 75fb5a8607..0000000000
--- a/board/guybrush/board.c
+++ /dev/null
@@ -1,551 +0,0 @@
-/* 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.
- */
-
-/* Guybrush board-specific configuration */
-
-#include "adc.h"
-#include "base_fw_config.h"
-#include "board_fw_config.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_bmi323.h"
-#include "driver/accel_bma422.h"
-#include "driver/retimer/ps8811.h"
-#include "driver/retimer/ps8818.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/temp_sensor/tmp112.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "temp_sensor/tmp112.h"
-#include "thermal.h"
-#include "usb_mux.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Motion sensor mutex */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Motion sensor private data */
-static struct bmi_drv_data_t g_bmi_data;
-static struct accelgyro_saved_data_t g_bma422_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA422,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma4_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma422_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA4_I2C_ADDR_PRIMARY,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA4_ACCEL_MIN_FREQ,
- .max_frequency = BMA4_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, enough for laptop. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI323,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi3xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI3_ADDR_I2C_PRIM,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI323,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi3xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI3_ADDR_I2C_PRIM,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t bmi160_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-struct motion_sensor_t bmi160_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
-};
-
-__override enum ec_error_list
-board_a1_ps8811_retimer_init(const struct usb_mux *me)
-{
- /* Set channel A output swing */
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_A_SWING,
- PS8811_CHAN_A_SWING_MASK, 0x2 << PS8811_CHAN_A_SWING_SHIFT));
-
- /* Set channel B output swing */
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_SWING,
- PS8811_CHAN_B_SWING_MASK, 0x2 << PS8811_CHAN_B_SWING_SHIFT));
-
- /* Set channel B de-emphasis to -6dB and pre-shoot to 1.5 dB */
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_DE_PS_LSB,
- PS8811_CHAN_B_DE_PS_LSB_MASK, PS8811_CHAN_B_DE_6_PS_1_5_LSB));
-
- RETURN_ERROR(ps8811_i2c_field_update(
- me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_DE_PS_MSB,
- PS8811_CHAN_B_DE_PS_MSB_MASK, PS8811_CHAN_B_DE_6_PS_1_5_MSB));
-
- return EC_SUCCESS;
-}
-
-/*
- * PS8818 set mux board tuning.
- * Adds in board specific gain and DP lane count configuration
- * TODO(b/179036200): Adjust PS8818 tuning for guybrush reference
- */
-__override int board_c1_ps8818_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- /* USB specific config */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* Boost the USB gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Set the RX input termination */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_RX_PHY,
- PS8818_RX_INPUT_TERM_MASK,
- PS8818_RX_INPUT_TERM_112_OHM);
- if (rv)
- return rv;
- }
-
- /* DP specific config */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* Boost the DP gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_DPEQ_LEVEL,
- PS8818_DPEQ_LEVEL_UP_MASK,
- PS8818_DPEQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Enable HPD on the DB */
- gpio_set_level(GPIO_USB_C1_HPD, 1);
- } else {
- /* Disable HPD on the DB */
- gpio_set_level(GPIO_USB_C1_HPD, 0);
- }
-
- return rv;
-}
-
-/*
- * ANX7491(A1) and ANX7451(C1) are on the same i2c bus. Both default
- * to 0x29 for the USB i2c address. This moves ANX7451(C1) USB i2c
- * address to 0x2A. ANX7491(A1) will stay at the default 0x29.
- */
-uint16_t board_anx7451_get_usb_i2c_addr(const struct usb_mux *me)
-{
- ASSERT(me->usb_port == USBC_PORT_C1);
- return 0x2a;
-}
-
-/*
- * Base Gyro Sensor dynamic configuration
- */
-static int base_gyro_config;
-
-static void board_update_motion_sensor_config(void)
-{
- if (board_is_convertible()) {
- if (get_board_version() == 1) {
- motion_sensors[BASE_ACCEL] = bmi160_base_accel;
- motion_sensors[BASE_GYRO] = bmi160_base_gyro;
- base_gyro_config = BASE_GYRO_BMI160;
- ccprints("BASE GYRO is BMI160");
- } else {
- base_gyro_config = BASE_GYRO_BMI323;
- ccprints("BASE GYRO is BMI323");
- }
-
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel and Gyro interrupt */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_gyro_config) {
- case BASE_GYRO_BMI160:
- bmi160_interrupt(signal);
- break;
- case BASE_GYRO_BMI323:
- default:
- bmi3xx_interrupt(signal);
- break;
- }
-}
-
-static void board_init(void)
-{
- board_update_motion_sensor_config();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_startup(void)
-{
- if (get_board_version() > 1)
- tmp112_init();
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
- HOOK_PRIO_DEFAULT);
-
-int board_get_soc_temp_k(int idx, int *temp_k)
-{
- uint32_t board_version = get_board_version();
-
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- if (board_version == 1)
- return get_temp_3v3_30k9_47k_4050b(ADC_TEMP_SENSOR_SOC, temp_k);
-
- return tmp112_get_val_k(idx, temp_k);
-}
-
-int board_get_soc_temp_mk(int *temp_mk)
-{
- uint32_t board_version = get_board_version();
-
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- if (board_version == 1)
- return EC_ERROR_UNIMPLEMENTED;
-
- return tmp112_get_val_mk(TMP112_SOC, temp_mk);
-}
-
-int board_get_ambient_temp_mk(int *temp_mk)
-{
- uint32_t board_version = get_board_version();
-
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- if (board_version == 1)
- return EC_ERROR_UNIMPLEMENTED;
-
- return tmp112_get_val_mk(TMP112_AMB, temp_mk);
-}
-
-/* ADC Channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_MEMORY] = {
- .name = "MEMORY",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_CORE_IMON1] = {
- .name = "CORE_I",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SOC_IMON2] = {
- .name = "SOC_I",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Temp Sensors */
-static int board_get_memory_temp(int, int *);
-
-const struct tmp112_sensor_t tmp112_sensors[] = {
- { I2C_PORT_SENSOR, TMP112_I2C_ADDR_FLAGS0 },
- { I2C_PORT_SENSOR, TMP112_I2C_ADDR_FLAGS1 },
-};
-BUILD_ASSERT(ARRAY_SIZE(tmp112_sensors) == TMP112_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_soc_temp_k,
- .idx = TMP112_SOC,
- },
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_MEMORY] = {
- .name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_memory_temp,
- .idx = ADC_TEMP_SENSOR_MEMORY,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
- [TEMP_SENSOR_AMBIENT] = {
- .name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = tmp112_get_val_k,
- .idx = TMP112_AMB,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT] = {
- [TEMP_SENSOR_SOC] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- /* TODO: Setting fan off to 0 so it's allways on */
- .temp_fan_off = C_TO_K(0),
- .temp_fan_max = C_TO_K(70),
- },
- [TEMP_SENSOR_CHARGER] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
- },
- [TEMP_SENSOR_MEMORY] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
- },
- [TEMP_SENSOR_CPU] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- /*
- * CPU temp sensor fan thresholds are high because they are a
- * backup for the SOC temp sensor fan thresholds.
- */
- .temp_fan_off = C_TO_K(60),
- .temp_fan_max = C_TO_K(90),
- },
- /*
- * Note: Leave ambient entries at 0, both as it does not represent a
- * hotspot and as not all boards have this sensor
- */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-static int board_get_memory_temp(int idx, int *temp_k)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
- return get_temp_3v3_30k9_47k_4050b(idx, temp_k);
-}
diff --git a/board/guybrush/board.h b/board/guybrush/board.h
deleted file mode 100644
index 39adbc2ec7..0000000000
--- a/board/guybrush/board.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* 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.
- */
-
-/* Guybrush board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Motion sensing drivers */
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* Sensors */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI3XX
-#define CONFIG_ACCELGYRO_BMI3XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_BMA4XX
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BUTTON
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_MUX_ANX7451
-#define CONFIG_USBC_RETIMER_ANX7451
-
-/* USB Type A Features */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* LED features */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* Motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-/* Battery Types */
-enum battery_type {
- BATTERY_AEC,
- BATTERY_AP18F4M,
- BATTERY_POWER_TECH,
- BATTERY_TYPE_COUNT,
-};
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_BMI323 = 2,
-};
-
-/* ADC Channels */
-enum adc_channel {
- ADC_TEMP_SENSOR_SOC = 0,
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_MEMORY,
- ADC_CORE_IMON1,
- ADC_SOC_IMON2,
- ADC_CH_COUNT
-};
-
-/* Temp Sensors */
-enum temp_sensor_id {
- TEMP_SENSOR_SOC = 0,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_MEMORY,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/guybrush/board_fw_config.c b/board/guybrush/board_fw_config.c
deleted file mode 100644
index c919d82851..0000000000
--- a/board/guybrush/board_fw_config.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "base_fw_config.h"
-#include "board_fw_config.h"
-
-bool board_is_convertible(void)
-{
- return (get_fw_config_field(FW_CONFIG_FORM_FACTOR_OFFSET,
- FW_CONFIG_FORM_FACTOR_WIDTH)
- == FW_CONFIG_FORM_FACTOR_CONVERTIBLE);
-}
-
-bool board_has_kblight(void)
-{
- return (get_fw_config_field(FW_CONFIG_KBLIGHT_OFFSET,
- FW_CONFIG_KBLIGHT_WIDTH) == FW_CONFIG_KBLIGHT_YES);
-}
-
-enum board_usb_c1_mux board_get_usb_c1_mux(void)
-{
- int usb_db = get_fw_config_field(FW_CONFIG_USB_DB_OFFSET,
- FW_CONFIG_USB_DB_WIDTH);
- if (usb_db == FW_CONFIG_USB_DB_A1_PS8811_C1_PS8818)
- return USB_C1_MUX_PS8818;
- if (usb_db == FW_CONFIG_USB_DB_A1_ANX7491_C1_ANX7451)
- return USB_C1_MUX_ANX7451;
- return USB_C1_MUX_UNKNOWN;
-};
-
-enum board_usb_a1_retimer board_get_usb_a1_retimer(void)
-{
- int usb_db = get_fw_config_field(FW_CONFIG_USB_DB_OFFSET,
- FW_CONFIG_USB_DB_WIDTH);
- if (usb_db == FW_CONFIG_USB_DB_A1_PS8811_C1_PS8818)
- return USB_A1_RETIMER_PS8811;
- if (usb_db == FW_CONFIG_USB_DB_A1_ANX7491_C1_ANX7451)
- return USB_A1_RETIMER_ANX7491;
- return USB_A1_RETIMER_UNKNOWN;
-};
diff --git a/board/guybrush/board_fw_config.h b/board/guybrush/board_fw_config.h
deleted file mode 100644
index 1de417d77a..0000000000
--- a/board/guybrush/board_fw_config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _GUYBRUSH_BOARD_FW_CONFIG__H_
-#define _GUYBRUSH_BOARD_FW_CONFIG__H_
-
-/****************************************************************************
- * Guybrush CBI FW Configuration
- */
-
-/*
- * USB Daughter Board (2 bits)
- */
-#define FW_CONFIG_USB_DB_OFFSET 0
-#define FW_CONFIG_USB_DB_WIDTH 2
-#define FW_CONFIG_USB_DB_A1_PS8811_C1_PS8818 0
-#define FW_CONFIG_USB_DB_A1_ANX7491_C1_ANX7451 1
-
-/*
- * Form Factor (1 bits)
- */
-#define FW_CONFIG_FORM_FACTOR_OFFSET 2
-#define FW_CONFIG_FORM_FACTOR_WIDTH 1
-#define FW_CONFIG_FORM_FACTOR_CLAMSHELL 0
-#define FW_CONFIG_FORM_FACTOR_CONVERTIBLE 1
-
-/*
- * Keyboard Backlight (1 bit)
- */
-#define FW_CONFIG_KBLIGHT_OFFSET 3
-#define FW_CONFIG_KBLIGHT_WIDTH 1
-#define FW_CONFIG_KBLIGHT_NO 0
-#define FW_CONFIG_KBLIGHT_YES 1
-
-
-#endif /* _GUYBRUSH_CBI_FW_CONFIG__H_ */
diff --git a/board/guybrush/build.mk b/board/guybrush/build.mk
deleted file mode 100644
index 5c8bde1a2b..0000000000
--- a/board/guybrush/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-BASEBOARD:=guybrush
-
-board-y=board.o
-board-y+=board_fw_config.o led.o battery.o
diff --git a/board/guybrush/ec.tasklist b/board/guybrush/ec.tasklist
deleted file mode 100644
index f7cf0f7205..0000000000
--- a/board/guybrush/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/guybrush/gpio.inc b/board/guybrush/gpio.inc
deleted file mode 100644
index b7381f588d..0000000000
--- a/board/guybrush/gpio.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the board GPIOs that we care about. */
-
-#include "base_gpio.inc"
-
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, motion_interrupt) /* 6 Axis IMU */
-GPIO_INT(TABLET_MODE, PIN(C, 1), GPIO_INT_BOTH, gmr_tablet_switch_isr) /* 360 Tablet Mode */
-
-/* LED Signals */
-ALTERNATE(/*EC_PWM_LED_CHRG_L*/ PIN_MASK(C, BIT(4)), 0, MODULE_PWM, 0) /* Charging LED */
-ALTERNATE(/*EC_PWM_LED_FULL_L*/ PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* Full LED */
-
-/* Test Points */
-GPIO(EC_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PS2_CLK, PIN(6, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PS2_DAT, PIN(7, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PS2_RST, PIN(6, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_GPIOB0, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_GPIO81, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_FLPRG2, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PSL_GPO, PIN(D, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PWM7, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP) \ No newline at end of file
diff --git a/board/guybrush/led.c b/board/guybrush/led.c
deleted file mode 100644
index b17c8be488..0000000000
--- a/board/guybrush/led.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2021 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.
- *
- * Guybrush specific PWM LED settings.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-#include "pwm.h"
-
-/* Note PWM LEDs are active low */
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-#define CPRINTS(format, args...) cprints(CC_PWM, format, ## args)
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- pwm_enable(PWM_CH_LED_CHRG, LED_ON_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- pwm_enable(PWM_CH_LED_CHRG, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_ON_LVL);
- break;
- case LED_OFF:
- pwm_enable(PWM_CH_LED_CHRG, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_OFF_LVL);
- break;
- default: /* Unsupported colors */
- CPRINTS("Unsupported LED color: %d", color);
- pwm_enable(PWM_CH_LED_CHRG, LED_OFF_LVL);
- pwm_enable(PWM_CH_LED_FULL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else {
- CPRINTS("Unsupported LED set: %d", led_id);
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/guybrush/vif_override.xml b/board/guybrush/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/guybrush/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/haboki/battery.c b/board/haboki/battery.c
deleted file mode 100644
index 551ff1cbc0..0000000000
--- a/board/haboki/battery.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all haboki battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack CosMX Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack HIGHPOWER Battery Information */
- [BATTERY_DYNAPACK_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-2D-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack BYD Battery Information */
- [BATTERY_DYNAPACK_BYD] = {
- .fuel_gauge = {
- .manuf_name = "333-2E-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Samsung SDI Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo CosMX Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX B00C4473A9D0002 Battery Information */
- [BATTERY_COS_2] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* ATL GB-S20-4473A9-01H&020H Battery Information
- * Gauge IC : RAJ240045
- */
- [BATTERY_ATL] = {
- .fuel_gauge = {
- .manuf_name = "313-B7-0D-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x43,
- .reg_mask = 0x0003,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/haboki/board.c b/board/haboki/board.c
deleted file mode 100644
index f748cf90a6..0000000000
--- a/board/haboki/board.c
+++ /dev/null
@@ -1,707 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Haboki board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/sm5803.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-uint32_t board_version;
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-__override void board_process_pd_alert(int port)
-{
- /*
- * PD_INT task will process this alert, and that task is only needed on
- * C1.
- */
- if (port != 1)
- return;
-
- if (gpio_get_level(GPIO_USB_C1_INT_ODL))
- return;
-
- sm5803_handle_interrupt(port);
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- sm5803_interrupt(0);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void button_sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
- int hdmi_hpd = gpio_get_level(GPIO_VOLUP_BTN_ODL_HDMI_HPD);
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE)
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, hdmi_hpd);
- else
- button_interrupt(s);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-static void pen_detect_interrupt(enum gpio_signal s)
-{
- int pen_detect = !gpio_get_level(GPIO_PEN_DET_ODL);
-
- gpio_set_level(GPIO_EN_PP5000_PEN, pen_detect);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
- [ADC_TEMP_SENSOR_4] = {
- .name = "TEMP_SENSOR4",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH16
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- int on;
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE) {
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
- } else {
- /* Select AUX option */
- gpio_set_level(GPIO_HDMI_SEL_L, 1);
- }
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
-
- /* Store board version for use in determining charge limits */
- cbi_get_board_version(&board_version);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_PRESENT) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Make sure pen detection is triggered or not at sysjump */
- if (!gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_EN_PP5000_PEN, 1);
-
- /* Charger on the MB will be outputting PROCHOT_ODL and OD CHG_DET */
- sm5803_configure_gpio0(CHARGER_PRIMARY, GPIO0_MODE_PROCHOT, 1);
- sm5803_configure_chg_det_od(CHARGER_PRIMARY, 1);
-
- if (board_get_charger_chip_count() > 1) {
- /* Charger on the sub-board will be a push-pull GPIO */
- sm5803_configure_gpio0(CHARGER_SECONDARY, GPIO0_MODE_OUTPUT, 0);
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- sm5803_disable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_disable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
-
-static void board_suspend(void)
-{
- sm5803_enable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_enable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- sm5803_hibernate(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_hibernate(CHARGER_SECONDARY);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
-
- if (board_get_charger_chip_count() > 1) {
- if (sm5803_set_gpio0_level(1, !!enable))
- CPRINTUSB("Failed to %sable sub rails!", enable ?
- "en" : "dis");
- }
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CHARGER_NUM - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CHARGER_NUM;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- /*
- * TCPC 0 is embedded in the EC and processes interrupts in the chip
- * code (it83xx/intc.c)
- */
-
- uint16_t status = 0;
- int regval;
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /* Limit C1 on board version 0 to 2.0 A */
- if ((board_version == 0) && (port == 1))
- icl = MIN(icl, 2000);
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 && port < board_get_usb_pd_port_count());
-
- if (!is_valid_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTUSB("Disabling all charge ports");
-
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
-
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
-
- return EC_SUCCESS;
- }
-
- CPRINTUSB("New chg p%d", port);
-
- /*
- * Ensure other port is turned off, then enable new charge port
- */
- if (port == 0) {
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 1);
-
- } else {
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 1);
- }
-
- return EC_SUCCESS;
-}
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- int current;
-
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- current = (rp == TYPEC_RP_3A0) ? 3000 : 1500;
-
- charger_set_otg_current_voltage(port, current, 5000);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "5V regular",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 3;
- *kp_div = 20;
-
- *ki = 3;
- *ki_div = 125;
-
- *kd = 4;
- *kd_div = 40;
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {GPIO_KSO_H, 4}, {GPIO_KSO_H, 0}, {GPIO_KSO_H, 1},
- {GPIO_KSO_H, 3}, {GPIO_KSO_H, 2}, {GPIO_KSO_L, 5}, {GPIO_KSO_L, 6},
- {GPIO_KSO_L, 3}, {GPIO_KSO_L, 2}, {GPIO_KSI, 0}, {GPIO_KSO_L, 1},
- {GPIO_KSO_L, 4}, {GPIO_KSI, 3}, {GPIO_KSI, 2}, {GPIO_KSO_L, 0},
- {GPIO_KSI, 5}, {GPIO_KSI, 4}, {GPIO_KSO_L, 7}, {GPIO_KSI, 6},
- {GPIO_KSI, 7}, {GPIO_KSI, 1}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
diff --git a/board/haboki/board.h b/board/haboki/board.h
deleted file mode 100644
index 8e9d78bc02..0000000000
--- a/board/haboki/board.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Haboki board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_KEEBY_EC_IT8320
-#include "baseboard.h"
-
-#undef GPIO_VOLUME_UP_L
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL_HDMI_HPD
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_5V_CHARGER_CTRL
-#define CONFIG_CHARGER_OTG
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_OCPC
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 21 /* R_DS(on) 10.7mOhm + 10mOhm sns rstr */
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_PWM_KBLIGHT
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0: ITE EC TCPC */
-#define CONFIG_USB_PD_TCPM_PS8705 /* C1: PS8705 TCPC*/
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_SUB_ANALOG, /* ADC13 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_TEMP_SENSOR_4, /* ADC16 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_HIGHPOWER,
- BATTERY_DYNAPACK_BYD,
- BATTERY_SAMSUNG_SDI,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COS,
- BATTERY_COS_2,
- BATTERY_ATL,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/haboki/build.mk b/board/haboki/build.mk
deleted file mode 100644
index aa0e3b766e..0000000000
--- a/board/haboki/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=keeby
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/haboki/cbi_ssfc.c b/board/haboki/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/haboki/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/haboki/cbi_ssfc.h b/board/haboki/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/haboki/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/haboki/ec.tasklist b/board/haboki/ec.tasklist
deleted file mode 100644
index 5c9a2d1a01..0000000000
--- a/board/haboki/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/haboki/gpio.inc b/board/haboki/gpio.inc
deleted file mode 100644
index c1a03bfd56..0000000000
--- a/board/haboki/gpio.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C1_INT_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL_HDMI_HPD, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_sub_hdmi_hpd_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(PEN_DET_ODL, PIN(J, 1), GPIO_INT_BOTH | GPIO_PULL_UP, pen_detect_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A_5V, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_HIGH)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-GPIO(EC_SUB_IO_1_2, PIN(F, 0), GPIO_INPUT)
-GPIO(EC_SUB_IO_2_1, PIN(F, 1), GPIO_INPUT)
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(EN_PP5000_PEN, PIN(B, 5), GPIO_OUT_LOW)
-GPIO(EC_CBI_WP, PIN(H, 5), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG0_NC, PIN(G, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH1_NC, PIN(H, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* LED */
-GPIO(BAT_LED_AMBER_L, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(BAT_LED_WHITE_L, PIN(A, 2), GPIO_OUT_HIGH)
-GPIO(PWR_LED_WHITE_L, PIN(A, 3), GPIO_OUT_HIGH)
-
-/* Alternate functions GPIO definitions */
-/* Keyboard */
-ALTERNATE(PIN_MASK(KSI, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSI0-7 */
-ALTERNATE(PIN_MASK(KSO_H, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO8-15 */
-ALTERNATE(PIN_MASK(KSO_L, 0xFB), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO0-1, 3-7 */
-GPIO(EC_KSO_02_INV, PIN(KSO_L, 2), GPIO_OUT_HIGH) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC13: EC_SUB_ANALOG, ADC15: TEMP_SENSOR_3, ADC16: TEMP_SENSOR_4 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0)), 0, MODULE_PWM, 0) /* KB_BL_PWM */
diff --git a/board/haboki/led.c b/board/haboki/led.c
deleted file mode 100644
index 18b875b85f..0000000000
--- a/board/haboki/led.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Haboki specific LED settings. */
-
-#include "cbi_fw_config.h"
-#include "charge_state.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "led_common.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-static int led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- case EC_LED_ID_POWER_LED:
- rv = led_set_color_power(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color(led_id, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LED for Drawlet/Drawman, Drawlet/Drawman
- * don't have power LED, blinking battery white LED to indicate
- * system suspend without charging.
- */
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
- led_set_color_battery(power_ticks++ & 0x2 ?
- LED_WHITE : LED_OFF);
- return;
- }
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_WHITE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE:
- /*
- * Blink white light (1 sec on, 1 sec off)
- * when battery capacity is less than 10%
- */
- if (charge_get_percent() < 10)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks % 0x2) ? LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_AMBER : LED_OFF);
- else
- led_set_color_battery(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_set_color_power(
- (power_tick & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/haboki/usb_pd_policy.c b/board/haboki/usb_pd_policy.c
deleted file mode 100644
index 3ff7152541..0000000000
--- a/board/haboki/usb_pd_policy.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/sm5803.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- if (port < 0 || port >= board_get_usb_pd_port_count())
- return;
-
- prev_en = charger_is_sourcing_otg_power(port);
-
- /* Disable Vbus */
- charger_enable_otg_power(port, 0);
-
- /* Discharge Vbus if previously enabled */
- if (prev_en)
- sm5803_set_vbus_disch(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- enum ec_error_list rv;
-
- /* Disable sinking */
- rv = sm5803_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- /* Disable Vbus discharge */
- sm5803_set_vbus_disch(port, 0);
-
- /* Provide Vbus */
- charger_enable_otg_power(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-__override bool pd_check_vbus_level(int port, enum vbus_level level)
-{
- int vbus_voltage;
-
- /* If we're unable to speak to the charger, best to guess false */
- if (charger_get_vbus_voltage(port, &vbus_voltage))
- return false;
-
- if (level == VBUS_SAFE0V)
- return vbus_voltage < PD_V_SAFE0V_MAX;
- else if (level == VBUS_PRESENT)
- return vbus_voltage > PD_V_SAFE5V_MIN;
- else
- return vbus_voltage < PD_V_SINK_DISCONNECT_MAX;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return sm5803_is_vbus_present(port);
-}
diff --git a/board/haboki/vif_override.xml b/board/haboki/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/haboki/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/hadoken/board.c b/board/hadoken/board.c
deleted file mode 100644
index d9c8ed322f..0000000000
--- a/board/hadoken/board.c
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2014 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.
- */
-#include "gpio.h"
-#include "registers.h"
-#include "util.h"
-
-
-/* To define the gpio_list[] instance. */
-#include "gpio_list.h"
-
diff --git a/board/hadoken/board.h b/board/hadoken/board.h
deleted file mode 100644
index ef4b45640d..0000000000
--- a/board/hadoken/board.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* Hadoken board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#ifndef __ASSEMBLER__
-
-#undef CONFIG_FLASH_CROS /* TODO: implement me */
-#undef CONFIG_FLASH_PHYSICAL /* TODO: implement me */
-#undef CONFIG_FMAP /* TODO: implement me */
-#undef CONFIG_WATCHDOG
-#undef CONFIG_LID_SWITCH
-
-/*
- * nRF51 board specific configuration.
- */
-#define NRF51_UART_TX_PIN 24
-#define NRF51_UART_RX_PIN 28
-
-#define BATTERY_VOLTAGE_MAX 4425 /* mV */
-#define BATTERY_VOLTAGE_NORMAL 3800 /* mV */
-#define BATTERY_VOLTAGE_MIN 3000 /* mV */
-
-#define CONFIG_BLUETOOTH_LE
-#define CONFIG_BLUETOOTH_LE_STACK
-#define CONFIG_BLUETOOTH_LE_RADIO_TEST
-#define CONFIG_BLUETOOTH_LL_DEBUG
-#define CONFIG_BLUETOOTH_HCI_DEBUG
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
-
diff --git a/board/hadoken/build.mk b/board/hadoken/build.mk
deleted file mode 100644
index b2fee56f23..0000000000
--- a/board/hadoken/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-
-# the IC is Nordic nRF51822
-CHIP:=nrf51
-CHIP_FAMILY:=nrf51x22
-CHIP_VARIANT:=nrf51822
-
-# Hadoken does not support scratchpad
-test-list-y=
-
-board-y=board.o
diff --git a/board/hadoken/ec.tasklist b/board/hadoken/ec.tasklist
deleted file mode 100644
index 0bb461ecb8..0000000000
--- a/board/hadoken/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(BLE_LL, bluetooth_ll_task, NULL, TASK_STACK_SIZE)
-
diff --git a/board/hadoken/gpio.inc b/board/hadoken/gpio.inc
deleted file mode 100644
index ac4127992c..0000000000
--- a/board/hadoken/gpio.inc
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH)
-#define GPIO_KB_OUTPUT GPIO_ODR_HIGH
-
-/* Keyboard inputs */
-/*
- * TODO(yjlou): call keyboard_raw_gpio_interrupt() in chip/nrf51/keyboard_raw.c
- */
-GPIO(KB_IN00, PIN(0, 6), GPIO_KB_INPUT)
-GPIO(KB_IN01, PIN(0, 23), GPIO_KB_INPUT)
-GPIO(KB_IN02, PIN(0, 1), GPIO_KB_INPUT)
-GPIO(KB_IN03, PIN(0, 4), GPIO_KB_INPUT)
-GPIO(KB_IN04, PIN(0, 0), GPIO_KB_INPUT)
-GPIO(KB_IN05, PIN(0, 29), GPIO_KB_INPUT)
-GPIO(KB_IN06, PIN(0, 22), GPIO_KB_INPUT)
-GPIO(KB_IN07, PIN(0, 25), GPIO_KB_INPUT)
-
-/* Other inputs */
-GPIO(LID_PRESENT_L, PIN(0, 30), GPIO_INPUT) /* Hall sensor */
-
-/* Useful for test software */
-GPIO(IND_CHRG_DISABLE, PIN(0, 20), GPIO_INPUT)
-
-/* Outputs */
-GPIO(KB_OUT00, PIN(0, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(0, 10), GPIO_KB_OUTPUT)
-GPIO(KB_OUT02, PIN(0, 7), GPIO_KB_OUTPUT)
-GPIO(KB_OUT03, PIN(0, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT04, PIN(0, 3), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(0, 9), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(0, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(0, 27), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(0, 18), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(0, 16), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(0, 12), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(0, 15), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(0, 11), GPIO_KB_OUTPUT)
-
-/* SPI */
-GPIO(MCU_SPI_MOSI, PIN(0, 13), GPIO_OUTPUT)
-GPIO(MCU_SPI_MISO, PIN(0, 14), GPIO_INPUT)
-GPIO(MCU_SPI_SCLK, PIN(0, 17), GPIO_OUTPUT)
-GPIO(MCU_SPI_CS_L, PIN(0, 19), GPIO_OUT_HIGH)
-
-/* VBATT_SENSE */
-GPIO(VBATT_SENSE, PIN(0, 26), GPIO_ANALOG)
-GPIO(VBATT_SENSE_EN, PIN(0, 21), GPIO_OUT_LOW)
-
-/* Unimplemented */
-UNIMPLEMENTED(ENTERING_RW)
diff --git a/board/halvor/battery.c b/board/halvor/battery.c
deleted file mode 100644
index 828220fd49..0000000000
--- a/board/halvor/battery.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AEC AEC335181 Battery Information */
- /*
- * Battery info provided by ODM on b/162908664, comment #4
- */
- [BATTERY_AEC] = {
- .fuel_gauge = {
- .manuf_name = "AEC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AEC;
diff --git a/board/halvor/board.c b/board/halvor/board.c
deleted file mode 100644
index 53828b5318..0000000000
--- a/board/halvor/board.c
+++ /dev/null
@@ -1,528 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "accelgyro.h"
-#include "assert.h"
-#include "button.h"
-#include "common.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_pd_tbt.h"
-#include "usbc_ppc.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "usb_mux.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xff,
- 0xa0, 0xff, 0xfe, 0x41, 0xfa, 0xc0, 0x02,
- 0x08, /* full set */
- },
-};
-
-/******************************************************************************/
-static const struct ec_response_keybd_config halvor_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_BRIGHTNESS_DOWN, /* T5 */
- TK_BRIGHTNESS_UP, /* T6 */
- TK_PLAY_PAUSE, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &halvor_kb;
-}
-
-/*
- * FW_CONFIG defaults for Halvor if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- /* Set all FW_CONFIG fields default to 0 */
- .raw_value = 0,
-};
-
-static void board_init(void)
-{
- /* Illuminate motherboard and daughter board LEDs equally to start. */
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- /* Routing length exceeds 205mm prior to connection to re-timer */
- if (port == USBC_PORT_C1)
- return TBT_SS_U32_GEN1_GEN2;
-
- /*
- * Thunderbolt-compatible mode not supported
- *
- * TODO (b/153995632): All the USB-C ports need to support same speed.
- * Need to fix once USB-C feature set is known for Halvor.
- */
- return TBT_SS_RES_0;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- /*
- * On the volteer reference board 1 only port 1 supports TBT & USB4
- *
- * TODO (b/153995632): All the USB-C ports need to support same
- * features. Need to fix once USB-C feature set is known for Halvor.
- */
- return port == USBC_PORT_C1;
-}
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C_0_SCL,
- .sda = GPIO_EC_I2C_0_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_1_SCL,
- .sda = GPIO_EC_I2C_1_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_2_SCL,
- .sda = GPIO_EC_I2C_2_SDA,
- },
- {
- .name = "usb_bb_retimer",
- .port = I2C_PORT_USB_BB_RETIMER,
- .kbps = 100,
- .scl = GPIO_EC_I2C_3_SCL,
- .sda = GPIO_EC_I2C_3_SDA,
- },
- {
- .name = "usb_c2",
- .port = I2C_PORT_USB_C2,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_4_SCL,
- .sda = GPIO_EC_I2C_4_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C_5_SCL,
- .sda = GPIO_EC_I2C_5_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_7_SCL,
- .sda = GPIO_EC_I2C_7_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1_BLUE] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED2_GREEN] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED3_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /* Run at a higher frequency than the color PWM signals to avoid
- * timing-based color shifts.
- */
- .freq = 4800,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-void halvor_tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = USBC_PORT_C0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = USBC_PORT_C1;
- break;
- case GPIO_USB_C2_TCPC_INT_ODL:
- port = USBC_PORT_C2;
- break;
- default:
- return;
- }
-
- ASSERT(port != -1);
- schedule_deferred_pd_interrupt(port);
-}
-
-void halvor_ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- break;
- case GPIO_USB_C2_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C2);
- break;
- default:
- break;
- }
-}
-
-void halvor_bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C2_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P2, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-void board_reset_pd_mcu(void)
-{
- /* TODO (b/153705222): Need to implement three USB-C function */
-}
-
-__override void board_cbi_init(void)
-{
- /* TODO (b/153705222): Check FW_CONFIG for USB DB options */
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C2,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C2] = {
- .i2c_port = I2C_PORT_USB_C2,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C2] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C2,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usbc2_tcss_usb_mux = {
- .usb_port = USBC_PORT_C2,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .next_mux = &usbc0_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
- [USBC_PORT_C2] = {
- .usb_port = USBC_PORT_C2,
- .next_mux = &usbc2_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C2_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- .usb_ls_en_gpio = GPIO_USB_C0_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL,
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
- [USBC_PORT_C2] = {
- .usb_ls_en_gpio = GPIO_USB_C2_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C2_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_usb_chip_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C2_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_usb_chip_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
- if (!gpio_get_level(GPIO_USB_C2_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_2;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C1)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C2_PPC_INT_ODL) == 0;
-}
diff --git a/board/halvor/board.h b/board/halvor/board.h
deleted file mode 100644
index 818b4b79e5..0000000000
--- a/board/halvor/board.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* Keyboard features */
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 3
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 65000
-#define PD_MAX_CURRENT_MA 3250
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x40
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x41
-#define USBC_PORT_C2_BB_RETIMER_I2C_ADDR 0x42
-
-/* USB Type A Features */
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0 C1 C2 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 5
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_USB_C0_BC12_INT_ODL GPIO_USB_C0_MIX_INT_ODL
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_USB_C2_BC12_INT_ODL GPIO_USB_C2_MIX_INT_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-#undef CONFIG_FANS
-#undef CONFIG_VOLUME_BUTTONS
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_BB_RETIMER NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_C2 NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-#define I2C_PORT_USB_1_MIX I2C_PORT_USB_BB_RETIMER
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_AEC,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1_BLUE = 0,
- PWM_CH_LED2_GREEN,
- PWM_CH_LED3_RED,
- PWM_CH_LED4_SIDESEL,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_C2,
- USBC_PORT_COUNT
-};
-
-/* Definition for Halvor USB PD interrupt handlers. */
-void halvor_tcpc_alert_event(enum gpio_signal signal);
-void halvor_ppc_interrupt(enum gpio_signal signal);
-void halvor_bc12_interrupt(enum gpio_signal signal);
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/halvor/build.mk b/board/halvor/build.mk
deleted file mode 100644
index b78172d3cf..0000000000
--- a/board/halvor/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/halvor/ec.tasklist b/board/halvor/ec.tasklist
deleted file mode 100644
index 936a4276e6..0000000000
--- a/board/halvor/ec.tasklist
+++ /dev/null
@@ -1,29 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P2, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C2, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C2, pd_interrupt_handler_task, 2, TASK_STACK_SIZE)
diff --git a/board/halvor/gpio.inc b/board/halvor/gpio.inc
deleted file mode 100644
index fdf9402f27..0000000000
--- a/board/halvor/gpio.inc
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, halvor_tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, halvor_tcpc_alert_event)
-GPIO_INT(USB_C2_TCPC_INT_ODL, PIN(A, 0), GPIO_INT_BOTH, halvor_tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, halvor_ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, halvor_ppc_interrupt)
-GPIO_INT(USB_C2_PPC_INT_ODL, PIN(A, 4), GPIO_INT_BOTH, halvor_ppc_interrupt)
-
-GPIO_INT(USB_C0_MIX_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, halvor_bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, halvor_bc12_interrupt)
-GPIO_INT(USB_C2_MIX_INT_ODL, PIN(6, 1), GPIO_INT_BOTH, halvor_bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-
-/* Unused signals */
-GPIO(EN_PP1050_STG, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EN_PP1050_ST_S0, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_USB_AG, PIN(A, 7), GPIO_OUT_HIGH)
-
-/* The EC does not buffer this signal on Halvor. */
-UNIMPLEMENTED(PCH_DSW_PWROK)
-UNIMPLEMENTED(EN_PP5000_A)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(USB_C0_RT_RST_ODL, PIN(6, 6), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 6), GPIO_ODR_LOW)
-GPIO(USB_C2_RT_RST_ODL, PIN(9, 6), GPIO_ODR_LOW)
-
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-GPIO(USB_C2_OC_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-
-
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-UNIMPLEMENTED(USB_C2_LS_EN)
-UNIMPLEMENTED(USB_C0_BC12_INT_ODL)
-UNIMPLEMENTED(USB_C1_BC12_INT_ODL)
-
-/* Other input pins */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INPUT)
-GPIO(CHARGER_INT_L, PIN(7, 3), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_PPEXT_EN1, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EC_I2CBUFFER_EN, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(UART2_EC_RX, PIN(7, 5), GPIO_OUT_LOW)
-
-/* LED Signals */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_LOW)
-
-/* Misc Signals */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_2_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_2_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_3_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_3_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_4_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_4_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_5_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_5_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_7_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_7_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Physical HPD pins are not needed on EC as these are configured by PMC */
-GPIO(USB_C0_DP_HPD, PIN(C, 6), GPIO_INPUT)
-GPIO(USB_C1_DP_HPD, PIN(7, 0), GPIO_INPUT)
-GPIO(USB_C2_DP_HPD, PIN(B, 7), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x0C), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14-15 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/halvor/led.c b/board/halvor/led.c
deleted file mode 100644
index 1e25e3e666..0000000000
--- a/board/halvor/led.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Halvor
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 1
-#define LED_OFF_LVL 0
-
-__override const int led_charge_lvl_1 = 10;
-
-__override const int led_charge_lvl_2 = 100;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC},
- {LED_OFF, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- gpio_set_level(GPIO_LED_2_L,
- (color == EC_LED_COLOR_AMBER) ? LED_ON_LVL : LED_OFF_LVL);
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- gpio_set_level(GPIO_LED_1_L,
- (color == EC_LED_COLOR_WHITE) ? LED_ON_LVL : LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED)
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- else if (led_id == EC_LED_ID_POWER_LED)
- brightness_range[EC_LED_COLOR_WHITE] = 1;
-
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/halvor/sensors.c b/board/halvor/sensors.c
deleted file mode 100644
index b2795ee904..0000000000
--- a/board/halvor/sensors.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "task.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/146166425 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Rotation matrix for the lid accelerometer */
-/* TODO: b/146144170 - the accelerometer is on the motherboard for proto1
- * for testing. Once the sensor moves to the lid, the rotation matrix needs
- * to be updated for correct behavior.
- */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Note - BMA253 interrupt unused by EC */
-
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/halvor/vif_override.xml b/board/halvor/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/halvor/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/hammer/analyzestack.yaml b/board/hammer/analyzestack.yaml
deleted file mode 100644
index 1294546b17..0000000000
--- a/board/hammer/analyzestack.yaml
+++ /dev/null
@@ -1,96 +0,0 @@
-# Size of extra stack frame needed by exception context switch.
-exception_frame_size: 64
-# Add some missing calls.
-add:
- # usb_ep_event: grep ep_._evt -A 1 build/hammer/RW/ec.RW.smap
- usb_reset[chip/stm32/usb.c:370]:
- - hid_touchpad_event
- - hid_keyboard_event
- - usb_update_ep_event
- - i2c_usb__ep_event
- usb_interrupt_handle_wake[chip/stm32/usb.c:608]:
- - hid_touchpad_event
- - hid_keyboard_event
- - usb_update_ep_event
- - i2c_usb__ep_event
- # usb_ep_tx/rx: grep ep_._[rt]x -B 1 -A 1 build/hammer/RW/ec.RW.smap
- usb_interrupt[chip/stm32/usb.c:640]:
- - ep0_rx
- - hid_keyboard_rx
- - usb_update_ep_rx
- - i2c_usb__ep_rx
- - ep0_tx
- - hid_touchpad_tx
- - hid_keyboard_tx
- - usb_update_ep_tx
- - i2c_usb__ep_tx
- # usb_interface_request
- ep0_tx[chip/stm32/usb.c:337]:
- - hid_touchpad_iface_request
- - hid_keyboard_iface_request
- ep0_rx[chip/stm32/usb.c:193]:
- - hid_touchpad_iface_request
- - hid_keyboard_iface_request
- # Queue functions
- queue_advance_tail[common/queue.c:116]:
- - queue_add_direct
- queue_add_memcpy[common/queue.c:152]:
- - memcpy
- queue_add_memcpy[common/queue.c:157]:
- - memcpy
- queue_read_safe.lto_priv.98[common/queue.c:174]:
- - memcpy
- queue_read_safe.lto_priv.98[common/queue.c:179]:
- - memcpy
- queue_advance_head[common/queue.c:105]:
- - queue_remove_direct
- queue_add_direct[common/queue_policies.c:18]:
- - usb_i2c_written
- - usb_written
- - update_out_handler
- queue_remove_direct[common/queue_policies.c:27]:
- - usb_read
- vfnprintf:
- # This covers all the addchar in vfnprintf, but stackanalyzer does not
- # realize that...
- - __tx_char
-# gpio_interrupt[chip/stm32/gpio.c:146]:
-# TODO: All GPIO interrupt handlers should follow here
- handle_command[common/console.c:248]:
- - { name: __cmds, stride: 16, offset: 4 }
- hook_task[common/hooks.c:197]:
- - { name: __deferred_funcs, stride: 4, offset: 0 }
- - { name: __hooks_second, stride: 8, offset: 0 }
- - { name: __hooks_tick, stride: 8, offset: 0 }
- # Note: This assumes worse case, where all hook functions can be called from
- # any hook_notify call
- hook_notify[common/hooks.c:127]:
- - { name: __hooks_pre_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_chipset_pre_init, stride: 8, offset: 0 }
- - { name: __hooks_chipset_resume, stride: 8, offset: 0 }
- - { name: __hooks_chipset_startup, stride: 8, offset: 0 }
- - { name: __hooks_chipset_suspend, stride: 8, offset: 0 }
- - { name: __hooks_sysjump, stride: 8, offset: 0 }
- - { name: __hooks_chipset_shutdown, stride: 8, offset: 0 }
- - { name: __hooks_ac_change, stride: 8, offset: 0 }
- - { name: __hooks_battery_soc_change, stride: 8, offset: 0 }
- - { name: __hooks_chipset_reset, stride: 8, offset: 0 }
- - { name: __hooks_lid_change, stride: 8, offset: 0 }
- - { name: __hooks_pwrbtn_change, stride: 8, offset: 0 }
- - { name: __hooks_tablet_mode_change, stride: 8, offset: 0 }
- - { name: __hooks_usb_change, stride: 8, offset: 0 }
- jump_to_image.lto_priv.135[common/system.c:568]:
- - None
- irq_4_handler[core/cortex-m0/init.S:165]:
- - exception_panic
-remove:
- - panic_assert_fail
- - [queue_add_direct, update_out_handler, [queue_add_unit, queue_add_memcpy], queue_add_direct, update_out_handler]
- # set_touchpad_report/keyboard_state_changed add elements to a queue, but
- # _not_ the queue that would call update_out handler
- - [ touchpad_task, queue_add_unit, queue_add_direct, update_out_handler]
- - [ keyboard_scan_task, queue_add_unit, queue_add_direct, update_out_handler]
- # keyboard_raw_drive_column can't recurse more than once
- - [keyboard_raw_drive_column, keyboard_raw_drive_column, keyboard_raw_drive_column]
- - [system_common_shutdown, system_run_image_copy, jump_to_image.lto_priv.135, hook_notify, system_common_shutdown]
diff --git a/board/hammer/battery.c b/board/hammer/battery.c
deleted file mode 100644
index 4025a08b14..0000000000
--- a/board/hammer/battery.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "util.h"
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define SB_SHIP_MODE_REG SB_MANUFACTURER_ACCESS
-#define SB_SHUTDOWN_DATA 0x0010
-
-static const struct battery_info info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- /* Pre-charge values. */
- .precharge_current = 256, /* mA */
-
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
-};
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-}
-
-/* TODO(b:66575472): Do we need to define functions like battery_is_present? */
diff --git a/board/hammer/board.c b/board/hammer/board.c
deleted file mode 100644
index b68498acfb..0000000000
--- a/board/hammer/board.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/* Copyright 2016 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.
- */
-/* Hammer board configuration */
-
-#include "charger.h"
-#include "clock.h"
-#include "common.h"
-#include "driver/charger/isl923x.h"
-#include "driver/led/lm3630a.h"
-#include "ec_version.h"
-#include "ec_ec_comm_server.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "hwtimer.h"
-#include "i2c.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "printf.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "queue.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "rollback.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "touchpad.h"
-#include "timer.h"
-#include "update_fw.h"
-#include "usart-stm32f0.h"
-#include "usart_tx_dma.h"
-#include "usart_rx_dma.h"
-#include "usb_api.h"
-#include "usb_descriptor.h"
-#include "usb_i2c.h"
-#include "usb_spi.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-#ifdef SECTION_IS_RW
-#define CROS_EC_SECTION "RW"
-#else
-#define CROS_EC_SECTION "RO"
-#endif
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Hammer"),
- [USB_STR_SERIALNO] = 0,
- [USB_STR_VERSION] =
- USB_STRING_DESC(CROS_EC_SECTION ":" CROS_EC_VERSION32),
- [USB_STR_I2C_NAME] = USB_STRING_DESC("I2C"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-#ifdef CONFIG_USB_ISOCHRONOUS
- [USB_STR_HEATMAP_NAME] = USB_STRING_DESC("Heatmap"),
-#endif
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/******************************************************************************
- * Support I2C bridging over USB.
- */
-
-#ifdef SECTION_IS_RW
-#ifdef HAS_SPI_TOUCHPAD
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- [SPI_ST_TP_DEVICE_ID] = { CONFIG_SPI_TOUCHPAD_PORT, 2, GPIO_SPI1_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-USB_SPI_CONFIG(usb_spi, USB_IFACE_I2C_SPI, USB_EP_I2C_SPI, 0);
-/* SPI interface is always enabled, no need to do anything. */
-void usb_spi_board_enable(struct usb_spi_config const *config) {}
-void usb_spi_board_disable(struct usb_spi_config const *config) {}
-#endif /* !HAS_SPI_TOUCHPAD */
-
-#ifdef CONFIG_I2C
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 400,
- GPIO_MASTER_I2C_SCL, GPIO_MASTER_I2C_SDA},
-#ifdef BOARD_WAND
- {"charger", I2C_PORT_CHARGER, 100,
- GPIO_CHARGER_I2C_SCL, GPIO_CHARGER_I2C_SDA},
-#endif
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-#endif
-
-#ifdef CONFIG_CHARGER_ISL9238
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-#endif
-
-#ifdef HAS_BACKLIGHT
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- {STM32_TIM(TIM_KBLIGHT), STM32_TIM_CH(1), 0, KBLIGHT_PWM_FREQ},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-#endif /* HAS_BACKLIGHT */
-
-int usb_i2c_board_is_enabled(void)
-{
- /* Disable I2C passthrough when the system is locked */
- return !system_is_locked();
-}
-
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 50,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x3c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-#endif
-
-#if defined(BOARD_WAND) && defined(SECTION_IS_RW)
-struct consumer const ec_ec_usart_consumer;
-static struct usart_config const ec_ec_usart;
-
-struct queue const ec_ec_comm_server_input = QUEUE_DIRECT(64, uint8_t,
- ec_ec_usart.producer, ec_ec_usart_consumer);
-struct queue const ec_ec_comm_server_output = QUEUE_DIRECT(64, uint8_t,
- null_producer, ec_ec_usart.consumer);
-
-struct consumer const ec_ec_usart_consumer = {
- .queue = &ec_ec_comm_server_input,
- .ops = &((struct consumer_ops const) {
- .written = ec_ec_comm_server_written,
- }),
-};
-
-static struct usart_config const ec_ec_usart =
- USART_CONFIG(EC_EC_UART,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 115200,
- USART_CONFIG_FLAG_HDSEL,
- ec_ec_comm_server_input,
- ec_ec_comm_server_output);
-#endif /* BOARD_WAND && SECTION_IS_RW */
-
-/******************************************************************************
- * Initialize board.
- */
-static int has_keyboard_backlight;
-
-#ifdef SECTION_IS_RW
-static void board_init(void)
-{
-#ifdef HAS_BACKLIGHT
- /* Detect keyboard backlight: pull-down means it is present. */
- has_keyboard_backlight = !gpio_get_level(GPIO_KEYBOARD_BACKLIGHT);
-
- CPRINTS("Backlight%s present", has_keyboard_backlight ? "" : " not");
-#endif /* HAS_BACKLIGHT */
-
-#ifdef BOARD_WAND
- /* USB to serial queues */
- queue_init(&ec_ec_comm_server_input);
- queue_init(&ec_ec_comm_server_output);
-
- /* UART init */
- usart_init(&ec_ec_usart);
-#endif /* BOARD_WAND */
-
-#ifdef CONFIG_LED_DRIVER_LM3630A
- lm3630a_poweron();
-#endif
-
-#ifdef HAS_SPI_TOUCHPAD
- spi_enable(&spi_devices[SPI_ST_TP_DEVICE_ID], 0);
-
- /* Disable SPI passthrough when the system is locked */
- usb_spi_enable(&usb_spi, system_is_locked());
-
- /* Set all four SPI pins to high speed */
- /* pins B3/5, A15 */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x00000cc0;
- STM32_GPIO_OSPEEDR(GPIO_A) |= 0xc0000000;
-
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= STM32_RCC_PB2_SPI1;
- STM32_RCC_APB2RSTR &= ~STM32_RCC_PB2_SPI1;
- /* Enable clocks to SPI1 module */
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
-
- clock_wait_bus_cycles(BUS_APB, 1);
- /* Enable SPI for touchpad */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
- spi_enable(&spi_devices[SPI_ST_TP_DEVICE_ID], 1);
-#endif /* HAS_SPI_TOUCHPAD */
-}
-/* This needs to happen before PWM is initialized. */
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_INIT_PWM - 1);
-#endif /* SECTION_IS_RW */
-
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= BIT(0);
-
- /* Remap USART DMA to match the USART driver */
- /*
- * the DMA mapping is :
- * Chan 4 : USART1_TX
- * Chan 5 : USART1_RX
- */
- STM32_SYSCFG_CFGR1 |= BIT(9) | BIT(10); /* Remap USART1 RX/TX DMA */
-}
-
-int board_has_keyboard_backlight(void)
-{
- return has_keyboard_backlight;
-}
-
-#ifndef HAS_NO_TOUCHPAD
-/* Reset the touchpad, mainly used to recover it from malfunction. */
-void board_touchpad_reset(void)
-{
-#ifdef HAS_EN_PP3300_TP_ACTIVE_HIGH
- gpio_set_level(GPIO_EN_PP3300_TP, 0);
- msleep(100);
- gpio_set_level(GPIO_EN_PP3300_TP, 1);
- msleep(100);
-#else
- gpio_set_level(GPIO_EN_PP3300_TP_ODL, 1);
- msleep(10);
- gpio_set_level(GPIO_EN_PP3300_TP_ODL, 0);
- msleep(10);
-#endif
-}
-#endif /* !HAS_NO_TOUCHPAD */
-
-#ifdef CONFIG_KEYBOARD_TABLET_MODE_SWITCH
-static void board_tablet_mode_change(void)
-{
- /*
- * Turn off key scanning in tablet mode.
- */
- if (tablet_get_mode())
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- else
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
-}
-DECLARE_HOOK(HOOK_TABLET_MODE_CHANGE, board_tablet_mode_change,
- HOOK_PRIO_DEFAULT);
-/* Run after tablet_mode_init. */
-DECLARE_HOOK(HOOK_INIT, board_tablet_mode_change, HOOK_PRIO_DEFAULT+1);
-#endif
-
-/*
- * Get entropy based on Clock Recovery System, which is enabled on hammer to
- * synchronize USB SOF with internal oscillator.
- */
-int board_get_entropy(void *buffer, int len)
-{
- int i = 0;
- uint8_t *data = buffer;
- uint32_t start;
- /* We expect one SOF per ms, so wait at most 2ms. */
- const uint32_t timeout = 2*MSEC;
-
- for (i = 0; i < len; i++) {
- STM32_CRS_ICR |= STM32_CRS_ICR_SYNCOKC;
- start = __hw_clock_source_read();
- while (!(STM32_CRS_ISR & STM32_CRS_ISR_SYNCOKF)) {
- if ((__hw_clock_source_read() - start) > timeout)
- return 0;
- usleep(500);
- }
- /* Pick 8 bits, including FEDIR and 7 LSB of FECAP. */
- data[i] = STM32_CRS_ISR >> 15;
- }
-
- return 1;
-}
-
-/*
- * Generate a USB serial number from unique chip ID.
- */
-__override const char *board_read_serial(void)
-{
- static char str[CONFIG_SERIALNO_LEN];
-
- if (str[0] == '\0') {
- uint8_t *id;
- int pos = 0;
- int idlen = system_get_chip_unique_id(&id);
- int i;
-
- for (i = 0; i < idlen && pos < sizeof(str); i++, pos += 2) {
- snprintf(&str[pos], sizeof(str)-pos,
- "%02x", id[i]);
- }
- }
-
- return str;
-}
-
-__override int board_write_serial(const char *serialno)
-{
- return 0;
-}
-
-static const struct ec_response_keybd_config zed_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK,
- TK_REFRESH,
- TK_FULLSCREEN,
- TK_OVERVIEW,
- TK_SNAPSHOT,
- TK_BRIGHTNESS_DOWN,
- TK_BRIGHTNESS_UP,
- TK_VOL_MUTE,
- TK_VOL_DOWN,
- TK_VOL_UP,
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config bland_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK,
- TK_REFRESH,
- TK_FULLSCREEN,
- TK_OVERVIEW,
- TK_BRIGHTNESS_DOWN,
- TK_BRIGHTNESS_UP,
- TK_MICMUTE,
- TK_VOL_MUTE,
- TK_VOL_DOWN,
- TK_VOL_UP,
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override
-const struct ec_response_keybd_config *board_vivaldi_keybd_config(void)
-{
- if (IS_ENABLED(BOARD_ZED) || IS_ENABLED(BOARD_STAR))
- return &zed_kb;
- if (IS_ENABLED(BOARD_BLAND) || IS_ENABLED(BOARD_EEL))
- return &bland_kb;
-
- return NULL;
-}
diff --git a/board/hammer/board.h b/board/hammer/board.h
deleted file mode 100644
index 3282425d9e..0000000000
--- a/board/hammer/board.h
+++ /dev/null
@@ -1,365 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Hammer configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "variants.h"
-
-/* TODO: Remove CONFIG_SYSTEM_UNLOCKED prior to building MP FW. */
-#define CONFIG_SYSTEM_UNLOCKED
-/* TODO(b:63378217): Define FLASH_PSTATE_LOCKED prior to building MP FW. */
-#undef CONFIG_FLASH_PSTATE_LOCKED
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/*
- * Flash layout: we redefine the sections offsets and sizes as we want to
- * include a rollback region, and will use RO/RW regions of different sizes.
- */
-#undef _IMAGE_SIZE
-#undef CONFIG_ROLLBACK_OFF
-#undef CONFIG_ROLLBACK_SIZE
-#undef CONFIG_FLASH_PSTATE
-#undef CONFIG_FW_PSTATE_SIZE
-#undef CONFIG_FW_PSTATE_OFF
-#undef CONFIG_SHAREDLIB_SIZE
-#undef CONFIG_RO_MEM_OFF
-#undef CONFIG_RO_STORAGE_OFF
-#undef CONFIG_RO_SIZE
-#undef CONFIG_RW_MEM_OFF
-#undef CONFIG_RW_STORAGE_OFF
-#undef CONFIG_RW_SIZE
-#undef CONFIG_EC_PROTECTED_STORAGE_OFF
-#undef CONFIG_EC_PROTECTED_STORAGE_SIZE
-#undef CONFIG_EC_WRITABLE_STORAGE_OFF
-#undef CONFIG_EC_WRITABLE_STORAGE_SIZE
-#undef CONFIG_WP_STORAGE_OFF
-#undef CONFIG_WP_STORAGE_SIZE
-
-#define CONFIG_FLASH_PSTATE
-/* Do not use a dedicated PSTATE bank */
-#undef CONFIG_FLASH_PSTATE_BANK
-
-#define CONFIG_SHAREDLIB_SIZE 0
-
-#define CONFIG_RO_MEM_OFF 0
-#define CONFIG_RO_STORAGE_OFF 0
-#define CONFIG_RO_SIZE (44*1024)
-
-/* EC rollback protection block */
-#define CONFIG_ROLLBACK_OFF (CONFIG_RO_MEM_OFF + CONFIG_RO_SIZE)
-#define CONFIG_ROLLBACK_SIZE CONFIG_FLASH_BANK_SIZE
-
-#define CONFIG_RW_MEM_OFF (CONFIG_ROLLBACK_OFF + CONFIG_ROLLBACK_SIZE)
-#define CONFIG_RW_STORAGE_OFF 0
-#define CONFIG_RW_SIZE (CONFIG_FLASH_SIZE_BYTES - \
- (CONFIG_RW_MEM_OFF - CONFIG_RO_MEM_OFF))
-
-#define CONFIG_EC_PROTECTED_STORAGE_OFF CONFIG_RO_MEM_OFF
-#define CONFIG_EC_PROTECTED_STORAGE_SIZE CONFIG_RO_SIZE
-#define CONFIG_EC_WRITABLE_STORAGE_OFF CONFIG_RW_MEM_OFF
-#define CONFIG_EC_WRITABLE_STORAGE_SIZE CONFIG_RW_SIZE
-
-#define CONFIG_WP_STORAGE_OFF CONFIG_EC_PROTECTED_STORAGE_OFF
-#define CONFIG_WP_STORAGE_SIZE CONFIG_EC_PROTECTED_STORAGE_SIZE
-
-/* The UART console is on USART1 (PA9/PA10) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-
-/* Optional features */
-/*
- * TODO(b:65697962): Reenable low-power-idle on wand without breaking EC-EC
- * communication
- */
-#ifndef BOARD_WAND
-#define CONFIG_LOW_POWER_IDLE
-#endif
-#define CONFIG_LTO
-#define CONFIG_FORCE_CONSOLE_RESUME
-#define CONFIG_MATH_UTIL
-#define CONFIG_STM_HWTIMER32
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_STREAM_USB
-#define CONFIG_USB_UPDATE
-
-#undef CONFIG_UPDATE_PDU_SIZE
-#if defined(BOARD_WAND) || defined(BOARD_ZED)
-/* Wand/Zed does not have enough space to fit 4k PDU. */
-#define CONFIG_UPDATE_PDU_SIZE 2048
-#else
-#define CONFIG_UPDATE_PDU_SIZE 4096
-#endif
-
-#undef CONFIG_USB_MAXPOWER_MA
-#define CONFIG_USB_MAXPOWER_MA 100
-
-#define CONFIG_USB_REMOTE_WAKEUP
-#define CONFIG_USB_SUSPEND
-
-#define CONFIG_USB_SERIALNO
-/* Replaced at runtime (board_read_serial) by chip unique-id-based number. */
-#define DEFAULT_SERIALNO ""
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#ifdef SECTION_IS_RW
-#define USB_IFACE_HID_KEYBOARD 0
-#define USB_IFACE_UPDATE 1
-#ifdef HAS_NO_TOUCHPAD
-#define USB_IFACE_COUNT 2
-#else /* !HAS_NO_TOUCHPAD */
-#define USB_IFACE_HID_TOUCHPAD 2
-/* Can be either I2C or SPI passthrough, depending on the board. */
-#define USB_IFACE_I2C_SPI 3
-#if defined(CONFIG_USB_ISOCHRONOUS)
-#define USB_IFACE_ST_TOUCHPAD 4
-#define USB_IFACE_COUNT 5
-#else /* !CONFIG_USB_ISOCHRONOUS */
-#define USB_IFACE_COUNT 4
-#endif /* CONFIG_USB_ISOCHRONOUS */
-#endif /* !HAS_NO_TOUCHPAD */
-#else /* !SECTION_IS_RW */
-#define USB_IFACE_UPDATE 0
-#define USB_IFACE_COUNT 1
-#endif /* SECTION_IS_RW */
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_UPDATE 1
-#ifdef SECTION_IS_RW
-#define USB_EP_HID_KEYBOARD 2
-#ifdef HAS_NO_TOUCHPAD
-#define USB_EP_COUNT 3
-#else /* !HAS_NO_TOUCHPAD */
-#define USB_EP_HID_TOUCHPAD 3
-/* Can be either I2C or SPI passthrough, depending on the board. */
-#define USB_EP_I2C_SPI 4
-#if defined(CONFIG_USB_ISOCHRONOUS)
-#define USB_EP_ST_TOUCHPAD 5
-#define USB_EP_ST_TOUCHPAD_INT 6
-#define USB_EP_COUNT 7
-#else /* !CONFIG_USB_ISOCHRONOUS */
-#define USB_EP_COUNT 5
-#endif /* CONFIG_USB_ISOCHRONOUS */
-#endif /* !HAS_NO_TOUCHPAD */
-#else /* !SECTION_IS_RW */
-#define USB_EP_COUNT 2
-#endif /* SECTION_IS_RW */
-
-/* Optional features */
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_WATCHDOG_HELP
-
-/* No need to hibernate, remove console commands that are not very useful. */
-#undef CONFIG_HIBERNATE
-#undef CONFIG_CONSOLE_CHANNEL
-#undef CONFIG_CONSOLE_HISTORY
-#undef CONFIG_CMD_GETTIME
-#undef CONFIG_CMD_MD
-#undef CONFIG_CMD_RW
-#undef CONFIG_CMD_SHMEM
-#undef CONFIG_CMD_TIMERINFO
-#undef CONFIG_CMD_WAITMS
-
-/*
- * Enlarge the allowed write / read count for trackpad debug
- * In the extended I2C reading over I2C ( >= 128 bytes ), the header size
- * have to be 6 bytes instead of 4 bytes for receiving packets. Moreover,
- * buffer size have to be power of two.
- */
-#undef CONFIG_USB_I2C_MAX_WRITE_COUNT
-#ifdef BOARD_ZED
-/* Zed requires 516 byte per packet for touchpad update */
-#define CONFIG_USB_I2C_MAX_WRITE_COUNT (1024 - 4) /* 4 is maximum header size */
-#else
-#define CONFIG_USB_I2C_MAX_WRITE_COUNT (128 - 4) /* 4 is maximum header size */
-#endif
-
-#undef CONFIG_USB_I2C_MAX_READ_COUNT
-#define CONFIG_USB_I2C_MAX_READ_COUNT (1024 - 6) /* 6 is maximum header size */
-
-#define CONFIG_I2C_XFER_LARGE_TRANSFER
-
-/* No lid switch */
-#undef CONFIG_LID_SWITCH
-
-#ifdef SECTION_IS_RW
-#define CONFIG_USB_HID
-#define CONFIG_USB_HID_KEYBOARD
-#ifdef HAS_BACKLIGHT
-#define CONFIG_USB_HID_KEYBOARD_BACKLIGHT
-#endif
-
-#ifndef HAS_NO_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD
-
-/* Virtual address for touchpad FW in USB updater. */
-#define CONFIG_TOUCHPAD_VIRTUAL_OFF 0x80000000
-
-/* Include touchpad FW hashes in image */
-#define CONFIG_TOUCHPAD_HASH_FW
-#endif /* !HAS_NO_TOUCHPAD */
-
-#define CONFIG_KEYBOARD_DEBUG
-#undef CONFIG_KEYBOARD_BOOT_KEYS
-#undef CONFIG_KEYBOARD_RUNTIME_KEYS
-/* Keyboard output port list */
-#define KB_OUT_PORT_LIST GPIO_A, GPIO_B, GPIO_C, GPIO_F
-
-#if defined(HAS_I2C_TOUCHPAD) || defined(CONFIG_LED_DRIVER_LM3630A)
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_MASTER 0
-#define I2C_PORT_KBLIGHT 0
-#define I2C_PORT_CHARGER 1
-#endif
-
-/* Enable PWM */
-#ifdef HAS_BACKLIGHT
-#define CONFIG_PWM
-#endif
-
-#ifdef CONFIG_GMR_TABLET_MODE
-#define CONFIG_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-#define CONFIG_KEYBOARD_TABLET_MODE_SWITCH
-#endif
-
-#ifdef HAS_SPI_TOUCHPAD
-/* Enable control of SPI over USB */
-#define CONFIG_USB_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_HALFDUPLEX
-#define CONFIG_STM32_SPI1_CONTROLLER
-#define CONFIG_SPI_TOUCHPAD_PORT 0
-#define SPI_ST_TP_DEVICE_ID 0
-/* Enable SPI controller xfer command */
-#define CONFIG_CMD_SPI_XFER
-#define CONFIG_TOUCHPAD
-#define CONFIG_TOUCHPAD_ST
-#elif defined(HAS_I2C_TOUCHPAD) /* HAS_SPI_TOUCHPAD */
-/* Enable control of I2C over USB */
-#define CONFIG_USB_I2C
-#define USB_IFACE_I2C USB_IFACE_I2C_SPI
-#define USB_EP_I2C USB_EP_I2C_SPI
-/* Enable Elan touchpad driver */
-#define CONFIG_TOUCHPAD
-#define CONFIG_TOUCHPAD_ELAN
-#define CONFIG_TOUCHPAD_I2C_PORT I2C_PORT_MASTER
-#define CONFIG_TOUCHPAD_I2C_ADDR_FLAGS 0x15
-#endif /* HAS_I2C_TOUCHPAD */
-
-#define CONFIG_CURVE25519
-
-#define CONFIG_USB_PAIRING
-
-#define CONFIG_USB_CONSOLE_READ
-
-#ifdef BOARD_WAND
-/* Battery and charger options. */
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_INPUT_CURRENT 128
-#define CONFIG_CHARGER_ISL9238
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_OTG
-
-#define CONFIG_CHARGE_RAMP_HW
-
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_SMART
-
-#define I2C_PORT_BATTERY I2C_PORT_CHARGER
-
-#define EC_EC_UART usart2_hw
-#define CONFIG_STREAM_USART2
-#define CONFIG_STREAM_USART
-
-#define CONFIG_EC_EC_COMM_SERVER
-#define CONFIG_EC_EC_COMM_BATTERY
-#define CONFIG_CRC8
-#endif /* BOARD_WAND */
-
-#else /* SECTION_IS_RO */
-/* Sign and switch to RW partition on boot. */
-#define CONFIG_RWSIG
-#define CONFIG_RSA
-#endif
-
-#define CONFIG_RSA_KEY_SIZE 3072
-#define CONFIG_RSA_EXPONENT_3
-
-#define CONFIG_SHA256
-#ifdef SECTION_IS_RO
-#define CONFIG_SHA256_UNROLLED
-#endif
-
-#define CONFIG_RWSIG_TYPE_RWSIG
-
-/*
- * Add rollback protection, and independent RW region protection.
- */
-#define CONFIG_ROLLBACK
-#define CONFIG_ROLLBACK_SECRET_SIZE 32
-#define CONFIG_ROLLBACK_SECRET_LOCAL_ENTROPY_SIZE 32
-#define CONFIG_FLASH_PROTECT_RW
-#ifdef SECTION_IS_RW
-#undef CONFIG_ROLLBACK_UPDATE
-#endif
-
-/* Maximum current to draw. */
-#define MAX_CURRENT_MA 2000
-/* Maximum current/voltage to provide over OTG. */
-#define MAX_OTG_CURRENT_MA 2000
-#define MAX_OTG_VOLTAGE_MV 20000
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 16
-#define TIM_KBLIGHT 17
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_I2C_NAME,
- USB_STR_UPDATE_NAME,
-#ifdef CONFIG_USB_ISOCHRONOUS
- USB_STR_HEATMAP_NAME,
-#endif
- USB_STR_COUNT
-};
-
-#ifdef SECTION_IS_RW
-#ifdef HAS_BACKLIGHT
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-#endif /* HAS_BACKLIGHT */
-
-enum adc_channel {
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-#endif /* SECTION_IS_RW */
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/hammer/build.mk b/board/hammer/build.mk
deleted file mode 100644
index b32a6b768a..0000000000
--- a/board/hammer/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-# Build tests that we care about for hammer
-test-list-y=entropy rsa3 sha256 sha256_unrolled x25519
-
-board-y=board.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/hammer/dev_key.pem b/board/hammer/dev_key.pem
deleted file mode 100644
index b72c787613..0000000000
--- a/board/hammer/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4gIBAAKCAYEAseZZZlXXDP+KrjqV+XhP0ZgPlU5mX4GCm27yzTqcKiFWLlHZ
-3f8seGG0lKNiL7WvHim8uSEDaPbp2us4uaJ6nTHEpbSGi2QVp90tE3aJG34HyKlg
-jcaE1r/0n6ynG/bf0Xx4O63Plp3Czi3TBYW49vT6+T/Jyfl2JpGQ9KNcD0umafsv
-uaEmdrLGrzjN8w1mFZfwscFkfVDh0cdiFNJ+UkTSpO9/yPapXbo4/lOMwdO9xILF
-cEZV9I7K7lBSvQ5Uep+w0SqNPTh2cGhoeEeDyH+Ce0LA8H7ZwbVnwLe1RswF9Wek
-uzqp9lMSNkkwMtTkumTuJLLGJX9rc0MVQTKgNV8wIzizf5lkCCBCJLf7aRBaeWCJ
-cXjKiavSPOZXDcnqCWqRJT3jN4ibAsU1GQtqLa8pTAi2wkE0fjuvAWK3NYuvpukg
-qNq2LI+BJkF4+dCZoeB1PDNyFNzdOFvkxj2+ImS3DLlPYVng4vHsTK1HRUUpL5Ag
-jjfMhMs4NC7HMOCTAgEDAoIBgHaZkO7j5LNVBx7RuVD63+EQCmOJmZUBAbz0od4n
-EsbA5B7hO+lUyFBBIw3CQXUjyhQb0yYWAkX58Tyc0HvBpxN2gxkjBFztY8U+Hgz5
-sLz+r9sblbPZreR/+GpzGhKklTZS+tJz37m+gd7JN1kD0KSjUft/29v7pBm2YKMX
-krTdGZv8ynvAxE8h2col3qII7rkP9cvWQv416+EvlriMVDbYjG30/9tPG5PRe1Q3
-syvifoMB2PWEOU20h0mK4dNe4d7E96s1Q+RTmTUtyipxUp6d4PIufAjMtM8yfkb0
-/0z81IsWQ0NOhefrMAi8TEcDkbyNSBPqHqbqH2FosFWo2cU3r6TXv2LdvFzc5BA+
-U6c+fXz7BDjv+NT3Bh98whKvTdJYcIgSg6vqzW7ZWJWWllZQtpJnQccIq4sPaL4S
-osFg8jd1kcbjVakCN0wYtfvMa/+WBZNNsZLUHoeIJvO7qnT7VKzhceoKHCJCMxNR
-Ypu5eELxCwebTXiImDqmFsKIawKBwQDpDjff6eatHbjmGV1elTyV5MLi95Tc0T7P
-FZHC1KLXkA/mEuXjAGfoZuLB5a3WmrA8r8fWNZoKV+0RBKIs3at1JFxZn9YiA0Hy
-5qmnYkXjMaY4p5AyO3eJsc2kbsh9r0cy2cb5GdwFDApeoVICoQh+dW9FpvIS+9AF
-0DVc2/Rg//cuXLlCMonF+PZVmDxRNhjBvwvRjxeowiu2ntI4sa83nHMhXI/RfvV4
-xcSng8gSIvabUmunDcPKvqO3rnpHzVECgcEAw2oFcHDAuZ1Xuopb2ghLRK3uLQVy
-BnqLu9QYk3OTe8C3PrNZ80R5MgtnZ0kP8bTZ4uE6MJ3+IMhPUCFqk9euGGdMUlU+
-SUmHie5CZPg4CwD4BUBy6dVdwId7aTxrdBOuGwwhYAhBsJxcfd3eNgiALcCoKsbi
-BLhjJ9Rch2rOsnpNJVwMvFMr6RM33oQrrufe4MBhDa/QD9yDtnDYH/KPO09E6AqU
-sMvBNsjbCC9rSYv+L9QkW8EUhT+wJIcqxUajAoHBAJtez+qb7x4T0JlmPj8OKGPt
-10H6Yz3g1IoOYSyNweUKtUQMmUIARUWZ7IFDyTm8dX3KhTl5EVw6ngtYbB3pHPjC
-6Du/5Bas1qHvG8TsLpd2btBvtXbST7EhM8L0hakfhMyRL1C76ANdXD8WNqxrWv74
-9NkZ9rdSiq6Kzj3n+ECqpMmTJiwhsS6l+Y5lfYt5ZdZ/XTZfZRssHSRp4XshH3po
-TMDoX+D/TlCD2G+tMAwXTxI28m9egocpwnp0UYUziwKBwQCCRq5K9dXRE4/RsZKR
-WtzYc/QeA6FZpwfSjWW3omJSgHopzOaiLaYhXO+aMLVLzeaXQNF1vqlrMDTgFkcN
-OnQQRN2MONQw26+xSYGYpXqyAKVY1aHxOOkrBPzw0vJNYnQSCBZABYEgaD2pPpQk
-BarJKxrHL0FYeuzFOD2vnInMUYjDkrMoN3KbYiU/AsfJ7+nrKutedTVf6FfO9eVq
-obTSNNiasbh13St52zywH5zbsql1OBg9K2MDf8rDBMcuLxcCgcBfM9FWZivdG2tJ
-5REvL0vPAQfcjVi4HUHvnaCuwMYEuF5T2Xf9P8d8ZflfWHaGlkl/qPvE897fns2l
-PZvvhRnr9GlHKt940ZOTI2v+hjlwcHGAAQc+p7BcKeUYLChwhVK/cZ9f6ZCotZNh
-543ecG4KZiJaqBZ/mDRaW7Py0w6lbOAzprrHF3ChvQ6VAllajoWx4CeINRcxX2vP
-bAPZxvt0gwpoHtUAsZo/bKEF0sM5qM/fK43gH5KhJeunq/xHO7E=
------END RSA PRIVATE KEY-----
diff --git a/board/hammer/ec.tasklist b/board/hammer/ec.tasklist
deleted file mode 100644
index b568619065..0000000000
--- a/board/hammer/ec.tasklist
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#ifdef BOARD_WAND
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS (HOOKS, hook_task, NULL, 2048) \
- TASK_ALWAYS_RW(TOUCHPAD, touchpad_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS (CONSOLE, console_task, NULL, 1024) \
- TASK_ALWAYS_RW(ECCOMM, ec_ec_comm_server_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST_RW(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
-#elif defined(CONFIG_USB_ISOCHRONOUS)
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS (HOOKS, hook_task, NULL, 2048) \
- TASK_ALWAYS_RW(TOUCHPAD, touchpad_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(HEATMAP, heatmap_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS (CONSOLE, console_task, NULL, 1024) \
- TASK_NOTEST_RW(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
-#elif !defined(HAS_NO_TOUCHPAD)
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS (HOOKS, hook_task, NULL, 2048) \
- TASK_ALWAYS_RW(TOUCHPAD, touchpad_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS (CONSOLE, console_task, NULL, 1024) \
- TASK_NOTEST_RW(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
-#else
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS (HOOKS, hook_task, NULL, 2048) \
- TASK_ALWAYS (CONSOLE, console_task, NULL, 1024) \
- TASK_NOTEST_RW(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
-#endif
diff --git a/board/hammer/gpio.inc b/board/hammer/gpio.inc
deleted file mode 100644
index 8372d4fc4b..0000000000
--- a/board/hammer/gpio.inc
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-#ifdef SECTION_IS_RW
-#ifndef HAS_NO_TOUCHPAD
-GPIO_INT(TOUCHPAD_INT, PIN(B, 8), GPIO_INT_FALLING, touchpad_interrupt)
-#endif /* !HAS_NO_TOUCHPAD */
-#ifdef CONFIG_GMR_TABLET_MODE
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_PULL_UP | GPIO_INT_BOTH, gmr_tablet_switch_isr)
-#endif /* CONFIG_GMR_TABLET_MODE */
-#endif /* SECTION_IS_RW */
-
-/* Keyboard inputs */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH)
-#define GPIO_KB_OUTPUT GPIO_ODR_HIGH
-
-#ifdef BOARD_MASTERBALL
-GPIO_INT(KB_IN00, PIN(B, 2), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN01, PIN(B, 13), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN02, PIN(B, 1), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN03, PIN(A, 6), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN04, PIN(B, 10), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN05, PIN(B, 12), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN06, PIN(A, 7), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN07, PIN(B, 0), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-
-/* Do not forget to update KB_OUT_PORT_LIST to match this. */
-GPIO(KB_OUT00, PIN(C, 15), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(C, 14), GPIO_KB_OUTPUT)
-GPIO(KB_OUT02, PIN(A, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT03, PIN(A, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT04, PIN(F, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(A, 3), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(A, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(F, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(A, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(A, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(B, 14), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(B, 15), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(A, 8), GPIO_KB_OUTPUT)
-#else /* !BOARD_MASTERBALL */
-GPIO_INT(KB_IN00, PIN(A, 4), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-#ifdef BOARD_WHISKERS
-GPIO_INT(KB_IN01, PIN(B, 10), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-#else
-GPIO_INT(KB_IN01, PIN(B, 3), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-#endif
-GPIO_INT(KB_IN02, PIN(B, 0), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN03, PIN(A, 7), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN04, PIN(B, 12), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN05, PIN(B, 2), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN06, PIN(B, 14), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN07, PIN(B, 15), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-
-/* Do not forget to update KB_OUT_PORT_LIST to match this. */
-GPIO(KB_OUT00, PIN(B, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(A, 5), GPIO_KB_OUTPUT)
-#ifdef BOARD_WAND
-GPIO(KB_OUT02, PIN(A, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT03, PIN(B, 4), GPIO_KB_OUTPUT)
-#else
-GPIO(KB_OUT02, PIN(A, 3), GPIO_KB_OUTPUT)
-GPIO(KB_OUT03, PIN(A, 2), GPIO_KB_OUTPUT)
-#endif
-GPIO(KB_OUT04, PIN(A, 6), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(A, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(A, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(B, 13), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(C, 14), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(C, 15), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(F, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(F, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(C, 13), GPIO_KB_OUTPUT)
-#endif /* !BOARD_MASTERBALL */
-
-/* I2C pins should be configured as inputs until I2C module is */
-/* initialized. This will avoid driving the lines unintentionally.*/
-GPIO(MASTER_I2C_SCL, PIN(B, 6), GPIO_INPUT)
-GPIO(MASTER_I2C_SDA, PIN(B, 7), GPIO_INPUT)
-#ifndef HAS_NO_TOUCHPAD
-/* TODO(crosbug.com/p/59083): Disable trackpad when appropriate */
-#ifdef HAS_EN_PP3300_TP_ACTIVE_HIGH
-GPIO(EN_PP3300_TP, PIN(A, 14), GPIO_OUT_HIGH)
-#else
-GPIO(EN_PP3300_TP_ODL, PIN(A, 14), GPIO_OUT_LOW)
-#endif
-#endif /* !HAS_NO_TOUCHPAD */
-
-#ifdef HAS_BACKLIGHT
-GPIO(KEYBOARD_BACKLIGHT, PIN(B, 9), GPIO_INPUT)
-#endif
-
-GPIO(WP_L, PIN(A, 13), GPIO_INPUT | GPIO_PULL_UP)
-
-#ifdef BOARD_WAND
-GPIO(BASE_UART_TX_RX, PIN(A, 2), GPIO_ODR_HIGH)
-
-GPIO(CHARGER_I2C_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(CHARGER_I2C_SDA, PIN(B, 11), GPIO_INPUT)
-
-GPIO(SWITCH_STATUS, PIN(A, 15), GPIO_INPUT)
-GPIO(EN_OTG, PIN(B, 5), GPIO_INPUT)
-#elif defined(BOARD_WHISKERS)
-GPIO(DETECT_PATH_DISABLE_L, PIN(A, 8), GPIO_ODR_LOW)
-GPIO(SPI1_NSS, PIN(A, 15), GPIO_OUT_HIGH)
-GPIO(BACKLIGHT_EN, PIN(B, 4), GPIO_ODR_HIGH | GPIO_PULL_UP)
-#else
-GPIO(BASE_DET, PIN(A, 15), GPIO_INPUT)
-#endif
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, GPIO_PULL_UP) /* USART1: PA09/PA10 - Servo stm32 console UART */
-
-#ifdef BOARD_WAND
-ALTERNATE(PIN_MASK(A, 0x0004), 1, MODULE_USART, GPIO_ODR_HIGH) /* USART2: PA2 - EC-EC UART */
-ALTERNATE(PIN_MASK(B, 0x0c00), 1, MODULE_I2C, 0) /* I2C CHARGER: PB10/11 GPIO_ODR_HIGH */
-#endif
-
-#ifdef HAS_SPI_TOUCHPAD
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI_CONTROLLER, 0) /* SPI MASTER:PB3/4/5 */
-#endif
-
-#ifdef CONFIG_I2C
-ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, 0) /* I2C TOUCHPAD: PB6/7 GPIO_ODR_HIGH */
-#endif
-
-#ifdef HAS_BACKLIGHT
-ALTERNATE(PIN_MASK(B, 0x0200), 2, MODULE_PWM, GPIO_PULL_DOWN) /* PWM: PB9 */
-#endif
diff --git a/board/hammer/variants.h b/board/hammer/variants.h
deleted file mode 100644
index 2a8c831ef5..0000000000
--- a/board/hammer/variants.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * Hammer variants configuration, there should be no/little BOARD_ checks
- * in the rest of the files. If this grows out of control, we can create
- * variant_*.h files.
- */
-
-#ifndef __CROS_EC_VARIANTS_H
-#define __CROS_EC_VARIANTS_H
-
-/* USB ID */
-#ifdef BOARD_HAMMER
-#define CONFIG_USB_PID 0x5022
-#elif defined(BOARD_BLAND)
-#define CONFIG_USB_PID 0x5056
-#elif defined(BOARD_DON)
-#define CONFIG_USB_PID 0x5050
-#elif defined(BOARD_EEL)
-#define CONFIG_USB_PID 0x5057
-#elif defined(BOARD_MAGNEMITE)
-#define CONFIG_USB_PID 0x503d
-#elif defined(BOARD_MASTERBALL)
-#define CONFIG_USB_PID 0x503c
-#elif defined(BOARD_MOONBALL)
-#define CONFIG_USB_PID 0x5044
-#elif defined(BOARD_STAFF)
-#define CONFIG_USB_PID 0x502b
-#elif defined(BOARD_STAR)
-#define CONFIG_USB_PID 0x5052
-#elif defined(BOARD_WAND)
-#define CONFIG_USB_PID 0x502d
-#elif defined(BOARD_WHISKERS)
-#define CONFIG_USB_PID 0x5030
-#elif defined(BOARD_ZED)
-#define CONFIG_USB_PID 0x504c
-#else
-#error "Invalid board"
-#endif
-
-#ifdef SECTION_IS_RW
-
-/* Touchpad interface, firmware size and physical dimension. */
-#if defined(BOARD_HAMMER) || defined(BOARD_WAND)
-#define HAS_I2C_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 3207
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1783
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1018 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 566 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (48*1024)
-#elif defined(BOARD_BLAND)
-#define CONFIG_USB_HID_KEYBOARD_VIVALDI
-#define CONFIG_USB_HID_KB_NUM_TOP_ROW_KEYS 10
-#define HAS_I2C_TOUCHPAD
-/* TODO: update correct parameters */
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 3282
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1793
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1042 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 569 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (64*1024)
-#elif defined(BOARD_DON)
-#define HAS_I2C_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 2925
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1440
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 929 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 457 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (56*1024)
-#elif defined(BOARD_EEL)
-#define CONFIG_USB_HID_KEYBOARD_VIVALDI
-#define CONFIG_USB_HID_KB_NUM_TOP_ROW_KEYS 10
-#define HAS_I2C_TOUCHPAD
-/* TODO: update correct parameters */
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 3282
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1793
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1042 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 569 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (64*1024)
-#elif defined(BOARD_MAGNEMITE)
-#define HAS_NO_TOUCHPAD
-#elif defined(BOARD_MASTERBALL)
-#define HAS_I2C_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 2644
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1440
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 839 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 457 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (64*1024)
-#elif defined(BOARD_MOONBALL)
-#define HAS_I2C_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 2925
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1440
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 929 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 457 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (56*1024)
-#elif defined(BOARD_STAFF)
-#define HAS_I2C_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 3206
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1832
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1018 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 582 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (56*1024)
-#elif defined(BOARD_STAR)
-#define CONFIG_USB_HID_KEYBOARD_VIVALDI
-#define CONFIG_USB_HID_KB_NUM_TOP_ROW_KEYS 10
-#define HAS_I2C_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 3282
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1793
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1042 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 569 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (64*1024)
-#elif defined(BOARD_WHISKERS)
-#define HAS_SPI_TOUCHPAD
-#define HAS_EN_PP3300_TP_ACTIVE_HIGH
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 2160
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1573
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 255
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1031 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 751 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (CONFIG_UPDATE_PDU_SIZE + 128*1024)
-/* Enable to send heatmap to AP */
-#define CONFIG_USB_ISOCHRONOUS
-#elif defined(BOARD_ZED)
-#define CONFIG_USB_HID_KEYBOARD_VIVALDI
-#define CONFIG_USB_HID_KB_NUM_TOP_ROW_KEYS 10
-
-/* TODO: update correct parameters */
-#define HAS_I2C_TOUCHPAD
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X 3340
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y 1811
-#define CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE 511
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1060 /* tenth of mm */
-#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 575 /* tenth of mm */
-#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (64*1024)
-#else
-#error "No touchpad information for board."
-#endif
-
-/* Assistant key */
-#if defined(BOARD_HAMMER) || defined(BOARD_WAND) || defined(BOARD_WHISKERS)
-
-#define CONFIG_KEYBOARD_ASSISTANT_KEY
-#endif
-
-/* Backlight */
-#if defined(BOARD_HAMMER) || defined(BOARD_STAFF) || \
- defined(BOARD_WAND) || defined(BOARD_WHISKERS)
-/*
- * Even with this option, we detect the backlight presence using a PU/PD on the
- * PWM pin. Not defining this totally disables support.
- */
-#define HAS_BACKLIGHT
-
-#ifdef BOARD_WHISKERS
-#define CONFIG_LED_DRIVER_LM3630A
-#endif
-
-#ifdef BOARD_STAFF
-#define KBLIGHT_PWM_FREQ 100 /* Hz */
-#else
-#define KBLIGHT_PWM_FREQ 50000 /* Hz */
-#endif
-
-#endif /* BOARD_HAMMER/WAND/WHISKERS */
-
-/* GMR sensor for tablet mode detection */
-#if defined(BOARD_DON) || defined(BOARD_MASTERBALL) || \
- defined(BOARD_MOONBALL) || defined(BOARD_WHISKERS) || \
- defined(BOARD_EEL)
-#define CONFIG_GMR_TABLET_MODE
-#endif
-
-#endif /* SECTION_IS_RW */
-
-#endif /* __CROS_EC_VARIANTS_H */
diff --git a/board/hatch/battery.c b/board/hatch/battery.c
deleted file mode 100644
index b81fa795b9..0000000000
--- a/board/hatch/battery.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Hatch battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP LIS Dell FMXMT Battery Information */
- [BATTERY_SMP_LIS] = {
- .fuel_gauge = {
- .manuf_name = "SMP-LIS3.78",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7660, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP SDI Dell FMXMT Battery Information */
- [BATTERY_SMP_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI-3727",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7660, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP_SDI;
diff --git a/board/hatch/board.c b/board/hatch/board.c
deleted file mode 100644
index 75f3b5f6cb..0000000000
--- a/board/hatch/board.c
+++ /dev/null
@@ -1,500 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- baseboard_mst_enable_control(MST_HDMI, gpio_get_level(signal));
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/*
- * TODO(b/124337208): P0 boards don't have this sensor mounted so the rotation
- * matrix can't be tested properly. This needs to be revisited after EVT to make
- * sure the rotaiton matrix for the lid sensor is correct.
- */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Temp1",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Temp2",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-/* Hatch Temperature sensors */
-/*
- * TODO(b/124316213): These setting need to be reviewed and set appropriately
- * for Hatch. They matter when the EC is controlling the fan as opposed to DPTF
- * control.
- */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(50),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_a;
-}
-
-/* Sets the gpio flags correct taking into account warm resets */
-static void reset_gpio_flags(enum gpio_signal signal, int flags)
-{
- /*
- * If the system was already on, we cannot set the value otherwise we
- * may change the value from the previous image which could cause a
- * brownout.
- */
- if (system_is_reboot_warm() || system_jumped_late())
- flags &= ~(GPIO_LOW | GPIO_HIGH);
-
- gpio_set_flags(signal, flags);
-}
-
-/* Runtime GPIO defaults */
-enum gpio_signal gpio_en_pp5000_a = GPIO_EN_PP5000_A_V1;
-
-static void board_gpio_set_pp5000(void)
-{
- uint32_t board_id = 0;
-
- /* Errors will count as board_id 0 */
- cbi_get_board_version(&board_id);
-
- if (board_id == 0) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V0, GPIO_OUT_LOW);
- /* Change runtime default for V0 */
- gpio_en_pp5000_a = GPIO_EN_PP5000_A_V0;
- } else if (board_id >= 1) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V1, GPIO_OUT_LOW);
- }
-
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_TCS3400_INT_ODL);
- /* Enable HDMI HPD interrupt. */
- gpio_enable_interrupt(GPIO_HDMI_CONN_HPD);
- /* Select correct gpio signal for PP5000_A control */
- board_gpio_set_pp5000();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255);
-}
diff --git a/board/hatch/board.h b/board/hatch/board.h
deleted file mode 100644
index 057475cb55..0000000000
--- a/board/hatch/board.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-/* TC3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-#define I2C_PORT_ALS I2C_PORT_SENSOR
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A_LOW_PWR_OD
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set based on the battery's discharge current limit and what was tested to
- * prevent the AP rebooting with low charge level batteries.
- *
- * TODO(b/133447140): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
-
-/* Volume Button feature */
-#define CONFIG_CMD_BUTTON
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* MST */
-/*
- * TDOD (b/124068003): This inherently assumes the MST chip is connected to only
- * one Type C port. This will need to be chagned to support 2 Type C ports
- * connected to the same MST chip.
- */
-#define USB_PD_PORT_TCPC_MST USB_PD_PORT_TCPC_1
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* GPIO signals updated base on board version. */
-#define GPIO_EN_PP5000_A gpio_en_pp5000_a
-extern enum gpio_signal gpio_en_pp5000_a;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP_LIS,
- BATTERY_SMP_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/hatch/build.mk b/board/hatch/build.mk
deleted file mode 100644
index 733912454f..0000000000
--- a/board/hatch/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/hatch/ec.tasklist b/board/hatch/ec.tasklist
deleted file mode 100644
index 4a1024a091..0000000000
--- a/board/hatch/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/hatch/gpio.inc b/board/hatch/gpio.inc
deleted file mode 100644
index cd241f15f5..0000000000
--- a/board/hatch/gpio.inc
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, bmi160_interrupt)
-GPIO_INT(TCS3400_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcs3400_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-GPIO_INT(HDMI_CONN_HPD, PIN(7, 2), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* SYS_RESET_L should be set to GPIOC5 per schematics, but was never built, so leaving as GPIO02 */
-GPIO(SYS_RESET_L, PIN(0, 2), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A_V1, PIN(A, 4), GPIO_DEFAULT)
-GPIO(EN_PP5000_A_V0, PIN(7, 3), GPIO_DEFAULT)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_LOW)
-GPIO(EN_USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(LED_4_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-GPIO(EN_MST, PIN(9, 6), GPIO_OUT_LOW)
-
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/hatch/led.c b/board/hatch/led.c
deleted file mode 100644
index 1c44d12d89..0000000000
--- a/board/hatch/led.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Hatch
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/hatch/vif_override.xml b/board/hatch/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/hatch/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/hatch_fp/OWNERS b/board/hatch_fp/OWNERS
deleted file mode 100644
index ba92c193e0..0000000000
--- a/board/hatch_fp/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-include ../../common/fpsensor/OWNERS
diff --git a/board/hatch_fp/board.c b/board/hatch_fp/board.c
deleted file mode 100644
index b48dce2b7e..0000000000
--- a/board/hatch_fp/board.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "fpsensor_detect.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "usart_host_command.h"
-
-/**
- * Disable restricted commands when the system is locked.
- *
- * @see console.h system.c
- */
-int console_is_restricted(void)
-{
- return system_is_locked();
-}
-
-#include "gpio_list.h"
-
-/*
- * Some platforms have a broken SLP_S0_L signal (stuck to 0 in S0)
- * if set, ignore it and only uses SLP_S3_L for the AP state.
- */
-static bool broken_slp;
-
-static void ap_deferred(void)
-{
- /*
- * Behavior:
- * AP Active (ex. Intel S0): SLP_L is 1
- * AP Suspend (ex. Intel S0ix): SLP_L is 0
- * The alternative SLP_ALT_L should be pulled high at all the times.
- *
- * Legacy Intel behavior:
- * in S3: SLP_ALT_L is 0 and SLP_L is X.
- * in S0ix: SLP_ALT_L is 1 and SLP_L is 0.
- * in S0: SLP_ALT_L is 1 and SLP_L is 1.
- * in S5/G3, the FP MCU should not be running.
- */
- int running = gpio_get_level(GPIO_SLP_ALT_L) &&
- (gpio_get_level(GPIO_SLP_L) || broken_slp);
-
- if (running) { /* S0 */
- disable_sleep(SLEEP_MASK_AP_RUN);
- hook_notify(HOOK_CHIPSET_RESUME);
- } else { /* S0ix/S3 */
- hook_notify(HOOK_CHIPSET_SUSPEND);
- enable_sleep(SLEEP_MASK_AP_RUN);
- }
-}
-DECLARE_DEFERRED(ap_deferred);
-
-/* PCH power state changes */
-void slp_event(enum gpio_signal signal)
-{
- hook_call_deferred(&ap_deferred_data, 0);
-}
-
-static void board_init_transport(void)
-{
- enum fp_transport_type ret_transport = get_fp_transport_type();
-
- ccprints("TRANSPORT_SEL: %s", fp_transport_type_to_str(ret_transport));
-
- /* Initialize transport based on bootstrap */
- switch (ret_transport) {
- case FP_TRANSPORT_TYPE_UART:
- /*
- * The Zork variants currently have a broken SLP_S0_L signal
- * (stuck to 0 in S0). For now, unconditionally ignore it here
- * as they are the only UART users and the AP has no S0ix state.
- * TODO(b/174695987) once the RW AP firmware has been updated
- * on all those machines, remove this workaround.
- */
- broken_slp = true;
-
- /* Check if CONFIG_USART_HOST_COMMAND is enabled. */
- if (IS_ENABLED(CONFIG_USART_HOST_COMMAND))
- usart_host_command_init();
- else
- ccprints("ERROR: UART not supported in fw build.");
-
- /* Disable SPI interrupt to disable SPI transport layer */
- gpio_disable_interrupt(GPIO_SPI1_NSS);
- break;
-
- case FP_TRANSPORT_TYPE_SPI:
- /* SPI transport is enabled. SPI1_NSS interrupt will process
- * incoming request/
- */
- break;
- default:
- ccprints("ERROR: Selected transport is not valid.");
- }
-
- ccprints("TRANSPORT_SEL: %s",
- fp_transport_type_to_str(get_fp_transport_type()));
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Run until the first S3 entry */
- disable_sleep(SLEEP_MASK_AP_RUN);
-
- board_init_transport();
-
- /* Enable interrupt on PCH power signals */
- gpio_enable_interrupt(GPIO_SLP_ALT_L);
- gpio_enable_interrupt(GPIO_SLP_L);
-
- if (IS_ENABLED(SECTION_IS_RW))
- board_init_rw();
-
- /*
- * Enable the SPI slave interface if the PCH is up.
- * Do not use hook_call_deferred(), because ap_deferred() will be
- * called after tasks with priority higher than HOOK task (very late).
- */
- ap_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/hatch_fp/board.h b/board/hatch_fp/board.h
deleted file mode 100644
index aa097d8b7e..0000000000
--- a/board/hatch_fp/board.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * STM32F412 + FPC 1025 Fingerprint MCU configuration
- *
- * Alternate names that share this same board file:
- * hatch_fp
- * bloonchipper
- * dragonclaw
- */
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-#undef CONFIG_SYSTEM_UNLOCKED
-
-/*-------------------------------------------------------------------------*
- * Flash layout:
- *
- * +++++++++++++
- * | RO |
- * | ......... |
- * | Rollback | (two sectors)
- * +-----------+
- * | RW |
- * | |
- * | |
- * | |
- * | |
- * +++++++++++++
- *
- * We adjust the following macros to accommodate a for a rollback, RO,
- * and RW region of different sizes.
- *
- *-------------------------------------------------------------------------*/
-
-#undef _IMAGE_SIZE
-#undef CONFIG_ROLLBACK_OFF
-#undef CONFIG_ROLLBACK_SIZE
-#undef CONFIG_FLASH_PSTATE
-#undef CONFIG_FW_PSTATE_SIZE
-#undef CONFIG_FW_PSTATE_OFF
-#undef CONFIG_SHAREDLIB_SIZE
-#undef CONFIG_RO_MEM_OFF
-#undef CONFIG_RO_STORAGE_OFF
-#undef CONFIG_RO_SIZE
-#undef CONFIG_RW_MEM_OFF
-#undef CONFIG_RW_STORAGE_OFF
-#undef CONFIG_RW_SIZE
-#undef CONFIG_EC_PROTECTED_STORAGE_OFF
-#undef CONFIG_EC_PROTECTED_STORAGE_SIZE
-#undef CONFIG_EC_WRITABLE_STORAGE_OFF
-#undef CONFIG_EC_WRITABLE_STORAGE_SIZE
-#undef CONFIG_WP_STORAGE_OFF
-#undef CONFIG_WP_STORAGE_SIZE
-
-#define CONFIG_FLASH_WRITE_SIZE STM32_FLASH_WRITE_SIZE_3300
-
-#define CONFIG_SHAREDLIB_SIZE 0
-
-#define CONFIG_RO_MEM_OFF 0
-#define CONFIG_RO_STORAGE_OFF 0
-#define CONFIG_RO_SIZE (128 * 1024)
-
-/* EC rollback protection block */
-#define CONFIG_ROLLBACK_OFF (CONFIG_RO_MEM_OFF + CONFIG_RO_SIZE)
-#define CONFIG_ROLLBACK_SIZE (128 * 1024 * 2) /* 2 blocks of 128KB each */
-
-#define CONFIG_RW_MEM_OFF (CONFIG_ROLLBACK_OFF + CONFIG_ROLLBACK_SIZE)
-#define CONFIG_RW_STORAGE_OFF 0
-#define CONFIG_RW_SIZE (CONFIG_FLASH_SIZE_BYTES - \
- (CONFIG_RW_MEM_OFF - CONFIG_RO_MEM_OFF))
-
-#define CONFIG_EC_PROTECTED_STORAGE_OFF CONFIG_RO_MEM_OFF
-#define CONFIG_EC_PROTECTED_STORAGE_SIZE CONFIG_RO_SIZE
-#define CONFIG_EC_WRITABLE_STORAGE_OFF CONFIG_RW_MEM_OFF
-#define CONFIG_EC_WRITABLE_STORAGE_SIZE CONFIG_RW_SIZE
-
-#define CONFIG_WP_STORAGE_OFF CONFIG_EC_PROTECTED_STORAGE_OFF
-#define CONFIG_WP_STORAGE_SIZE CONFIG_EC_PROTECTED_STORAGE_SIZE
-
-/*
- * We want to prevent flash readout, and use it as indicator of protection
- * status.
- */
-#define CONFIG_FLASH_READOUT_PROTECTION_AS_PSTATE
-
-/*-------------------------------------------------------------------------*
- * USART Transport Setup
- *-------------------------------------------------------------------------*/
-/* Enable USART host commands */
-#define CONFIG_USART_HOST_COMMAND
-/* Enable USART and USART1 stream */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART1
-/* Allocate and configure hw instance of USART */
-#undef CONFIG_UART_HOST_COMMAND_HW
-#define CONFIG_UART_HOST_COMMAND_HW usart1_hw
-/* Set baud rate of USART */
-#undef CONFIG_UART_HOST_COMMAND_BAUD_RATE
-#define CONFIG_UART_HOST_COMMAND_BAUD_RATE 3000000
-
-/*-------------------------------------------------------------------------*
- * UART Console Setup
- *-------------------------------------------------------------------------*/
-
-/* The UART console is on USART2 */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 2048
-/* We don't currently use DMA. */
-#undef CONFIG_UART_TX_DMA_PH
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-#undef CONFIG_UART_TX_REQ_CH
-#undef CONFIG_UART_RX_REQ_CH
-
-/*-------------------------------------------------------------------------*
- * Console Commands
- *-------------------------------------------------------------------------*/
-
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_IDLE_STATS
-
-#ifdef SECTION_IS_RW
-#define CONFIG_CMD_SPI_XFER
-/* TODO(b/130249462): remove for release */
-#define CONFIG_CMD_FPSENSOR_DEBUG
-#endif
-
-/*
- * These allow console commands to be flagged as restricted.
- * Restricted commands will only be permitted to run when
- * console_is_restricted() returns false.
- * See console_is_restricted's definition in board.c.
- */
-#define CONFIG_CONSOLE_COMMAND_FLAGS
-#define CONFIG_RESTRICTED_CONSOLE_COMMANDS
-
-/*-------------------------------------------------------------------------*
- * Rollback Block
- *-------------------------------------------------------------------------*/
-
-#define CONFIG_ROLLBACK
-#define CONFIG_ROLLBACK_SECRET_SIZE 32
-#define CONFIG_MPU
-#define CONFIG_ROLLBACK_MPU_PROTECT
-
-/*
- * We do not use any "locally" generated entropy: this is normally used
- * to add local entropy when the main source of entropy is remote.
- */
-#undef CONFIG_ROLLBACK_SECRET_LOCAL_ENTROPY_SIZE
-#ifdef SECTION_IS_RW
-#undef CONFIG_ROLLBACK_UPDATE
-#endif
-
-/*-------------------------------------------------------------------------*
- * RW Signature Verification
- *-------------------------------------------------------------------------*/
-
-#ifdef SECTION_IS_RO
-/* RO verifies the RW partition signature */
-#define CONFIG_RSA
-#define CONFIG_RWSIG
-#endif /* SECTION_IS_RO */
-#define CONFIG_RSA_KEY_SIZE 3072
-#define CONFIG_RSA_EXPONENT_3
-#define CONFIG_RWSIG_TYPE_RWSIG
-
-/*-------------------------------------------------------------------------*
- * Watchdog
- *-------------------------------------------------------------------------*/
-
-/*
- * RW does slow compute, RO does slow flash erase.
- */
-#undef CONFIG_WATCHDOG_PERIOD_MS
-#define CONFIG_WATCHDOG_PERIOD_MS 10000
-#define CONFIG_WATCHDOG_HELP
-
-/*-------------------------------------------------------------------------*
- * Fingerprint Specific
- *-------------------------------------------------------------------------*/
-
-/* SPI configuration for the fingerprint sensor */
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_FP_PORT 0 /* SPI2: first master config */
-#define CONFIG_FINGERPRINT_MCU
-#ifdef SECTION_IS_RW
-#define CONFIG_FP_SENSOR_FPC1025
-/*
- * Use the malloc code only in the RW section (for the private library),
- * we cannot enable it in RO since it is not compatible with the RW verification
- * (shared_mem_init done too late).
- */
-#define CONFIG_MALLOC
-/*
- * FP buffers are allocated in regular SRAM on STM32F4.
- * TODO(b/124773209): Instead of defining to empty, #undef once all CLs that
- * depend on FP_*_SECTION have landed. Also rename the variables to CONFIG_*.
- */
-#define FP_FRAME_SECTION
-#define FP_TEMPLATE_SECTION
-#endif /* SECTION_IS_RW */
-
-/*-------------------------------------------------------------------------*
- * Disable Features
- *-------------------------------------------------------------------------*/
-
-#undef CONFIG_ADC
-#undef CONFIG_HIBERNATE
-#undef CONFIG_I2C
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_TASK_PROFILING
-
-/*-------------------------------------------------------------------------*
- * Other
- *-------------------------------------------------------------------------*/
-
-#define CONFIG_AES
-#define CONFIG_AES_GCM
-#define CONFIG_DMA
-#define CONFIG_FPU
-#define CONFIG_HOST_COMMAND_STATUS
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-#define CONFIG_PRINTF_LEGACY_LI_FORMAT
-#define CONFIG_RNG
-#define CONFIG_SHA256
-#define CONFIG_SHA256_UNROLLED
-#define CONFIG_SPI
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_WP_ACTIVE_HIGH
-#define CONFIG_PANIC_STRIP_GPR
-
-#ifdef SECTION_IS_RW
-#define CONFIG_LOW_POWER_IDLE
-#endif /* SECTION_IS_RW */
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 9
-
-#include "gpio_signal.h"
-#include "board_rw.h"
-
-void slp_event(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __BOARD_H */
diff --git a/board/hatch_fp/board_rw.c b/board/hatch_fp/board_rw.c
deleted file mode 100644
index 4c83c8723c..0000000000
--- a/board/hatch_fp/board_rw.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "fpsensor_detect.h"
-#include "gpio.h"
-#include "registers.h"
-#include "spi.h"
-#include "task.h"
-#include "usart_host_command.h"
-#include "util.h"
-
-#ifndef SECTION_IS_RW
-#error "This file should only be built for RW."
-#endif
-
-/* SPI devices */
-struct spi_device_t spi_devices[] = {
- /* Fingerprint sensor (SCLK at 4Mhz) */
- { .port = CONFIG_SPI_FP_PORT, .div = 3, .gpio_cs = GPIO_SPI2_NSS }
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-static void configure_fp_sensor_spi(void)
-{
- /* The dragonclaw development board needs this enabled to enable the
- * AND gate (U10) to CS. Production boards could disable this to save
- * power since it's only needed for initial detection on those boards.
- */
- gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 1);
-
- /* Configure SPI GPIOs */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-
- /* Set all SPI master signal pins to very high speed: B12/13/14/15 */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xff000000;
-
- /* Enable clocks to SPI2 module (master) */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
-}
-
-void board_init_rw(void)
-{
- /*
- * FP_RST_ODL pin is defined in gpio_rw.inc (with GPIO_OUT_HIGH
- * flag) but not in gpio.inc, so RO leaves this pin set to 0 (reset
- * default), but RW doesn't initialize this pin to 1 because sysjump
- * to RW is a warm reset (see gpio_pre_init() in chip/stm32/gpio.c).
- * Explicitly reset FP_RST_ODL pin to default value.
- */
- gpio_reset(GPIO_FP_RST_ODL);
-
- /* Configure and enable SPI as master for FP sensor */
- configure_fp_sensor_spi();
-}
diff --git a/board/hatch_fp/board_rw.h b/board/hatch_fp/board_rw.h
deleted file mode 100644
index 1bee6c947d..0000000000
--- a/board/hatch_fp/board_rw.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __CROS_EC_BOARD_HATCH_FP_BOARD_RW_H
-#define __CROS_EC_BOARD_HATCH_FP_BOARD_RW_H
-
-void fps_event(enum gpio_signal signal);
-
-void board_init_rw(void);
-
-#endif /* __CROS_EC_BOARD_HATCH_FP_BOARD_RW_H */
diff --git a/board/hatch_fp/build.mk b/board/hatch_fp/build.mk
deleted file mode 100644
index bb7f738704..0000000000
--- a/board/hatch_fp/build.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2019 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F412
-CHIP:=stm32
-CHIP_FAMILY:=stm32f4
-CHIP_VARIANT:=stm32f412
-
-# Don't forget that the board build.mk is included more than once to allow
-# conditional variables to be realized. This means that we need to redefine all
-# variable or the "+=" lines will compound.
-board-rw=board_rw.o
-board-y=board.o
-
-# If we're mocking the sensor detection for testing (so we can test
-# sensor/transport permutations in the unit tests), don't build the real sensor
-# detection.
-ifeq ($(HAS_MOCK_FPSENSOR_DETECT),)
- board-y+=fpsensor_detect.o
- board-rw+=fpsensor_detect_rw.o
-endif
-
-# Do not build rsa test because this board uses RSA exponent 3 and the rsa test
-# will fail on device.
-test-list-y=\
- aes \
- cec \
- compile_time_macros \
- crc \
- flash_physical \
- flash_write_protect \
- fpsensor \
- fpsensor_hw \
- mpu \
- mutex \
- pingpong \
- printf \
- queue \
- rollback \
- rollback_entropy \
- rsa3 \
- rtc \
- scratchpad \
- sha256 \
- sha256_unrolled \
- static_if \
- stm32f_rtc \
- timer_dos \
- utils \
- utils_str \
diff --git a/board/hatch_fp/dev_key.pem b/board/hatch_fp/dev_key.pem
deleted file mode 100644
index e3273cbccf..0000000000
--- a/board/hatch_fp/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4wIBAAKCAYEAwVaB9PsLDGaHIMGp+uouwQvQGhNbIifTTX40aO7Sh00Pw9va
-tqggEe7AyeEKQLy7uxCfwLFkUABCmEIusLpsp7iGvAXz3R1N80pyszNGhsqV2UQH
-WW/M5L/3nPNjqjffje0ZMwoCNeE4YBqn+puiKEBEZXnnZsPV/f5lOn6v4GP7wzkF
-lTEq9InLhoWEKjuyL6gwfVZiEvNs52umzjSx/OaY9ux1SrnR6768xQdCRpah/RDC
-DAdL1v7lnzagBXq1p5WFFkAsIQhgSk7FhC0MX3BPqGE2c68t/g5AkyT1M7SZk4+5
-sY6oor7vVmfzUsShJOP1xb/Gv91cgRMOIU4y6mnQcf7YO68ex9YpnTnL2JGpZj/j
-MHzocI9l9a6R0PX17UOvXfVg2tQg+mU+zLqCG2xMe8R7+sA893/wgQdSXDiB5Nvh
-Vbp+89WxrX2vQK5lIObCUlKNLABsdeAMiTBN9IXMLdK5EP3gbL+wKG+/82DgAwaz
-l6hJZ2TLhV+BWdE3AgEDAoIBgQCA5FajUgddma9rK8anRsnWB+ARYjzBb+IzqXhF
-9IxaM1/X5+ckcBVhSdXb61wrKH0nYGqAdkLgACxlgXR10Z3FJa8oA/fovjP3hvci
-Ii8Ehw6Q2ATmSoiYf/pookJxepUJSLt3XAF5QNBAEcVRvRbFgC2Y+++Z1+P+qZjR
-qcqVl/0s0K5jdhyjBoevA61xfSF1Gsr+OZa3TPNE8m80IyFTRGX58vjce+FH1H3Y
-r4GEZGv+CywIBN05/0O/ecADpyKZ1m8PYrkpCwuNc+BK+BkEeEary61Y/IoQLVUx
-ntb4Y2meciFj5yr7PtRLcuwllWjEU5IfKPl2bB96fxITC6ALZVI9ksC6YDfCBXuU
-rWQNG1UFC6Ux//g1BdXhuPgl9MHS0nA37oJ8BxhdIgbQ1OxLlkY+VLwWN0IrC3vp
-+MDTufSPh7sR7r4sMVTYcncyc4kE0pnXQw+LHg3lnwadwlFeKP2mJKAyeveMqTWd
-GdB0eMuyv2cp77/nrESWYDUa9ysCgcEA/dwIdGjXmhz9T4zleZUTM9/D+uzW5kG0
-eB/br+ztzP/9YC+W0+DDlHVG2bdrsJsooZEyuzDaiGd/JiW9wPTjdjtSpCksJUEE
-KImymQ2GFbs7If1ZCgcxFqdywjk8WVqxCcv/Bqhsa7lcIGOFiV9X8x067xpwNU3t
-yw8IRXchfUK80BKFPf8quP4RoYy6o4rkos28+Q+zIPSZlBaZXKsSKPQElyN0SysN
-UwGSpOJ4b9TOH88GZFLymKOY4DUhvSJXAoHBAML31grDPsla0aaUD5oj06TcIavC
-24fyqm2qZRjJxPIffcW08MfTJJVraguEJWnJW1zVZ9vRdgXTriMutUPH32MWgnF5
-iv7dxvxEPaUoL68tbryxElt1wwpfMmDf4T6sIic8CANnMLUQIE5Orwobx7btqC8q
-8aQfa+vfrlybD6Fe1j19w3zVNviNoMdFQdF2MvbdHpZeQrpevgla6T/hwb5USx14
-VHoaX8bATRfmjtTW4FcYknRttvM+y8OaD/Q8IQKBwQCpPVr4ReURaKjfs0OmY2Ii
-lS1R8znu1nhQFT0f80kzVVOVdQ836y0No4SRJPJ1vMXBC3cndecFmlTEGSkrTez5
-fOHCxh1uK1gbBncQs665J3zBU5CxWiC5xPcsJig7kctb3VSvGvLye5LAQlkGP4/3
-aNH0vErOM/PctLAuT2uo1yiKtwN+qhx7VAvBCHxtB0MXM9NQtSIV+GZiubuTHLbF
-+AMPbPgyHLOMq7cYlvr1OIlqigRC4fcQbRCVeMEowY8CgcEAgfqOsdd/MOc2bw1f
-vBfibegWcoHnr/ccSRxDZdvYoWpT2SNLL+IYY5zxXQLDm9uSPeOakoukA+J0F3R4
-19qU7LmsS6ZcqekvUtgpGMV1H3OfKHYMPPkssZTMQJVA1HLBb31arO91zgrANDR0
-sWfaefPFdMdLwr+dR+p0Pby1Fj85flPXqI4kpbPAhNjWi6Qh+ei/DumB0ZR+sOdG
-KpaBKY2HaPri/BGVLyreD+8J4znq5LsMTZ55938ygma1TX1rAoHASPiGXtnpXS5d
-TH2LAGcvUyopOMgdEHbm9Xvkdet3rLrNPkJ+tuTsv7MwUprnoQQhCowbVwQ8IzS0
-MHSMcqBT68dJsq9Y3OB7tYHtSYDEcHEpbdIt1oRHO0tWo/XMC/qRvTSTiEqCv4LQ
-x2buZlD4KfmQOHh24EwuZMB7MsyvdMvY56LWrJExx+Cb1VcItGme9pxf5Tir0ho/
-xzKyVSGh59GI0weB/PQl1queFbSYDWeKF6Ra74appkWF1cb9z8P4
------END RSA PRIVATE KEY-----
diff --git a/board/hatch_fp/ec.tasklist b/board/hatch_fp/ec.tasklist
deleted file mode 100644
index ed1e6ed294..0000000000
--- a/board/hatch_fp/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 1024) \
- TASK_ALWAYS_RW(FPSENSOR, fp_task, NULL, 4096) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 4096) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, CONSOLE_TASK_STACK_SIZE)
diff --git a/board/hatch_fp/fpsensor_detect.c b/board/hatch_fp/fpsensor_detect.c
deleted file mode 100644
index 638b5fbfe0..0000000000
--- a/board/hatch_fp/fpsensor_detect.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* 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.
- */
-
-#include "fpsensor_detect.h"
-#include "gpio.h"
-#include "timer.h"
-
-enum fp_transport_type get_fp_transport_type(void)
-{
- enum fp_transport_type ret;
-
- gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 1);
- usleep(1);
- switch (gpio_get_level(GPIO_TRANSPORT_SEL)) {
- case 0:
- ret = FP_TRANSPORT_TYPE_UART;
- break;
- case 1:
- ret = FP_TRANSPORT_TYPE_SPI;
- break;
- default:
- ret = FP_TRANSPORT_TYPE_UNKNOWN;
- break;
- }
- gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 0);
- return ret;
-}
diff --git a/board/hatch_fp/fpsensor_detect_rw.c b/board/hatch_fp/fpsensor_detect_rw.c
deleted file mode 100644
index 274cfee054..0000000000
--- a/board/hatch_fp/fpsensor_detect_rw.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "fpsensor_detect.h"
-#include "gpio.h"
-#include "timer.h"
-
-enum fp_sensor_type get_fp_sensor_type(void)
-{
- enum fp_sensor_type ret;
-
- gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 1);
- usleep(1);
- switch (gpio_get_level(GPIO_FP_SENSOR_SEL)) {
- case 0:
- ret = FP_SENSOR_TYPE_ELAN;
- break;
- case 1:
- ret = FP_SENSOR_TYPE_FPC;
- break;
- default:
- ret = FP_SENSOR_TYPE_UNKNOWN;
- break;
- }
- /* We leave GPIO_DIVIDER_HIGHSIDE enabled, since the dragonclaw
- * development board use it to enable the AND gate (U10) to CS.
- * Production boards could disable this to save power since it's
- * only needed for initial detection on those boards.
- */
- return ret;
-}
-
-enum fp_sensor_spi_select get_fp_sensor_spi_select(void)
-{
- return FP_SENSOR_SPI_SELECT_PRODUCTION;
-}
diff --git a/board/hatch_fp/gpio.inc b/board/hatch_fp/gpio.inc
deleted file mode 100644
index c5319c2bee..0000000000
--- a/board/hatch_fp/gpio.inc
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2019 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.
- */
-
-/* Interrupts */
-GPIO_INT(SLP_L, PIN(A, 8), GPIO_INT_BOTH, slp_event)
-GPIO_INT(SLP_ALT_L, PIN(B, 6), GPIO_INT_BOTH, slp_event)
-GPIO_INT(SPI1_NSS, PIN(A, 4), GPIO_INPUT, spi_event)
-
-/* Inputs */
-GPIO(TRANSPORT_SEL, PIN(B, 1), GPIO_INPUT)
-GPIO(WP, PIN(B, 7), GPIO_INPUT)
-
-/* Outputs */
-GPIO(EC_INT_L, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(DIVIDER_HIGHSIDE, PIN(B, 8), GPIO_OUT_LOW)
-
-/*
- * Unused pins.
- * Configuring unused pins as ANALOG INPUT to save power. For more info
- * look at "USING STM32F4 MCU POWER MODES WITH BEST DYNAMIC EFFICIENCY"
- * ("AN4365") section 1.2.6 and STM32F412 reference manual section 7.3.12.
- */
-UNUSED(PIN(B, 2))
-UNUSED(PIN(B, 5))
-UNUSED(PIN(C, 13))
-UNUSED(PIN(C, 14))
-UNUSED(PIN(C, 15))
-UNUSED(PIN(H, 0))
-UNUSED(PIN(H, 1))
-
-UNIMPLEMENTED(ENTERING_RW)
-
-/* USART1: PA9/PA10 (TX/RX) to AP */
-ALTERNATE(PIN_MASK(A, 0x0600), GPIO_ALT_USART, MODULE_UART, GPIO_PULL_UP)
-/* USART2: PA2/PA3 (TX/RX) to servo */
-ALTERNATE(PIN_MASK(A, 0x000C), GPIO_ALT_USART, MODULE_UART, GPIO_PULL_UP)
-/* SPI1 slave from the AP: PA4/5/6/7 (CS/CLK/MISO/MOSI) */
-ALTERNATE(PIN_MASK(A, 0x00f0), GPIO_ALT_SPI, MODULE_SPI, 0)
-
-#ifdef SECTION_IS_RW
-#include "gpio_rw.inc"
-#endif
diff --git a/board/hatch_fp/gpio_rw.inc b/board/hatch_fp/gpio_rw.inc
deleted file mode 100644
index 3dfe890c12..0000000000
--- a/board/hatch_fp/gpio_rw.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2021 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.
- */
-
-#ifndef SECTION_IS_RW
-#error "This file should only be included in RW."
-#endif
-
-/* Interrupts */
-GPIO_INT(FPS_INT, PIN(A, 0), GPIO_INT_RISING, fps_event)
-
-/* Inputs */
-GPIO(FP_SENSOR_SEL, PIN(B, 0), GPIO_INPUT)
-
-/* Outputs */
-GPIO(FP_RST_ODL, PIN(B,10), GPIO_OUT_HIGH)
-GPIO(SPI2_NSS, PIN(B,12), GPIO_OUT_HIGH)
-GPIO(USER_PRES_L, PIN(B, 9), GPIO_ODR_HIGH)
-
-/*
- * SPI2 master to sensor: PB13/14/15 (CLK/MISO/MOSI)
- * Note that we're not configuring NSS (PB12) here because we have already
- * configured it as a GPIO above and the SPI_MASTER module expects to use it
- * in software NSS management mode, not hardware management mode.
- */
-ALTERNATE(PIN_MASK(B, 0xE000), GPIO_ALT_SPI, MODULE_SPI_CONTROLLER, GPIO_PULL_DOWN)
diff --git a/board/hayato b/board/hayato
deleted file mode 120000
index e143ffc00f..0000000000
--- a/board/hayato
+++ /dev/null
@@ -1 +0,0 @@
-asurada \ No newline at end of file
diff --git a/board/helios/battery.c b/board/helios/battery.c
deleted file mode 100644
index c7168caf8a..0000000000
--- a/board/helios/battery.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Helios battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo Battery Information */
- [BATTERY_SIMPLO_C424] = {
- .fuel_gauge = {
- .manuf_name = "AS2GVID3jB",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_SIMPLO_C436] = {
- .fuel_gauge = {
- .manuf_name = "AS2GVUb3jB",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_C424;
diff --git a/board/helios/board.c b/board/helios/board.c
deleted file mode 100644
index cd2fb7e798..0000000000
--- a/board/helios/board.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Helios board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/als_opt3001.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-static void board_lid_interrupt(enum gpio_signal signal)
-{
- static int board_id = -1;
-
- if (board_id == -1) {
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS)
- board_id = val;
- }
-
- /*
- * This is a workaround with board version #1 where lid open can be
- * incorrectly triggered in 360-degree mode.
- */
- if ((board_id == 1) && tablet_get_mode())
- return;
-
- lid_interrupt(signal);
-}
-
-static void board_gmr_tablet_switch_isr(enum gpio_signal signal)
-{
- /*
- * For board version more than 2, the DUT support GMR sensor.
- * Else, blocked tablet_mode interrupt.
- */
- if (get_board_id() < 2)
- return;
-
- gmr_tablet_switch_isr(signal);
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_ICM426XX = 2,
-};
-
-static enum base_accelgyro_type base_accelgyro_config;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref_icm = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)},
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs. */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (base_accelgyro_config == BASE_GYRO_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-static void board_detect_motionsense(void)
-{
- int val;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (base_accelgyro_config != BASE_GYRO_NONE)
- return;
-
- icm_read8(&icm426xx_base_accel, ICM426XX_REG_WHO_AM_I, &val);
- if (val == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- base_accelgyro_config = BASE_GYRO_ICM426XX;
- ccprints("Base Accelgyro: ICM40608");
- } else {
- base_accelgyro_config = BASE_GYRO_BMI160;
- ccprints("Base Accelgyro: BMI160");
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsense,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsense, HOOK_PRIO_INIT_I2C + 1);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_5V_REG", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_3] = {
- "TEMP_AMB", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_4] = {
- "TEMP_CPU", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Temp1",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Temp2",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Temp3",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "Temp4",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Helios temperature control thresholds */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(60),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(65),
- .temp_fan_max = C_TO_K(80),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_a;
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-int board_tcpc_post_init(int port)
-{
- int rv = EC_SUCCESS;
-
- if (port == USB_PD_PORT_TCPC_0)
- /* Set MUX_DP_EQ to 3.6dB (0x98) */
- rv = tcpc_write(port, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
- else if (port == USB_PD_PORT_TCPC_1)
- rv = tcpc_write(port,
- PS8XXX_REG_MUX_USB_C2SS_HS_THRESHOLD, 0x80);
-
- return rv;
-}
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255) || (sku == 1);
-}
diff --git a/board/helios/board.h b/board/helios/board.h
deleted file mode 100644
index 1534b69c48..0000000000
--- a/board/helios/board.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Helios board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL) | BIT(LID_ALS))
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY 0
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C0_TCPC_RST GPIO_USB_C0_TCPC_RST_ODL
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/*
- * Helios' battery takes several seconds to come back out of its disconnect
- * state (~4.2 seconds on the unit I have, so give it a little more for margin).
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 6
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* DPTF */
-#define CONFIG_DPTF_MULTI_PROFILE
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC3 */
- ADC_TEMP_SENSOR_4, /* ADC2 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- LID_ALS,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SIMPLO_C424,
- BATTERY_SIMPLO_C436,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/helios/build.mk b/board/helios/build.mk
deleted file mode 100644
index 733912454f..0000000000
--- a/board/helios/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/helios/ec.tasklist b/board/helios/ec.tasklist
deleted file mode 100644
index 63d366a33b..0000000000
--- a/board/helios/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/helios/gpio.inc b/board/helios/gpio.inc
deleted file mode 100644
index d16e1643be..0000000000
--- a/board/helios/gpio.inc
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, board_lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(C, 7), GPIO_INT_BOTH, board_gmr_tablet_switch_isr)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, motion_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(9, 7), GPIO_ODR_HIGH)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(NC_94, PIN(9, 4), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3C), 0, MODULE_ADC, 0) /* ADC0, ADC1, ADC2, ADC3 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/helios/led.c b/board/helios/led.c
deleted file mode 100644
index 94f5bdb973..0000000000
--- a/board/helios/led.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Helios
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/helios/vif_override.xml b/board/helios/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/helios/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/herobrine_npcx9/battery.c b/board/herobrine_npcx9/battery.c
deleted file mode 100644
index f6622f11ee..0000000000
--- a/board/herobrine_npcx9/battery.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all herobrine_npcx9 battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* AP16L5J */
- [BATTERY_AP16L5J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP16L5J;
diff --git a/board/herobrine_npcx9/board.c b/board/herobrine_npcx9/board.c
deleted file mode 100644
index f63f5c7991..0000000000
--- a/board/herobrine_npcx9/board.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Herobrine board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#include "gpio_list.h"
-
-static uint8_t sku_id;
-
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
- GPIO_RTC_EC_WAKE_ODL,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Use 80 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /*
- * Unmask 0x08 in [0] (KSO_00/KSI_03, the new location of Search key);
- * as it still uses the legacy location (KSO_01/KSI_00).
- */
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca
- },
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
-};
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"rtc", I2C_PORT_RTC, 400, GPIO_EC_I2C_RTC_SCL,
- GPIO_EC_I2C_RTC_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Read SKU ID from GPIO and initialize variables for board variants */
-static void sku_id_init(void)
-{
- int bits[3];
-
- bits[0] = gpio_get_ternary(GPIO_SKU_ID0);
- bits[1] = gpio_get_ternary(GPIO_SKU_ID1);
- bits[2] = gpio_get_ternary(GPIO_SKU_ID2);
-
- sku_id = binary_first_base3_from_bits(bits, ARRAY_SIZE(bits));
- CPRINTS("SKU ID: %u", sku_id);
-}
-DECLARE_HOOK(HOOK_INIT, sku_id_init, HOOK_PRIO_INIT_I2C + 1);
-
-__override uint32_t board_get_sku_id(void)
-{
- return sku_id;
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable interrupt for BMI260 sensor */
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Mutexes */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi260_data;
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: BMI260: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
diff --git a/board/herobrine_npcx9/board.h b/board/herobrine_npcx9/board.h
deleted file mode 100644
index e0ca39fac0..0000000000
--- a/board/herobrine_npcx9/board.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Herobrine board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* TODO(waihong): Remove the following bringup features */
-#define CONFIG_BRINGUP
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands. */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define CONFIG_CMD_GPIO_EXTENDED
-#define CONFIG_CMD_POWERINDEBUG
-#define CONFIG_I2C_DEBUG
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-#define CONFIG_PWM_KBLIGHT
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* USB-A */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Sensors */
-/* BMI260 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* BMA253 lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_SWITCHCAP_PG GPIO_SRC_VPH_PWR_PG
-#define GPIO_ACOK_OD GPIO_CHG_ACOK_OD
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_S5
-#define GPIO_POWER_GOOD GPIO_MB_POWER_GOOD
-#define GPIO_EC_INT_L GPIO_AP_EC_INT_L
-#define GPIO_DP_HOT_PLUG_DET GPIO_DP_HOT_PLUG_DET_R
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_DISPLIGHT,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_AP16L5J,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/herobrine_npcx9/build.mk b/board/herobrine_npcx9/build.mk
deleted file mode 100644
index 601c45a042..0000000000
--- a/board/herobrine_npcx9/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=herobrine
-
-board-y+=battery.o
-board-y+=board.o
-board-y+=led.o
-board-y+=switchcap.o
-board-y+=usbc_config.o
diff --git a/board/herobrine_npcx9/ec.tasklist b/board/herobrine_npcx9/ec.tasklist
deleted file mode 100644
index 5beeb38feb..0000000000
--- a/board/herobrine_npcx9/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/herobrine_npcx9/gpio.inc b/board/herobrine_npcx9/gpio.inc
deleted file mode 100644
index 239bedd95d..0000000000
--- a/board/herobrine_npcx9/gpio.inc
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-GPIO_INT(USB_A0_OC_ODL, PIN(F, 4), GPIO_INT_BOTH | GPIO_PULL_UP, usba_oc_interrupt)
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 0), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(6, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_WP_ODL, PIN(D, 3), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(5, 1), GPIO_INT_BOTH, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low.
- */
-GPIO_INT(MB_POWER_GOOD, PIN(3, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* PP1800_L18B from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-/* Sensor interrupts */
-GPIO_INT(TABLET_MODE_L, PIN(C, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 3), GPIO_INT_FALLING, bmi260_interrupt) /* Accelerometer/gyro interrupt */
-
-GPIO(RTC_EC_WAKE_ODL , PIN(0, 2), GPIO_INPUT) /* RTC interrupt */
-GPIO(EC_ENTERING_RW, PIN(7, 2), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-GPIO(EC_GSC_PACKET_MODE, PIN(8, 3), GPIO_OUT_LOW) /* GSC Packet Mode */
-
-/* PMIC/AP 1.8V */
-GPIO(PMIC_RESIN_L, PIN(A, 0), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(A, 2), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(AP_EC_INT_L, PIN(5, 6), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-
-/* Power enables */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap */
-GPIO(EN_PP5000_S5, PIN(7, 3), GPIO_OUT_HIGH) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Sensors */
-GPIO(LID_ACCEL_INT_L, PIN(A, 1), GPIO_INPUT) /* Lid accel sensor interrupt */
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TP_INT_GATE, PIN(7, 4), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_OUT_HIGH) /* Port-0 TCPC chip reset */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_OUT_HIGH) /* Port-1 TCPC chip reset */
-GPIO(DP_MUX_OE_L, PIN(B, 1), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET_R, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* USB-A */
-GPIO(EN_USB_A_5V, PIN(F, 0), GPIO_OUT_LOW)
-GPIO(USB_A_CDP_ILIM_EN_L, PIN(7, 5), GPIO_OUT_HIGH) /* H:CDP, L:SDP. Only one USB-A port, always CDP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C0, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C0, PIN(C, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_Y_C1, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C1, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_RTC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_RTC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(9, 4), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 7), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(A, 5), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(6, 7), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(7, 0), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(E, 1), GPIO_INPUT)
-
-/* Switchcap */
-/*
- * GPIO0 is configured as PVC_PG. When the chip in power down mode, it outputs
- * high-Z. Set pull-down to avoid floating.
- */
-GPIO(SRC_VPH_PWR_PG, PIN(E, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* Switchcap GPIO0 */
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. */
-UNUSED(PIN(5, 2))
-UNUSED(PIN(5, 4))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(D, 1))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(E, 3))
-UNUSED(PIN(C, 1))
-UNUSED(PIN(0, 4))
-UNUSED(PIN(D, 6))
-UNUSED(PIN(3, 2))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(8, 6))
-UNUSED(PIN(D, 4))
-UNUSED(PIN(4, 1))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 7))
-UNUSED(PIN(A, 4))
-UNUSED(PIN(9, 6))
-UNUSED(PIN(9, 3))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(5, 0))
-UNUSED(PIN(8, 1))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(F, 0x0C), 1, MODULE_I2C, 0) /* I2C4 (GPIOF2/F3) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* PSL_IN1 (GPIOD2) - ACOK_OD */
-ALTERNATE(PIN_MASK(0, 0x01), 1, MODULE_PMU, 0) /* PSL_IN2 (GPIO00) - EC_PWR_BTN_ODL */
-ALTERNATE(PIN_MASK(0, 0x02), 1, MODULE_PMU, 0) /* PSL_IN3 (GPIO01) - LID_OPEN_EC */
-ALTERNATE(PIN_MASK(0, 0x04), 1, MODULE_PMU, 0) /* PSL_IN4 (GPIO02) - RTC_EC_WAKE_ODL */
-
-/* Keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* Keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO10 (GPIO07), KSO11 (GPIO06), KSO12 (GPIO05) */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO03 (GPIO16), KSO04 (GPIO15), KSO05 (GPIO14), KSO06 (GPIO13), KSO07 (GPIO12), KSO08 (GPIO11), KSO09 (GPIO10) */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO00 (GPIO21), KSO01 (GPIO20) */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI2 (GPIO27), KSI3 (GPIO26), KSI4 (GPIO25), KSI5 (GPIO24), KSI6 (GPIO23), KSI7 (GPIO22) */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI0 (GPIO31), KSI1 (GPIO30) */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2) /* KSO02 (GPIO17) */
diff --git a/board/herobrine_npcx9/led.c b/board/herobrine_npcx9/led.c
deleted file mode 100644
index 295c8effeb..0000000000
--- a/board/herobrine_npcx9/led.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_LEFT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void side_led_set_color(int port, enum led_color color)
-{
- gpio_set_level(port ? GPIO_EC_CHG_LED_Y_C1 : GPIO_EC_CHG_LED_Y_C0,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(port ? GPIO_EC_CHG_LED_W_C1 : GPIO_EC_CHG_LED_W_C0,
- (color == LED_WHITE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- int port;
-
- switch (led_id) {
- case EC_LED_ID_RIGHT_LED:
- port = 0;
- break;
- case EC_LED_ID_LEFT_LED:
- port = 1;
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- side_led_set_color(port, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- side_led_set_color(port, LED_AMBER);
- else
- side_led_set_color(port, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- side_led_set_color(0, (port == 0) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- side_led_set_color(1, (port == 1) ? color : LED_OFF);
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() <= 10)
- side_led_set_color(0,
- (battery_ticks & 0x4) ? LED_WHITE : LED_OFF);
- else
- side_led_set_color(0, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- side_led_set_color(1, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks & 0x4) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_LEFT_LED, 1);
- led_auto_control(EC_LED_ID_RIGHT_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_WHITE : LED_OFF;
-
- led_auto_control(EC_LED_ID_LEFT_LED, 0);
- led_auto_control(EC_LED_ID_RIGHT_LED, 0);
-
- side_led_set_color(0, color);
- side_led_set_color(1, color);
-}
diff --git a/board/herobrine_npcx9/switchcap.c b/board/herobrine_npcx9/switchcap.c
deleted file mode 100644
index 16b0db6ef6..0000000000
--- a/board/herobrine_npcx9/switchcap.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "gpio.h"
-#include "power/qcom.h"
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_ON);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_PG);
-}
diff --git a/board/herobrine_npcx9/usbc_config.c b/board/herobrine_npcx9/usbc_config.c
deleted file mode 100644
index 3662b966e0..0000000000
--- a/board/herobrine_npcx9/usbc_config.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Herobrine board-specific USB-C configuration */
-
-#include "bc12/pi3usb9201_public.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "config.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ppc/sn5s330_public.h"
-#include "system.h"
-#include "tcpm/ps8xxx_public.h"
-#include "tcpm/tcpci.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "usbc_config.h"
-#include "usb_mux.h"
-#include "usbc_ocp.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* GPIO Interrupt Handlers */
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void usba_oc_deferred(void)
-{
- /* Use next number after all USB-C ports to indicate the USB-A port */
- board_overcurrent_event(CONFIG_USB_PD_PORT_MAX_COUNT,
- !gpio_get_level(GPIO_USB_A0_OC_ODL));
-}
-DECLARE_DEFERRED(usba_oc_deferred);
-
-void usba_oc_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&usba_oc_deferred_data, 0);
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Initialize board USC-C things */
-static void board_init_usbc(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Enable USB-A overcurrent interrupt */
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init_usbc, HOOK_PRIO_DEFAULT);
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
diff --git a/board/herobrine_npcx9/usbc_config.h b/board/herobrine_npcx9/usbc_config.h
deleted file mode 100644
index 69f546ef85..0000000000
--- a/board/herobrine_npcx9/usbc_config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Herobrine board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#include "gpio.h"
-
-void tcpc_alert_event(enum gpio_signal signal);
-void usb0_evt(enum gpio_signal signal);
-void usb1_evt(enum gpio_signal signal);
-void usba_oc_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/herobrine_npcx9/vif_override.xml b/board/herobrine_npcx9/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/herobrine_npcx9/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/hoho/board.c b/board/hoho/board.c
deleted file mode 100644
index 07b772c826..0000000000
--- a/board/hoho/board.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Copyright 2014 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.
- */
-/* Hoho dongle configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "mcdp28x0.h"
-#include "registers.h"
-#include "task.h"
-#include "usb_bb.h"
-#include "usb_descriptor.h"
-#include "usb_pd.h"
-#include "timer.h"
-#include "util.h"
-
-static volatile uint64_t hpd_prev_ts;
-static volatile int hpd_prev_level;
-
-void hpd_event(enum gpio_signal signal);
-#include "gpio_list.h"
-
-/**
- * Hotplug detect deferred task
- *
- * Called after level change on hpd GPIO to evaluate (and debounce) what event
- * has occurred. There are 3 events that occur on HPD:
- * 1. low : downstream display sink is deattached
- * 2. high : downstream display sink is attached
- * 3. irq : downstream display sink signalling an interrupt.
- *
- * The debounce times for these various events are:
- * HPD_USTREAM_DEBOUNCE_LVL : min pulse width of level value.
- * HPD_USTREAM_DEBOUNCE_IRQ : min pulse width of IRQ low pulse.
- *
- * lvl(n-2) lvl(n-1) lvl prev_delta now_delta event
- * ----------------------------------------------------
- * 1 0 1 <IRQ n/a low glitch (ignore)
- * 1 0 1 >IRQ <LVL irq
- * x 0 1 n/a >LVL high
- * 0 1 0 <LVL n/a high glitch (ignore)
- * x 1 0 n/a >LVL low
- */
-
-void hpd_irq_deferred(void)
-{
- pd_send_hpd(0, hpd_irq);
-}
-DECLARE_DEFERRED(hpd_irq_deferred);
-
-void hpd_lvl_deferred(void)
-{
- int level = gpio_get_level(GPIO_DP_HPD);
-
- if (level != hpd_prev_level)
- /* It's a glitch while in deferred or canceled action */
- return;
-
- pd_send_hpd(0, (level) ? hpd_high : hpd_low);
-}
-DECLARE_DEFERRED(hpd_lvl_deferred);
-
-void hpd_event(enum gpio_signal signal)
-{
- timestamp_t now = get_time();
- int level = gpio_get_level(signal);
- uint64_t cur_delta = now.val - hpd_prev_ts;
-
- /* store current time */
- hpd_prev_ts = now.val;
-
- /* All previous hpd level events need to be re-triggered */
- hook_call_deferred(&hpd_lvl_deferred_data, -1);
-
- /* It's a glitch. Previous time moves but level is the same. */
- if (cur_delta < HPD_USTREAM_DEBOUNCE_IRQ)
- return;
-
- if ((!hpd_prev_level && level) &&
- (cur_delta < HPD_USTREAM_DEBOUNCE_LVL))
- /* It's an irq */
- hook_call_deferred(&hpd_irq_deferred_data, 0);
- else if (cur_delta >= HPD_USTREAM_DEBOUNCE_LVL)
- hook_call_deferred(&hpd_lvl_deferred_data,
- HPD_USTREAM_DEBOUNCE_LVL);
-
- hpd_prev_level = level;
-}
-
-/* Initialize board. */
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= BIT(0);
- /* Remap USART DMA to match the USART driver */
- STM32_SYSCFG_CFGR1 |= BIT(9) | BIT(10);/* Remap USART1 RX/TX DMA */
-}
-
-#ifdef CONFIG_SPI_FLASH
-
-static void board_init_spi2(void)
-{
- /* Remap SPI2 to DMA channels 6 and 7 */
- STM32_SYSCFG_CFGR1 |= BIT(24);
-
- /* Set pin NSS to general purpose output mode (01b). */
- /* Set pins SCK, MISO, and MOSI to alternate function (10b). */
- STM32_GPIO_MODER(GPIO_B) &= ~0xff000000;
- STM32_GPIO_MODER(GPIO_B) |= 0xa9000000;
-
- /* Set all four pins to alternate function 0 */
- STM32_GPIO_AFRH(GPIO_B) &= ~(0xffff0000);
-
- /* Set all four pins to output push-pull */
- STM32_GPIO_OTYPER(GPIO_B) &= ~(0xf000);
-
- /* Set pullup on NSS */
- STM32_GPIO_PUPDR(GPIO_B) |= 0x1000000;
-
- /* Set all four pins to high speed */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xff000000;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= BIT(14);
- STM32_RCC_APB1RSTR &= ~BIT(14);
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-}
-#endif /* CONFIG_SPI_FLASH */
-
-static void factory_validation_deferred(void)
-{
- struct mcdp_info info;
-
- mcdp_enable();
-
- /* test mcdp via serial to validate function */
- if (!mcdp_get_info(&info) && (MCDP_FAMILY(info.family) == 0x0010) &&
- (MCDP_CHIPID(info.chipid) == 0x2850)) {
- gpio_set_level(GPIO_MCDP_READY, 1);
- pd_log_event(PD_EVENT_VIDEO_CODEC,
- PD_LOG_PORT_SIZE(0, sizeof(info)),
- 0, &info);
- }
-
- mcdp_disable();
-}
-DECLARE_DEFERRED(factory_validation_deferred);
-
-/* Initialize board. */
-static void board_init(void)
-{
- timestamp_t now;
-#ifdef CONFIG_SPI_FLASH
- board_init_spi2();
-#endif
- now = get_time();
- hpd_prev_level = gpio_get_level(GPIO_DP_HPD);
- hpd_prev_ts = now.val;
- gpio_enable_interrupt(GPIO_DP_HPD);
-
- gpio_set_level(GPIO_STM_READY, 1); /* factory test only */
- /* Delay needed to allow HDMI MCU to boot. */
- hook_call_deferred(&factory_validation_deferred_data, 200*MSEC);
-}
-
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_CH_CC1_PD] = {"USB_C_CC1_PD", 3300, 4096, 0, STM32_AIN(1)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const void * const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Hoho"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_BB_URL] = USB_STRING_DESC(USB_GOOGLE_TYPEC_URL),
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/**
- * USB configuration
- * Any type-C device with alternate mode capabilities must have the following
- * set of descriptors.
- *
- * 1. Standard Device
- * 2. BOS
- * 2a. Container ID
- * 2b. Billboard Caps
- */
-struct my_bos {
- struct usb_bos_hdr_descriptor bos;
- struct usb_contid_caps_descriptor contid_caps;
- struct usb_bb_caps_base_descriptor bb_caps;
- struct usb_bb_caps_svid_descriptor bb_caps_svids[1];
-};
-
-static struct my_bos bos_desc = {
- .bos = {
- .bLength = USB_DT_BOS_SIZE,
- .bDescriptorType = USB_DT_BOS,
- .wTotalLength = (USB_DT_BOS_SIZE + USB_DT_CONTID_SIZE +
- USB_BB_CAPS_BASE_SIZE +
- USB_BB_CAPS_SVID_SIZE * 1),
- .bNumDeviceCaps = 2, /* contid + bb_caps */
- },
- .contid_caps = {
- .bLength = USB_DT_CONTID_SIZE,
- .bDescriptorType = USB_DT_DEVICE_CAPABILITY,
- .bDevCapabilityType = USB_DC_DTYPE_CONTID,
- .bReserved = 0,
- .ContainerID = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- },
- .bb_caps = {
- .bLength = (USB_BB_CAPS_BASE_SIZE + USB_BB_CAPS_SVID_SIZE * 1),
- .bDescriptorType = USB_DT_DEVICE_CAPABILITY,
- .bDevCapabilityType = USB_DC_DTYPE_BILLBOARD,
- .iAdditionalInfoURL = USB_STR_BB_URL,
- .bNumberOfAlternateModes = 1,
- .bPreferredAlternateMode = 1,
- .VconnPower = 0,
- .bmConfigured = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- .bReserved = 0,
- },
- .bb_caps_svids = {
- {
- .wSVID = 0xff01, /* TODO(tbroch) def'd in other CL remove hardcode */
- .bAlternateMode = 1,
- .iAlternateModeString = USB_STR_BB_URL, /* TODO(crosbug.com/p/32687) */
- },
- },
-};
-
-const struct bos_context bos_ctx = {
- .descp = (void *)&bos_desc,
- .size = sizeof(struct my_bos),
-};
diff --git a/board/hoho/board.h b/board/hoho/board.h
deleted file mode 100644
index 8e6ec34b3d..0000000000
--- a/board/hoho/board.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* Hoho dongle configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART1 (PA9/PA10) */
-#define CONFIG_UART_CONSOLE 1
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_ADC
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_CMD_SPI_FLASH
-#define CONFIG_HW_CRC
-#define CONFIG_RSA
-#define CONFIG_RWSIG
-#define CONFIG_RWSIG_TYPE_USBPD1
-#define CONFIG_SHA256
-/* TODO(tbroch) Re-enable once STM spi master can be inhibited at boot so it
- doesn't interfere with HDMI loading its f/w */
-#undef CONFIG_SPI_FLASH
-#define CONFIG_SPI_CS_GPIO GPIO_PD_MCDP_SPI_CS_L
-#define CONFIG_USB
-#define CONFIG_USB_BOS
-#define CONFIG_USB_INHIBIT_CONNECT
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_HOHO
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MINOR 2
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_FLASH
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-#define CONFIG_USB_PD_LOGGING
-#undef CONFIG_EVENT_LOG_SIZE
-#define CONFIG_EVENT_LOG_SIZE 256
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#define CONFIG_USB_PD_VBUS_DETECT_NONE
-/* mcdp2850 serial interface */
-#define CONFIG_MCDP28X0 usart3_hw
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART3
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_TASK_PROFILING
-
-/* USB configuration */
-#define CONFIG_USB_PID 0x5010
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-
-/* No Write-protect GPIO, force the write-protection */
-#define CONFIG_WP_ALWAYS
-#define CONFIG_FLASH_READOUT_PROTECTION
-
-/* Inform VIF generator that this board is an Alt Mode Adapter */
-#define CONFIG_USB_ALT_MODE_ADAPTER
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-#include "gpio_signal.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_CH_CC1_PD = 0,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_VERSION,
- USB_STR_BB_URL,
-
- USB_STR_COUNT
-};
-
-/* we are never a source : don't care about power supply */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 0 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 0 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 1000
-#define PD_MAX_POWER_MW 1500
-#define PD_MAX_CURRENT_MA 300
-#define PD_MAX_VOLTAGE_MV 5000
-
-#endif /* !__ASSEMBLER__ */
-
-/* USB Device class */
-#define USB_DEV_CLASS USB_CLASS_BILLBOARD
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_COUNT 0
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_COUNT 1
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/hoho/build.mk b/board/hoho/build.mk
deleted file mode 100644
index 18799c3b9f..0000000000
--- a/board/hoho/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072B
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/hoho/dev_key.pem b/board/hoho/dev_key.pem
deleted file mode 100644
index 08d5bd414c..0000000000
--- a/board/hoho/dev_key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEApfbLqgOYIM6AfRI6SJcj1Crengsp+yjHXtwZFOH6WDVP5Q9c
-KSbwqoKHEKTbWJ90ymjqjfi382hl64L/V6J8SfIqGhrFztwXLhJOwFXRK5Jgzkk+
-YUByDzAKTKOlzvvRqk10Tq5a3wphg1SxGVLLOOsTGoKhGI93Wkf2j8AibMlVVZzz
-Q8DmVszkYZL+Kchv6h1FgSvBW0oZa5tVod+0XToWSrPEYnBWs0zZEywCusIXMy7D
-LaqMPFB4LTkDZ9Ne8jnB5xRad+ME4CgxZqUwGC7tdFdHdiiXpIwzIoxVk6xFIZUF
-uusG4RR3O2ubaPJ/Fpf3UuuCWmddk37WaC7o7QIDAQABAoIBAAG4L94AEYhte0lQ
-cggkgLuHAi1zAilW/9HMx/m+aaCWVNCTuym1/JJXrdyPSLJ/XG9obN2xsP41m7C3
-97tJtK3zc1o34srE3vycNfKqMPOZnaUlfx700vmzTrgCjgo5868nBEh4Z/qdmesJ
-aphPkklxrg39QnwFqH/n9PcCT5j+7LyCeWeGbWxKfpzP2CT6v8XxT3XY1mtFSa4j
-dfYaqb+aunYAhjEb4gqa48hyNTQAZskDOUr1TK433wbGqRughXXrQQix+FBW483u
-IGo8aGgiQsjYxHX+ynNTMKW1Oap9WZRWVxF09Ph1f3MT+k3gKqM/0AejlDfBuTDu
-aLxiKIUCgYEA1FZmfGn4RNlghv/ZCAlfWqbf5NA1/wA/Knk8u0R+kMQ71e8NFjOc
-Ym3Uix+89KcKDBIgHn1360pNvSCeTyVU28wQ2bst5s6pvu4FYDvjym2nTgXcFJX6
-DDnZfVZ+WLSFR8E76LQLJGd00DSq0/uBw3ULyRSirkuQnFI3w3u4BH8CgYEAyBdD
-UMV83kwQaDMuGgKqZtD4Ou3s/MDzMwcNgUSjLIueFdsXVnlzYQwwJXuLFkrp5COx
-Zyoha/d1QQawnYehKmHWWy7qN/l0CO+F2DGb1E6pNXJrn+zn33Mgz9ms8421eqqn
-ATQbq6ZQInk1IrkLfyZ3t09l6cyBMJuJjkoBrJMCgYA2Hfsq1FtJONnILmbjDHh4
-AzXm/EX2wtpWeeXHmLJlNQ5G/REpymeeEn3sI1+mPvhpkSkMfE/W8O4VOL4AT/Rr
-vHvC8ljFjYBnwAQwvbLVwdK1KPspZ/v9p7TNpAC5nPCnFBGvwktgsNltwy6SrnQp
-G6iwTAkWQP4PSUkbEmoZAwKBgF0OLJlQ70y3FV5Qhx1DphohD4DgjDnURoaxvf8j
-e7vIxuGlPgpSe21j7LRR65KXjoUycFvpRRfgQyDVyqfInxSF4doQTI9xrRxGwPmV
-wMIRPzKDHziGRiQud9ESjBPNENyWpwqxQDkpJNWThzm503Xz3vNasqv0FxUTEPsi
-wfqPAoGABXPl7baUkpYzppAJqRlGNxsMjpbWscDPjmPosrGs6d81DP287s/IjfDR
-ysQptvhJRK/lubM8As+d0/VLd6P8wk8dyZR1nRELwnVaPC55cS5+YIjgXK9TBmLA
-hC0BIgujJS2qbXQRQF7yX925Gg77WLN2sJqtVg1Brine056pHTA=
------END RSA PRIVATE KEY-----
diff --git a/board/hoho/ec.tasklist b/board/hoho/ec.tasklist
deleted file mode 100644
index 41fc047d6a..0000000000
--- a/board/hoho/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/hoho/gpio.inc b/board/hoho/gpio.inc
deleted file mode 100644
index 6d0701ded1..0000000000
--- a/board/hoho/gpio.inc
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(DP_HPD, PIN(A, 0), GPIO_INT_BOTH, hpd_event)
-
-GPIO(USB_C_CC1_PD, PIN(A, 1), GPIO_ANALOG)
-GPIO(STM_READY, PIN(A, 2), GPIO_OUT_LOW) /* factory test only */
-GPIO(MCDP_RESET_L, PIN(A, 3), GPIO_OUT_HIGH)
-GPIO(PD_DAC_REF, PIN(A, 4), GPIO_ANALOG)
-
-GPIO(MCDP_READY, PIN(A, 7), GPIO_OUT_LOW) /* factory test only */
-GPIO(PD_SBU_ENABLE, PIN(A, 8), GPIO_OUT_LOW)
-GPIO(USB_DM, PIN(A, 11), GPIO_ANALOG)
-GPIO(USB_DP, PIN(A, 12), GPIO_ANALOG)
-GPIO(PD_CC1_TX_EN, PIN(A, 15), GPIO_OUT_LOW)
-
-GPIO(MCDP_GPIO1, PIN(B, 0), GPIO_INPUT)
-GPIO(MCDP_CONFIG1, PIN(B, 1), GPIO_INPUT)
-GPIO(PD_MCDP_SPI_WP_L, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(PD_CC1_TX_DATA, PIN(B, 4), GPIO_OUT_LOW)
-GPIO(PD_MCDP_SPI_CS_L, PIN(B, 12), GPIO_INPUT)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(B, 0x0008), 0, MODULE_USB_PD, 0) /* SPI1: SCK(PB3) */
-ALTERNATE(PIN_MASK(B, 0x0200), 2, MODULE_USB_PD, 0) /* TIM17_CH1: PB9 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, GPIO_PULL_UP) /* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(B, 0x0C00), 4, MODULE_UART, GPIO_PULL_UP) /* USART3: PB10/PB11 */
diff --git a/board/hoho/usb_pd_config.h b/board/hoho/usb_pd_config.h
deleted file mode 100644
index 2f01c275a8..0000000000
--- a/board/hoho/usb_pd_config.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_C0 17
-#define TIM_CLOCK_PD_RX_C0 1
-
-#define TIM_CLOCK_PD_TX(p) TIM_CLOCK_PD_TX_C0
-#define TIM_CLOCK_PD_RX(p) TIM_CLOCK_PD_RX_C0
-
-/* Timer channel */
-#define TIM_RX_CCR_C0 1
-#define TIM_TX_CCR_C0 1
-
-/* RX timer capture/compare register */
-#define TIM_CCR_C0 (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_C0, TIM_RX_CCR_C0))
-#define TIM_RX_CCR_REG(p) TIM_CCR_C0
-
-/* TX and RX timer register */
-#define TIM_REG_TX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_TX_C0))
-#define TIM_REG_RX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_RX_C0))
-#define TIM_REG_TX(p) TIM_REG_TX_C0
-#define TIM_REG_RX(p) TIM_REG_RX_C0
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* TX is using SPI1 on PB3-4 */
-#define SPI_REGS(p) STM32_SPI1_REGS
-
-static inline void spi_enable_clock(int port)
-{
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
-}
-
-/* SPI1_TX no remap needed */
-#define DMAC_SPI_TX(p) STM32_DMAC_CH3
-
-/* RX is using COMP1 triggering TIM1 CH1 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM1_IC1
-#define CMP2OUTSEL 0
-
-#define TIM_TX_CCR_IDX(p) TIM_TX_CCR_C0
-#define TIM_RX_CCR_IDX(p) TIM_RX_CCR_C0
-#define TIM_CCR_CS 1
-#define EXTI_COMP_MASK(p) BIT(21)
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-/* TIM1_CH1 no remap needed */
-#define DMAC_TIM_RX(p) STM32_DMAC_CH2
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- /* 40 Mhz pin speed on TX_EN (PA15) */
- STM32_GPIO_OSPEEDR(GPIO_A) |= 0xC0000000;
- /* 40 MHz pin speed on SPI CLK/MOSI (PB3/4) TIM17_CH1 (PB9) */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000C03C0;
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
-}
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
- /* PB4 is SPI1_MISO */
- gpio_set_alternate_function(GPIO_B, 0x0010, 0);
-
- gpio_set_level(GPIO_PD_CC1_TX_EN, 1);
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- /* output low on SPI TX (PB4) to disable the FET */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B)
- & ~(3 << (2*4)))
- | (1 << (2*4));
- /* put the low level reference in Hi-Z */
- gpio_set_level(GPIO_PD_CC1_TX_EN, 0);
-}
-
-static inline void pd_select_polarity(int port, int polarity)
-{
- /*
- * use the right comparator : CC1 -> PA1 (COMP1 INP)
- * use VrefInt / 2 as INM (about 600mV)
- */
- STM32_COMP_CSR = (STM32_COMP_CSR & ~STM32_COMP_CMP1INSEL_MASK)
- | STM32_COMP_CMP1EN | STM32_COMP_CMP1INSEL_VREF12;
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- gpio_config_module(MODULE_USB_PD, 1);
-}
-
-static inline void pd_set_host_mode(int port, int enable) {}
-
-static inline void pd_config_init(int port, uint8_t power_role)
-{
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
-}
-
-static inline int pd_adc_read(int port, int cc)
-{
- /* only one CC line, assume other one is always low */
- return (cc == 0) ? adc_read_channel(ADC_CH_CC1_PD) : 0;
-}
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
diff --git a/board/hoho/usb_pd_policy.c b/board/hoho/usb_pd_policy.c
deleted file mode 100644
index 2ee83d32aa..0000000000
--- a/board/hoho/usb_pd_policy.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "adc.h"
-#include "board.h"
-#include "common.h"
-#include "console.h"
-#include "cros_version.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "usb_api.h"
-#include "usb_bb.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* Source PDOs */
-const uint32_t pd_src_pdo[] = {};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-
-/* Fake PDOs : we just want our pre-defined voltages */
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, PDO_FIXED_COMM_CAP),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-/* Holds valid object position (opos) for entered mode */
-static int alt_mode[PD_AMODE_COUNT];
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- /* No battery, nothing to do */
- return;
-}
-
-int pd_set_power_supply_ready(int port)
-{
- return EC_SUCCESS;
-}
-
-void pd_power_supply_reset(int port)
-{
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return 1;
-}
-
-__override int pd_check_power_swap(int port)
-{
- /* Always refuse power swap */
- return 0;
-}
-
-__override int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Always refuse data swap */
- return 0;
-}
-
-__override void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
-}
-
-__override void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
-}
-/* ----------------- Vendor Defined Messages ------------------ */
-const uint32_t vdo_idh = VDO_IDH(0, /* data caps as USB host */
- 1, /* data caps as USB device */
- IDH_PTYPE_AMA, /* Alternate mode */
- 1, /* supports alt modes */
- USB_VID_GOOGLE);
-
-const uint32_t vdo_product = VDO_PRODUCT(CONFIG_USB_PID, CONFIG_USB_BCD_DEV);
-
-const uint32_t vdo_ama = VDO_AMA(CONFIG_USB_PD_IDENTITY_HW_VERS,
- CONFIG_USB_PD_IDENTITY_SW_VERS,
- 0, 0, 0, 0, /* SS[TR][12] */
- 0, /* Vconn power */
- 0, /* Vconn power required */
- 1, /* Vbus power required */
- AMA_USBSS_BBONLY /* USB SS support */);
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- payload[VDO_I(IDH)] = vdo_idh;
- /* TODO(tbroch): Do we plan to obtain TID (test ID) for hoho */
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- payload[VDO_I(AMA)] = vdo_ama;
- return VDO_I(AMA) + 1;
-}
-
-static int svdm_response_svids(int port, uint32_t *payload)
-{
- payload[1] = VDO_SVID(USB_SID_DISPLAYPORT, USB_VID_GOOGLE);
- payload[2] = 0;
- return 3;
-}
-
-#define OPOS_DP 1
-#define OPOS_GFU 1
-
-const uint32_t vdo_dp_modes[1] = {
- VDO_MODE_DP(0, /* UFP pin cfg supported : none */
- MODE_DP_PIN_C, /* DFP pin cfg supported */
- 1, /* no usb2.0 signalling in AMode */
- CABLE_PLUG, /* its a plug */
- MODE_DP_V13, /* DPv1.3 Support, no Gen2 */
- MODE_DP_SNK) /* Its a sink only */
-};
-
-const uint32_t vdo_goog_modes[1] = {
- VDO_MODE_GOOGLE(MODE_GOOGLE_FU)
-};
-
-static int svdm_response_modes(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) {
- memcpy(payload + 1, vdo_dp_modes, sizeof(vdo_dp_modes));
- return ARRAY_SIZE(vdo_dp_modes) + 1;
- } else if (PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) {
- memcpy(payload + 1, vdo_goog_modes, sizeof(vdo_goog_modes));
- return ARRAY_SIZE(vdo_goog_modes) + 1;
- } else {
- return 0; /* nak */
- }
-}
-
-static int dp_status(int port, uint32_t *payload)
-{
- int opos = PD_VDO_OPOS(payload[0]);
- int hpd = gpio_get_level(GPIO_DP_HPD);
- if (opos != OPOS_DP)
- return 0; /* nak */
-
- payload[1] = VDO_DP_STATUS(0, /* IRQ_HPD */
- (hpd == 1), /* HPD_HI|LOW */
- 0, /* request exit DP */
- 0, /* request exit USB */
- 0, /* MF pref */
- gpio_get_level(GPIO_PD_SBU_ENABLE),
- 0, /* power low */
- 0x2);
- return 2;
-}
-
-static int dp_config(int port, uint32_t *payload)
-{
- if (PD_DP_CFG_DPON(payload[1]))
- gpio_set_level(GPIO_PD_SBU_ENABLE, 1);
- return 1;
-}
-
-static int svdm_enter_mode(int port, uint32_t *payload)
-{
- int rv = 0; /* will generate a NAK */
-
- /* SID & mode request is valid */
- if ((PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) &&
- (PD_VDO_OPOS(payload[0]) == OPOS_DP)) {
- alt_mode[PD_AMODE_DISPLAYPORT] = OPOS_DP;
- rv = 1;
- pd_log_event(PD_EVENT_VIDEO_DP_MODE, 0, 1, NULL);
- } else if ((PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) &&
- (PD_VDO_OPOS(payload[0]) == OPOS_GFU)) {
- alt_mode[PD_AMODE_GOOGLE] = OPOS_GFU;
- rv = 1;
- }
-
- if (rv)
- /*
- * If we failed initial mode entry we'll have enumerated the USB
- * Billboard class. If so we should disconnect.
- */
- usb_disconnect();
-
- return rv;
-}
-
-int pd_alt_mode(int port, enum tcpci_msg_type type, uint16_t svid)
-{
- if (type != TCPCI_MSG_SOP)
- return 0;
-
- if (svid == USB_SID_DISPLAYPORT)
- return alt_mode[PD_AMODE_DISPLAYPORT];
- else if (svid == USB_VID_GOOGLE)
- return alt_mode[PD_AMODE_GOOGLE];
- return 0;
-}
-
-static int svdm_exit_mode(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT) {
- gpio_set_level(GPIO_PD_SBU_ENABLE, 0);
- alt_mode[PD_AMODE_DISPLAYPORT] = 0;
- pd_log_event(PD_EVENT_VIDEO_DP_MODE, 0, 0, NULL);
- } else if (PD_VDO_VID(payload[0]) == USB_VID_GOOGLE) {
- alt_mode[PD_AMODE_GOOGLE] = 0;
- } else {
- CPRINTF("Unknown exit mode req:0x%08x\n", payload[0]);
- }
-
- return 1; /* Must return ACK */
-}
-
-static struct amode_fx dp_fx = {
- .status = &dp_status,
- .config = &dp_config,
-};
-
-const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = &svdm_response_svids,
- .modes = &svdm_response_modes,
- .enter_mode = &svdm_enter_mode,
- .amode = &dp_fx,
- .exit_mode = &svdm_exit_mode,
-};
-
-int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- int rsize;
-
- if (PD_VDO_VID(payload[0]) != USB_VID_GOOGLE ||
- !alt_mode[PD_AMODE_GOOGLE])
- return 0;
-
- *rpayload = payload;
-
- rsize = pd_custom_flash_vdm(port, cnt, payload);
- if (!rsize) {
- int cmd = PD_VDO_CMD(payload[0]);
- switch (cmd) {
- case VDO_CMD_GET_LOG:
- rsize = pd_vdm_get_log_entry(payload);
- break;
- default:
- /* Unknown : do not answer */
- return 0;
- }
- }
-
- /* respond (positively) to the request */
- payload[0] |= VDO_SRC_RESPONDER;
-
- return rsize;
-}
diff --git a/board/hoho/vif_override.xml b/board/hoho/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/hoho/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/homestar/base_detect.c b/board/homestar/base_detect.c
deleted file mode 100644
index b08784357b..0000000000
--- a/board/homestar/base_detect.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Homestar base detection code */
-
-#include "adc.h"
-#include "base_state.h"
-#include "board.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/* Make sure POGO VBUS starts later then PP3300_HUB when power on */
-#define BASE_DETECT_EN_LATER_US (600 * MSEC)
-
-/* Base detection and debouncing */
-#define BASE_DETECT_EN_DEBOUNCE_US (350 * MSEC)
-#define BASE_DETECT_DIS_DEBOUNCE_US (20 * MSEC)
-
-/*
- * If the base status is unclear (i.e. not within expected ranges, read
- * the ADC value again every 500ms.
- */
-#define BASE_DETECT_RETRY_US (500 * MSEC)
-
-/*
- * Lid has 604K pull-up, base has 30.1K pull-down, so the
- * ADC value should be around 30.1/(604+30.1)*3300 = 156
- *
- * We add a significant margin on the maximum value, due to noise on the line,
- * especially when PWM is active. See b/64193554 for details.
- */
-#define BASE_DETECT_MIN_MV 120
-#define BASE_DETECT_MAX_MV 300
-
-/* Minimum ADC value to indicate base is disconnected for sure */
-#define BASE_DETECT_DISCONNECT_MIN_MV 1500
-
-/*
- * Base EC pulses detection pin for 500 us to signal out of band USB wake (that
- * can be used to wake system from deep S3).
- */
-#define BASE_DETECT_PULSE_MIN_US 400
-#define BASE_DETECT_PULSE_MAX_US 650
-
-static uint64_t base_detect_debounce_time;
-
-static void base_detect_deferred(void);
-DECLARE_DEFERRED(base_detect_deferred);
-
-enum base_status {
- BASE_UNKNOWN = 0,
- BASE_DISCONNECTED = 1,
- BASE_CONNECTED = 2,
-};
-
-static enum base_status current_base_status;
-
-/*
- * This function is called whenever there is a change in the base detect
- * status. Actions taken include:
- * 1. Change in power to base
- * 2. Indicate mode change to host.
- * 3. Indicate tablet mode to host. Current assumption is that if base is
- * disconnected then the system is in tablet mode, else if the base is
- * connected, then the system is not in tablet mode.
- */
-static void base_detect_change(enum base_status status)
-{
- int connected = (status == BASE_CONNECTED);
-
- if (current_base_status == status)
- return;
-
- gpio_set_level(GPIO_EN_BASE, connected);
- tablet_set_mode(!connected, TABLET_TRIGGER_BASE);
- base_set_state(connected);
- current_base_status = status;
-}
-
-/* Measure detection pin pulse duration (used to wake AP from deep S3). */
-static uint64_t pulse_start;
-static uint32_t pulse_width;
-
-static void print_base_detect_value(int v, int tmp_pulse_width)
-{
- CPRINTS("%s = %d (pulse %d)", adc_channels[ADC_BASE_DET].name,
- v, tmp_pulse_width);
-}
-
-static void base_detect_deferred(void)
-{
- uint64_t time_now = get_time().val;
- int v;
- uint32_t tmp_pulse_width = pulse_width;
-
- if (base_detect_debounce_time > time_now) {
- hook_call_deferred(&base_detect_deferred_data,
- base_detect_debounce_time - time_now);
- return;
- }
-
- v = adc_read_channel(ADC_BASE_DET);
- if (v == ADC_READ_ERROR)
- return;
-
- print_base_detect_value(v, tmp_pulse_width);
-
- if (v >= BASE_DETECT_MIN_MV && v <= BASE_DETECT_MAX_MV) {
- if (current_base_status != BASE_CONNECTED) {
- base_detect_change(BASE_CONNECTED);
- } else if (tmp_pulse_width >= BASE_DETECT_PULSE_MIN_US &&
- tmp_pulse_width <= BASE_DETECT_PULSE_MAX_US) {
- CPRINTS("Sending event to AP");
- host_set_single_event(EC_HOST_EVENT_KEY_PRESSED);
- }
- return;
- }
-
- if (v >= BASE_DETECT_DISCONNECT_MIN_MV) {
- base_detect_change(BASE_DISCONNECTED);
- return;
- }
-
- /* Unclear base status, schedule again in a while. */
- hook_call_deferred(&base_detect_deferred_data, BASE_DETECT_RETRY_US);
-}
-
-static inline int detect_pin_connected(enum gpio_signal det_pin)
-{
- return gpio_get_level(det_pin) == 0;
-}
-
-void base_detect_interrupt(enum gpio_signal signal)
-{
- uint64_t time_now = get_time().val;
- int debounce_us;
-
- if (detect_pin_connected(signal))
- debounce_us = BASE_DETECT_EN_DEBOUNCE_US;
- else
- debounce_us = BASE_DETECT_DIS_DEBOUNCE_US;
-
- if (base_detect_debounce_time <= time_now) {
- /*
- * Detect and measure detection pin pulse, when base is
- * connected. Only a single pulse is measured over a debounce
- * period. If no pulse, or multiple pulses are detected,
- * pulse_width is set to 0.
- */
- if (current_base_status == BASE_CONNECTED &&
- !detect_pin_connected(signal)) {
- pulse_start = time_now;
- } else {
- pulse_start = 0;
- }
- pulse_width = 0;
-
- hook_call_deferred(&base_detect_deferred_data, debounce_us);
- } else {
- if (current_base_status == BASE_CONNECTED &&
- detect_pin_connected(signal) && !pulse_width &&
- pulse_start) {
- /* First pulse within period. */
- pulse_width = time_now - pulse_start;
- } else {
- pulse_start = 0;
- pulse_width = 0;
- }
- }
-
- base_detect_debounce_time = time_now + debounce_us;
-}
-
-static void base_enable(void)
-{
- /* Enable base detection interrupt. */
- base_detect_debounce_time = get_time().val;
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_EN_LATER_US);
- gpio_enable_interrupt(GPIO_BASE_DET_L);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, base_enable, HOOK_PRIO_DEFAULT);
-
-static void base_disable(void)
-{
- /*
- * Disable base detection interrupt and disable power to base.
- * Set the state UNKNOWN so the next startup will initialize a
- * correct state and notify AP.
- */
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_UNKNOWN);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, base_disable, HOOK_PRIO_DEFAULT);
-
-static void base_init(void)
-{
- /*
- * If we jumped to this image and chipset is already in S0, enable
- * base.
- */
- if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON))
- base_enable();
-}
-DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT+1);
-
-void base_force_state(enum ec_set_base_state_cmd state)
-{
- if (state == EC_SET_BASE_STATE_ATTACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_CONNECTED);
- CPRINTS("BD forced connected");
- } else if (state == EC_SET_BASE_STATE_DETACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_DISCONNECTED);
- CPRINTS("BD forced disconnected");
- } else {
- base_enable();
- CPRINTS("BD forced reset");
- }
-}
diff --git a/board/homestar/battery.c b/board/homestar/battery.c
deleted file mode 100644
index b1a05809f0..0000000000
--- a/board/homestar/battery.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all homestar battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* COSMX GH02047XL 333-1C-DA-A */
- [BATTERY_GH02047XL_1C] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .device_name = "GH02047XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* COSMX GH02047XL */
- [BATTERY_GH02047XL] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .device_name = "GH02047XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* COSMX DS02032XL */
- [BATTERY_DS02032XL] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-13-A",
- .device_name = "DS02032XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* SMP DS02032XL */
- [BATTERY_DS02032XL_1C] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-13-A",
- .device_name = "DS02032XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* Sunwoda L21D4PG0 */
- [BATTERY_L21D4PG0] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L21D4PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8900, /* mV */
- .voltage_normal = 7720, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 274, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* SMP L21M4PG0 */
- [BATTERY_L21M4PG0] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L21M4PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8900, /* mV */
- .voltage_normal = 7720, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 274, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_L21D4PG0;
diff --git a/board/homestar/board.c b/board/homestar/board.c
deleted file mode 100644
index 22f940eec2..0000000000
--- a/board/homestar/board.c
+++ /dev/null
@@ -1,698 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Homestar board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm42607.h"
-#include "driver/ln9310.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_mkbp.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "peripheral_charger.h"
-#include "pi3usb9201.h"
-#include "power.h"
-#include "power/qcom.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "queue.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define KS_DEBOUNCE_US (30 * MSEC) /* Debounce time for kickstand switch */
-
-/* Forward declaration */
-static void tcpc_alert_event(enum gpio_signal signal);
-static void usb0_evt(enum gpio_signal signal);
-static void usb1_evt(enum gpio_signal signal);
-static void ppc_interrupt(enum gpio_signal signal);
-static void board_connect_c0_sbu(enum gpio_signal s);
-static void switchcap_interrupt(enum gpio_signal signal);
-
-#include "gpio_list.h"
-
-/* GPIO Interrupt Handlers */
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-static void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-static void switchcap_interrupt(enum gpio_signal signal)
-{
- ln9310_interrupt(signal);
-}
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
- /* Base detection */
- [ADC_BASE_DET] = {
- "BASE_DET",
- NPCX_ADC_CH5,
- ADC_MAX_VOLT,
- ADC_READ_MAX + 1,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* LN9310 switchcap */
-const struct ln9310_config_t ln9310_config = {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = LN9310_I2C_ADDR_0_FLAGS,
-};
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Mutexes */
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm42607_data;
-
-enum lid_accelgyro_type {
- LID_GYRO_NONE = 0,
- LID_GYRO_BMI160 = 1,
- LID_GYRO_ICM42607 = 2,
-};
-
-static enum lid_accelgyro_type lid_accelgyro_config;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t lid_standard_ref_icm42607 = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t icm42607_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = ICM42607_ACCEL_MIN_FREQ,
- .max_frequency = ICM42607_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm42607_lid_gyro = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .min_frequency = ICM42607_GYRO_MIN_FREQ,
- .max_frequency = ICM42607_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_detect_motionsensor(void)
-{
- int val = -1;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (lid_accelgyro_config != LID_GYRO_NONE)
- return;
-
- /* Check base accelgyro chip */
- icm_read8(&icm42607_lid_accel, ICM42607_REG_WHO_AM_I, &val);
- if (val == ICM42607_CHIP_ICM42607P) {
- motion_sensors[LID_ACCEL] = icm42607_lid_accel;
- motion_sensors[LID_GYRO] = icm42607_lid_gyro;
- lid_accelgyro_config = LID_GYRO_ICM42607;
- CPRINTS("LID Accelgyro: ICM42607");
- } else {
- lid_accelgyro_config = LID_GYRO_BMI160;
- CPRINTS("LID Accelgyro: BMI160");
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_DEFAULT + 1);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (lid_accelgyro_config) {
- case LID_GYRO_ICM42607:
- icm42607_interrupt(signal);
- break;
- case LID_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-enum battery_cell_type board_get_battery_cell_type(void)
-{
- return BATTERY_CELL_TYPE_2S;
-}
-
-static void board_switchcap_init(void)
-{
- CPRINTS("Use switchcap: LN9310");
-
- /* Configure and enable interrupt for LN9310 */
- gpio_set_flags(GPIO_SWITCHCAP_PG_INT_L, GPIO_INT_FALLING);
- gpio_enable_interrupt(GPIO_SWITCHCAP_PG_INT_L);
-
- /* Only configure the switchcap if not sysjump */
- if (!system_jumped_late()) {
- ln9310_init();
- }
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-
- board_switchcap_init();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__overridable uint16_t board_get_ps8xxx_product_id(int port)
-{
- /* Check if the chip is PS8755 for rev-0, rev-1 and rev-2 */
- if (system_get_board_version() < 3 && check_ps8755_chip(port))
- return PS8755_PRODUCT_ID;
-
- return PS8805_PRODUCT_ID;
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-void board_hibernate(void)
-{
- int i;
-
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- /*
- * Board rev 1+ has the hardware fix. Don't need the following
- * workaround.
- */
- if (system_get_board_version() >= 1)
- return;
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON_L, !enable);
- ln9310_software_enable(enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return !gpio_get_level(GPIO_SWITCHCAP_ON_L);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return ln9310_power_good();
-}
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_ma = charge_ma * 95 / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int battery_get_vendor_param(uint32_t param, uint32_t *value)
-{
- int rv;
- uint8_t data[16] = {};
-
- /* only allow reading 0x70~0x7F, 16 byte data */
- if (param < 0x70 || param >= 0x80)
- return EC_ERROR_ACCESS_DENIED;
-
- rv = sb_read_string(0x70, data, sizeof(data));
- if (rv)
- return rv;
-
- *value = data[param - 0x70];
- return EC_SUCCESS;
-}
-
-int battery_set_vendor_param(uint32_t param, uint32_t value)
-{
- return EC_ERROR_UNIMPLEMENTED;
-}
diff --git a/board/homestar/board.h b/board/homestar/board.h
deleted file mode 100644
index 650ba638ec..0000000000
--- a/board/homestar/board.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Homestar board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Switchcap */
-#define CONFIG_LN9310
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_VENDOR_PARAM
-
-/* Enable PD3.0 */
-#define CONFIG_USB_PD_REV30
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8755
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* Lid accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-#define CONFIG_ACCELGYRO_ICM42607
-#define CONFIG_ACCELGYRO_ICM42607_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_FRONT_PROXIMITY_SWITCH
-
-#define CONFIG_DETACHABLE_BASE
-#define CONFIG_BASE_ATTACHED_SWITCH
-
-/*
- * Oled panel need to setup both vcc and backlight, AP will ctrl them.
- * BL_DISABLE does not need to be controlled by ec.
- */
-#ifdef CONFIG_BACKLIGHT_LID
-#undef CONFIG_BACKLIGHT_LID
-#endif
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_CHG_ACOK_OD
-#define GPIO_WP_L GPIO_EC_FLASH_WP_ODL
-#define GPIO_PMIC_RESIN_L GPIO_PM845_RESIN_L
-#define GPIO_SWITCHCAP_PG_INT_L GPIO_LN9310_INT
-
-#define CONFIG_MKBP_INPUT_DEVICES
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_BASE_DET,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_DISPLIGHT = 0,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_GH02047XL_1C,
- BATTERY_GH02047XL,
- BATTERY_DS02032XL,
- BATTERY_DS02032XL_1C,
- BATTERY_L21D4PG0,
- BATTERY_L21M4PG0,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-/* Base detection */
-void base_detect_interrupt(enum gpio_signal signal);
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/homestar/build.mk b/board/homestar/build.mk
deleted file mode 100644
index 74b6b95e4d..0000000000
--- a/board/homestar/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y=battery.o board.o led.o base_detect.o
diff --git a/board/homestar/ec.tasklist b/board/homestar/ec.tasklist
deleted file mode 100644
index ea2aaa97f5..0000000000
--- a/board/homestar/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/homestar/gpio.inc b/board/homestar/gpio.inc
deleted file mode 100644
index 77a69a5faa..0000000000
--- a/board/homestar/gpio.inc
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_FLASH_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-GPIO_INT(BASE_DET_L, PIN(3, 7), GPIO_INT_BOTH, base_detect_interrupt) /* Detachable base attached? */
-
-/* Sensor interrupts */
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, motion_interrupt) /* Accelerometer/gyro interrupt */
-
-/* Switchcap, for LN9310, it is the interrupt line of LN9310. */
-GPIO_INT(LN9310_INT, PIN(E, 2), GPIO_INT_FALLING, switchcap_interrupt)
-
-/*
- * EC_RST_ODL acts as a wake source from hibernate mode. However, it does not
- * need to be an interrupt for normal EC operations. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PM845_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-GPIO(QSIP_ON, PIN(5, 0), GPIO_OUT_LOW) /* Not used, for non-switchcap testing */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON_L, PIN(D, 5), GPIO_ODR_HIGH) /* Enable switch cap */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Base detection */
-GPIO(EN_BASE, PIN(0, 4), GPIO_OUT_LOW) /* Enable power to detachable base */
-
-/* POGO */
-GPIO(POGO_VBUS_PRESENT, PIN(6, 2), GPIO_INPUT) /* POGO PIN */
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_ODR_HIGH) /* Port-0 TCPC chip reset, actaully Open-Drain */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_ODR_HIGH) /* Port-1 TCPC chip reset, actually Open-Drain */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_R_C0, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_G_C0, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-GPIO(WCAM_EC_VSYNC, PIN(C, 0), GPIO_INPUT) /* PWM6 */
-GPIO(FCAM_EC_VSYNC, PIN(6, 0), GPIO_INPUT) /* PWM7 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. Apply PU for power saving */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(3, 1))
-UNUSED(PIN(3, 0))
-UNUSED(PIN(2, 7))
-UNUSED(PIN(2, 6))
-UNUSED(PIN(2, 5))
-UNUSED(PIN(2, 4))
-UNUSED(PIN(2, 3))
-UNUSED(PIN(2, 2))
-UNUSED(PIN(2, 1))
-UNUSED(PIN(2, 0))
-UNUSED(PIN(1, 7))
-UNUSED(PIN(1, 6))
-UNUSED(PIN(1, 5))
-UNUSED(PIN(1, 4))
-UNUSED(PIN(1, 3))
-UNUSED(PIN(1, 2))
-UNUSED(PIN(1, 1))
-UNUSED(PIN(1, 0))
-UNUSED(PIN(0, 7))
-UNUSED(PIN(0, 6))
-UNUSED(PIN(0, 5))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(C, 6))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(5, 6))
-UNUSED(PIN(8, 0))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(D, 1))
-UNUSED(PIN(D, 3))
-UNUSED(PIN(7, 5))
-UNUSED(PIN(8, 6))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(7, 4))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(8, 5))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-/* TODO(Camera?) should have a poper config for this, PWM or not */
-ALTERNATE(PIN_MASK(C, 0x01), 1, MODULE_PWM, 0) /* PWM6 (GPIOC0) - WCAM_EC_VSYNC */
-ALTERNATE(PIN_MASK(6, 0x01), 1, MODULE_PWM, 0) /* PWM7 (GPIO60) - FCAM_EC_VSYNC */
-
-
diff --git a/board/homestar/led.c b/board/homestar/led.c
deleted file mode 100644
index 3950ce1ec0..0000000000
--- a/board/homestar/led.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-#include "extpower.h"
-
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-/* Battery LED blinks every per 400ms */
-#define LED_HALF_ONE_SEC (500 / HOOK_TICK_INTERVAL_MS)
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_AMBER,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_R_C0,
- (color == LED_RED) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_EC_CHG_LED_G_C0,
- (color == LED_GREEN) ? BAT_LED_ON : BAT_LED_OFF);
- if (color == LED_AMBER) {
- gpio_set_level(GPIO_EC_CHG_LED_R_C0, BAT_LED_ON);
- gpio_set_level(GPIO_EC_CHG_LED_G_C0, BAT_LED_ON);
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color(LED_RED);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color(LED_GREEN);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(LED_AMBER);
- else
- led_set_color(LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- int color = LED_OFF;
- int period = 0;
- int percent = DIV_ROUND_NEAREST(charge_get_display_charge(), 10);
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- case PWR_STATE_CHARGE_NEAR_FULL:
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_ANY_OFF)) {
- if (percent <= BATTERY_LEVEL_CRITICAL) {
- /* battery capa <= 5%, Red */
- color = LED_RED;
- } else if (percent > BATTERY_LEVEL_CRITICAL &&
- percent < BATTERY_LEVEL_NEAR_FULL) {
- /* 5% < battery capa < 97%, Orange */
- color = LED_AMBER;
- } else {
- /* battery capa >= 97%, Green */
- color = LED_GREEN;
- }
- }
- break;
- case PWR_STATE_DISCHARGE:
- /* Always indicate off on when discharging */
- color = LED_OFF;
- break;
- case PWR_STATE_ERROR:
- /* Battery error, Red on 1sec off 1sec */
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode, Red 2 sec, green 2 sec */
- period = (2 + 2) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_GREEN;
- } else
- color = LED_RED;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_RED : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color(color);
-}
diff --git a/board/homestar/vif_override.xml b/board/homestar/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/homestar/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/host/battery.c b/board/host/battery.c
deleted file mode 100644
index 1228485ab7..0000000000
--- a/board/host/battery.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright 2013 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.
- *
- * Smart battery driver.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "common.h"
-#include "console.h"
-#include "test_util.h"
-#include "util.h"
-
-static uint16_t mock_smart_battery[SB_MANUFACTURER_DATA + 1];
-
-int sb_i2c_xfer(int port, uint16_t slave_addr_flags,
- const uint8_t *out, int out_size,
- uint8_t *in, int in_size, int flags)
-{
- if (out_size == 0)
- return EC_SUCCESS;
-
- if (port != I2C_PORT_BATTERY || slave_addr_flags != BATTERY_ADDR_FLAGS)
- return EC_ERROR_INVAL;
- if (out[0] >= ARRAY_SIZE(mock_smart_battery))
- return EC_ERROR_UNIMPLEMENTED;
- if (out_size == 1) {
- /* Read */
- if (in_size != 2)
- /* We are not doing a read16, assume read string */
- return EC_SUCCESS;
- else
- *(uint16_t *)in = mock_smart_battery[out[0]];
- } else {
- /* write */
- if (out_size != 3)
- /* We are only expecting write 16 */
- return EC_ERROR_UNIMPLEMENTED;
- else
- mock_smart_battery[out[0]] = (out[2] << 8) | out[1];
- }
- return EC_SUCCESS;
-}
-DECLARE_TEST_I2C_XFER(sb_i2c_xfer);
-
-int battery_time_at_rate(int rate, int *minutes)
-{
- return EC_SUCCESS;
-}
-
-static const struct battery_info bat_info = {
- /*
- * Design voltage
- * max = 8.4V
- * normal = 7.4V
- * min = 6.0V
- */
- .voltage_max = 8400,
- .voltage_normal = 7400,
- .voltage_min = 6000,
-
- /* Pre-charge current: I <= 0.01C */
- .precharge_current = 64, /* mA */
-
- /*
- * Operational temperature range
- * 0 <= T_charge <= 50 deg C
- * -20 <= T_discharge <= 60 deg C
- */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
-};
-
-const struct battery_info *battery_get_info(void)
-{
- return &bat_info;
-}
diff --git a/board/host/board.c b/board/host/board.c
deleted file mode 100644
index 191fd832e1..0000000000
--- a/board/host/board.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2013 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.
- */
-/* Emulator board-specific configuration */
-
-#include "battery.h"
-#include "button.h"
-#include "cros_board_info.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "inductive_charging.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "motion_lid.h"
-#include "power_button.h"
-#include "spi.h"
-#include "temp_sensor.h"
-#include "test_util.h"
-#include "timer.h"
-#include "util.h"
-
-/*
- * GPIO_0 is the name generated by the gpio.inc GPIO macros for all of the host
- * GPIO ports. This maps back to 0, which is then ignored by the host GPIO mock
- * code.
- */
-#define GPIO_0 0
-
-#include "gpio_list.h"
-
-test_mockable enum battery_present battery_is_present(void)
-{
- return BP_YES;
-}
-
-test_mockable_static int mock_temp_get_val(int idx, int *temp_ptr)
-{
- *temp_ptr = 0;
- return EC_SUCCESS;
-}
-
-const struct temp_sensor_t temp_sensors[] = {
- {"CPU", TEMP_SENSOR_TYPE_CPU, mock_temp_get_val, 0},
- {"Board", TEMP_SENSOR_TYPE_BOARD, mock_temp_get_val, 1},
- {"Case", TEMP_SENSOR_TYPE_CASE, mock_temp_get_val, 2},
- {"Battery", TEMP_SENSOR_TYPE_BOARD, mock_temp_get_val, 3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-test_mockable void button_interrupt(enum gpio_signal signal)
-{
-}
-
-test_mockable void fps_event(enum gpio_signal signal)
-{
-}
-
-#ifdef CONFIG_I2C
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
-#ifdef I2C_PORT_BATTERY
- {"battery", I2C_PORT_BATTERY, 100, 0, 0},
-#elif defined I2C_PORT_LIGHTBAR
- {"lightbar", I2C_PORT_LIGHTBAR, 100, 0, 0},
-#elif defined I2C_PORT_HOST_TCPC
- {"tcpc", I2C_PORT_HOST_TCPC, 100, 0, 0},
-#elif defined I2C_PORT_EEPROM
- {"eeprom", I2C_PORT_EEPROM, 100, 0, 0},
-#elif defined I2C_PORT_WLC
- {"wlc", I2C_PORT_WLC, 100, 0, 0},
-#endif
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-#endif
-
-#ifdef CONFIG_SPI_CONTROLLER
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- /* Fingerprint sensor (SCLK at 4Mhz) */
- { CONFIG_SPI_FP_PORT, 3, GPIO_SPI1_NSS },
-};
-
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-#endif
-
-#ifdef TEST_BUILD
-/* Poor source of entropy for testing purpose. */
-int board_get_entropy(void *buffer, int len)
-{
- static uint32_t seed = 0xcafecafe;
- int i = 0;
- uint8_t *data = buffer;
-
- for (i = 0; i < len; i++) {
- seed *= 7;
- data[i] = seed + (seed >> 24);
- }
-
- return 1;
-}
-#endif
-
-static uint8_t eeprom[CBI_IMAGE_SIZE];
-
-int eeprom_i2c_xfer(int port, uint16_t addr_flags,
- const uint8_t *out, int out_size,
- uint8_t *in, int in_size, int flags)
-{
- static int offset;
-
- if (port != I2C_PORT_EEPROM || addr_flags != I2C_ADDR_EEPROM_FLAGS)
- return EC_ERROR_INVAL;
-
- if (out_size == 1 && (flags & I2C_XFER_START)) {
- offset = *out;
- } else {
- if (offset + out_size > sizeof(eeprom))
- return EC_ERROR_OVERFLOW;
- memcpy(&eeprom[offset], out, out_size);
- }
-
- if (in) {
- if (offset + in_size > sizeof(eeprom))
- return EC_ERROR_OVERFLOW;
- memcpy(in, &eeprom[offset], in_size);
- }
-
- return EC_SUCCESS;
-}
-DECLARE_TEST_I2C_XFER(eeprom_i2c_xfer);
diff --git a/board/host/board.h b/board/host/board.h
deleted file mode 100644
index f9d00961e7..0000000000
--- a/board/host/board.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/* Emulator board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional features */
-/* Default-yes, override to no by including fake_battery module. */
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#undef CONFIG_CMD_PD
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_FMAP
-#define CONFIG_POWER_BUTTON
-#undef CONFIG_WATCHDOG
-#define CONFIG_SWITCH
-#define CONFIG_INDUCTIVE_CHARGING
-
-#undef CONFIG_CONSOLE_HISTORY
-#define CONFIG_CONSOLE_HISTORY 4
-
-#define CONFIG_WP_ACTIVE_HIGH
-
-#define CONFIG_LIBCRYPTOC
-
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_DUAL_ROLE
-
-#include "gpio_signal.h"
-
-enum temp_sensor_id {
- TEMP_SENSOR_CPU = 0,
- TEMP_SENSOR_BOARD,
- TEMP_SENSOR_CASE,
- TEMP_SENSOR_BATTERY,
-
- TEMP_SENSOR_COUNT
-};
-
-enum adc_channel {
- ADC_CH_CHARGER_CURRENT,
- ADC_AC_ADAPTER_ID_VOLTAGE,
-
- ADC_CH_COUNT
-};
-
-/* Fake test charge suppliers */
-enum {
- CHARGE_SUPPLIER_TEST1,
- CHARGE_SUPPLIER_TEST2,
- CHARGE_SUPPLIER_TEST3,
- CHARGE_SUPPLIER_TEST4,
- CHARGE_SUPPLIER_TEST5,
- CHARGE_SUPPLIER_TEST6,
- CHARGE_SUPPLIER_TEST7,
- CHARGE_SUPPLIER_TEST8,
- CHARGE_SUPPLIER_TEST9,
- CHARGE_SUPPLIER_TEST10,
- CHARGE_SUPPLIER_TEST_COUNT
-};
-
-/* Standard-current Rp */
-#define PD_SRC_VNC PD_SRC_DEF_VNC_MV
-#define PD_SRC_RD_THRESHOLD PD_SRC_DEF_RD_THRESH_MV
-
-/* delay necessary for the voltage transition on the power supply */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 20000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 20000 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-#define PD_MIN_CURRENT_MA 500
-#define PD_MIN_POWER_MW 7500
-
-/* Configuration for fake Fingerprint Sensor */
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_FP_PORT 1 /* SPI1: third master config */
-
-#define CONFIG_RNG
-void fps_event(enum gpio_signal signal);
-
-#define CONFIG_CRC8
-
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_EEPROM 0
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/host/build.mk b/board/host/build.mk
deleted file mode 100644
index 241f197342..0000000000
--- a/board/host/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2013 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.
-#
-# Board specific files build
-#
-
-CHIP:=host
-
-board-y=board.o
-board-$(HAS_TASK_CHIPSET)+=chipset.o
-board-$(CONFIG_BATTERY_MOCK)+=battery.o charger.o
-board-$(CONFIG_FANS)+=fan.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o usb_pd_config.o
diff --git a/board/host/charger.c b/board/host/charger.c
deleted file mode 100644
index 4db1f44351..0000000000
--- a/board/host/charger.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright 2012 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.
- *
- * Mock battery charger driver.
- */
-
-#include "battery_smart.h"
-#include "charger.h"
-#include "console.h"
-#include "common.h"
-#include "util.h"
-
-static const struct charger_info mock_charger_info = {
- .name = "MockCharger",
- .voltage_max = 19200,
- .voltage_min = 1024,
- .voltage_step = 16,
- .current_max = 8192,
- .current_min = 128,
- .current_step = 128,
- .input_current_max = 8064,
- .input_current_min = 128,
- .input_current_step = 128,
-};
-
-#define OPTION_CHARGE_INHIBIT BIT(0)
-
-static uint32_t mock_option;
-static uint32_t mock_mode;
-static uint32_t mock_current;
-static uint32_t mock_voltage;
-static uint32_t mock_input_current;
-
-static const struct charger_info *mock_get_info(int chgnum)
-{
- return &mock_charger_info;
-}
-
-
-static enum ec_error_list mock_get_status(int chgnum, int *status)
-{
- *status = CHARGER_LEVEL_2;
- if (mock_mode & CHARGE_FLAG_INHIBIT_CHARGE)
- *status |= CHARGER_CHARGE_INHIBITED;
-
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_set_mode(int chgnum, int mode)
-{
- if (mode & CHARGE_FLAG_INHIBIT_CHARGE)
- mock_mode |= OPTION_CHARGE_INHIBIT;
- else
- mock_mode &= ~OPTION_CHARGE_INHIBIT;
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_get_current(int chgnum, int *current)
-{
- *current = mock_current;
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_set_current(int chgnum, int current)
-{
- const struct charger_info *info = mock_get_info(chgnum);
-
- if (current > 0 && current < info->current_min)
- current = info->current_min;
- if (current > info->current_max)
- current = info->current_max;
-
- if (mock_current != current)
- ccprintf("Charger set current: %d\n", current);
- mock_current = current;
- return EC_SUCCESS;
-}
-
-static enum ec_error_list mock_get_voltage(int chgnum, int *voltage)
-{
- *voltage = mock_voltage;
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_set_voltage(int chgnum, int voltage)
-{
- mock_voltage = voltage;
- ccprintf("Charger set voltage: %d\n", voltage);
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_get_option(int chgnum, int *option)
-{
- *option = mock_option;
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_set_option(int chgnum, int option)
-{
- mock_option = option;
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_manufacturer_id(int chgnum, int *id)
-{
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_device_id(int chgnum, int *id)
-{
- return EC_SUCCESS;
-}
-
-static enum ec_error_list mock_get_input_current_limit(int chgnum,
- int *input_current)
-{
- *input_current = mock_input_current;
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_set_input_current_limit(int chgnum, int current)
-{
- const struct charger_info *info = mock_get_info(chgnum);
-
- if (current < info->input_current_min)
- current = info->input_current_min;
- if (current > info->input_current_max)
- current = info->input_current_max;
-
- if (mock_input_current != current)
- ccprintf("Charger set input current: %d\n", current);
-
- mock_input_current = current;
- return EC_SUCCESS;
-}
-
-
-static enum ec_error_list mock_post_init(int chgnum)
-{
- mock_current = mock_input_current = CONFIG_CHARGER_INPUT_CURRENT;
- return EC_SUCCESS;
-}
-
-const struct charger_drv mock_drv = {
- .post_init = &mock_post_init,
- .get_info = &mock_get_info,
- .get_status = &mock_get_status,
- .set_mode = &mock_set_mode,
- .get_current = &mock_get_current,
- .set_current = &mock_set_current,
- .get_voltage = &mock_get_voltage,
- .set_voltage = &mock_set_voltage,
- .set_input_current_limit = &mock_set_input_current_limit,
- .get_input_current_limit = &mock_get_input_current_limit,
- .manufacturer_id = &mock_manufacturer_id,
- .device_id = &mock_device_id,
- .get_option = &mock_get_option,
- .set_option = &mock_set_option,
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .drv = &mock_drv,
- },
-};
diff --git a/board/host/chipset.c b/board/host/chipset.c
deleted file mode 100644
index 3cb859eb29..0000000000
--- a/board/host/chipset.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/* Chipset module for emulator */
-
-#include <stdio.h>
-#include "chipset.h"
-#include "common.h"
-#include "hooks.h"
-#include "task.h"
-#include "test_util.h"
-
-static int chipset_state = CHIPSET_STATE_SOFT_OFF;
-static int power_on_req;
-static int power_off_req;
-
-test_mockable void chipset_reset(enum chipset_reset_reason reason)
-{
- fprintf(stderr, "Chipset reset: %d!\n", reason);
-}
-
-test_mockable void chipset_throttle_cpu(int throttle)
-{
- /* Do nothing */
-}
-
-test_mockable void chipset_force_shutdown(enum chipset_shutdown_reason reason)
-{
- /* Do nothing */
-}
-
-test_mockable int chipset_in_state(int state_mask)
-{
- return state_mask & chipset_state;
-}
-
-test_mockable int chipset_in_or_transitioning_to_state(int state_mask)
-{
- return state_mask & chipset_state;
-}
-
-void test_chipset_on(void)
-{
- if (chipset_in_state(CHIPSET_STATE_ON))
- return;
- power_on_req = 1;
- task_wake(TASK_ID_CHIPSET);
-}
-
-void test_chipset_off(void)
-{
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- power_off_req = 1;
- task_wake(TASK_ID_CHIPSET);
-}
-
-test_mockable void chipset_task(void)
-{
- while (1) {
- while (!power_on_req)
- task_wait_event(-1);
- power_on_req = 0;
- hook_notify(HOOK_CHIPSET_PRE_INIT);
- chipset_state = CHIPSET_STATE_ON;
- hook_notify(HOOK_CHIPSET_STARTUP);
- while (!power_off_req)
- task_wait_event(-1);
- power_off_req = 0;
- chipset_state = CHIPSET_STATE_SOFT_OFF;
- hook_notify(HOOK_CHIPSET_SHUTDOWN);
- hook_notify(HOOK_CHIPSET_SHUTDOWN_COMPLETE);
- }
-}
diff --git a/board/host/ec.tasklist b/board/host/ec.tasklist
deleted file mode 100644
index c056c51e8a..0000000000
--- a/board/host/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/host/fan.c b/board/host/fan.c
deleted file mode 100644
index 1e1001f1cd..0000000000
--- a/board/host/fan.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/* Mocked fan implementation for tests */
-
-#include "fan.h"
-#include "util.h"
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = 0,
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1000,
- .rpm_start = 1500,
- .rpm_max = 5000,
-};
-
-const struct fan_t fans[CONFIG_FANS] = {
- { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-static int mock_enabled;
-void fan_set_enabled(int ch, int enabled)
-{
- mock_enabled = enabled;
-}
-int fan_get_enabled(int ch)
-{
- return mock_enabled;
-}
-
-static int mock_percent;
-void fan_set_duty(int ch, int percent)
-{
- mock_percent = percent;
-}
-int fan_get_duty(int ch)
-{
- return mock_percent;
-}
-
-static int mock_rpm_mode;
-void fan_set_rpm_mode(int ch, int rpm_mode)
-{
- mock_rpm_mode = rpm_mode;
-}
-int fan_get_rpm_mode(int ch)
-{
- return mock_rpm_mode;
-}
-
-int mock_rpm;
-void fan_set_rpm_target(int ch, int rpm)
-{
- mock_rpm = rpm;
-}
-int fan_get_rpm_actual(int ch)
-{
- return mock_rpm;
-}
-int fan_get_rpm_target(int ch)
-{
- return mock_rpm;
-}
-
-enum fan_status fan_get_status(int ch)
-{
- return FAN_STATUS_LOCKED;
-}
-
-int fan_is_stalled(int ch)
-{
- return 0;
-}
-
-void fan_channel_setup(int ch, unsigned int flags)
-{
- /* nothing to do */
-}
diff --git a/board/host/gpio.inc b/board/host/gpio.inc
deleted file mode 100644
index ce69385259..0000000000
--- a/board/host/gpio.inc
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(LID_OPEN, PIN(0, 0), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(AC_PRESENT, PIN(0, 2), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(0, 3), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(0, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(CHARGE_DONE, PIN(0, 5), GPIO_INT_BOTH, inductive_charging_interrupt)
-/* Fingerprint */
-GPIO_INT(FPS_INT, PIN(0, 14), GPIO_INT_RISING, fps_event)
-
-GPIO(EC_INT_L, PIN(0, 6), 0)
-GPIO(WP, PIN(0, 7), 0)
-GPIO(ENTERING_RW, PIN(0, 8), 0)
-GPIO(PCH_BKLTEN, PIN(0, 9), 0)
-GPIO(ENABLE_BACKLIGHT, PIN(0, 10), 0)
-
-/* Inductive charging */
-GPIO(CHARGE_EN, PIN(0, 11), 0)
-GPIO(BASE_CHG_VDD_EN, PIN(0, 12), 0)
-
-/* Fingerprint */
-GPIO(SPI1_NSS, PIN(0, 13), GPIO_OUT_HIGH)
-
-GPIO(USB_C0_DISCHARGE, PIN(0, 15), 0)
-
-GPIO(I2C_SCL, PIN(0, 16), GPIO_INPUT)
-GPIO(I2C_SDA, PIN(0, 17), GPIO_INPUT)
-
-GPIO(EC_CBI_WP, PIN(0, 18), GPIO_OUT_LOW)
diff --git a/board/host/usb_pd_config.c b/board/host/usb_pd_config.c
deleted file mode 100644
index 91c30d1755..0000000000
--- a/board/host/usb_pd_config.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* USB Power delivery board configuration */
-
-#include "test_util.h"
-
-test_mockable void pd_select_polarity(int port, int polarity)
-{
- /* Not implemented */
-}
-
-test_mockable void pd_tx_init(void)
-{
- /* Not implemented */
-}
-
-test_mockable void pd_set_host_mode(int port, int enable)
-{
- /* Not implemented */
-}
-
-test_mockable void pd_config_init(int port, uint8_t power_role)
-{
- /* Not implemented */
-}
-
-test_mockable int pd_adc_read(int port, int cc)
-{
- /* Not implemented */
- return 0;
-}
-
diff --git a/board/host/usb_pd_config.h b/board/host/usb_pd_config.h
deleted file mode 100644
index fb12b2ce7d..0000000000
--- a/board/host/usb_pd_config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* Use software CRC */
-#define CONFIG_SW_CRC
-
-void pd_select_polarity(int port, int polarity);
-
-void pd_tx_init(void);
-
-void pd_set_host_mode(int port, int enable);
-
-void pd_config_init(int port, uint8_t power_role);
-
-int pd_adc_read(int port, int cc);
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
diff --git a/board/host/usb_pd_policy.c b/board/host/usb_pd_policy.c
deleted file mode 100644
index 23285f4838..0000000000
--- a/board/host/usb_pd_policy.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "usb_pd.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)
-
-const uint32_t pd_src_pdo[] = {
- PDO_FIXED(5000, 900, PDO_FIXED_FLAGS),
- PDO_FIXED(12000, 3000, PDO_FIXED_FLAGS),
-};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, PDO_FIXED_FLAGS),
- PDO_BATT(4750, 21000, 15000),
- PDO_VAR(4750, 21000, 3000),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-test_mockable int pd_set_power_supply_ready(int port)
-{
- /* Not implemented */
- return EC_SUCCESS;
-}
-
-test_mockable void pd_power_supply_reset(int port)
-{
- /* Not implemented */
-}
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- /* Not implemented */
-}
-
-test_mockable int pd_snk_is_vbus_provided(int port)
-{
- /* Not implemented */
- return 1;
-}
-
-__override int pd_check_power_swap(int port)
-{
- /* Always allow power swap */
- return 1;
-}
-
-__override int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Always allow data swap */
- return 1;
-}
-
-__override void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
-}
-
-__override void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
-}
-
-__override int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- return 0;
-}
diff --git a/board/host/vif_override.xml b/board/host/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/host/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/icarus/battery.c b/board/icarus/battery.c
deleted file mode 100644
index 6f6b49899a..0000000000
--- a/board/icarus/battery.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Panasonic AP19B5K Battery Information */
- [BATTERY_PANASONIC_AP19B5K_KT00305011] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00305011",
- .device_name = "AP19B5K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP19B8K Battery Information */
- [BATTERY_LGC_AP19B8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G022",
- .device_name = "AP19B8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* COSMX AP20CBL Battery Information */
- [BATTERY_COSMX_AP20CBL] = {
- .fuel_gauge = {
- .manuf_name = "COSMX KT0030B002",
- .device_name = "AP20CBL",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* SMP AP18C7K Battery Information */
- [BATTERY_SMP_AP18C7K] = {
- .fuel_gauge = {
- .manuf_name = "SMP KT00307010",
- .device_name = "AP18C7K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC_AP18C8K;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/icarus/board.c b/board/icarus/board.c
deleted file mode 100644
index bffad091fa..0000000000
--- a/board/icarus/board.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#include "gpio_list.h"
-
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {GPIO_KSO_H, 4}, {GPIO_KSO_H, 0}, {GPIO_KSO_H, 1},
- {GPIO_KSO_H, 3}, {GPIO_KSO_H, 2}, {-1, -1}, {-1, -1},
- {GPIO_KSO_L, 5}, {GPIO_KSO_L, 6}, {-1, -1}, {GPIO_KSO_L, 3},
- {GPIO_KSO_L, 2}, {GPIO_KSI, 0}, {GPIO_KSO_L, 1}, {GPIO_KSO_L, 4},
- {GPIO_KSI, 3}, {GPIO_KSI, 2}, {GPIO_KSO_L, 0}, {GPIO_KSI, 5},
- {GPIO_KSI, 4}, {GPIO_KSO_L, 7}, {GPIO_KSI, 6}, {GPIO_KSI, 7},
- {GPIO_KSI, 1}, {-1, -1}, {GPIO_KSO_H, 5}, {-1, -1},
- {GPIO_KSO_H, 6}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH1},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH2},
- [ADC_VBUS] = {"VBUS", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", IT83XX_I2C_CH_C, 400, GPIO_I2C_C_SCL, GPIO_I2C_C_SDA},
- {"other", IT83XX_I2C_CH_B, 100, GPIO_I2C_B_SCL, GPIO_I2C_B_SDA},
- {"battery", IT83XX_I2C_CH_A, 100, GPIO_I2C_A_SCL, GPIO_I2C_A_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/******************************************************************************/
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so no i2c config needed */
- .drv = &it8xxx2_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-#define VBUS_THRESHOLD_MV 4200
-int pd_snk_is_vbus_provided(int port)
-{
- /* This board has only one port. */
- if (!port)
- return adc_read_channel(ADC_VBUS) > VBUS_THRESHOLD_MV ? 1 : 0;
- else
- return 0;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
diff --git a/board/icarus/board.h b/board/icarus/board.h
deleted file mode 100644
index b9232d65a5..0000000000
--- a/board/icarus/board.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_IT81202
-
-#include "baseboard.h"
-
-/* TODO: remove me once we fix IT83XX_ILM_BLOCK_SIZE out of space issue */
-#undef CONFIG_LTO
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#undef CONFIG_ACCEL_FIFO
-#undef CONFIG_ACCEL_FIFO_SIZE
-#undef CONFIG_ACCEL_FIFO_THRES
-
-/* I2C ports */
-#define I2C_PORT_BC12 IT83XX_I2C_CH_C
-#define I2C_PORT_TCPC0 IT83XX_I2C_CH_C
-#define I2C_PORT_USB_MUX IT83XX_I2C_CH_C
-#define I2C_PORT_CHARGER IT83XX_I2C_CH_A
-#define I2C_PORT_SENSORS IT83XX_I2C_CH_B
-#define I2C_PORT_ACCEL I2C_PORT_SENSORS
-#define I2C_PORT_BATTERY IT83XX_I2C_CH_A
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#define CONFIG_LED_ONOFF_STATES
-
-#undef CONFIG_GMR_TABLET_MODE
-#undef GMR_TABLET_MODE_GPIO_L
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_TABLET_MODE_SWITCH
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_VBUS,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_PANASONIC_AP19B5K_KT00305011,
- BATTERY_LGC_AP19B8K,
- BATTERY_COSMX_AP20CBL,
- BATTERY_SMP_AP18C7K,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for AP jump to BL */
-void emmc_ap_jump_to_bl(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger/battery */
-int board_get_charger_i2c(void);
-int board_get_battery_i2c(void);
-
-/* Motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/icarus/build.mk b/board/icarus/build.mk
deleted file mode 100644
index 9ca7933e2a..0000000000
--- a/board/icarus/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-#
-# IC is ITE IT81202
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202bx_1024
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/icarus/ec.tasklist b/board/icarus/ec.tasklist
deleted file mode 100644
index e8ad538bc2..0000000000
--- a/board/icarus/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280)
diff --git a/board/icarus/gpio.inc b/board/icarus/gpio.inc
deleted file mode 100644
index a3a097c17b..0000000000
--- a/board/icarus/gpio.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(F, 3), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(D, 3), GPIO_INT_RISING | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- chipset_reset_request_interrupt)
-GPIO_INT_RO(BOOTBLOCK_EN_L, PIN(J, 1), GPIO_INT_RISING | GPIO_SEL_1P8V,
- emmc_ap_jump_to_bl)
-GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING,
- spi_event) /* SPI slave Chip Select -- AP_SPI_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(E, 5), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(J, 6), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 7), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- chipset_watchdog_interrupt)
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING,
- uart_deepsleep_interrupt) /* UART_DEBUG_TX_EC_RX */
-/* Unimplemented interrupts */
-GPIO(ACCEL_INT_ODL, PIN(J, 2), GPIO_INPUT)
-GPIO(TABLET_MODE_L, PIN(J, 7), GPIO_INPUT)
-GPIO(VOLUME_DOWN_L, PIN(D, 5), GPIO_INPUT)
-GPIO(VOLUME_UP_L, PIN(D, 6), GPIO_INPUT)
-GPIO(ALS_RGB_INT_ODL, PIN(F, 0), GPIO_INPUT)
-GPIO(LID_ACCEL_INT_ODL, PIN(J, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(B, 6), GPIO_OUT_LOW)
-/* 1.8V PP or 1.8V OD output with external 10K PU */
-GPIO(PMIC_WATCHDOG_L, PIN(H, 0), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-/* OD output with 5VT (there is 5V internal PU on PWRKEY of MT6358) */
-GPIO(PMIC_EN_ODL, PIN(E, 1), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-/* EC programming */
-GPIO(I2C_E_SCL, PIN(A, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_E_SDA, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-/* battery and charger */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT)
-/* sensor */
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-/* typec */
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT)
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT)
-
-/* Other input pins */
-/* TODO(WP_L): change to interrupt pin ? */
-GPIO(WP_L, PIN(I, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_FLASH_WP_ODL */
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EN_USBA_5V, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(H, 5), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(J, 0), GPIO_ODR_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(H, 3), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 1), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 2), GPIO_OUT_LOW)
-
-/* LEDs */
-GPIO(LED_BLUE, PIN(A, 2), GPIO_OUT_HIGH)
-GPIO(LED_GREEN, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(LED_ORANGE, PIN(A, 0), GPIO_OUT_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(D, 0), GPIO_OUT_LOW)
-
-/* Unimplemented Pins */
-GPIO(PG_PP5000_A_OD, PIN(A, 6), GPIO_INPUT)
-GPIO(USB_A0_OC_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(C, 3), GPIO_INPUT)
-GPIO(PMIC_FORCE_RESET_ODL, PIN(C, 6), GPIO_INPUT)
-GPIO(USB_C0_PD_INT_ODL, PIN(D, 1), GPIO_INPUT) /* no used on this board */
-GPIO(EN_PP5000A_USM, PIN(D, 7), GPIO_INPUT)
-GPIO(EN_USBC_CHARGE_L, PIN(F, 1), GPIO_INPUT)
-GPIO(EN_PP5000_USBC, PIN(H, 4), GPIO_INPUT)
-GPIO(PP1800_H1_PG, PIN(H, 6), GPIO_INPUT)
-
-/* NC pins, ensure they aren't in floating state. */
-GPIO(NC_GPA3, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPB2, PIN(B, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPD2, PIN(D, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPD4, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPE0, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPE3, PIN(E, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPE7, PIN(E, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-/*
- * ADC pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPI5, PIN(I, 5), GPIO_OUT_LOW)
-GPIO(NC_GPI7, PIN(I, 7), GPIO_OUT_LOW)
-
-GPIO(NC_GPJ4, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPJ5, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-/*
- * GPG3,4,5,7 don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPG0, PIN(G, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-/* Don't touch GPG1 and GPG2 */
-GPIO(NC_GPG3, PIN(G, 3), GPIO_OUT_LOW)
-GPIO(EC_SPI_FLASH_MOSI, PIN(G, 4), GPIO_OUT_LOW)
-GPIO(EC_SPI_FLASH_MISO, PIN(G, 5), GPIO_OUT_LOW)
-GPIO(EC_SPI_FLASH_CLK, PIN(G, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_SPI_FLASH_CS_L, PIN(G, 7), GPIO_OUT_LOW)
-
-/* Alternate functions GPIO definitions */
-/* Keyboard */
-ALTERNATE(PIN_MASK(KSI, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSI0-7 */
-ALTERNATE(PIN_MASK(KSO_H, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO8-15 */
-ALTERNATE(PIN_MASK(KSO_L, 0xFB), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO0-1, 3-7 */
-GPIO(EC_KSO_02_INV, PIN(KSO_L, 2), GPIO_OUT_LOW) /* KSO2 inverted */
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C B */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C */
-/* ADC */
-ALTERNATE(PIN_MASK(I, 0x4F), 0, MODULE_ADC, 0) /* ADC 0,1,2,3,6 */
-/* UART */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* EC to Servo */
-/* EMMC SPI SLAVE M2:CLK, M3:CMD, M6:DATA0 */
-ALTERNATE(PIN_MASK(M, 0x4C), 0, MODULE_SPI_FLASH, 0)
-/* SPI */
-ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI for communication */
diff --git a/board/icarus/led.c b/board/icarus/led.c
deleted file mode 100644
index 076199b2ed..0000000000
--- a/board/icarus/led.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Jacuzzi
- */
-#include "common.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_ORANGE, LED_ON_LVL);
- gpio_set_level(GPIO_LED_BLUE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_BLUE, LED_ON_LVL);
- gpio_set_level(GPIO_LED_ORANGE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_GREEN, LED_ON_LVL);
- gpio_set_level(GPIO_LED_BLUE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_ORANGE, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_GREEN, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_BLUE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_ORANGE, LED_OFF_LVL);
- break;
- }
-}
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- }
-}
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/icarus/vif_override.xml b/board/icarus/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/icarus/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/it83xx_evb/board.c b/board/it83xx_evb/board.c
deleted file mode 100644
index a18b8b3b70..0000000000
--- a/board/it83xx_evb/board.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2013 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.
- */
-/* IT83xx development board configuration */
-
-#include "adc_chip.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-/*
- * PWM channels. Must be in the exactly same order as in enum pwm_channel.
- * There total three 16 bits clock prescaler registers for all pwm channels,
- * so use the same frequency and prescaler register setting is required if
- * number of pwm channel greater than three.
- */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = PWM_HW_CH_DCR7,
- .flags = 0,
- .freq_hz = 30000,
- .pcfsr_sel = PWM_PRESCALER_C4,
- },
- [PWM_CH_WITH_DSLEEP_FLAG] = {
- .channel = PWM_HW_CH_DCR0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 100,
- .pcfsr_sel = PWM_PRESCALER_C6,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- /* Convert to mV (3000mV/1024). */
- [ADC_VBUSSA] = {
- .name = "ADC_VBUSSA",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0, /* GPI0, ADC0 */
- },
- [ADC_VBUSSB] = {
- .name = "ADC_VBUSSB",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH1, /* GPI1, ADC1 */
- },
- [ADC_EVB_CH_13] = {
- .name = "ADC_EVB_CH_13",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13, /* GPL0, ADC13 */
- },
- [ADC_EVB_CH_14] = {
- .name = "ADC_EVB_CH_14",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH14, /* GPL1, ADC14 */
- },
- [ADC_EVB_CH_15] = {
- .name = "ADC_EVB_CH_15",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15, /* GPL2, ADC15 */
- },
- [ADC_EVB_CH_16] = {
- .name = "ADC_EVB_CH_16",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH16, /* GPL3, ADC16 */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
diff --git a/board/it83xx_evb/board.h b/board/it83xx_evb/board.h
deleted file mode 100644
index 754474174c..0000000000
--- a/board/it83xx_evb/board.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/* IT83xx development board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#define CONFIG_DAC
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_WITH_DSLEEP_FLAG,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum adc_channel {
- ADC_VBUSSA,
- ADC_VBUSSB,
- ADC_EVB_CH_13,
- ADC_EVB_CH_14,
- ADC_EVB_CH_15,
- ADC_EVB_CH_16,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/it83xx_evb/build.mk b/board/it83xx_evb/build.mk
deleted file mode 100644
index e4c8c01b89..0000000000
--- a/board/it83xx_evb/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2013 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.
-#
-# Board specific files build
-
-# the IC is ITE IT8390/IT8320
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=ite_evb
-
-board-y=board.o
diff --git a/board/it83xx_evb/ec.tasklist b/board/it83xx_evb/ec.tasklist
deleted file mode 100644
index 3ca78d55db..0000000000
--- a/board/it83xx_evb/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2013 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
diff --git a/board/it83xx_evb/gpio.inc b/board/it83xx_evb/gpio.inc
deleted file mode 100644
index 52df89e5cb..0000000000
--- a/board/it83xx_evb/gpio.inc
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO_INT(PCH_PLTRST_L, PIN(E, 3), GPIO_INT_BOTH | GPIO_PULL_UP, lpcrst_interrupt)
-#endif
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN, lid_interrupt)
-GPIO_INT(WP_L, PIN(E, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protect input */
-#ifdef CONFIG_LOW_POWER_IDLE
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING, uart_deepsleep_interrupt) /* UART1 RX input */
-#endif
-
-GPIO(PCH_SMI_L, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(PCH_SCI_L, PIN(D, 4), GPIO_OUT_HIGH)
-GPIO(GATE_A20_H, PIN(B, 5), GPIO_OUT_HIGH)
-GPIO(SYS_RESET_L, PIN(B, 6), GPIO_OUT_HIGH)
-GPIO(LPC_CLKRUN_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(PCH_WAKE_L, PIN(B, 7), GPIO_ODR_HIGH) /* Wake signal from EC to PCH */
-
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT)
-#ifdef CONFIG_IT83XX_SMCLK2_ON_GPC7
-GPIO(I2C_C_SCL, PIN(C, 7), GPIO_INPUT)
-#else
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT)
-#endif
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT)
-
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT)
-
-#ifdef CONFIG_UART_HOST
-GPIO(UART2_SIN1, PIN(H, 1), GPIO_INPUT)
-GPIO(UART2_SOUT1, PIN(H, 2), GPIO_INPUT)
-#endif
-
-/* KSO/KSI pins can be used as GPIO input. */
-GPIO(BOARD_VERSION1, PIN(KSO_H, 5), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(KSO_H, 6), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(KSO_H, 7), GPIO_INPUT)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, GPIO_PULL_UP) /* UART1 */
-#ifdef CONFIG_UART_HOST
-ALTERNATE(PIN_MASK(H, 0x06), 1, MODULE_UART, 0) /* UART2 */
-#endif
-ALTERNATE(PIN_MASK(A, 0x40), 3, MODULE_SPI_CONTROLLER, 0) /* SSCK of SPI */
-ALTERNATE(PIN_MASK(C, 0x28), 3, MODULE_SPI_CONTROLLER, 0) /* SMOSI/SMISO of SPI */
-ALTERNATE(PIN_MASK(G, 0x01), 3, MODULE_SPI_CONTROLLER, 0) /* SSCE1# of SPI */
-ALTERNATE(PIN_MASK(G, 0x04), 3, MODULE_SPI_CONTROLLER, 0) /* SSCE0# of SPI */
-ALTERNATE(PIN_MASK(A, 0x80), 1, MODULE_PWM, 0) /* PWM7 for FAN1 */
-ALTERNATE(PIN_MASK(D, 0x40), 3, MODULE_PWM, 0) /* TACH0A for FAN1 */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A SCL/SDA */
-#ifdef CONFIG_IT83XX_SMCLK2_ON_GPC7
-ALTERNATE(PIN_MASK(C, 0x86), 1, MODULE_I2C, 0) /* I2C B SCL/SDA, C SCL */
-ALTERNATE(PIN_MASK(F, 0x80), 1, MODULE_I2C, 0) /* I2C C SDA */
-#else
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, 0) /* I2C B SCL/SDA */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C SCL/SDA */
-#endif
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E SCL/SDA E0/E7 */
-ALTERNATE(PIN_MASK(I, 0x03), 1, MODULE_ADC, 0) /* ADC CH0, CH1 */
-ALTERNATE(PIN_MASK(L, 0x0F), 1, MODULE_ADC, 0) /* ADC CH13-CH16 */
-ALTERNATE(PIN_MASK(J, 0x3C), 1, MODULE_DAC, 0) /* DAC CH2.3.4.5 */
diff --git a/board/it8xxx2_evb/board.c b/board/it8xxx2_evb/board.c
deleted file mode 100644
index 0daa3d48cd..0000000000
--- a/board/it8xxx2_evb/board.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* 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.
- */
-/* IT8xxx2 development board configuration */
-
-#include "adc_chip.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-/*
- * PWM channels. Must be in the exactly same order as in enum pwm_channel.
- * There total three 16 bits clock prescaler registers for all pwm channels,
- * so use the same frequency and prescaler register setting is required if
- * number of pwm channel greater than three.
- */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = PWM_HW_CH_DCR7,
- .flags = 0,
- .freq_hz = 30000,
- .pcfsr_sel = PWM_PRESCALER_C4,
- },
- [PWM_CH_WITH_DSLEEP_FLAG] = {
- .channel = PWM_HW_CH_DCR0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 100,
- .pcfsr_sel = PWM_PRESCALER_C6,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- /* Convert to mV (3000mV/1024). */
- [ADC_VBUSSA] = {
- .name = "ADC_VBUSSA",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0, /* GPI0, ADC0 */
- },
- [ADC_VBUSSB] = {
- .name = "ADC_VBUSSB",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH1, /* GPI1, ADC1 */
- },
- [ADC_EVB_CH_13] = {
- .name = "ADC_EVB_CH_13",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13, /* GPL1, ADC13 */
- },
- [ADC_EVB_CH_14] = {
- .name = "ADC_EVB_CH_14",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH14, /* GPL2, ADC14 */
- },
- [ADC_EVB_CH_15] = {
- .name = "ADC_EVB_CH_15",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15, /* GPL3, ADC15 */
- },
- [ADC_EVB_CH_16] = {
- .name = "ADC_EVB_CH_16",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH16, /* GPL0, ADC16 */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
diff --git a/board/it8xxx2_evb/board.h b/board/it8xxx2_evb/board.h
deleted file mode 100644
index 1369e43496..0000000000
--- a/board/it8xxx2_evb/board.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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.
- */
-
-/* IT8xxx2 development board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#include "baseboard.h"
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_WITH_DSLEEP_FLAG,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum adc_channel {
- ADC_VBUSSA,
- ADC_VBUSSB,
- ADC_EVB_CH_13,
- ADC_EVB_CH_14,
- ADC_EVB_CH_15,
- ADC_EVB_CH_16,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/it8xxx2_evb/build.mk b/board/it8xxx2_evb/build.mk
deleted file mode 100644
index b54a2fcbb6..0000000000
--- a/board/it8xxx2_evb/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-
-# the IC is ITE IT8xxx2
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202ax_1024
-BASEBOARD:=ite_evb
-
-board-y=board.o
diff --git a/board/it8xxx2_evb/ec.tasklist b/board/it8xxx2_evb/ec.tasklist
deleted file mode 100644
index ff184489e3..0000000000
--- a/board/it8xxx2_evb/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
diff --git a/board/it8xxx2_evb/gpio.inc b/board/it8xxx2_evb/gpio.inc
deleted file mode 100644
index 8a7f593ab6..0000000000
--- a/board/it8xxx2_evb/gpio.inc
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO_INT(PCH_PLTRST_L, PIN(E, 3), GPIO_INT_BOTH | GPIO_PULL_UP, lpcrst_interrupt)
-#endif
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(WP_L, PIN(I, 4), GPIO_INT_BOTH | GPIO_PULL_UP, switch_interrupt) /* Write protect input */
-#ifdef CONFIG_LOW_POWER_IDLE
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING | GPIO_PULL_UP, uart_deepsleep_interrupt) /* UART1 RX input */
-#endif
-
-GPIO(PCH_SMI_L, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(PCH_SCI_L, PIN(D, 4), GPIO_OUT_HIGH)
-GPIO(GATE_A20_H, PIN(B, 5), GPIO_OUT_HIGH)
-GPIO(SYS_RESET_L, PIN(B, 6), GPIO_OUT_HIGH)
-GPIO(LPC_CLKRUN_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(PCH_WAKE_L, PIN(B, 7), GPIO_ODR_HIGH) /* Wake signal from EC to PCH */
-
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT)
-#ifdef CONFIG_IT83XX_SMCLK2_ON_GPC7
-GPIO(I2C_C_SCL, PIN(C, 7), GPIO_INPUT)
-#else
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT)
-#endif
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT)
-
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT)
-
-#ifdef CONFIG_UART_HOST
-GPIO(UART2_SIN1, PIN(H, 1), GPIO_INPUT)
-GPIO(UART2_SOUT1, PIN(H, 2), GPIO_INPUT)
-#endif
-
-/* KSO/KSI pins can be used as GPIO input. */
-GPIO(BOARD_VERSION1, PIN(KSO_H, 5), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(KSO_H, 6), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(KSO_H, 7), GPIO_INPUT)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, GPIO_PULL_UP) /* UART1 */
-#ifdef CONFIG_UART_HOST
-ALTERNATE(PIN_MASK(H, 0x06), 1, MODULE_UART, 0) /* UART2 */
-#endif
-ALTERNATE(PIN_MASK(A, 0x40), 3, MODULE_SPI_CONTROLLER, 0) /* SSCK of SPI */
-ALTERNATE(PIN_MASK(C, 0x28), 3, MODULE_SPI_CONTROLLER, 0) /* SMOSI/SMISO of SPI */
-ALTERNATE(PIN_MASK(G, 0x01), 3, MODULE_SPI_CONTROLLER, 0) /* SSCE1# of SPI */
-ALTERNATE(PIN_MASK(G, 0x04), 3, MODULE_SPI_CONTROLLER, 0) /* SSCE0# of SPI */
-ALTERNATE(PIN_MASK(A, 0x80), 1, MODULE_PWM, 0) /* PWM7 for FAN1 */
-ALTERNATE(PIN_MASK(D, 0x40), 3, MODULE_PWM, 0) /* TACH0A for FAN1 */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A SCL/SDA */
-#ifdef CONFIG_IT83XX_SMCLK2_ON_GPC7
-ALTERNATE(PIN_MASK(C, 0x86), 1, MODULE_I2C, 0) /* I2C B SCL/SDA, C SCL */
-ALTERNATE(PIN_MASK(F, 0x80), 1, MODULE_I2C, 0) /* I2C C SDA */
-#else
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, 0) /* I2C B SCL/SDA */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C SCL/SDA */
-#endif
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E SCL/SDA E0/E7 */
-ALTERNATE(PIN_MASK(I, 0x03), 1, MODULE_ADC, 0) /* ADC CH0, CH1 */
-ALTERNATE(PIN_MASK(L, 0x0F), 1, MODULE_ADC, 0) /* ADC CH13-CH16 */
diff --git a/board/it8xxx2_pdevb/board.c b/board/it8xxx2_pdevb/board.c
deleted file mode 100644
index 7c239866f0..0000000000
--- a/board/it8xxx2_pdevb/board.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* 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.
- */
-/* IT8xxx2 PD development board configuration */
-
-#include "adc_chip.h"
-#include "battery.h"
-#include "console.h"
-#include "it83xx_pd.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "timer.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define USB_PD_PORT_ITE_0 0
-#define USB_PD_PORT_ITE_1 1
-#define USB_PD_PORT_ITE_2 2
-#define RESISTIVE_DIVIDER 11
-
-int board_get_battery_soc(void)
-{
- CPRINTS("%s", __func__);
- return 100;
-}
-
-enum battery_present battery_is_present(void)
-{
- CPRINTS("%s", __func__);
- return BP_NO;
-}
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ITE_0] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so needn't i2c config */
- .drv = &it8xxx2_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
- [USB_PD_PORT_ITE_1] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so needn't i2c config */
- .drv = &it8xxx2_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
-};
-
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- int cc1_enabled = 0, cc2_enabled = 0;
-
- if (cc_pin != USBPD_CC_PIN_1)
- cc2_enabled = enabled;
- else
- cc1_enabled = enabled;
-
- if (port == USBPD_PORT_A) {
- gpio_set_level(GPIO_USBPD_PORTA_CC2_VCONN, cc2_enabled);
- gpio_set_level(GPIO_USBPD_PORTA_CC1_VCONN, cc1_enabled);
- } else if (port == USBPD_PORT_B) {
- gpio_set_level(GPIO_USBPD_PORTB_CC2_VCONN, cc2_enabled);
- gpio_set_level(GPIO_USBPD_PORTB_CC1_VCONN, cc1_enabled);
- } else if (port == USBPD_PORT_C) {
- gpio_set_level(GPIO_USBPD_PORTC_CC2_VCONN, cc2_enabled);
- gpio_set_level(GPIO_USBPD_PORTC_CC1_VCONN, cc1_enabled);
- }
-
- CPRINTS("p%d Vconn cc1 %d, cc2 %d (On/Off)", port, cc1_enabled,
- cc2_enabled);
-}
-
-void board_pd_vbus_ctrl(int port, int enabled)
-{
- CPRINTS("p%d Vbus %d(En/Dis)", port, enabled);
-
- if (port == USBPD_PORT_A) {
- gpio_set_level(GPIO_USBPD_PORTA_VBUS_INPUT, !enabled);
- gpio_set_level(GPIO_USBPD_PORTA_VBUS_OUTPUT, enabled);
- if (!enabled) {
- gpio_set_level(GPIO_USBPD_PORTA_VBUS_DROP, 1);
- udelay(10*MSEC); /* 10ms is a try and error value */
- }
- gpio_set_level(GPIO_USBPD_PORTA_VBUS_DROP, 0);
- } else if (port == USBPD_PORT_B) {
- gpio_set_level(GPIO_USBPD_PORTB_VBUS_INPUT, !enabled);
- gpio_set_level(GPIO_USBPD_PORTB_VBUS_OUTPUT, enabled);
- if (!enabled) {
- gpio_set_level(GPIO_USBPD_PORTB_VBUS_DROP, 1);
- udelay(10*MSEC); /* 10ms is a try and error value */
- }
- gpio_set_level(GPIO_USBPD_PORTB_VBUS_DROP, 0);
- } else if (port == USBPD_PORT_C) {
- gpio_set_level(GPIO_USBPD_PORTC_VBUS_INPUT, !enabled);
- gpio_set_level(GPIO_USBPD_PORTC_VBUS_OUTPUT, enabled);
- if (!enabled) {
- gpio_set_level(GPIO_USBPD_PORTC_VBUS_DROP, 1);
- udelay(10*MSEC); /* 10ms is a try and error value */
- }
- gpio_set_level(GPIO_USBPD_PORTC_VBUS_DROP, 0);
- }
-
- if (enabled)
- udelay(10*MSEC); /* 10ms is a try and error value */
-}
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- CPRINTS("p%d %s", port, __func__);
-}
-
-/*
- * PWM channels. Must be in the exactly same order as in enum pwm_channel.
- * There total three 16 bits clock prescaler registers for all pwm channels,
- * so use the same frequency and prescaler register setting is required if
- * number of pwm channel greater than three.
- */
-const struct pwm_t pwm_channels[] = {
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- /*
- * The register value of ADC reading convert to mV (= register value *
- * reading max mV / 10 bit solution 1024).
- * NOTE: If the ADC channel measure VBUS:
- * the max reading mv value is the result of resistive divider,
- * so VBUS = reading max mv * resistive divider
- * (check HW schematic).
- */
- [ADC_VBUSSA] = {
- .name = "ADC_VBUSSA",
- .factor_mul = ADC_MAX_MVOLT * RESISTIVE_DIVIDER,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH7, /* GPI7, ADC7 */
- },
- [ADC_VBUSSB] = {
- .name = "ADC_VBUSSB",
- .factor_mul = ADC_MAX_MVOLT * RESISTIVE_DIVIDER,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3, /* GPI3, ADC3 */
- },
- [ADC_VBUSSC] = {
- .name = "ADC_VBUSSC",
- .factor_mul = ADC_MAX_MVOLT * RESISTIVE_DIVIDER,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH16, /* GPL0, ADC16 */
- },
- [ADC_EVB_CH_13] = {
- .name = "ADC_EVB_CH_13",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13, /* GPL1, ADC13 */
- },
- [ADC_EVB_CH_14] = {
- .name = "ADC_EVB_CH_14",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH14, /* GPL2, ADC14 */
- },
- [ADC_EVB_CH_15] = {
- .name = "ADC_EVB_CH_15",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15, /* GPL3, ADC15 */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
diff --git a/board/it8xxx2_pdevb/board.h b/board/it8xxx2_pdevb/board.h
deleted file mode 100644
index 8646c6c7b3..0000000000
--- a/board/it8xxx2_pdevb/board.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* 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.
- */
-
-/* IT8xxx2 PD development board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#include "baseboard.h"
-
-/*
- * Enable PD in RO image for TCPMv2, otherwise there is only Type-c functions.
- * NOTE: This configuration is only for development board and will never be
- * released on a chrome os device.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* EC configurations, unnecessarily for PD */
-#undef CONFIG_FANS
-#undef CONFIG_IT83XX_ENABLE_MOUSE_DEVICE
-#undef CONFIG_IT83XX_SMCLK2_ON_GPC7
-#undef CONFIG_KEYBOARD_PROTOCOL_8042
-#undef CONFIG_PECI
-#undef CONFIG_PECI_COMMON
-#undef CONFIG_PECI_TJMAX
-#undef CONFIG_POWER_BUTTON
-#undef CONFIG_PWM
-#undef CONFIG_SPI_CONTROLLER
-#undef CONFIG_SPI_FLASH_PORT
-#undef CONFIG_UART_HOST
-#undef CONFIG_HOSTCMD_LPC
-#undef CONFIG_CMD_MMAPINFO
-#undef CONFIG_SWITCH
-
-/* PD */
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_CHECK_MAX_REQUEST_ALLOWED
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_3A_PORTS 0
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 2
-#define CONFIG_USB_PD_TCPMV2
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USB_PD_REV30
-#define CONFIG_USB_PID 0x1234 /* Invalid PID for development board */
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_DECODE_SOP
-#define CONFIG_VBOOT_HASH
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum pwm_channel {
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum adc_channel {
- ADC_VBUSSA,
- ADC_VBUSSB,
- ADC_VBUSSC,
- ADC_EVB_CH_13,
- ADC_EVB_CH_14,
- ADC_EVB_CH_15,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-/* Try to negotiate to 20V since i2c noise problems should be fixed. */
-#define PD_MAX_VOLTAGE_MV 20000
-/* TODO: determine the following board specific type-C power constants */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-void board_pd_vbus_ctrl(int port, int enabled);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/it8xxx2_pdevb/build.mk b/board/it8xxx2_pdevb/build.mk
deleted file mode 100644
index b54a2fcbb6..0000000000
--- a/board/it8xxx2_pdevb/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-
-# the IC is ITE IT8xxx2
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202ax_1024
-BASEBOARD:=ite_evb
-
-board-y=board.o
diff --git a/board/it8xxx2_pdevb/ec.tasklist b/board/it8xxx2_pdevb/ec.tasklist
deleted file mode 100644
index 41fc733526..0000000000
--- a/board/it8xxx2_pdevb/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/it8xxx2_pdevb/gpio.inc b/board/it8xxx2_pdevb/gpio.inc
deleted file mode 100644
index afc83a82c3..0000000000
--- a/board/it8xxx2_pdevb/gpio.inc
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(WP_L, PIN(I, 4), GPIO_INT_BOTH | GPIO_PULL_UP, switch_interrupt) /* Write protect input */
-#ifdef CONFIG_LOW_POWER_IDLE
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING | GPIO_PULL_UP, uart_deepsleep_interrupt) /* UART1 RX input */
-#endif
-
-/*
- * Because HW port0 and port1 cc pin order invert, FW invert it again.
- * ex. FW portA pins are mapping to: HW port1 GPF4, GPF5, ADC7, Vbus, Vconn.
- * FW portB pins are mapping to: HW port0 GPH1, GPH2, ADC3, Vbus, Vconn.
- * FW portC pins are mapping to: HW port3 GPP0, GPP1, ADC16, Vbus, Vconn.
- */
-GPIO(USBPD_PORTA_VBUS_SEN1P1, PIN(J, 0), GPIO_OUT_LOW) /* VBUSSEN1P1 */
-GPIO(USBPD_PORTA_VBUS_DROP, PIN(F, 3), GPIO_OUT_LOW) /* VBUSDISP1 */
-GPIO(USBPD_PORTA_VBUS_OUTPUT, PIN(F, 1), GPIO_OUT_LOW) /* VBUSOUTSWENP1 */
-GPIO(USBPD_PORTA_VBUS_INPUT, PIN(E, 3), GPIO_OUT_HIGH) /* VBUSINSWENP1 */
-GPIO(USBPD_PORTA_VBUS_OV_OC, PIN(C, 3), GPIO_INPUT) /* VSWFLTP1 1? */
-GPIO(USBPD_PORTA_CC1_VCONN, PIN(E, 1), GPIO_OUT_LOW)
-GPIO(USBPD_PORTA_CC2_VCONN, PIN(J, 5), GPIO_OUT_LOW)
-GPIO(USBPD_PORTA_VCONN_OV_OC, PIN(B, 5), GPIO_INPUT) /* VCONSWFLTP1 1? */
-GPIO(USBPD_PORTB_VBUS_SEN1P0, PIN(H, 0), GPIO_OUT_LOW) /* VBUSSEN1P0 */
-GPIO(USBPD_PORTB_VBUS_DROP, PIN(D, 5), GPIO_OUT_LOW) /* VBUSDISP0 */
-GPIO(USBPD_PORTB_VBUS_OUTPUT, PIN(A, 6), GPIO_OUT_LOW) /* VBUSOUTSWENP0 */
-GPIO(USBPD_PORTB_VBUS_INPUT, PIN(A, 7), GPIO_OUT_HIGH) /* VBUSINSWENP0 */
-GPIO(USBPD_PORTB_VBUS_OV_OC, PIN(D, 2), GPIO_INPUT) /* VSWFLTP0 */
-GPIO(USBPD_PORTB_CC1_VCONN, PIN(A, 5), GPIO_OUT_LOW)
-GPIO(USBPD_PORTB_CC2_VCONN, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(USBPD_PORTB_VCONN_OV_OC, PIN(D, 4), GPIO_INPUT) /* VCONSWFLTP0 */
-GPIO(USBPD_PORTC_VBUS_SEN1P3, PIN(P, 2), GPIO_OUT_LOW) /* VBUSSEN1P3 */
-GPIO(USBPD_PORTC_VBUS_DROP, PIN(P, 3), GPIO_OUT_LOW) /* VBUSDISP3 */
-GPIO(USBPD_PORTC_VBUS_OUTPUT, PIN(P, 4), GPIO_OUT_LOW) /* VBUSOUTSWENP3 */
-GPIO(USBPD_PORTC_VBUS_INPUT, PIN(P, 5), GPIO_OUT_HIGH) /* VBUSINSWENP3 */
-GPIO(USBPD_PORTC_VBUS_OV_OC, PIN(P, 6), GPIO_INPUT) /* VSWFLTP3 */
-GPIO(USBPD_PORTC_CC1_VCONN, PIN(O, 0), GPIO_OUT_LOW)
-GPIO(USBPD_PORTC_CC2_VCONN, PIN(O, 1), GPIO_OUT_LOW)
-GPIO(USBPD_PORTC_VCONN_OV_OC, PIN(O, 2), GPIO_INPUT) /* VCONSWFLTP3 */
-
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT)
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT)
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT)
-
-/* KSO/KSI pins can be used as GPIO input. */
-GPIO(BOARD_VERSION1, PIN(KSO_H, 5), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(KSO_H, 6), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(KSO_H, 7), GPIO_INPUT)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(PCH_SCI_L)
-UNIMPLEMENTED(PCH_WAKE_L)
-UNIMPLEMENTED(POWER_BUTTON_L)
-UNIMPLEMENTED(LID_OPEN)
-
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, GPIO_PULL_UP) /* UART1 */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A SCL/SDA */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, 0) /* I2C B SCL/SDA */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C SCL/SDA */
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E SCL/SDA E0/E7 */
-ALTERNATE(PIN_MASK(I, 0x88), 1, MODULE_ADC, 0) /* ADC CH3, CH7 */
-ALTERNATE(PIN_MASK(L, 0x0F), 1, MODULE_ADC, 0) /* ADC CH13-CH16 */
diff --git a/board/it8xxx2_pdevb/vif_override.xml b/board/it8xxx2_pdevb/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/it8xxx2_pdevb/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/jacuzzi/battery.c b/board/jacuzzi/battery.c
deleted file mode 100644
index 443bf1e98a..0000000000
--- a/board/jacuzzi/battery.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_PANASONIC_AC15A3J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AC15A3J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11580,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_PANASONIC_AC16L5J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- [BATTERY_LGC_AC16L8J] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0020G010",
- .device_name = "AP16L8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7500,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- [BATTERY_PANASONIC_AC16L5J_KT00205009] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00205009",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC16L5J_KT00205009;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/jacuzzi/board.c b/board/jacuzzi/board.c
deleted file mode 100644
index ec6515544d..0000000000
--- a/board/jacuzzi/board.c
+++ /dev/null
@@ -1,571 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
-#ifdef BOARD_JACUZZI
- {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-#else /* Juniper */
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-#endif
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- int board_version;
-
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-
- board_version = board_get_version();
- if (board_version == 8 || board_version == 9) {
- /* Disable motion sense. */
-#ifndef VARIANT_KUKUI_NO_SENSORS
- motion_sensor_count = 0;
- gpio_disable_interrupt(GPIO_ACCEL_INT_ODL);
- gpio_set_flags(GPIO_ACCEL_INT_ODL,
- GPIO_INPUT | GPIO_PULL_DOWN);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
- /* Disable tablet mode. */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- gmr_tablet_switch_disable();
- gpio_set_flags(GPIO_TABLET_MODE_L,
- GPIO_INPUT | GPIO_PULL_UP);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_bmi160_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_icm426xx_ref = {
- {0, FLOAT_TO_FP(-1), 0},
- {FLOAT_TO_FP(1), 0, 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_ICM426XX = 2,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g, enough to calculate lid angle. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_bmi160_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_bmi160_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_icm426xx_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm426xx_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-static int base_accelgyro_config;
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_accelgyro_config) {
- case BASE_GYRO_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case BASE_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-static void board_detect_motionsensor(void)
-{
- int val;
- /* Check base accelgyro chip */
- if (base_accelgyro_config != BASE_GYRO_NONE)
- return;
-
- icm_read8(&icm426xx_base_accel, ICM426XX_REG_WHO_AM_I, &val);
- if (val == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- }
- base_accelgyro_config = (val == ICM426XX_CHIP_ICM40608)
- ? BASE_GYRO_ICM426XX : BASE_GYRO_BMI160;
- CPRINTS("Base Accelgyro: %s", (val == ICM426XX_CHIP_ICM40608)
- ? "ICM40608" : "BMI160");
-}
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_DEFAULT);
-
-int board_sensor_at_360(void)
-{
- int board_version;
-
- board_version = board_get_version();
- if (board_version == 8 || board_version == 9)
- return 0;
- else
- return !gpio_get_level(GMR_TABLET_MODE_GPIO_L);
-}
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return board_get_version() == 1 ? 2 : 1;
-}
-
-int board_get_battery_i2c(void)
-{
- return board_get_version() >= 1 ? 2 : 1;
-}
diff --git a/board/jacuzzi/board.h b/board/jacuzzi/board.h
deleted file mode 100644
index ef8a02a3dc..0000000000
--- a/board/jacuzzi/board.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-#undef CONFIG_CMD_MFALLOW
-
-/* Free up flash space */
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#ifdef BOARD_JUNIPER
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-#undef CONFIG_SYSTEM_UNLOCKED
-#endif
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* ICM426XX Base accel/gyro */
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ALS
-#define CONFIG_CMD_ACCEL_INFO
-
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_GMR_TABLET_MODE_CUSTOM
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_CHARGER board_get_charger_i2c()
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#ifdef BOARD_JACUZZI
-#define I2C_PORT_BATTERY 1
-#else /* Juniper */
-#define I2C_PORT_BATTERY 2
-#endif
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#define CONFIG_LED_ONOFF_STATES
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_PANASONIC_AC15A3J,
- BATTERY_PANASONIC_AC16L5J,
- BATTERY_LGC_AC16L8J,
- BATTERY_PANASONIC_AC16L5J_KT00205009,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger/battery */
-int board_get_charger_i2c(void);
-int board_get_battery_i2c(void);
-
-/* Motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/jacuzzi/build.mk b/board/jacuzzi/build.mk
deleted file mode 100644
index e449fce9fc..0000000000
--- a/board/jacuzzi/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/jacuzzi/ec.tasklist b/board/jacuzzi/ec.tasklist
deleted file mode 100644
index b695d05a71..0000000000
--- a/board/jacuzzi/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/jacuzzi/gpio.inc b/board/jacuzzi/gpio.inc
deleted file mode 100644
index 60288e7195..0000000000
--- a/board/jacuzzi/gpio.inc
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- motion_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(LED_BLUE, EXPIN(0, 1, 4), GPIO_OUT_HIGH) /* LED BLUE */
-IOEX(LED_GREEN, EXPIN(0, 1, 3), GPIO_OUT_HIGH) /* LED GREEN */
-IOEX(LED_ORANGE, EXPIN(0, 1, 2), GPIO_OUT_HIGH) /* LED ORANGE */
-
-#ifdef BOARD_JACUZZI
-GPIO(LID_ACCEL_INT_ODL, PIN(A, 14), GPIO_INPUT)
-/* Jacuzzi doesn't have EN_PP1800_S5_L. */
-UNIMPLEMENTED(EN_PP1800_S5_L)
-#else
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-#endif
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-
-
-/* SPI1 */
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* SPI2 */
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/jacuzzi/led.c b/board/jacuzzi/led.c
deleted file mode 100644
index e76b73bc9a..0000000000
--- a/board/jacuzzi/led.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Jacuzzi
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_LED_ORANGE, LED_ON_LVL);
- ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- ioex_set_level(IOEX_LED_BLUE, LED_ON_LVL);
- ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- ioex_set_level(IOEX_LED_GREEN, LED_ON_LVL);
- ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL);
- break;
- }
-}
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- }
-}
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/jacuzzi/vif_override.xml b/board/jacuzzi/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/jacuzzi/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/jinlon/battery.c b/board/jinlon/battery.c
deleted file mode 100644
index 12c2e38d84..0000000000
--- a/board/jinlon/battery.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "common.h"
-#include "hooks.h"
-#include "usb_pd.h"
-
-/*
- * Battery info for all Jinlon battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack CosMX Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-14-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/jinlon/board.c b/board/jinlon/board.c
deleted file mode 100644
index 470ff37f65..0000000000
--- a/board/jinlon/board.c
+++ /dev/null
@@ -1,520 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/oti502.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "keyboard_8042.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void check_reboot_deferred(void);
-DECLARE_DEFERRED(check_reboot_deferred);
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- baseboard_mst_enable_control(MST_HDMI, gpio_get_level(signal));
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 100 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_FAN2] = {.channel = 6, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-const struct fan_conf fan_conf_1 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_1, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN2,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-const struct fan_rpm fan_rpm_1 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
- [FAN_CH_1] = { .conf = &fan_conf_1, .rpm = &fan_rpm_1, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
- [MFT_CH_1] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN2},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_5V_REG", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_3] = {
- "TEMP_CPU", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "5v Reg",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "CPU",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "IR Sensor",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = oti502_get_val,
- .idx = OTI502_IDX_OBJECT},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-/* Dratini Temperature sensors */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(70),
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(86),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(50),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_b;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-}
-
-static const struct ec_response_keybd_config keybd1 = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_KBD_BKLIGHT_DOWN, /* T8 */
- TK_KBD_BKLIGHT_UP, /* T9 */
- TK_PLAY_PAUSE, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config keybd2 = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_PRIVACY_SCRN_TOGGLE, /* T8 */
- TK_KBD_BKLIGHT_DOWN, /* T9 */
- TK_KBD_BKLIGHT_UP, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- /*
- * Future boards should use fw_config instead of SKU ID
- * to make such decisions.
- */
- switch (get_board_sku()) {
- case 1:
- case 21:
- return &keybd1;
- case 2:
- case 22:
- return &keybd2;
- default:
- cprints(CC_KEYBOARD,
- "Error! Bad SKU ID, Using default VIVLADI keyboard!");
- return &keybd1;
- }
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
- /* Enable HDMI HPD interrupt. */
- gpio_enable_interrupt(GPIO_HDMI_CONN_HPD);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {1, 4}, {1, 3}, {1, 6}, {1, 7},
- {3, 1}, {2, 0}, {1, 5}, {2, 6}, {2, 7},
- {2, 1}, {2, 4}, {2, 5}, {1, 2}, {2, 3},
- {2, 2}, {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255) || (sku == 1) || (sku == 2) || (sku == 21) ||
- (sku == 22);
-}
-
-
-void all_sys_pgood_check_reboot(void)
-{
- hook_call_deferred(&check_reboot_deferred_data, 3000 * MSEC);
-}
-
-__override void board_chipset_forced_shutdown(void)
-{
- hook_call_deferred(&check_reboot_deferred_data, -1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_forced_shutdown,
- HOOK_PRIO_DEFAULT);
-
-static void check_reboot_deferred(void)
-{
- if (!gpio_get_level(GPIO_PG_EC_ALL_SYS_PWRGD))
- system_reset(SYSTEM_RESET_MANUALLY_TRIGGERED);
-}
diff --git a/board/jinlon/board.h b/board/jinlon/board.h
deleted file mode 100644
index beb30c8e12..0000000000
--- a/board/jinlon/board.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_DPTF_MULTI_PROFILE
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#undef CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/*
- * Jinlon's battery takes several seconds to come back out of its disconnect
- * state (~4 seconds, but give it 6 for margin).
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 6
-
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 5000
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY 0
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C0_TCPC_RST GPIO_USB_C0_TCPC_RST_ODL
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A_LOW_PWR_OD
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set based on the battery's discharge current limit and what was tested to
- * prevent the AP rebooting with low charge level batteries.
- *
- * TODO(b/133447140): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 2
-#define CONFIG_CUSTOM_FAN_CONTROL
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define RPM_DEVIATION 1
-#define CONFIG_TEMP_SENSOR_OTI502
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* MST */
-/*
- * TDOD (b/124068003): This inherently assumes the MST chip is connected to only
- * one Type C port. This will need to be chagned to support 2 Type C ports
- * connected to the same MST chip.
- */
-#define USB_PD_PORT_TCPC_MST USB_PD_PORT_TCPC_1
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC2 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_FAN2,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_1,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_1,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/jinlon/build.mk b/board/jinlon/build.mk
deleted file mode 100644
index 2d6118ea70..0000000000
--- a/board/jinlon/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o thermal.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/jinlon/ec.tasklist b/board/jinlon/ec.tasklist
deleted file mode 100644
index 4a1024a091..0000000000
--- a/board/jinlon/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/jinlon/gpio.inc b/board/jinlon/gpio.inc
deleted file mode 100644
index f57a331436..0000000000
--- a/board/jinlon/gpio.inc
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(C, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, bmi160_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-GPIO_INT(HDMI_CONN_HPD, PIN(7, 2), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(9, 7), GPIO_ODR_HIGH)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_LOW)
-GPIO(EN_USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_AMBER_C0_L, PIN(C, 4), GPIO_OUT_HIGH) /* Amber C0 port */
-GPIO(LED_WHITE_C0_L, PIN(C, 3), GPIO_OUT_HIGH) /* White C0 port */
-GPIO(LED_AMBER_C1_L, PIN(4, 2), GPIO_OUT_HIGH) /* Amber C1 port */
-GPIO(LED_WHITE_C1_L, PIN(C, 6), GPIO_OUT_HIGH) /* White C1 port */
-GPIO(PWR_LED_WHITE_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-GPIO(EN_PP5000_FAN2, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_MST, PIN(9, 6), GPIO_OUT_LOW)
-
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_THERMAL_SENSOR_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_THERMAL_SENSOR_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(C, 0x01), 0, MODULE_PWM, 0) /* PWM6 - FAN2 */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2*/
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/jinlon/led.c b/board/jinlon/led.c
deleted file mode 100644
index 18dfb67f78..0000000000
--- a/board/jinlon/led.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Jinlon
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICKS_PER_CYCLE 10
-#define LED_ON_TICKS 5
-#define POWER_LED_ON_TICKS 2
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == 0 ? GPIO_LED_AMBER_C0_L : GPIO_LED_AMBER_C1_L);
- white_led = (port == 0 ? GPIO_LED_WHITE_C0_L : GPIO_LED_WHITE_C1_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(1, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(1, LED_AMBER);
- else
- led_set_color_battery(1, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(0, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(0, LED_AMBER);
- else
- led_set_color_battery(0, LED_OFF);
- break;
- case EC_LED_ID_POWER_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(LED_WHITE);
- else
- led_set_color_power(LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(0, (port == 0) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(1, (port == 1) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(0, (battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_battery(0, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(1, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY))
- led_set_color_power((power_tick %
- LED_TICKS_PER_CYCLE < POWER_LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/jinlon/thermal.c b/board/jinlon/thermal.c
deleted file mode 100644
index 4d75f70738..0000000000
--- a/board/jinlon/thermal.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "fan.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "tablet_mode.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-/* Console output macros */
-#define CPUTS(outstr) cputs(CC_THERMAL, outstr)
-#define CPRINTS(format, args...) cprints(CC_THERMAL, format, ## args)
-
-struct fan_step {
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t on[TEMP_SENSOR_COUNT];
-
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t off[TEMP_SENSOR_COUNT];
-
- /* Fan 1~2 rpm */
- uint16_t rpm[FAN_CH_COUNT];
-};
-
-static const struct fan_step *fan_step_table;
-
-static const struct fan_step fan_table_clamshell[] = {
- {
- /* level 0 */
- .on = {0, -1, 54, 34},
- .off = {99, -1, 99, 99},
- .rpm = {0, 0},
- },
- {
- /* level 1 */
- .on = {0, -1, 57, 35},
- .off = {99, -1, 54, 34},
- .rpm = {3950, 3850},
- },
- {
- /* level 2 */
- .on = {0, -1, 58, 36},
- .off = {99, -1, 57, 35},
- .rpm = {4200, 4100},
- },
- {
- /* level 3 */
- .on = {0, -1, 59, 37},
- .off = {99, -1, 58, 36},
- .rpm = {4550, 4450},
- },
- {
- /* level 4 */
- .on = {60, -1, 60, 38},
- .off = {58, -1, 59, 37},
- .rpm = {4900, 4800},
- },
- {
- /* level 5 */
- .on = {62, -1, 61, 39},
- .off = {60, -1, 60, 38},
- .rpm = {5250, 5150},
- },
- {
- /* level 6 */
- .on = {65, -1, 64, 40},
- .off = {62, -1, 61, 39},
- .rpm = {5400, 5300},
- },
- {
- /* level 7 */
- .on = {100, -1, 100, 100},
- .off = {65, -1, 62, 40},
- .rpm = {6000, 6150},
- },
-};
-
-static const struct fan_step fan_table_tablet[] = {
- {
- /* level 0 */
- .on = {0, -1, 55, 39},
- .off = {99, -1, 99, 99},
- .rpm = {0, 0},
- },
- {
- /* level 1 */
- .on = {0, -1, 56, 40},
- .off = {99, -1, 55, 39},
- .rpm = {0, 0},
- },
- {
- /* level 2 */
- .on = {0, -1, 57, 41},
- .off = {99, -1, 56, 40},
- .rpm = {4000, 3350},
- },
- {
- /* level 3 */
- .on = {0, -1, 58, 42},
- .off = {99, -1, 57, 41},
- .rpm = {4200, 3400},
- },
- {
- /* level 4 */
- .on = {60, -1, 59, 43},
- .off = {58, -1, 58, 42},
- .rpm = {4400, 3500},
- },
- {
- /* level 5 */
- .on = {62, -1, 60, 44},
- .off = {60, -1, 59, 43},
- .rpm = {4800, 4350},
- },
- {
- /* level 6 */
- .on = {65, -1, 61, 45},
- .off = {62, -1, 60, 44},
- .rpm = {5000, 4500},
- },
- {
- /* level 7 */
- .on = {100, -1, 100, 100},
- .off = {65, -1, 61, 45},
- .rpm = {5200, 5100},
- },
-};
-
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_table_clamshell)
-
-BUILD_ASSERT(ARRAY_SIZE(fan_table_clamshell) ==
- ARRAY_SIZE(fan_table_tablet));
-
-int fan_table_to_rpm(int fan, int *temp)
-{
- static int current_level;
- static int prev_tmp[TEMP_SENSOR_COUNT];
- static int new_rpm;
- int i;
-
- if (tablet_get_mode())
- fan_step_table = fan_table_tablet;
- else
- fan_step_table = fan_table_clamshell;
-
- /*
- * Compare the current and previous temperature, we have
- * the three paths :
- * 1. decreasing path. (check the release point)
- * 2. increasing path. (check the trigger point)
- * 3. invariant path. (return the current RPM)
- */
-
- if (temp[TEMP_SENSOR_1] < prev_tmp[TEMP_SENSOR_1] ||
- temp[TEMP_SENSOR_3] < prev_tmp[TEMP_SENSOR_3] ||
- temp[TEMP_SENSOR_4] < prev_tmp[TEMP_SENSOR_4]) {
- for (i = current_level; i > 0; i--) {
- if (temp[TEMP_SENSOR_1] < fan_step_table[i].off[TEMP_SENSOR_1] &&
- temp[TEMP_SENSOR_4] < fan_step_table[i].off[TEMP_SENSOR_4] &&
- temp[TEMP_SENSOR_3] < fan_step_table[i].off[TEMP_SENSOR_3])
- current_level = i - 1;
- else
- break;
- }
- } else if (temp[TEMP_SENSOR_1] > prev_tmp[TEMP_SENSOR_1] ||
- temp[TEMP_SENSOR_3] > prev_tmp[TEMP_SENSOR_3] ||
- temp[TEMP_SENSOR_4] > prev_tmp[TEMP_SENSOR_4]) {
- for (i = current_level; i < NUM_FAN_LEVELS; i++) {
- if ((temp[TEMP_SENSOR_1] > fan_step_table[i].on[TEMP_SENSOR_1] &&
- temp[TEMP_SENSOR_4] > fan_step_table[i].on[TEMP_SENSOR_4]) ||
- temp[TEMP_SENSOR_3] > fan_step_table[i].on[TEMP_SENSOR_3])
- current_level = i + 1;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- for (i = 0; i < TEMP_SENSOR_COUNT; ++i)
- prev_tmp[i] = temp[i];
-
- ASSERT(current_level < NUM_FAN_LEVELS);
-
- switch (fan) {
- case FAN_CH_0:
- new_rpm = fan_step_table[current_level].rpm[FAN_CH_0];
- break;
- case FAN_CH_1:
- new_rpm = fan_step_table[current_level].rpm[FAN_CH_1];
- break;
- default:
- break;
- }
-
- return new_rpm;
-}
-
-void board_override_fan_control(int fan, int *tmp)
-{
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND)) {
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan),
- fan_table_to_rpm(fan, tmp));
- }
-}
diff --git a/board/jinlon/vif_override.xml b/board/jinlon/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/jinlon/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/jslrvp_ite/battery.c b/board/jslrvp_ite/battery.c
deleted file mode 100644
index 3584aec56d..0000000000
--- a/board/jslrvp_ite/battery.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "common.h"
-#include "util.h"
-
-const struct board_batt_params board_battery_info[] = {
- /*
- * Simplo Battery (SMP-HHP-408) Information
- * Fuel gauge: BQ40Z50
- */
- [BATTERY_SIMPLO_SMP_HHP_408] = {
- .fuel_gauge = {
- .manuf_name = "SMP-HHP-408",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = SB_BATTERY_STATUS,
- .reg_mask = STATUS_INITIALIZED,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6100,
- .precharge_current = 204, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- /*
- * Simplo Battery (SMP-CA-445) Information
- * Fuel gauge: BQ30Z554
- */
- [BATTERY_SIMPLO_SMP_CA_445] = {
- .fuel_gauge = {
- .manuf_name = "SMP-CA-445",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = SB_BATTERY_STATUS,
- .reg_mask = STATUS_INITIALIZED,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6100,
- .precharge_current = 150, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_SMP_CA_445;
-
diff --git a/board/jslrvp_ite/board.c b/board/jslrvp_ite/board.c
deleted file mode 100644
index eb654140a6..0000000000
--- a/board/jslrvp_ite/board.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Intel Jasperlake RVP with ITE EC board specific configuration */
-
-#include "anx7440.h"
-#include "button.h"
-#include "charger.h"
-#include "driver/charger/isl923x.h"
-#include "extpower.h"
-#include "i2c.h"
-#include "intc.h"
-#include "it83xx_pd.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/icelake.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-
-#include "gpio_list.h"
-
-#define CPRINTS(format, args...) cprints(CC_COMMAND, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_COMMAND, format, ## args)
-
-/* TCPC gpios */
-const struct tcpc_gpio_config_t tcpc_gpios[] = {
- [TYPE_C_PORT_0] = {
- .vbus = {
- .pin = GPIO_USB_C0_VBUS_INT,
- .pin_pol = 1,
- },
- .src = {
- .pin = GPIO_USB_C0_SRC_EN,
- .pin_pol = 1,
- },
- .snk = {
- .pin = GPIO_USB_C0_SNK_EN_L,
- .pin_pol = 0,
- },
- },
- [TYPE_C_PORT_1] = {
- .vbus = {
- .pin = GPIO_USB_C1_VBUS_INT,
- .pin_pol = 1,
- },
- .src = {
- .pin = GPIO_USB_C1_SRC_EN,
- .pin_pol = 1,
- },
- .snk = {
- .pin = GPIO_USB_C1_SNK_EN_L,
- .pin_pol = 0,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_gpios) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [TYPE_C_PORT_0] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so no i2c config needed */
- .drv = &it83xx_tcpm_drv,
- },
- [TYPE_C_PORT_1] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so no i2c config needed */
- .drv = &it83xx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-const struct usb_mux usb_muxes[] = {
- [TYPE_C_PORT_0] = {
- .usb_port = TYPE_C_PORT_0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = I2C_ADDR_USB_MUX0_FLAGS,
- .driver = &anx7440_usb_mux_driver,
- },
- [TYPE_C_PORT_1] = {
- .usb_port = TYPE_C_PORT_1,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = I2C_ADDR_USB_MUX1_FLAGS,
- .driver = &anx7440_usb_mux_driver,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- /* Flash EC */
- [I2C_CHAN_FLASH] = {
- .name = "chan-A",
- .port = IT83XX_I2C_CH_A,
- .kbps = 100,
- .scl = GPIO_I2C_A_SCL,
- .sda = GPIO_I2C_A_SDA,
- },
- /*
- * Port-80 Display, Charger, Battery, IO-expanders, EEPROM,
- * IMVP9, AUX-rail, power-monitor.
- */
- [I2C_CHAN_BATT_CHG] = {
- .name = "batt_chg",
- .port = IT83XX_I2C_CH_B,
- .kbps = 100,
- .scl = GPIO_I2C_B_SCL,
- .sda = GPIO_I2C_B_SDA,
- },
- /* Retimers, PDs */
- [I2C_CHAN_RETIMER] = {
- .name = "retimer",
- .port = IT83XX_I2C_CH_E,
- .kbps = 100,
- .scl = GPIO_I2C_E_SCL,
- .sda = GPIO_I2C_E_SDA,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_CHAN_COUNT);
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Charger Chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/******************************************************************************/
-/* PWROK signal configuration */
-/*
- * On JSLRVP the ALL_SYS_PWRGD, VCCST_PWRGD, PCH_PWROK, and SYS_PWROK
- * signals are handled by the board. No EC control needed.
- */
-const struct intel_x86_pwrok_signal pwrok_signal_assert_list[] = {};
-const int pwrok_signal_assert_count = ARRAY_SIZE(pwrok_signal_assert_list);
-
-const struct intel_x86_pwrok_signal pwrok_signal_deassert_list[] = {};
-const int pwrok_signal_deassert_count = ARRAY_SIZE(pwrok_signal_assert_list);
-
-/*
- * Returns board information (board id[7:0] and Fab id[15:8]) on success
- * -1 on error.
- */
-int board_get_version(void)
-{
- int fab_id;
- int board_id;
- int bom_id;
-
- if (ioexpander_read_intelrvp_version(&fab_id, &board_id))
- return -1;
- /*
- * Port0: bit 1:0 - FAB ID(1:0) + 1
- * Port1: bit 7:5 - BOM ID(2:0)
- * bit 4:0 - BOARD ID(4:0)
- */
- fab_id = (fab_id & 0x03) + 1;
- bom_id = ((board_id & 0xE0) >> 5);
- board_id &= 0x1F;
-
- CPRINTS("BID:0x%x, FID:0x%x, BOM:0x%x", board_id, fab_id, bom_id);
-
- return board_id | (fab_id << 8);
-}
diff --git a/board/jslrvp_ite/board.h b/board/jslrvp_ite/board.h
deleted file mode 100644
index e733a30240..0000000000
--- a/board/jslrvp_ite/board.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Intel Jasperlake RVP with ITE EC board specific configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* ITE EC variant */
-#define VARIANT_INTELRVP_EC_IT8320
-
-/* MECC config */
-#define CONFIG_INTEL_RVP_MECC_VERSION_0_9
-
-#define CONFIG_CHIPSET_JASPERLAKE
-#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_L_PGOOD
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-#define GPIO_BAT_LED_RED_L GPIO_BAT_LED_GREEN_L
-#define GPIO_PWR_LED_WHITE_L GPIO_AC_LED_GREEN_L
-
-/* Fan features */
-#define CONFIG_FANS 1
-#define BOARD_FAN_MIN_RPM 3000
-#define BOARD_FAN_MAX_RPM 10000
-
-/* Temperature sensor */
-#define CONFIG_TEMP_SENSOR
-
-#include "baseboard.h"
-
-/* Charger */
-#define CONFIG_CHARGER_ISL9238
-
-/* DC Jack charge ports */
-#undef CONFIG_DEDICATED_CHARGE_PORT_COUNT
-#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 1
-
-/* USB ports */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define DEDICATED_CHARGE_PORT 2
-
-/* USB PD config */
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 2
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
-
-/* USB MUX */
-#define CONFIG_USB_MUX_ANX7440
-
-/* USB HPD */
-#define CONFIG_USB_PD_DP_HPD_GPIO
-
-/* Thermal configs */
-
-/* I2C ports */
-#define CONFIG_IT83XX_SMCLK2_ON_GPC7
-
-#define I2C_PORT_CHARGER IT83XX_I2C_CH_B
-#define I2C_PORT_BATTERY IT83XX_I2C_CH_B
-#define I2C_PORT_PCA9555_BOARD_ID_GPIO IT83XX_I2C_CH_B
-#define I2C_PORT_PORT80 IT83XX_I2C_CH_B
-#define I2C_PORT_USB_MUX IT83XX_I2C_CH_E
-
-#define I2C_ADDR_PCA9555_BOARD_ID_GPIO 0x22
-#define PORT80_I2C_ADDR MAX695X_I2C_ADDR1_FLAGS
-
-#ifndef __ASSEMBLER__
-
-enum jslrvp_charge_ports {
- TYPE_C_PORT_0,
- TYPE_C_PORT_1,
-};
-
-enum jslrvp_i2c_channel {
- I2C_CHAN_FLASH,
- I2C_CHAN_BATT_CHG,
- I2C_CHAN_RETIMER,
- I2C_CHAN_COUNT,
-};
-
-enum battery_type {
- BATTERY_SIMPLO_SMP_HHP_408,
- BATTERY_SIMPLO_SMP_CA_445,
- BATTERY_TYPE_COUNT,
-};
-
-/* Define max power */
-#define PD_MAX_POWER_MW 45000
-
-int board_get_version(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/jslrvp_ite/build.mk b/board/jslrvp_ite/build.mk
deleted file mode 100644
index 4903661c30..0000000000
--- a/board/jslrvp_ite/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Intel Jasperlake RVP with ITE EC board specific configuration
-#
-
-#it8320
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=intelrvp
-
-board-y=board.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/jslrvp_ite/ec.tasklist b/board/jslrvp_ite/ec.tasklist
deleted file mode 100644
index 768211c95f..0000000000
--- a/board/jslrvp_ite/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2019 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.
- */
-
-/* Intel Jasperlake RVP with ITE EC board specific configuration.
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/jslrvp_ite/gpio.inc b/board/jslrvp_ite/gpio.inc
deleted file mode 100644
index 5c0219263e..0000000000
--- a/board/jslrvp_ite/gpio.inc
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Intel Jasperlake RVP with ITE EC board specific configuration */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(K, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ALL_SYS_PWRGD, PIN(F, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD,PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S0_L, PIN(G, 6), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(PCH_SLP_S3_L, PIN(F, 2), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(PCH_SLP_S4_L, PIN(F, 3), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-
-/* Button interrupts */
-GPIO_INT(VOLUME_UP_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(POWER_BUTTON_L,PIN(L, 3), GPIO_INT_BOTH, power_button_interrupt)
-
-GPIO_INT(AC_PRESENT, PIN(A, 7), GPIO_INT_BOTH, extpower_interrupt)
-
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING, uart_deepsleep_interrupt) /* UART1 RX input */
-
-GPIO_INT(WP_L, PIN(I, 4), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-
-#ifdef CONFIG_HOSTCMD_ESPI
-/* enable 1.8v input of EC's espi_reset pin, and then this pin takes effect. */
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt) /* eSPI_reset# */
-#endif
-
-GPIO_INT(TABLET_MODE_L, PIN(K, 1), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* DC Jack presence coming from +VADP_OUT */
-GPIO_INT(DC_JACK_PRESENT, PIN(J, 2), GPIO_INT_BOTH, board_dc_jack_interrupt)
-
-/* Type-C interrupts */
-GPIO_INT(USB_C0_VBUS_INT, PIN(L, 5), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_VBUS_INT, PIN(D, 4), GPIO_INT_BOTH, tcpc_alert_event)
-
-/* Power sequencing GPIOs */
-GPIO(CPU_PROCHOT, PIN(B, 2), GPIO_INPUT)
-GPIO(SYS_RESET_L, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(PCH_RSMRST_L, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(PCH_PWRBTN_L, PIN(D, 0), GPIO_ODR_HIGH)
-GPIO(EC_SPI_OE_N, PIN(I, 2), GPIO_OUT_LOW)
-/*
- * PCH_SYS_PWROK is an input, driven by the Silego chip. The common x86
- * power sequencing expects that PCH_SYS_PWROK is an output and will drive
- * this signal if GPIO_PCH_SYS_PWROK is configured. Map this pin as no-connect
- * so that state can be monitored using the console.
- */
-GPIO(NC_PCH_SYS_PWROK, PIN(K, 4), GPIO_INPUT)
-GPIO(EN_PP5000, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_DSW_PWROK, PIN(L, 6), GPIO_OUT_LOW)
-
-UNIMPLEMENTED(EN_VCCIO_EXT)
-
-/* Host communication GPIOs */
-GPIO(PCH_WAKE_L, PIN(J, 0), GPIO_ODR_HIGH)
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO(PCH_PLTRST_L, PIN(E, 3), GPIO_INPUT | GPIO_PULL_UP)
-#endif
-
-/* Battery present */
-GPIO(EC_BATT_PRES_L, PIN(K, 0), GPIO_INPUT)
-
-/* Type-C GPIOs */
-GPIO(USB_C0_SRC_EN, PIN(L, 1), GPIO_OUT_LOW)
-GPIO(USB_C0_SNK_EN_L, PIN(H, 6), GPIO_ODR_LOW)
-GPIO(USB_C0_SRC_HI_ILIM, PIN(M, 6), GPIO_OUT_LOW)
-GPIO(USB_C0_DP_HPD, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS_EN, PIN(L, 7), GPIO_INPUT)
-
-GPIO(USB_C1_SRC_EN, PIN(G, 1), GPIO_OUT_LOW)
-GPIO(USB_C1_SNK_EN_L, PIN(I, 5), GPIO_ODR_LOW)
-GPIO(USB_C1_SRC_HI_ILIM, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_DP_HPD, PIN(D, 3), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(K, 5), GPIO_INPUT)
-
-/*
- * Type-C USB MUX GPIOs
- * TODO(b/146683781): drive initial level to low and
- * handle the low power mode
- */
-GPIO(USB_C0_LS_EN, PIN(J, 1), GPIO_OUT_HIGH)
-GPIO(USB_C1_LS_EN, PIN(C, 4), GPIO_OUT_HIGH)
-
-/* Type-C BC1.2 GPIOs */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(A, 1), GPIO_INPUT)
-GPIO(USB_C0_BC12_VBUS_ON_ODL, PIN(H, 4), GPIO_ODR_HIGH)
-
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(B, 7), GPIO_INPUT)
-GPIO(USB_C1_BC12_VBUS_ON_ODL, PIN(J, 6), GPIO_ODR_HIGH)
-
-/* USB-A GPIOs */
-GPIO(USB_A_5V_EN, PIN(K, 3), GPIO_INPUT)
-
-/* LED */
-GPIO(BAT_LED_GREEN_L, PIN(A, 6), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(AC_LED_GREEN_L, PIN(A, 3), GPIO_OUT_HIGH) /* LED_1_L */
-
-/* FAN control pins */
-GPIO(FAN_POWER_EN, PIN(K, 6), GPIO_OUT_LOW)
-
-/* H1 pins */
-GPIO(CCD_MODE_ODL, PIN(B, 5), GPIO_INPUT)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW)
-
-/* Used if Type-A ports have BC1.2 */
-GPIO(NC_USB_A_CHG_EN, PIN(D, 1), GPIO_INPUT)
-
-/* Used if dead battery LDO present */
-GPIO(NC_USBC_LDO_ENABLE, PIN(G, 2), GPIO_INPUT)
-
-/* Used with Discreate TBT and or with PD on RVP */
-GPIO(NC_TBT_C0_RESET_N, PIN(KSO_H, 7), GPIO_INPUT)
-GPIO(NC_TBT_C1_RESET_N, PIN(K, 7), GPIO_INPUT)
-GPIO(NC_USB_C0_RETIMER_ALRT, PIN(I, 7), GPIO_INPUT)
-GPIO(NC_USB_C1_RETIMER_ALRT, PIN(G, 0), GPIO_INPUT)
-
-/* Used if PMIC is used */
-GPIO(NC_PMIC_EN, PIN(H, 3), GPIO_INPUT)
-
-/* Used if Base EC is present */
-GPIO(NC_EC_BASE_DET, PIN(I, 3), GPIO_INPUT)
-
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INPUT)
-#endif
-
-/* Unused pins */
-GPIO(NC_SUSWARN, PIN(E, 1), GPIO_INPUT)
-GPIO(NC_SD_CARD_DETECT, PIN(E, 5), GPIO_INPUT)
-GPIO(NC_BATT_DISABLE, PIN(H, 0), GPIO_INPUT)
-GPIO(NC_SLP_S0_CS_N, PIN(I, 0), GPIO_INPUT)
-
-/*
- * I2C pins should be configure as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(I2C_C_SCL, PIN(C, 7), GPIO_INPUT)
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT)
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(I2C_F_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(I2C_F_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* Alternate pins for I2C */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C F SCL/SDA A4/A5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C A SCL/SDA B3/B4 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C B SCL/SDA C1/C2 */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C E SCL/SDA E0/E7 */
-ALTERNATE(PIN_MASK(C, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SCL C7 */
-ALTERNATE(PIN_MASK(F, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SDA F7 */
-
-/* Alternate pins for UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), GPIO_ALT_FUNC_DEFAULT, MODULE_UART, GPIO_PULL_UP) /* UART1 B0/B1 */
-
-/* Alternate pins for ADC */
-ALTERNATE(PIN_MASK(I, BIT(1) | BIT(6)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 1,6 -> I1,I6 */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 13,15 -> L0,L2 */
-
-/* Alternate pins for FAN */
-ALTERNATE(PIN_MASK(A, BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* PWM2 A2 */
-ALTERNATE(PIN_MASK(D, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* TACH1A D7 */
diff --git a/board/jslrvp_ite/vif_override.xml b/board/jslrvp_ite/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/jslrvp_ite/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/juniper b/board/juniper
deleted file mode 120000
index 39d9d53d64..0000000000
--- a/board/juniper
+++ /dev/null
@@ -1 +0,0 @@
-jacuzzi \ No newline at end of file
diff --git a/board/kakadu/analyzestack.yaml b/board/kakadu/analyzestack.yaml
deleted file mode 100644
index 4a057ce818..0000000000
--- a/board/kakadu/analyzestack.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-remove:
-# Remove all callsites pointing to panic_assert_fail.
-- panic_assert_fail
diff --git a/board/kakadu/board.c b/board/kakadu/board.c
deleted file mode 100644
index dd36672bfe..0000000000
--- a/board/kakadu/board.c
+++ /dev/null
@@ -1,522 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "charger_mt6370.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm42607.h"
-#include "driver/charger/rt946x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/mt6370.h"
-#include "driver/usb_mux/it5205.h"
-#include "extpower.h"
-#include "gesture.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_policy.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-static void gauge_interrupt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_CHARGER);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
- [ADC_BATT_ID] = {"BATT_ID", 3300, 4096, 0, STM32_AIN(7)},
- [ADC_POGO_ADC_INT_L] = {"POGO_ADC_INT_L", 3300, 4096, 0, STM32_AIN(6)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = MT6370_TCPC_I2C_ADDR_FLAGS,
- },
- .drv = &mt6370_tcpm_drv,
- },
-};
-
-struct mt6370_thermal_bound thermal_bound = {
- .target = 80,
- .err = 4,
-};
-
-static void board_hpd_update(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-__override const struct rt946x_init_setting *board_rt946x_init_setting(void)
-{
- static const struct rt946x_init_setting battery_init_setting = {
- .eoc_current = 140,
- .mivr = 4000,
- .ircmp_vclamp = 32,
- .ircmp_res = 25,
- .boost_voltage = 5050,
- .boost_current = 1500,
- };
-
- return &battery_init_setting;
-}
-
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_update,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 0);
- break;
-#if CONFIG_DEDICATED_CHARGE_PORT_COUNT > 0
- case CHARGE_PORT_POGO:
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 0);
- break;
-#endif
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 1);
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- if (force_discharge && !enable)
- rt946x_toggle_bc12_detection();
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int extpower_is_present(void)
-{
- /*
- * The charger will indicate VBUS presence if we're sourcing 5V,
- * so exclude such ports.
- */
- int usb_c_extpower_present;
-
- if (board_vbus_source_enabled(CHARGE_PORT_USB_C))
- usb_c_extpower_present = 0;
- else
- usb_c_extpower_present = tcpm_check_vbus_level(
- CHARGE_PORT_USB_C,
- VBUS_PRESENT);
-
- return usb_c_extpower_present;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port)
- panic("Invalid charge port\n");
-
- return rt946x_is_vbus_ready();
-}
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_ODL);
-
-#ifdef SECTION_IS_RW
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* Enable interrupt for the camera vsync. */
- gpio_enable_interrupt(GPIO_SYNC_INT);
-#endif /* SECTION_IS_RW */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable gauge interrupt from max17055 */
- gpio_enable_interrupt(GPIO_GAUGE_INT_ODL);
-
- /*
- * Fix backlight led maximum current:
- * tolerance 120mA * 0.75 = 90mA.
- * (b/133655155)
- */
- mt6370_backlight_set_dim(MT6370_BLDIM_DEFAULT * 3 / 4);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_rev_init(void)
-{
- /* Board revision specific configs. */
-
- /*
- * It's a P1 pin BOOTBLOCK_MUX_OE, also a P2 pin BC12_DET_EN.
- * Keep this pin defaults to P1 setting since that eMMC enabled with
- * High-Z stat.
- */
- /* TODO */
- /* Put initial code here for different EC board reversion */
- return;
-}
-DECLARE_HOOK(HOOK_INIT, board_rev_init, HOOK_PRIO_INIT_ADC + 1);
-
-void sensor_board_proc_double_tap(void)
-{
- CPRINTS("Detect double tap");
-}
-
-/* Motion sensors */
-/* Mutexes */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm42607_data;
-
-enum lid_accelgyro_type {
- LID_GYRO_NONE = 0,
- LID_GYRO_BMI160 = 1,
- LID_GYRO_ICM426XX = 2,
-};
-
-static enum lid_accelgyro_type lid_accelgyro_config;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- {0, FLOAT_TO_FP(-1), 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t lid_standard_ref_icm42607 = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-struct motion_sensor_t icm42607_lid_accel = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .min_frequency = ICM42607_ACCEL_MIN_FREQ,
- .max_frequency = ICM42607_ACCEL_MAX_FREQ,
- .config = {
- /* Enable accel in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm42607_lid_gyro = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .min_frequency = ICM42607_GYRO_MIN_FREQ,
- .max_frequency = ICM42607_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* Enable accel in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- /* For double tap detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [VSYNC] = {
- .name = "Camera vsync",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_detect_motionsensor(void)
-{
- int ret;
- int val;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (lid_accelgyro_config != LID_GYRO_NONE)
- return;
- /* Check base accelgyro chip */
- ret = icm_read8(&icm42607_lid_accel,
- ICM42607_REG_WHO_AM_I, &val);
- if (ret)
- ccprints("Get ICM fail.");
- if (val == ICM42607_CHIP_ICM42607P) {
- motion_sensors[LID_ACCEL] = icm42607_lid_accel;
- motion_sensors[LID_GYRO] = icm42607_lid_gyro;
- }
- lid_accelgyro_config = (val == ICM42607_CHIP_ICM42607P)
- ? LID_GYRO_ICM426XX : LID_GYRO_BMI160;
- ccprints("LID Accelgyro: %s", (val == ICM42607_CHIP_ICM42607P)
- ? "ICM42607" : "BMI160");
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_INIT_ADC + 2);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (lid_accelgyro_config) {
- case LID_GYRO_ICM426XX:
- icm42607_interrupt(signal);
- break;
- case LID_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/*
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
- /*
- * Though we have a more tolerant range (3.9V~13.4V), setting 4400 to
- * prevent from a bad charger crashed.
- *
- * TODO(b:131284131): mt6370 VBUS reading is not accurate currently.
- * Vendor will provide a workaround solution to fix the gap between ADC
- * reading and actual voltage. After the workaround applied, we could
- * try to raise this value to 4600. (when it says it read 4400, it is
- * actually close to 4600)
- */
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < 4400;
-}
-
-__override int board_charge_port_is_sink(int port)
-{
- /* TODO(b:128386458): Check POGO_ADC_INT_L */
- return 1;
-}
-
-__override int board_charge_port_is_connected(int port)
-{
- return gpio_get_level(GPIO_POGO_VBUS_PRESENT);
-}
-
-__override
-void board_fill_source_power_info(int port,
- struct ec_response_usb_pd_power_info *r)
-{
- r->meas.voltage_now = 3300;
- r->meas.voltage_max = 3300;
- r->meas.current_max = 1500;
- r->meas.current_lim = 1500;
- r->max_power = r->meas.voltage_now * r->meas.current_max;
-}
-
diff --git a/board/kakadu/board.h b/board/kakadu/board.h
deleted file mode 100644
index 4e054dac93..0000000000
--- a/board/kakadu/board.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Kakadu */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define BQ27541_ADDR 0x55
-#define VARIANT_KUKUI_BATTERY_BQ27541
-#define VARIANT_KUKUI_POGO_KEYBOARD
-
-#define VARIANT_KUKUI_CHARGER_MT6370
-#define VARIANT_KUKUI_EC_STM32F098
-#define VARIANT_KUKUI_TABLET_PWRBTN
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#define CONFIG_USB_MUX_IT5205
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* Battery */
-#define BATTERY_DESIRED_CHARGING_CURRENT 3500 /* mA */
-
-#define CONFIG_CHARGER_MT6370_BACKLIGHT
-
-
-/* Motion Sensors */
-#ifdef SECTION_IS_RW
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define CONFIG_ACCELGYRO_ICM42607 /* Base accel second source*/
-#define CONFIG_ACCELGYRO_ICM42607_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-/* Camera VSYNC */
-#define CONFIG_SYNC
-#define CONFIG_SYNC_COMMAND
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-#endif /* SECTION_IS_RW */
-
-/* I2C ports */
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_ACCEL 1
-#define I2C_PORT_BC12 1
-
-/* Route sbs host requests to virtual battery driver */
-#define VIRTUAL_BATTERY_ADDR_FLAGS 0x0B
-
-/* MKBP */
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_EVENT_WAKEUP_MASK \
- (BIT(EC_MKBP_EVENT_SENSOR_FIFO) | BIT(EC_MKBP_EVENT_HOST_EVENT))
-
-#define PD_OPERATING_POWER_MW 15000
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_BATT_ID,
- ADC_POGO_ADC_INT_L,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- VSYNC,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-void pogo_adc_interrupt(enum gpio_signal signal);
-int board_discharge_on_ac(int enable);
-void motion_interrupt(enum gpio_signal signal);
-
-/* Enable double tap detection */
-#define CONFIG_GESTURE_DETECTION
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP
-#define CONFIG_GESTURE_TAP_SENSOR 0
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP_FOR_HOST
-#define CONFIG_GESTURE_SAMPLING_INTERVAL_MS 5
-#define CONFIG_GESTURE_TAP_THRES_MG 100
-#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 500
-#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_GESTURE_TAP_SENSOR)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kakadu/build.mk b/board/kakadu/build.mk
deleted file mode 100644
index 7a3953b8bb..0000000000
--- a/board/kakadu/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=board.o led.o
diff --git a/board/kakadu/ec.tasklist b/board/kakadu/ec.tasklist
deleted file mode 100644
index fc26f445b2..0000000000
--- a/board/kakadu/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
-
diff --git a/board/kakadu/gpio.inc b/board/kakadu/gpio.inc
deleted file mode 100644
index f52f2b7f2f..0000000000
--- a/board/kakadu/gpio.inc
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(VOLUME_UP_L, PIN(B, 10), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-GPIO_INT(VOLUME_DOWN_L, PIN(B, 11), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- motion_interrupt)
-GPIO_INT(CHARGER_INT_ODL, PIN(C, 13), GPIO_INT_FALLING | GPIO_PULL_UP,
- rt946x_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event)
-GPIO_INT_RW(SYNC_INT, PIN(A, 8), GPIO_INT_RISING | GPIO_PULL_DOWN,
- sync_interrupt)
-GPIO_INT(HALL_INT_L, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(GAUGE_INT_ODL, PIN(C, 9), GPIO_INT_FALLING | GPIO_PULL_UP,
- gauge_interrupt)
-GPIO_INT(POGO_ADC_INT_L, PIN(A, 6), GPIO_INT_BOTH,
- pogo_adc_interrupt)
-
-/* unused */
-GPIO(POGO_VBUS_PRESENT, PIN(A, 14), GPIO_INPUT)
-/* unused after board rev 5 */
-GPIO(USB_C0_DP_POLARITY, PIN(C, 14), GPIO_INPUT)
-GPIO(USB_C0_DP_OE_L, PIN(A, 5), GPIO_INPUT)
-
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(C, 10), GPIO_ODR_HIGH)
-GPIO(PMIC_FORCE_RESET_ODL, PIN(A, 2), GPIO_ODR_HIGH)
-GPIO(MT6370_RST_L, PIN(F, 0), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-
-/* Analog pins */
-GPIO(BATT_ID, PIN(A, 7), GPIO_ANALOG)
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(B, 12), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP3300_POGO, PIN(A, 13), GPIO_OUT_LOW)
-GPIO(EN_POGO_CHARGE_L, PIN(B, 6), GPIO_OUT_HIGH)
-GPIO(EN_USBC_CHARGE_L, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EN_PP5000_USBC, PIN(D, 2), GPIO_OUT_LOW)
-GPIO(BC12_DET_EN, PIN(C, 4), GPIO_OUT_LOW)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-#ifdef SECTION_IS_RO
-/* SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-#endif
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
diff --git a/board/kakadu/led.c b/board/kakadu/led.c
deleted file mode 100644
index 504bdf0d2f..0000000000
--- a/board/kakadu/led.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* 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.
- *
- * Battery LED control for Kakadu board.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "driver/charger/rt946x.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "power.h"
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-#define LED_OFF MT6370_LED_ID_OFF
-#define LED_AMBER MT6370_LED_ID1
-#define LED_WHITE MT6370_LED_ID2
-
-#define LED_MASK_OFF 0
-#define LED_MASK_AMBER MT6370_MASK_RGB_ISNK1DIM_EN
-#define LED_MASK_WHITE MT6370_MASK_RGB_ISNK2DIM_EN
-
-static void kakadu_led_set_battery(void)
-{
- enum charge_state chstate;
- enum power_state powerstate;
- static uint8_t prv_white, prv_amber;
- static uint8_t time_cnt;
- uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
-
- chstate = charge_get_state();
- powerstate = power_get_state();
-
- switch (chstate) {
- case PWR_STATE_CHARGE:
- case PWR_STATE_CHARGE_NEAR_FULL:
- if (charge_get_percent() < 94) {
- br[EC_LED_COLOR_AMBER] = 1;
- br[EC_LED_COLOR_WHITE] = 0;
- break;
- }
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- break;
- case PWR_STATE_DISCHARGE:
- if (powerstate == POWER_S0) {
- /* display SoC 10% = real battery SoC 13%*/
- if (charge_get_percent() < 14) {
- if (time_cnt < 1) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 1;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 3)
- time_cnt = 0;
- }
- break;
- }
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- break;
- } else if (powerstate == POWER_S3) {
- if (time_cnt < 2) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 3)
- time_cnt = 0;
- }
- break;
- } else if (powerstate == POWER_S5 || powerstate == POWER_G3) {
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- }
- break;
- case PWR_STATE_ERROR:
- if (powerstate == POWER_S0) {
- if (time_cnt < 1) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 1;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 1)
- time_cnt = 0;
- }
- break;
- } else if (powerstate == POWER_S3) {
- if (time_cnt < 2) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 3)
- time_cnt = 0;
- }
- break;
- } else if (powerstate == POWER_S5 || powerstate == POWER_G3) {
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- }
- break;
- default:
- /* Other states don't alter LED behavior */
- return;
- }
-
- if (prv_white == br[EC_LED_COLOR_WHITE] &&
- prv_amber == br[EC_LED_COLOR_AMBER])
- return;
-
- prv_white = br[EC_LED_COLOR_WHITE];
- prv_amber = br[EC_LED_COLOR_AMBER];
- led_set_brightness(EC_LED_ID_BATTERY_LED, br);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id != EC_LED_ID_BATTERY_LED)
- return;
-
- brightness_range[EC_LED_COLOR_WHITE] = MT6370_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_AMBER] = MT6370_LED_BRIGHTNESS_MAX;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- uint8_t white, amber;
-
- if (led_id != EC_LED_ID_BATTERY_LED)
- return EC_ERROR_INVAL;
-
- white = brightness[EC_LED_COLOR_WHITE];
- amber = brightness[EC_LED_COLOR_AMBER];
-
- mt6370_led_set_brightness(LED_WHITE, white);
- mt6370_led_set_brightness(LED_AMBER, amber);
-
- /* Enables LED sink power if necessary. */
- mt6370_led_set_color((white ? LED_MASK_WHITE : 0) |
- (amber ? LED_MASK_AMBER : 0));
- return EC_SUCCESS;
-}
-
-static void kakadu_led_init(void)
-{
- const enum mt6370_led_dim_mode dim = MT6370_LED_DIM_MODE_PWM;
- const enum mt6370_led_pwm_freq freq = MT6370_LED_PWM_FREQ1000;
- mt6370_led_set_color(0);
- mt6370_led_set_dim_mode(LED_WHITE, dim);
- mt6370_led_set_dim_mode(LED_AMBER, dim);
- mt6370_led_set_pwm_frequency(LED_WHITE, freq);
- mt6370_led_set_pwm_frequency(LED_AMBER, freq);
- mt6370_led_set_pwm_dim_duty(LED_WHITE, 255);
- mt6370_led_set_pwm_dim_duty(LED_AMBER, 255);
-}
-DECLARE_HOOK(HOOK_INIT, kakadu_led_init, HOOK_PRIO_DEFAULT);
-
-/* Called by hook task every 1 sec */
-static void led_second(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- kakadu_led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
-
-__override void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- return;
- }
-
- if (state)
- br[EC_LED_COLOR_WHITE] = 1;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
- led_set_brightness(EC_LED_ID_BATTERY_LED, br);
-}
diff --git a/board/kakadu/vif_override.xml b/board/kakadu/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kakadu/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kano/battery.c b/board/kano/battery.c
deleted file mode 100644
index a18ab029b6..0000000000
--- a/board/kano/battery.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "compile_time_macros.h"
-
-/*
- * Battery info for all Brya battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* POW-TECH GQA05 Battery Information */
- [BATTERY_POWER_TECH] = {
- /* BQ40Z50 Fuel Gauge */
- .fuel_gauge = {
- .manuf_name = "POW-TECH",
- .device_name = "BATGQA05L22",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x00,
- .reg_mask = 0x2000, /* XDSG */
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13050, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 280, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* LGC L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_POWER_TECH;
diff --git a/board/kano/board.c b/board/kano/board.c
deleted file mode 100644
index 07dfc2cd5a..0000000000
--- a/board/kano/board.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "fw_config.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power_button.h"
-#include "power.h"
-#include "registers.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
-
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
-
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_CHARGE_RAMP_SW
-
-/*
- * TODO(b/181508008): tune this threshold
- */
-
-#define BC12_MIN_VOLTAGE 4400
-
-/**
- * Return true if VBUS is too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- if (voltage == 0) {
- CPRINTS("%s: must be disconnected", __func__);
- return 1;
- }
-
- if (voltage < BC12_MIN_VOLTAGE) {
- CPRINTS("%s: port %d: vbus %d lower than %d", __func__,
- port, voltage, BC12_MIN_VOLTAGE);
- return 1;
- }
-
- return 0;
-}
-
-#endif /* CONFIG_CHARGE_RAMP_SW */
-
-enum battery_present battery_hw_present(void)
-{
- enum gpio_signal batt_pres;
-
- batt_pres = GPIO_EC_BATT_PRES_ODL;
-
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(batt_pres) ? BP_NO : BP_YES;
-}
diff --git a/board/kano/board.h b/board/kano/board.h
deleted file mode 100644
index 3372c5f3d2..0000000000
--- a/board/kano/board.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/*
- * Early brya boards are not set up for vivaldi
- */
-#undef CONFIG_KEYBOARD_VIVALDI
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-#define CONFIG_MP2964
-
-/* LED */
-#define CONFIG_LED_PWM
-#define CONFIG_LED_PWM_COUNT 1
-#undef CONFIG_LED_PWM_NEAR_FULL_COLOR
-#undef CONFIG_LED_PWM_SOC_ON_COLOR
-#undef CONFIG_LED_PWM_SOC_SUSPEND_COLOR
-#undef CONFIG_LED_PWM_LOW_BATT_COLOR
-#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_SOC_ON_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_SOC_SUSPEND_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_LOW_BATT_COLOR EC_LED_COLOR_AMBER
-
-/* Sensors */
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel */
-#define CONFIG_ACCELGYRO_ICM_COMM_I2C
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-/* Lid accel */
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_ACCEL_KX022
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-/* Sensor console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#define CONFIG_USBC_RETIMER_INTEL_BB
-
-#define CONFIG_USBC_PPC_SYV682X
-
-#undef CONFIG_USB_PD_TCPM_NCT38XX
-#define CONFIG_USB_PD_TCPM_RT1715
-
-/* TODO: b/177608416 - measure and check these values on brya */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* I2C Bus Configuration */
-
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-
-#define I2C_PORT_USB_C0_C2_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C0_C2_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_C2_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_C2_MUX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1
-
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define I2C_ADDR_MP2964_FLAGS 0x20
-
-/*
- * see b/174768555#comment22
- */
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x54
-/* SOC facing Burnside Bridge retimer */
-#define USBC_PORT_C1_SOC_BB_RETIMER_I2C_ADDR 0x55
-/* Type-C connector facing Burnside Bridge retimer */
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x56
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-/* Retimer */
-#define CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/*
- * TODO(b/181271666): no fan control loop until sensors are tuned
- */
-/* #define CONFIG_FANS FAN_CH_COUNT */
-
-/* Charger defines */
-#define CONFIG_CHARGER_ISL9241
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR_SOC,
- ADC_TEMP_SENSOR_2_FAN,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR_SOC,
- TEMP_SENSOR_2_FAN,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum battery_type {
- BATTERY_POWER_TECH,
- BATTERY_LGC011,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED2 = 0, /* PWM0 (white charger) */
- PWM_CH_LED1, /* PWM2 (orange charger) */
- PWM_CH_KBLIGHT, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kano/build.mk b/board/kano/build.mk
deleted file mode 100644
index 6d1303a15a..0000000000
--- a/board/kano/build.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Brya board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=tune_mp2964.o
-board-y+=usbc_config.o
diff --git a/board/kano/charger.c b/board/kano/charger.c
deleted file mode 100644
index 9f7c760858..0000000000
--- a/board/kano/charger.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/charger/isl9241.h"
-#include "usbc_ppc.h"
-#include "usb_pd.h"
-#include "util.h"
-
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Charger Chip Configuration */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL9241_ADDR_FLAGS,
- .drv = &isl9241_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(chg_chips) == CHARGER_NUM);
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = board_is_usb_pd_port_present(port);
- int i;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTSUSB("Disabling all charger ports");
-
- /* Disable all ports. */
- for (i = 0; i < ppc_cnt; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("Disabling C%d as sink failed.", i);
- }
-
- return EC_SUCCESS;
- } else if (!is_valid_port) {
- return EC_ERROR_INVAL;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (ppc_is_sourcing_vbus(port)) {
- CPRINTFUSB("Skip enable C%d", port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTSUSB("New charge port: C%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < ppc_cnt; i++) {
- if (i == port)
- continue;
-
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("C%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (ppc_vbus_sink_enable(port, 1)) {
- CPRINTSUSB("C%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-__overridable void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
diff --git a/board/kano/ec.tasklist b/board/kano/ec.tasklist
deleted file mode 100644
index 7574c1839d..0000000000
--- a/board/kano/ec.tasklist
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_shared_alert_task, (BIT(2) | BIT(0)), TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/kano/fans.c b/board/kano/fans.c
deleted file mode 100644
index d966056331..0000000000
--- a/board/kano/fans.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * TOOD(b/180681346): need to update for real fan
- *
- * Prototype fan spins at about 7200 RPM at 100% PWM.
- * Set minimum at around 30% PWM.
- */
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 7200,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-#ifndef CONFIG_FANS
-
-/*
- * TODO(b/181271666): use static fan speeds until fan and sensors are
- * tuned. for now, use:
- *
- * AP off: 33%
- * AP on: 100%
- */
-
-static void fan_slow(void)
-{
- const int duty_pct = 33;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-static void fan_max(void)
-{
- const int duty_pct = 100;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-DECLARE_HOOK(HOOK_INIT, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_RESET, fan_max, HOOK_PRIO_FIRST);
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, fan_max, HOOK_PRIO_DEFAULT);
-
-#endif /* CONFIG_FANS */
diff --git a/board/kano/fw_config.c b/board/kano/fw_config.c
deleted file mode 100644
index fb8acb635d..0000000000
--- a/board/kano/fw_config.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union brya_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for brya if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union brya_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PS8815,
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Brya FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-
- if (get_board_id() == 0) {
- /*
- * Early boards have a zero'd out FW_CONFIG, so replace
- * it with a sensible default value. If DB_USB_ABSENT2
- * was used as an alternate encoding of DB_USB_ABSENT to
- * avoid the zero check, then fix it.
- */
- if (fw_config.raw_value == 0) {
- CPRINTS("CBI: FW_CONFIG is zero, using board defaults");
- fw_config = fw_config_defaults;
- } else if (fw_config.usb_db == DB_USB_ABSENT2) {
- fw_config.usb_db = DB_USB_ABSENT;
- }
- }
-}
-
-union brya_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void)
-{
- return fw_config.usb_db;
-}
diff --git a/board/kano/fw_config.h b/board/kano/fw_config.h
deleted file mode 100644
index 6e4eb3ef58..0000000000
--- a/board/kano/fw_config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_BRYA_FW_CONFIG_H_
-#define __BOARD_BRYA_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for Brya board.
- *
- * Source of truth is the project/brya/brya/config.star configuration file.
- */
-
-enum ec_cfg_usb_db_type {
- DB_USB_ABSENT = 0,
- DB_USB3_PS8815 = 1,
- DB_USB_ABSENT2 = 15
-};
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-union brya_cbi_fw_config {
- struct {
- enum ec_cfg_usb_db_type usb_db : 4;
- uint32_t sd_db : 2;
- uint32_t lte_db : 1;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union brya_cbi_fw_config get_fw_config(void);
-
-/**
- * Get the USB daughter board type from FW_CONFIG.
- *
- * @return the USB daughter board type.
- */
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void);
-
-#endif /* __BOARD_BRYA_FW_CONFIG_H_ */
diff --git a/board/kano/generated-gpio.inc b/board/kano/generated-gpio.inc
deleted file mode 100644
index d65d64feca..0000000000
--- a/board/kano/generated-gpio.inc
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * This file was auto-generated.
- */
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_IMU_INT_R_L, PIN(5, 6), GPIO_SEL_1P8V | GPIO_INT_FALLING, motion_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_C2_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_RT_INT_ODL, PIN(B, 1), GPIO_INT_FALLING, retimer_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(5, 0), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(7, 3), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C2_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_KB_BL_EN_L, PIN(8, 6), GPIO_OUT_HIGH)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(4, 3), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RT_INT_ODL, PIN(A, 0), GPIO_INPUT)
-GPIO(USB_C1_RT_RST_R_ODL, PIN(0, 2), GPIO_ODR_LOW)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, GPIO_SEL_1P8V) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-ALTERNATE(PIN_MASK(C, 0x18), 0, MODULE_PWM, 0) /* GPIOC4/PWM2, GPIOC3/PWM0 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(6, 6)) /* GPIO66 */
-
-/* Pre-configured PSL balls: J8 K6 */
diff --git a/board/kano/gpio.inc b/board/kano/gpio.inc
deleted file mode 100644
index 465f0fd4db..0000000000
--- a/board/kano/gpio.inc
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/*
- * Generated-gpio.inc is produced using a Brya specific tool that
- * parses the GPIO definitions derived from the board schematics and
- * EC pinout descriptions derived form the chip datasheets to generate
- * the Chrome EC GPIO pinout definitions. Due to the confidential
- * nature of schematics and datasheets, they are not provided here.
- *
- * Variants that do not auto-generate their GPIO definitions should
- * combine the Brya gpio.inc and generated-gpio.inc into their
- * gpio.inc and customize as appropriate.
- */
-
-#include "generated-gpio.inc"
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-
-GPIO(USB_C0_OC_ODL, PIN(D, 4), GPIO_ODR_HIGH)
-GPIO(USB_C0_FRS_EN, PIN(6, 0), GPIO_LOW)
-GPIO(USB_C0_RT_RST_ODL, PIN(C, 2), GPIO_ODR_LOW)
-
-GPIO(USB_C1_OC_ODL, PIN(E, 1), GPIO_ODR_HIGH)
diff --git a/board/kano/i2c.c b/board/kano/i2c.c
deleted file mode 100644
index bb55b13d0c..0000000000
--- a/board/kano/i2c.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C0 */
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C_SENSOR_SCL,
- .sda = GPIO_EC_I2C_SENSOR_SDA,
- },
- {
- /* I2C1 */
- .name = "tcpc0,2",
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0,2",
- .port = I2C_PORT_USB_C0_C2_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SDA,
- },
- {
- /* I2C3 */
- .name = "retimer0,2",
- .port = I2C_PORT_USB_C0_C2_MUX,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C2_RT_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C2_RT_SDA,
- },
- {
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C6 */
- .name = "ppc1",
- .port = I2C_PORT_USB_C1_PPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_C1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/kano/keyboard.c b/board/kano/keyboard.c
deleted file mode 100644
index a9f033130d..0000000000
--- a/board/kano/keyboard.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/kano/led.c b/board/kano/led.c
deleted file mode 100644
index ab1021b845..0000000000
--- a/board/kano/led.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya specific PWM LED settings: there are 2 LEDs on each side of the board,
- * each one can be controlled separately. The LED colors are white or amber,
- * and the default behavior is tied to the charging process: both sides are
- * amber while charging the battery and white when the battery is charged.
- */
-
-#include <stdint.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-/*
- * We only have a white and an amber LED, so setting any other color results in
- * both LEDs being off.
- */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Amber, White */
- [EC_LED_COLOR_RED] = { 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0 },
- [EC_LED_COLOR_YELLOW] = { 0, 0 },
- [EC_LED_COLOR_WHITE] = { 0, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 0 },
-};
-
-/* Two logical LEDs with amber and white channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED1,
- .ch1 = PWM_CH_LED2,
- .ch2 = PWM_LED_NO_CHANNEL,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- pwm_id = PWM_LED0;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/kano/pwm.c b/board/kano/pwm.c
deleted file mode 100644
index 66239d606f..0000000000
--- a/board/kano/pwm.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED2] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED1] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_pwm_init(void)
-{
- /*
- * Turn on all the LED at 50%.
- * Turn on the fan at 100%.
- */
- pwm_enable(PWM_CH_LED1, 1);
- pwm_set_duty(PWM_CH_LED1, 50);
- pwm_enable(PWM_CH_LED2, 1);
- pwm_set_duty(PWM_CH_LED2, 50);
-
- pwm_enable(PWM_CH_KBLIGHT, 1);
- pwm_set_duty(PWM_CH_KBLIGHT, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT);
diff --git a/board/kano/sensors.c b/board/kano/sensors.c
deleted file mode 100644
index 0859e9082c..0000000000
--- a/board/kano/sensors.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "accelgyro.h"
-#include "adc_chip.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accel_kionix.h"
-#include "hooks.h"
-#include "motion_sense.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR_SOC] = {
- .name = "TEMP_DDR_SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_FAN] = {
- .name = "TEMP_FAN",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-K_MUTEX_DEFINE(g_lid_accel_mutex);
-K_MUTEX_DEFINE(g_base_accel_mutex);
-static struct kionix_accel_data g_kx022_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/*
- * TODO:(b/197200940): Verify lid and base orientation
- * matrix on proto board.
- */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .rot_standard_ref = &lid_standard_ref, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = &g_icm426xx_data,
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = &g_icm426xx_data,
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void baseboard_sensors_init(void)
-{
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_INIT_I2C + 1);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- icm426xx_interrupt(signal);
-}
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR_SOC] = {
- .name = "DDR and SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR_SOC
- },
- [TEMP_SENSOR_2_FAN] = {
- .name = "FAN",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_FAN
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-static const struct ec_thermal_config thermal_fan = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/* this should really be "const" */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_2_FAN] = thermal_fan,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/kano/tune_mp2964.c b/board/kano/tune_mp2964.c
deleted file mode 100644
index 198f06d8eb..0000000000
--- a/board/kano/tune_mp2964.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Tune the MP2964 IMVP9.1 parameters for brya */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "hooks.h"
-#include "mp2964.h"
-
-const static struct mp2964_reg_val rail_a[] = {
- { MP2964_MFR_ALT_SET, 0xe081 }, /* ALERT_DELAY = 200ns */
-};
-const static struct mp2964_reg_val rail_b[] = {
- { MP2964_MFR_ALT_SET, 0xe081 }, /* ALERT_DELAY = 200ns */
-};
-
-static void mp2964_on_startup(void)
-{
- static int chip_updated;
- int status;
-
- if (get_board_id() != 1)
- return;
-
- if (chip_updated)
- return;
-
- chip_updated = 1;
-
- ccprintf("%s: attempting to tune PMIC\n", __func__);
-
- status = mp2964_tune(rail_a, ARRAY_SIZE(rail_a),
- rail_b, ARRAY_SIZE(rail_b));
- if (status != EC_SUCCESS)
- ccprintf("%s: could not update all settings\n", __func__);
-}
-
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, mp2964_on_startup,
- HOOK_PRIO_FIRST);
diff --git a/board/kano/usbc_config.c b/board/kano/usbc_config.c
deleted file mode 100644
index 8f41a325b1..0000000000
--- a/board/kano/usbc_config.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_C2_TCPC,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C2_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- /* Compatible with Silicon Mitus SM536A0 */
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-static const struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-static const struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux soc_side_bb_retimer_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C1_MUX,
- .i2c_addr_flags = USBC_PORT_C1_SOC_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc1_tcss_usb_mux,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_C2_MUX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc0_tcss_usb_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C1_MUX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- .next_mux = &soc_side_bb_retimer_usb_mux,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C2_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_2_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- enum gpio_signal rst_signal;
-
- if (me->usb_port == USBC_PORT_C0) {
- rst_signal = GPIO_USB_C0_RT_RST_ODL;
- } else if (me->usb_port == USBC_PORT_C1) {
- rst_signal = GPIO_USB_C1_RT_RST_R_ODL;
- } else {
- return EC_ERROR_INVAL;
- }
-
- /*
- * We do not have a load switch for the burnside bridge chips,
- * so we only need to sequence reset.
- */
-
- if (enable) {
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- gpio_set_level(rst_signal, 1);
- /*
- * Allow 1ms time for the retimer to power up lc_domain
- * which powers I2C controller within retimer
- */
- msleep(1);
- } else {
- gpio_set_level(rst_signal, 0);
- msleep(1);
- }
- return EC_SUCCESS;
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b/179648104): figure out correct timing
- */
-
- gpio_set_level(GPIO_USB_C0_RT_RST_ODL, 0);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 0);
-
- /*
- * delay for power-on to reset-off and min. assertion time
- */
-
- msleep(20);
-
- gpio_set_level(GPIO_USB_C0_RT_RST_ODL, 1);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 1);
-
- /* wait for chips to come up */
-
- msleep(50);
-}
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_C2_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
-
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_C2_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0 | PD_STATUS_TCPC_ALERT_2;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C1)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- return 0;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_C2_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
diff --git a/board/kano/usbc_config.h b/board/kano/usbc_config.h
deleted file mode 100644
index 87e601ee3e..0000000000
--- a/board/kano/usbc_config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Brya board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void config_usb_db_type(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/kano/vif_override.xml b/board/kano/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kano/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kappa/battery.c b/board/kappa/battery.c
deleted file mode 100644
index 5ae6dc9b91..0000000000
--- a/board/kappa/battery.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* Dynapack HIGHPOWER DAK124960-W110703HT Battery Information */
- [BATTERY_DYNAPACK_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-2D-14-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* Dynapack CosMX DAK124960-W0P0707HT Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-14-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_HIGHPOWER;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/kappa/board.c b/board/kappa/board.c
deleted file mode 100644
index a0d7cf6a4e..0000000000
--- a/board/kappa/board.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-/* TODO: to be added once sensors land via CL:1714436 */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
- force_discharge = enable;
-
- return board_set_active_charge_port(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int battery_get_vendor_param(uint32_t param, uint32_t *value)
-{
- int rv;
- uint8_t data[16] = {};
-
- /* only allow reading 0x70~0x7F, 16 byte data */
- if (param < 0x70 || param >= 0x80)
- return EC_ERROR_ACCESS_DENIED;
-
- rv = sb_read_string(0x70, data, sizeof(data));
- if (rv)
- return rv;
-
- *value = data[param - 0x70];
- return EC_SUCCESS;
-}
-
-int battery_set_vendor_param(uint32_t param, uint32_t value)
-{
- return EC_ERROR_UNIMPLEMENTED;
-}
diff --git a/board/kappa/board.h b/board/kappa/board.h
deleted file mode 100644
index 287f22416e..0000000000
--- a/board/kappa/board.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-
-#define VARIANT_KUKUI_NO_SENSORS
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_VENDOR_PARAM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#undef CONFIG_GMR_TABLET_MODE
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_TABLET_MODE_SWITCH
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 2
-#define I2C_PORT_CHARGER 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- LID_MAG,
- CLEAR_ALS,
- RGB_ALS,
- VSYNC,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_DYNAPACK_HIGHPOWER,
- BATTERY_DYNAPACK_COS,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger */
-int board_get_charger_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kappa/build.mk b/board/kappa/build.mk
deleted file mode 100644
index e449fce9fc..0000000000
--- a/board/kappa/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/kappa/ec.tasklist b/board/kappa/ec.tasklist
deleted file mode 100644
index c41e203780..0000000000
--- a/board/kappa/ec.tasklist
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/kappa/gpio.inc b/board/kappa/gpio.inc
deleted file mode 100644
index 0e01d54f10..0000000000
--- a/board/kappa/gpio.inc
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_HIGH)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(BAT_LED_AMBER_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-IOEX(BAT_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-#ifdef SECTION_IS_RO
-/* SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-#endif
diff --git a/board/kappa/led.c b/board/kappa/led.c
deleted file mode 100644
index 5b65d7b948..0000000000
--- a/board/kappa/led.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Kappa
- */
-
-#include "charge_state.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "led_common.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, BAT_LED_OFF);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_WHITE:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, BAT_LED_ON);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, BAT_LED_OFF);
- break;
- case LED_AMBER:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, BAT_LED_OFF);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color(led_id, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /* override battery led for system suspend */
- if (chipset_in_state(CHIPSET_STATE_SUSPEND |
- CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
- led_set_color_battery(power_ticks++ & 0x2 ?
- LED_WHITE : LED_OFF);
- return;
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_WHITE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE:
- /*
- * Blink white light (1 sec on, 1 sec off)
- * when battery capacity is less than 10%
- */
- if (charge_get_percent() < 10)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks % 0x2) ? LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks & 0x2) ? LED_AMBER : LED_OFF);
- else
- led_set_color_battery(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/kappa/vif_override.xml b/board/kappa/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kappa/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/karma/board.c b/board/karma/board.c
deleted file mode 100644
index 7bac35bd64..0000000000
--- a/board/karma/board.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "console.h"
-#include "gpio.h"
-#include "oz554.h"
-
-#define CPRINTS(format, args...) cprints(CC_I2C, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_I2C, format, ## args)
-
-__override void oz554_board_init(void)
-{
- int pin_status = 0;
-
- pin_status |= gpio_get_level(GPIO_PANEL_ID_0) << 0;
- pin_status |= gpio_get_level(GPIO_PANEL_ID_1) << 1;
- pin_status |= gpio_get_level(GPIO_PANEL_ID_2) << 2;
-
- switch (pin_status) {
- case 0x04:
- CPRINTS("PANEL_LM_SSE2");
- break;
- case 0x05:
- CPRINTS("PANEL_LM_SSK1");
- /* Reigster 0x02: Setting LED current: 55(mA) */
- if (oz554_set_config(2, 0x55))
- CPRINTS("oz554 config failed");
- break;
- case 0x06:
- CPRINTS("PANEL_LM_SSM1");
- if (oz554_set_config(2, 0x46))
- CPRINTS("oz554 config failed");
- if (oz554_set_config(5, 0x87))
- CPRINTS("oz554 config failed");
- break;
- default:
- CPRINTS("PANEL_UNKNOWN");
- break;
- }
-}
diff --git a/board/karma/board.h b/board/karma/board.h
deleted file mode 100644
index 372b18509b..0000000000
--- a/board/karma/board.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Karma board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/karma/build.mk b/board/karma/build.mk
deleted file mode 100644
index 2554425920..0000000000
--- a/board/karma/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-BASEBOARD:=kalista
-
-board-y=board.o
diff --git a/board/karma/dev_key.pem b/board/karma/dev_key.pem
deleted file mode 100644
index b72c787613..0000000000
--- a/board/karma/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4gIBAAKCAYEAseZZZlXXDP+KrjqV+XhP0ZgPlU5mX4GCm27yzTqcKiFWLlHZ
-3f8seGG0lKNiL7WvHim8uSEDaPbp2us4uaJ6nTHEpbSGi2QVp90tE3aJG34HyKlg
-jcaE1r/0n6ynG/bf0Xx4O63Plp3Czi3TBYW49vT6+T/Jyfl2JpGQ9KNcD0umafsv
-uaEmdrLGrzjN8w1mFZfwscFkfVDh0cdiFNJ+UkTSpO9/yPapXbo4/lOMwdO9xILF
-cEZV9I7K7lBSvQ5Uep+w0SqNPTh2cGhoeEeDyH+Ce0LA8H7ZwbVnwLe1RswF9Wek
-uzqp9lMSNkkwMtTkumTuJLLGJX9rc0MVQTKgNV8wIzizf5lkCCBCJLf7aRBaeWCJ
-cXjKiavSPOZXDcnqCWqRJT3jN4ibAsU1GQtqLa8pTAi2wkE0fjuvAWK3NYuvpukg
-qNq2LI+BJkF4+dCZoeB1PDNyFNzdOFvkxj2+ImS3DLlPYVng4vHsTK1HRUUpL5Ag
-jjfMhMs4NC7HMOCTAgEDAoIBgHaZkO7j5LNVBx7RuVD63+EQCmOJmZUBAbz0od4n
-EsbA5B7hO+lUyFBBIw3CQXUjyhQb0yYWAkX58Tyc0HvBpxN2gxkjBFztY8U+Hgz5
-sLz+r9sblbPZreR/+GpzGhKklTZS+tJz37m+gd7JN1kD0KSjUft/29v7pBm2YKMX
-krTdGZv8ynvAxE8h2col3qII7rkP9cvWQv416+EvlriMVDbYjG30/9tPG5PRe1Q3
-syvifoMB2PWEOU20h0mK4dNe4d7E96s1Q+RTmTUtyipxUp6d4PIufAjMtM8yfkb0
-/0z81IsWQ0NOhefrMAi8TEcDkbyNSBPqHqbqH2FosFWo2cU3r6TXv2LdvFzc5BA+
-U6c+fXz7BDjv+NT3Bh98whKvTdJYcIgSg6vqzW7ZWJWWllZQtpJnQccIq4sPaL4S
-osFg8jd1kcbjVakCN0wYtfvMa/+WBZNNsZLUHoeIJvO7qnT7VKzhceoKHCJCMxNR
-Ypu5eELxCwebTXiImDqmFsKIawKBwQDpDjff6eatHbjmGV1elTyV5MLi95Tc0T7P
-FZHC1KLXkA/mEuXjAGfoZuLB5a3WmrA8r8fWNZoKV+0RBKIs3at1JFxZn9YiA0Hy
-5qmnYkXjMaY4p5AyO3eJsc2kbsh9r0cy2cb5GdwFDApeoVICoQh+dW9FpvIS+9AF
-0DVc2/Rg//cuXLlCMonF+PZVmDxRNhjBvwvRjxeowiu2ntI4sa83nHMhXI/RfvV4
-xcSng8gSIvabUmunDcPKvqO3rnpHzVECgcEAw2oFcHDAuZ1Xuopb2ghLRK3uLQVy
-BnqLu9QYk3OTe8C3PrNZ80R5MgtnZ0kP8bTZ4uE6MJ3+IMhPUCFqk9euGGdMUlU+
-SUmHie5CZPg4CwD4BUBy6dVdwId7aTxrdBOuGwwhYAhBsJxcfd3eNgiALcCoKsbi
-BLhjJ9Rch2rOsnpNJVwMvFMr6RM33oQrrufe4MBhDa/QD9yDtnDYH/KPO09E6AqU
-sMvBNsjbCC9rSYv+L9QkW8EUhT+wJIcqxUajAoHBAJtez+qb7x4T0JlmPj8OKGPt
-10H6Yz3g1IoOYSyNweUKtUQMmUIARUWZ7IFDyTm8dX3KhTl5EVw6ngtYbB3pHPjC
-6Du/5Bas1qHvG8TsLpd2btBvtXbST7EhM8L0hakfhMyRL1C76ANdXD8WNqxrWv74
-9NkZ9rdSiq6Kzj3n+ECqpMmTJiwhsS6l+Y5lfYt5ZdZ/XTZfZRssHSRp4XshH3po
-TMDoX+D/TlCD2G+tMAwXTxI28m9egocpwnp0UYUziwKBwQCCRq5K9dXRE4/RsZKR
-WtzYc/QeA6FZpwfSjWW3omJSgHopzOaiLaYhXO+aMLVLzeaXQNF1vqlrMDTgFkcN
-OnQQRN2MONQw26+xSYGYpXqyAKVY1aHxOOkrBPzw0vJNYnQSCBZABYEgaD2pPpQk
-BarJKxrHL0FYeuzFOD2vnInMUYjDkrMoN3KbYiU/AsfJ7+nrKutedTVf6FfO9eVq
-obTSNNiasbh13St52zywH5zbsql1OBg9K2MDf8rDBMcuLxcCgcBfM9FWZivdG2tJ
-5REvL0vPAQfcjVi4HUHvnaCuwMYEuF5T2Xf9P8d8ZflfWHaGlkl/qPvE897fns2l
-PZvvhRnr9GlHKt940ZOTI2v+hjlwcHGAAQc+p7BcKeUYLChwhVK/cZ9f6ZCotZNh
-543ecG4KZiJaqBZ/mDRaW7Py0w6lbOAzprrHF3ChvQ6VAllajoWx4CeINRcxX2vP
-bAPZxvt0gwpoHtUAsZo/bKEF0sM5qM/fK43gH5KhJeunq/xHO7E=
------END RSA PRIVATE KEY-----
diff --git a/board/karma/ec.tasklist b/board/karma/ec.tasklist
deleted file mode 100644
index ca4e3b5ee6..0000000000
--- a/board/karma/ec.tasklist
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 2048) \
- /* Larger stack for RW verification (i.e. sha256, rsa) */ \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CEC, cec_task, NULL, TASK_STACK_SIZE)
diff --git a/board/karma/gpio.inc b/board/karma/gpio.inc
deleted file mode 100644
index 1b265ed6ca..0000000000
--- a/board/karma/gpio.inc
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(PANEL_BACKLIGHT_EN, PIN(4, 4), GPIO_INT_RISING, backlight_enable_interrupt)
-
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_SUS_L, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PMIC_DPWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(USB_C0_VBUS_WAKE_L, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, vbus0_evt)
-GPIO_INT(RECOVERY_L, PIN(8, 2), GPIO_INT_BOTH, button_interrupt) /* Recovery button */
-GPIO(PCH_RTCRST, PIN(E, 7), GPIO_OUT_LOW) /* RTCRST# to SOC */
-GPIO(WLAN_OFF_L, PIN(7, 2), GPIO_OUT_LOW) /* Disable WLAN */
-GPIO(PP3300_DX_WLAN, PIN(A, 7), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(CPU_PROCHOT, PIN(8, 1), GPIO_OUT_HIGH) /* PROCHOT# to SOC */
-GPIO(PCH_ACPRESENT, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(7, 4), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(EC_PLATFORM_RST, PIN(4, 5), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(PMIC_SLP_SUS_L, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_HAVEN_RESET_ODL, PIN(0, 2), GPIO_ODR_HIGH) /* H1 Reset */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(PMIC_INT_L, PIN(6, 0), GPIO_INPUT) /* PMIC interrupt */
-GPIO(U22_90W, PIN(3, 4), GPIO_OUTPUT | GPIO_PULL_DOWN)
-GPIO(POWER_RATE, PIN(7, 1), GPIO_INPUT) /* High: i3/5/7. Low: Celeron */
-GPIO(PP3300_USB_PD_EN, PIN(6, 7), GPIO_OUT_HIGH) /* Initialize PP3300_USB_PD_EN as output high */
-
-GPIO(LAN_PWR_EN, PIN(8, 3), GPIO_OUT_HIGH) /* Ethernet power enabled */
-
-GPIO(PP5000_DX_NFC, PIN(1, 5), GPIO_OUTPUT)
-
-GPIO(PP3300_DX_CAM, PIN(1, 0), GPIO_OUT_HIGH)
-GPIO(CAM_PMIC_RST_L, PIN(0, 7), GPIO_INPUT)
-
-GPIO(WLAN_PE_RST, PIN(1, 2), GPIO_OUTPUT)
-GPIO(PP3300_DX_LTE, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(PP3300_DX_BASE, PIN(1, 1), GPIO_OUT_LOW)
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_BAT_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_BAT_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_ROP_I2C_CLK */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_ROP_I2C_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_THEM_CLK */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_THEM_SDA */
-
-/* 5V enables: INPUT=1.5A, OUT_LOW=OFF, OUT_HIGH=3A */
-GPIO(USB_C0_5V_EN, PIN(4, 2), GPIO_OUT_LOW | GPIO_PULL_UP) /* C0 5V Enable */
-GPIO(USB_C0_VBUS_ILIM, PIN(3, 5), GPIO_OUT_HIGH)
-GPIO(USB_C0_PD_RST_ODL, PIN(0, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */
-GPIO(USB_C0_TCPC_PWR, PIN(8, 4), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(FAN_PWR_EN, PIN(9, 5), GPIO_OUT_HIGH) /* Fan power */
-GPIO(USB1_ENABLE, PIN(3, 2), GPIO_OUT_LOW) /* Rear port, bottom */
-GPIO(USB2_ENABLE, PIN(C, 6), GPIO_OUT_LOW) /* Rear port, top */
-GPIO(USB3_ENABLE, PIN(A, 1), GPIO_OUT_LOW) /* Rear port, single */
-GPIO(USB4_ENABLE, PIN(0, 0), GPIO_OUT_LOW) /* Front port 1 */
-GPIO(USB_A_CHARGE_EN_L, PIN(A, 5), GPIO_OUT_LOW)
-
-GPIO(CEC_OUT, PIN(3, 6), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
-GPIO(CEC_IN, PIN(4, 0), GPIO_INPUT)
-GPIO(CEC_PULL_UP, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_EDID_WRITE_EN_L, PIN(C, 3), GPIO_OUT_HIGH) /* LOW to write EDID */
-
-/* Speaker */
-GPIO(SPKR5, PIN(C, 2), GPIO_INPUT) /* No function */
-
-GPIO(PANEL_ID_0, PIN(C, 5), GPIO_INPUT)
-GPIO(PANEL_ID_1, PIN(0, 1), GPIO_INPUT)
-GPIO(PANEL_ID_2, PIN(B, 1), GPIO_INPUT)
-
-/* Test points */
-GPIO(TP121, PIN(3, 3), GPIO_INPUT)
-GPIO(TP127, PIN(6, 6), GPIO_INPUT)
-GPIO(TP128, PIN(C, 4), GPIO_INPUT)
-GPIO(TP248, PIN(5, 7), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 */ /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 */ /* EC_I2C1_3V3_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 */ /* EC_I2C1_3V3_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 */ /* EC_I2C2_PMIC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(A, 0x40), 1, MODULE_PWM, 0) /* GPIOA6 */ /* TACH2 */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 */ /* EC_I2C0_0_USBC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0) /* GPIOB6 */ /* EC_FAN_PWM */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 */ /* EC_I2C0_1_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 */ /* EC_I2C3_SENSOR_1V8_SDA/SCL */
-/* Alternate functions for LED PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0) /* GPIO80 PWM3 Red*/
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* GPOB7 PWM5 Green*/
diff --git a/board/karma/vif_override.xml b/board/karma/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/karma/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/katsu/board.c b/board/katsu/board.c
deleted file mode 100644
index e487538180..0000000000
--- a/board/katsu/board.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "charger_mt6370.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/charger/rt946x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/mt6370.h"
-#include "driver/usb_mux/it5205.h"
-#include "extpower.h"
-#include "gesture.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_policy.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-static void gauge_interrupt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_CHARGER);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
- [ADC_BATT_ID] = {"BATT_ID", 3300, 4096, 0, STM32_AIN(7)},
- [ADC_POGO_ADC_INT_L] = {"POGO_ADC_INT_L", 3300, 4096, 0, STM32_AIN(6)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = MT6370_TCPC_I2C_ADDR_FLAGS,
- },
- .drv = &mt6370_tcpm_drv,
- },
-};
-
-struct mt6370_thermal_bound thermal_bound = {
- .target = 80,
- .err = 4,
-};
-
-static void board_hpd_update(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-__override const struct rt946x_init_setting *board_rt946x_init_setting(void)
-{
- static const struct rt946x_init_setting battery_init_setting = {
- .eoc_current = 140,
- .mivr = 4000,
- .ircmp_vclamp = 32,
- .ircmp_res = 25,
- .boost_voltage = 5050,
- .boost_current = 1500,
- };
-
- return &battery_init_setting;
-}
-
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_update,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 0);
- break;
-#if CONFIG_DEDICATED_CHARGE_PORT_COUNT > 0
- case CHARGE_PORT_POGO:
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 0);
- break;
-#endif
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 1);
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- if (force_discharge && !enable)
- rt946x_toggle_bc12_detection();
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int extpower_is_present(void)
-{
- /*
- * The charger will indicate VBUS presence if we're sourcing 5V,
- * so exclude such ports.
- */
- int usb_c_extpower_present;
-
- if (board_vbus_source_enabled(CHARGE_PORT_USB_C))
- usb_c_extpower_present = 0;
- else
- usb_c_extpower_present = tcpm_check_vbus_level(
- CHARGE_PORT_USB_C,
- VBUS_PRESENT);
-
- return usb_c_extpower_present;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port)
- panic("Invalid charge port\n");
-
- return rt946x_is_vbus_ready();
-}
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_ODL);
-
-#ifdef SECTION_IS_RW
- /* Enable interrupts from ICM40608 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* Enable interrupt for the camera vsync. */
- gpio_enable_interrupt(GPIO_SYNC_INT);
-#endif /* SECTION_IS_RW */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable gauge interrupt from max17055 */
- gpio_enable_interrupt(GPIO_GAUGE_INT_ODL);
-
- /*
- * Fix backlight led maximum current:
- * tolerance 120mA * 0.75 = 90mA.
- * (b/133655155)
- */
- mt6370_backlight_set_dim(MT6370_BLDIM_DEFAULT * 3 / 4);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_rev_init(void)
-{
- /* Board revision specific configs. */
-
- /*
- * It's a P1 pin BOOTBLOCK_MUX_OE, also a P2 pin BC12_DET_EN.
- * Keep this pin defaults to P1 setting since that eMMC enabled with
- * High-Z stat.
- */
- /* TODO */
- /* Put initial code here for different EC board reversion */
-}
-DECLARE_HOOK(HOOK_INIT, board_rev_init, HOOK_PRIO_INIT_ADC + 1);
-
-void sensor_board_proc_double_tap(void)
-{
- CPRINTS("Detect double tap");
-}
-
-/* Motion sensors */
-/* Mutexes */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static struct mutex g_lid_mutex;
-
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: ICM40608: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm426xx_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* Enable accel in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- /* For double tap detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm426xx_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
- },
- [VSYNC] = {
- .name = "Camera vsync",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/*
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
- /*
- * Though we have a more tolerant range (3.9V~13.4V), setting 4400 to
- * prevent from a bad charger crashed.
- *
- * TODO(b:131284131): mt6370 VBUS reading is not accurate currently.
- * Vendor will provide a workaround solution to fix the gap between ADC
- * reading and actual voltage. After the workaround applied, we could
- * try to raise this value to 4600. (when it says it read 4400, it is
- * actually close to 4600)
- */
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < 4400;
-}
-
-__override int board_charge_port_is_sink(int port)
-{
- /* TODO(b:128386458): Check POGO_ADC_INT_L */
- return 1;
-}
-
-__override int board_charge_port_is_connected(int port)
-{
- return gpio_get_level(GPIO_POGO_VBUS_PRESENT);
-}
-
-__override
-void board_fill_source_power_info(int port,
- struct ec_response_usb_pd_power_info *r)
-{
- r->meas.voltage_now = 3300;
- r->meas.voltage_max = 3300;
- r->meas.current_max = 1500;
- r->meas.current_lim = 1500;
- r->max_power = r->meas.voltage_now * r->meas.current_max;
-}
-
diff --git a/board/katsu/board.h b/board/katsu/board.h
deleted file mode 100644
index aa6e386d8f..0000000000
--- a/board/katsu/board.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Katsu */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define BQ27541_ADDR 0x55
-#define VARIANT_KUKUI_BATTERY_BQ27541
-#define VARIANT_KUKUI_POGO_KEYBOARD
-
-#define VARIANT_KUKUI_CHARGER_MT6370
-#define VARIANT_KUKUI_EC_STM32F098
-#define VARIANT_KUKUI_TABLET_PWRBTN
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#define CONFIG_USB_MUX_IT5205
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* Battery */
-#define BATTERY_DESIRED_CHARGING_CURRENT 3500 /* mA */
-
-#define CONFIG_CHARGER_MT6370_BACKLIGHT
-
-
-/* Motion Sensors */
-#ifdef SECTION_IS_RW
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-/* Camera VSYNC */
-#define CONFIG_SYNC
-#define CONFIG_SYNC_COMMAND
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-#endif /* SECTION_IS_RW */
-
-/* I2C ports */
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_ACCEL 1
-#define I2C_PORT_BC12 1
-
-/* Route sbs host requests to virtual battery driver */
-#define VIRTUAL_BATTERY_ADDR_FLAGS 0x0B
-
-/* MKBP */
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_EVENT_WAKEUP_MASK \
- (BIT(EC_MKBP_EVENT_SENSOR_FIFO) | BIT(EC_MKBP_EVENT_HOST_EVENT))
-
-#define PD_OPERATING_POWER_MW 15000
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_BATT_ID,
- ADC_POGO_ADC_INT_L,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- VSYNC,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-void pogo_adc_interrupt(enum gpio_signal signal);
-int board_discharge_on_ac(int enable);
-
-/* Enable double tap detection */
-#define CONFIG_GESTURE_DETECTION
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP
-#define CONFIG_GESTURE_TAP_SENSOR 0
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP_FOR_HOST
-#define CONFIG_GESTURE_SAMPLING_INTERVAL_MS 5
-#define CONFIG_GESTURE_TAP_THRES_MG 100
-#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 500
-#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_GESTURE_TAP_SENSOR)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/katsu/build.mk b/board/katsu/build.mk
deleted file mode 100644
index 7a3953b8bb..0000000000
--- a/board/katsu/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=board.o led.o
diff --git a/board/katsu/ec.tasklist b/board/katsu/ec.tasklist
deleted file mode 100644
index fc26f445b2..0000000000
--- a/board/katsu/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
-
diff --git a/board/katsu/gpio.inc b/board/katsu/gpio.inc
deleted file mode 100644
index f938153045..0000000000
--- a/board/katsu/gpio.inc
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(VOLUME_UP_L, PIN(B, 10), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-GPIO_INT(VOLUME_DOWN_L, PIN(B, 11), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- icm426xx_interrupt)
-GPIO_INT(CHARGER_INT_ODL, PIN(C, 13), GPIO_INT_FALLING | GPIO_PULL_UP,
- rt946x_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event)
-GPIO_INT_RW(SYNC_INT, PIN(A, 8), GPIO_INT_RISING | GPIO_PULL_DOWN,
- sync_interrupt)
-GPIO_INT(HALL_INT_L, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(GAUGE_INT_ODL, PIN(C, 9), GPIO_INT_FALLING | GPIO_PULL_UP,
- gauge_interrupt)
-GPIO_INT(POGO_ADC_INT_L, PIN(A, 6), GPIO_INT_BOTH,
- pogo_adc_interrupt)
-
-/* unused */
-GPIO(POGO_VBUS_PRESENT, PIN(A, 14), GPIO_INPUT)
-/* unused after board rev 5 */
-GPIO(USB_C0_DP_POLARITY, PIN(C, 14), GPIO_INPUT)
-GPIO(USB_C0_DP_OE_L, PIN(A, 5), GPIO_INPUT)
-
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(C, 10), GPIO_ODR_HIGH)
-GPIO(PMIC_FORCE_RESET_ODL, PIN(A, 2), GPIO_ODR_HIGH)
-GPIO(MT6370_RST_L, PIN(F, 0), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-
-/* Analog pins */
-GPIO(BATT_ID, PIN(A, 7), GPIO_ANALOG)
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(B, 12), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP3300_POGO, PIN(A, 13), GPIO_OUT_LOW)
-GPIO(EN_POGO_CHARGE_L, PIN(B, 6), GPIO_OUT_HIGH)
-GPIO(EN_USBC_CHARGE_L, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EN_PP5000_USBC, PIN(D, 2), GPIO_OUT_LOW)
-GPIO(BC12_DET_EN, PIN(C, 4), GPIO_OUT_LOW)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-#ifdef SECTION_IS_RO
-/* SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-#endif
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
diff --git a/board/katsu/led.c b/board/katsu/led.c
deleted file mode 100644
index c72f5e4cdb..0000000000
--- a/board/katsu/led.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* 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.
- *
- * Battery LED control for Katsu board.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "driver/charger/rt946x.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "power.h"
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-#define LED_OFF MT6370_LED_ID_OFF
-#define LED_AMBER MT6370_LED_ID1
-#define LED_WHITE MT6370_LED_ID2
-
-#define LED_MASK_OFF 0
-#define LED_MASK_AMBER MT6370_MASK_RGB_ISNK1DIM_EN
-#define LED_MASK_WHITE MT6370_MASK_RGB_ISNK2DIM_EN
-
-static void katsu_led_set_battery(void)
-{
- enum charge_state chstate;
- enum power_state powerstate;
- static uint8_t prv_white, prv_amber;
- static uint8_t time_cnt;
- uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
-
- chstate = charge_get_state();
- powerstate = power_get_state();
-
- switch (chstate) {
- case PWR_STATE_CHARGE:
- case PWR_STATE_CHARGE_NEAR_FULL:
- if (charge_get_percent() < 94) {
- br[EC_LED_COLOR_AMBER] = 1;
- br[EC_LED_COLOR_WHITE] = 0;
- break;
- }
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- break;
- case PWR_STATE_DISCHARGE:
- if (powerstate == POWER_S0) {
- /* display SoC 10% = real battery SoC 13%*/
- if (charge_get_percent() < 14) {
- if (time_cnt < 1) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 1;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 3)
- time_cnt = 0;
- }
- break;
- }
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- break;
- } else if (powerstate == POWER_S3) {
- if (time_cnt < 2) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 3)
- time_cnt = 0;
- }
- break;
- } else if (powerstate == POWER_S5 || powerstate == POWER_G3) {
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- }
- break;
- case PWR_STATE_ERROR:
- if (powerstate == POWER_S0) {
- if (time_cnt < 1) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 1;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 1)
- time_cnt = 0;
- }
- break;
- } else if (powerstate == POWER_S3) {
- if (time_cnt < 2) {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 1;
- br[EC_LED_COLOR_AMBER] = 0;
- } else {
- time_cnt++;
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- if (time_cnt > 3)
- time_cnt = 0;
- }
- break;
- } else if (powerstate == POWER_S5 || powerstate == POWER_G3) {
- br[EC_LED_COLOR_WHITE] = 0;
- br[EC_LED_COLOR_AMBER] = 0;
- }
- break;
- default:
- /* Other states don't alter LED behavior */
- return;
- }
-
- if (prv_white == br[EC_LED_COLOR_WHITE] &&
- prv_amber == br[EC_LED_COLOR_AMBER])
- return;
-
- prv_white = br[EC_LED_COLOR_WHITE];
- prv_amber = br[EC_LED_COLOR_AMBER];
- led_set_brightness(EC_LED_ID_BATTERY_LED, br);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id != EC_LED_ID_BATTERY_LED)
- return;
-
- brightness_range[EC_LED_COLOR_WHITE] = MT6370_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_AMBER] = MT6370_LED_BRIGHTNESS_MAX;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- uint8_t white, amber;
-
- if (led_id != EC_LED_ID_BATTERY_LED)
- return EC_ERROR_INVAL;
-
- white = brightness[EC_LED_COLOR_WHITE];
- amber = brightness[EC_LED_COLOR_AMBER];
-
- mt6370_led_set_brightness(LED_WHITE, white);
- mt6370_led_set_brightness(LED_AMBER, amber);
-
- /* Enables LED sink power if necessary. */
- mt6370_led_set_color((white ? LED_MASK_WHITE : 0) |
- (amber ? LED_MASK_AMBER : 0));
- return EC_SUCCESS;
-}
-
-static void katsu_led_init(void)
-{
- const enum mt6370_led_dim_mode dim = MT6370_LED_DIM_MODE_PWM;
- const enum mt6370_led_pwm_freq freq = MT6370_LED_PWM_FREQ1000;
-
- mt6370_led_set_color(0);
- mt6370_led_set_dim_mode(LED_WHITE, dim);
- mt6370_led_set_dim_mode(LED_AMBER, dim);
- mt6370_led_set_pwm_frequency(LED_WHITE, freq);
- mt6370_led_set_pwm_frequency(LED_AMBER, freq);
- mt6370_led_set_pwm_dim_duty(LED_WHITE, 255);
- mt6370_led_set_pwm_dim_duty(LED_AMBER, 255);
-}
-DECLARE_HOOK(HOOK_INIT, katsu_led_init, HOOK_PRIO_DEFAULT);
-
-/* Called by hook task every 1 sec */
-static void led_second(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- katsu_led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
-
-__override void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- return;
- }
-
- if (state)
- br[EC_LED_COLOR_WHITE] = 1;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
- led_set_brightness(EC_LED_ID_BATTERY_LED, br);
-}
diff --git a/board/katsu/vif_override.xml b/board/katsu/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/katsu/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kindred/battery.c b/board/kindred/battery.c
deleted file mode 100644
index 9db25ac059..0000000000
--- a/board/kindred/battery.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Hatch battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC_AP18C8K;
diff --git a/board/kindred/board.c b/board/kindred/board.c
deleted file mode 100644
index c17ddb1b8a..0000000000
--- a/board/kindred/board.c
+++ /dev/null
@@ -1,661 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static int lid_device_id;
-static int base_device_id;
-
-static void check_reboot_deferred(void);
-DECLARE_DEFERRED(check_reboot_deferred);
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- baseboard_mst_enable_control(MST_HDMI, gpio_get_level(signal));
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- .flags = 0,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-static struct kionix_accel_data g_kx022_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_icm_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 2, /* g, enough for laptop */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3200,
- .rpm_start = 3200,
- .rpm_max = 6500,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_3] = {
- "TEMP_WIFI", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Temp1",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Temp2",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Temp3",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-/* Hatch Temperature sensors */
-/*
- * TODO(b/124316213): These setting need to be reviewed and set appropriately
- * for Hatch. They matter when the EC is controlling the fan as opposed to DPTF
- * control.
- */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = C_TO_K(75),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(55),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(55),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_a;
-}
-
-/* Sets the gpio flags correct taking into account warm resets */
-static void reset_gpio_flags(enum gpio_signal signal, int flags)
-{
- /*
- * If the system was already on, we cannot set the value otherwise we
- * may change the value from the previous image which could cause a
- * brownout.
- */
- if (system_is_reboot_warm() || system_jumped_late())
- flags &= ~(GPIO_LOW | GPIO_HIGH);
-
- gpio_set_flags(signal, flags);
-}
-
-/* Runtime GPIO defaults */
-enum gpio_signal gpio_en_pp5000_a = GPIO_EN_PP5000_A_V1;
-
-static void board_gpio_set_pp5000(void)
-{
- uint32_t board_id = 0;
-
- /* Errors will count as board_id 0 */
- cbi_get_board_version(&board_id);
-
- if (board_id == 0) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V0, GPIO_OUT_LOW);
- /* Change runtime default for V0 */
- gpio_en_pp5000_a = GPIO_EN_PP5000_A_V0;
- } else if (board_id >= 1) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V1, GPIO_OUT_LOW);
- }
-
-}
-
-bool board_is_convertible(void)
-{
- uint8_t sku_id = get_board_sku();
- /* SKU ID of Kled : 1, 2, 3, 4 */
- return (sku_id >= 1) && (sku_id <= 4);
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- /*
- * There are two possible sensor configurations. Clamshell device will
- * not have any of the motion sensors populated, while convertible
- * devices have the BMI160 Accel/Gryo lid acceleration sensor.
- * If a new SKU id is used that is not in the threshold, then the
- * number of motion sensors will remain as ARRAY_SIZE(motion_sensors).
- */
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- CPRINTS("Motion Sensor Count = %d", motion_sensor_count);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void anx7447_set_aux_switch(void)
-{
- const int port = USB_PD_PORT_TCPC_0;
-
- /* Debounce */
- if (gpio_get_level(GPIO_CCD_MODE_ODL))
- return;
-
- /*
- * Expect to set AUX_SWITCH to 0, but 0xc isolates the DP_AUX
- * signal from SBU.
- */
- CPRINTS("C%d: AUX_SW_SEL=0x%x", port, 0xc);
- if (tcpc_write(port, ANX7447_REG_TCPC_AUX_SWITCH, 0xc))
- CPRINTS("C%d: Setting AUX_SW_SEL failed", port);
-}
-DECLARE_DEFERRED(anx7447_set_aux_switch);
-
-void ccd_mode_isr(enum gpio_signal signal)
-{
- /* Wait 2 seconds until all mux setting is done by PD task */
- hook_call_deferred(&anx7447_set_aux_switch_data, 2 * SECOND);
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
- /* Enable HDMI HPD interrupt. */
- gpio_enable_interrupt(GPIO_HDMI_CONN_HPD);
- /* Trigger once to set mux in case CCD cable is already connected. */
- ccd_mode_isr(GPIO_CCD_MODE_ODL);
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
- /* Select correct gpio signal for PP5000_A control */
- board_gpio_set_pp5000();
- /* Use sku_id to set motion sensor count */
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void determine_accel_devices(void)
-{
- static uint8_t read_time;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
-
- if (read_time == 0 && board_is_convertible()) {
- /* Read g sensor chip id*/
- i2c_read8(I2C_PORT_ACCEL,
- KX022_ADDR0_FLAGS, KX022_WHOAMI, &lid_device_id);
- /* Read gyro sensor id*/
- i2c_read8(I2C_PORT_ACCEL,
- ICM426XX_ADDR0_FLAGS,
- ICM426XX_REG_WHO_AM_I, &base_device_id);
-
- CPRINTS("Motion Sensor Base id = %d Lid id =%d",
- base_device_id, lid_device_id);
-
- if (lid_device_id == KX022_WHO_AM_I_VAL) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("Lid Accel is KX022");
- } else
- ccprints("Lid Accel is BMA255");
-
- if (base_device_id == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE Accel is ICM426XX");
- } else
- ccprints("BASE Accel is BMI160");
-
- read_time++;
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, determine_accel_devices, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, determine_accel_devices, HOOK_PRIO_INIT_ADC + 2);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_device_id) {
- case ICM426XX_CHIP_ICM40608:
- icm426xx_interrupt(signal);
- break;
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-bool board_has_kb_backlight(void)
-{
- uint8_t sku_id = get_board_sku();
- /* SKU ID of Kled with KB backlight: 1, 2, 3, 4 */
- return (sku_id >= 1) && (sku_id <= 4);
-}
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- if (board_has_kb_backlight())
- return flags0;
- else
- return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
-}
-
-void all_sys_pgood_check_reboot(void)
-{
- hook_call_deferred(&check_reboot_deferred_data, 3000 * MSEC);
-}
-
-__override void board_chipset_forced_shutdown(void)
-{
- hook_call_deferred(&check_reboot_deferred_data, -1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_forced_shutdown, HOOK_PRIO_DEFAULT);
-
-static void check_reboot_deferred(void)
-{
- if (!gpio_get_level(GPIO_PG_EC_ALL_SYS_PWRGD))
- system_reset(SYSTEM_RESET_MANUALLY_TRIGGERED);
-}
diff --git a/board/kindred/board.h b/board/kindred/board.h
deleted file mode 100644
index 79fc7c0642..0000000000
--- a/board/kindred/board.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Hatch board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_POWER_BUTTON
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 2
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_KX022
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A_LOW_PWR_OD
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set based on the battery's discharge current limit and what was tested to
- * prevent the AP rebooting with low charge level batteries.
- *
- * TODO(b/133447140): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* MST */
-/*
- * TDOD (b/124068003): This inherently assumes the MST chip is connected to only
- * one Type C port. This will need to be chagned to support 2 Type C ports
- * connected to the same MST chip.
- */
-#define USB_PD_PORT_TCPC_MST USB_PD_PORT_TCPC_1
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* GPIO signals updated base on board version. */
-#define GPIO_EN_PP5000_A gpio_en_pp5000_a
-extern enum gpio_signal gpio_en_pp5000_a;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC3 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_TYPE_COUNT,
-};
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (1 << LID_ACCEL)
-
-void motion_interrupt(enum gpio_signal signal);
-
-void ccd_mode_isr(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kindred/build.mk b/board/kindred/build.mk
deleted file mode 100644
index 733912454f..0000000000
--- a/board/kindred/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/kindred/ec.tasklist b/board/kindred/ec.tasklist
deleted file mode 100644
index 4a1024a091..0000000000
--- a/board/kindred/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/kindred/gpio.inc b/board/kindred/gpio.inc
deleted file mode 100644
index 2adb08f564..0000000000
--- a/board/kindred/gpio.inc
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, motion_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* CCD mode line*/
-GPIO_INT(CCD_MODE_ODL, PIN(E, 5), GPIO_INT_FALLING, ccd_mode_isr)
-
-GPIO_INT(HDMI_CONN_HPD, PIN(7, 2), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A_V1, PIN(A, 4), GPIO_DEFAULT)
-GPIO(EN_PP5000_A_V0, PIN(7, 3), GPIO_DEFAULT)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_LOW)
-GPIO(EN_USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Blue (kindred) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Yellow (kindred) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(LED_4_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-GPIO(EN_MST, PIN(9, 6), GPIO_OUT_LOW)
-
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/kindred/led.c b/board/kindred/led.c
deleted file mode 100644
index 9eb195d0b6..0000000000
--- a/board/kindred/led.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Hatch
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/kindred/vif_override.xml b/board/kindred/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kindred/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kingoftown/battery.c b/board/kingoftown/battery.c
deleted file mode 100644
index c039fb3e45..0000000000
--- a/board/kingoftown/battery.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all kingoftown battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack HIGHPOWER Battery Information */
- [BATTERY_DYNAPACK_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-2D-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack BYD Battery Information */
- [BATTERY_DYNAPACK_BYD] = {
- .fuel_gauge = {
- .manuf_name = "333-2E-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* ATL GB-S20-4473A9-01H&020H Battery Information
- * Gauge IC : RAJ240045
- */
- [BATTERY_ATL] = {
- .fuel_gauge = {
- .manuf_name = "313-B7-0D-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x43,
- .reg_mask = 0x0003,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_HIGHPOWER;
diff --git a/board/kingoftown/board.c b/board/kingoftown/board.c
deleted file mode 100644
index cc0005d775..0000000000
--- a/board/kingoftown/board.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Kingoftown board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#include "gpio_list.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Use 80 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /*
- * Unmask 0x08 in [0] (KSO_00/KSI_03, the new location of Search key);
- * as it still uses the legacy location (KSO_01/KSI_00).
- */
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca
- },
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
-};
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable interrupt for BMI160 sensor */
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Mutexes */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
diff --git a/board/kingoftown/board.h b/board/kingoftown/board.h
deleted file mode 100644
index b1d9cc3c5c..0000000000
--- a/board/kingoftown/board.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Kingoftown board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* TODO(waihong): Remove the following bringup features */
-#define CONFIG_BRINGUP
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands. */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define CONFIG_CMD_GPIO_EXTENDED
-#define CONFIG_CMD_POWERINDEBUG
-#define CONFIG_I2C_DEBUG
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-
-#define CONFIG_PWM_KBLIGHT
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* USB-A */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* BMA253 lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_SWITCHCAP_PG GPIO_SWITCHCAP_GPIO_1
-#define GPIO_ACOK_OD GPIO_CHG_ACOK_OD
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_DISPLIGHT,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNAPACK_HIGHPOWER,
- BATTERY_DYNAPACK_BYD,
- BATTERY_COS,
- BATTERY_ATL,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kingoftown/build.mk b/board/kingoftown/build.mk
deleted file mode 100644
index 5415d90b29..0000000000
--- a/board/kingoftown/build.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y+=battery.o
-board-y+=board.o
-board-y+=hibernate.o
-board-y+=led.o
-board-y+=switchcap.o
-board-y+=usbc_config.o
diff --git a/board/kingoftown/ec.tasklist b/board/kingoftown/ec.tasklist
deleted file mode 100644
index 5beeb38feb..0000000000
--- a/board/kingoftown/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/kingoftown/gpio.inc b/board/kingoftown/gpio.inc
deleted file mode 100644
index fcc863c77b..0000000000
--- a/board/kingoftown/gpio.inc
+++ /dev/null
@@ -1,187 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-GPIO_INT(USB_A0_OC_ODL, PIN(D, 1), GPIO_INT_BOTH | GPIO_PULL_UP, usba_oc_interrupt)
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-/* Sensor interrupts */
-GPIO_INT(TABLET_MODE_L, PIN(C, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, bmi160_interrupt) /* Accelerometer/gyro interrupt */
-
-/*
- * EC_RST_ODL used to be a wake source from PSL mode. However, we disabled
- * the PSL mode. This GPIO does nothing now. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PMIC_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Sensors */
-GPIO(LID_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT) /* Lid accel sensor interrupt */
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(7, 4), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_OUT_HIGH) /* Port-0 TCPC chip reset */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_OUT_HIGH) /* Port-1 TCPC chip reset */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* USB-A */
-GPIO(EN_USB_A_5V, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(USB_A_CDP_ILIM_EN_L, PIN(7, 5), GPIO_OUT_HIGH) /* H:CDP, L:SDP. Only one USB-A port, always CDP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C0, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C0, PIN(C, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_Y_C1, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C1, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(KB_BL_PWM, PIN(8, 0), GPIO_INPUT) /* PWM3 */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Switchcap */
-/*
- * GPIO0 is configured as PVC_PG. When the chip in power down mode, it outputs
- * high-Z. Set pull-down to avoid floating.
- */
-GPIO(SWITCHCAP_GPIO_1, PIN(E, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* Switchcap GPIO0 */
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(3, 7))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(6, 2))
-UNUSED(PIN(0, 4))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(5, 0))
-UNUSED(PIN(D, 3))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-
-/* Keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* Keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO10 (GPIO07), KSO11 (GPIO06), KSO12 (GPIO05) */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO03 (GPIO16), KSO04 (GPIO15), KSO05 (GPIO14), KSO06 (GPIO13), KSO07 (GPIO12), KSO08 (GPIO11), KSO09 (GPIO10) */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO00 (GPIO21), KSO01 (GPIO20) */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI2 (GPIO27), KSI3 (GPIO26), KSI4 (GPIO25), KSI5 (GPIO24), KSI6 (GPIO23), KSI7 (GPIO22) */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI0 (GPIO31), KSI1 (GPIO30) */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2) /* KSO02 (GPIO17) */
diff --git a/board/kingoftown/hibernate.c b/board/kingoftown/hibernate.c
deleted file mode 100644
index 504a295463..0000000000
--- a/board/kingoftown/hibernate.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "gpio.h"
-
-void board_hibernate(void)
-{
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_LID_ACCEL_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-}
diff --git a/board/kingoftown/led.c b/board/kingoftown/led.c
deleted file mode 100644
index 295c8effeb..0000000000
--- a/board/kingoftown/led.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_LEFT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void side_led_set_color(int port, enum led_color color)
-{
- gpio_set_level(port ? GPIO_EC_CHG_LED_Y_C1 : GPIO_EC_CHG_LED_Y_C0,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(port ? GPIO_EC_CHG_LED_W_C1 : GPIO_EC_CHG_LED_W_C0,
- (color == LED_WHITE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- int port;
-
- switch (led_id) {
- case EC_LED_ID_RIGHT_LED:
- port = 0;
- break;
- case EC_LED_ID_LEFT_LED:
- port = 1;
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- side_led_set_color(port, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- side_led_set_color(port, LED_AMBER);
- else
- side_led_set_color(port, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- side_led_set_color(0, (port == 0) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- side_led_set_color(1, (port == 1) ? color : LED_OFF);
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() <= 10)
- side_led_set_color(0,
- (battery_ticks & 0x4) ? LED_WHITE : LED_OFF);
- else
- side_led_set_color(0, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- side_led_set_color(1, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks & 0x4) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_LEFT_LED, 1);
- led_auto_control(EC_LED_ID_RIGHT_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_WHITE : LED_OFF;
-
- led_auto_control(EC_LED_ID_LEFT_LED, 0);
- led_auto_control(EC_LED_ID_RIGHT_LED, 0);
-
- side_led_set_color(0, color);
- side_led_set_color(1, color);
-}
diff --git a/board/kingoftown/switchcap.c b/board/kingoftown/switchcap.c
deleted file mode 100644
index 16b0db6ef6..0000000000
--- a/board/kingoftown/switchcap.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "gpio.h"
-#include "power/qcom.h"
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_ON);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_PG);
-}
diff --git a/board/kingoftown/usbc_config.c b/board/kingoftown/usbc_config.c
deleted file mode 100644
index 81a63be9b3..0000000000
--- a/board/kingoftown/usbc_config.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Kingoftown board-specific USB-C configuration */
-
-#include "bc12/pi3usb9201_public.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "config.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ppc/sn5s330_public.h"
-#include "system.h"
-#include "tcpm/ps8xxx_public.h"
-#include "tcpm/tcpci.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "usbc_config.h"
-#include "usb_mux.h"
-#include "usbc_ocp.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* GPIO Interrupt Handlers */
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void usba_oc_deferred(void)
-{
- /* Use next number after all USB-C ports to indicate the USB-A port */
- board_overcurrent_event(CONFIG_USB_PD_PORT_MAX_COUNT,
- !gpio_get_level(GPIO_USB_A0_OC_ODL));
-}
-DECLARE_DEFERRED(usba_oc_deferred);
-
-void usba_oc_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&usba_oc_deferred_data, 0);
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Initialize board USC-C things */
-static void board_init_usbc(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Enable USB-A overcurrent interrupt */
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init_usbc, HOOK_PRIO_DEFAULT);
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
diff --git a/board/kingoftown/usbc_config.h b/board/kingoftown/usbc_config.h
deleted file mode 100644
index 654da35f74..0000000000
--- a/board/kingoftown/usbc_config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Kingoftown board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#include "gpio.h"
-
-void tcpc_alert_event(enum gpio_signal signal);
-void usb0_evt(enum gpio_signal signal);
-void usb1_evt(enum gpio_signal signal);
-void usba_oc_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/kingoftown/vif_override.xml b/board/kingoftown/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kingoftown/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kodama/analyzestack.yaml b/board/kodama/analyzestack.yaml
deleted file mode 100644
index 4a057ce818..0000000000
--- a/board/kodama/analyzestack.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-remove:
-# Remove all callsites pointing to panic_assert_fail.
-- panic_assert_fail
diff --git a/board/kodama/battery.c b/board/kodama/battery.c
deleted file mode 100644
index 1dbff92a00..0000000000
--- a/board/kodama/battery.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "charger_mt6370.h"
-#include "console.h"
-#include "driver/charger/rt946x.h"
-#include "gpio.h"
-#include "power.h"
-#include "usb_pd.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 4400,
- .voltage_normal = 3840,
- .voltage_min = 3000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_CELXPERT] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L19C3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 4400,
- .voltage_normal = 3840,
- .voltage_min = 2800,
- .precharge_current = 404,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- const struct battery_info *batt_info = battery_get_info();
- /* battery temp in 0.1 deg C */
- int bat_temp_c = curr->batt.temperature - 2731;
-
-#ifdef VARIANT_KUKUI_CHARGER_MT6370
- mt6370_charger_profile_override(curr);
-#endif /* CONFIG_CHARGER_MT6370 */
-
- /*
- * When smart battery temperature is more than 45 deg C, the max
- * charging voltage is 4100mV.
- */
- if (curr->state == ST_CHARGE && bat_temp_c >= 450
- && !(curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE))
- curr->requested_voltage = 4100;
- else
- curr->requested_voltage = batt_info->voltage_max;
-
- /*
- * mt6370's minimum regulated current is 500mA REG17[7:2] 0b100,
- * values below 0b100 are preserved. In the other hand, it makes sure
- * mt6370's VOREG set as 4400mV and minimum value of mt6370's ICHG
- * is limited as 500mA.
- */
- curr->requested_current = MAX(500, curr->requested_current);
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/kodama/board.c b/board/kodama/board.c
deleted file mode 100644
index 33ecbba384..0000000000
--- a/board/kodama/board.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "charger_mt6370.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/charger/rt946x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/mt6370.h"
-#include "driver/usb_mux/it5205.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
- [ADC_POGO_ADC_INT_L] = {"POGO_ADC_INT_L", 3300, 4096, 0, STM32_AIN(6)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA,
- .flags = I2C_PORT_FLAG_DYNAMIC_SPEED},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = MT6370_TCPC_I2C_ADDR_FLAGS,
- },
- .drv = &mt6370_tcpm_drv,
- },
-};
-
-struct mt6370_thermal_bound thermal_bound = {
- .target = 75,
- .err = 4,
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-
-__override const struct rt946x_init_setting *board_rt946x_init_setting(void)
-{
- static const struct rt946x_init_setting battery_init_setting = {
- .eoc_current = 150,
- .mivr = 4000,
- .ircmp_vclamp = 32,
- .ircmp_res = 25,
- .boost_voltage = 5050,
- .boost_current = 1500,
- };
-
- return &battery_init_setting;
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- if (force_discharge && !enable)
- rt946x_toggle_bc12_detection();
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int extpower_is_present(void)
-{
- /*
- * The charger will indicate VBUS presence if we're sourcing 5V,
- * so exclude such ports.
- */
- int usb_c_extpower_present;
-
- if (board_vbus_source_enabled(CHARGE_PORT_USB_C))
- usb_c_extpower_present = 0;
- else
- usb_c_extpower_present = tcpm_check_vbus_level(
- CHARGE_PORT_USB_C,
- VBUS_PRESENT);
-
- return usb_c_extpower_present;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port)
- panic("Invalid charge port\n");
-
- return rt946x_is_vbus_ready();
-}
-
-#define CHARGER_I2C_ADDR_FLAGS RT946X_ADDR_FLAGS
-
-static void board_init(void)
-{
-#ifdef SECTION_IS_RW
- int val;
-
- i2c_read8(I2C_PORT_CHARGER, CHARGER_I2C_ADDR_FLAGS,
- RT946X_REG_CHGCTRL1, &val);
- val &= RT946X_MASK_OPA_MODE;
- i2c_write8(I2C_PORT_CHARGER, CHARGER_I2C_ADDR_FLAGS,
- RT946X_REG_CHGCTRL1, (val | RT946X_MASK_STAT_EN));
-#endif
-
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_ODL);
-
-#ifdef SECTION_IS_RW
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* Enable interrupt for the camera vsync. */
- gpio_enable_interrupt(GPIO_SYNC_INT);
-#endif /* SECTION_IS_RW */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* reduce mt6370 db and bl driving capacity */
- mt6370_reduce_db_bl_driving();
-
- /* Display bias settings. */
- mt6370_db_set_voltages(6000, 5800, 5800);
-
- /*
- * Fix backlight led maximum current:
- * tolerance 120mA * 0.75 = 90mA.
- * (b/133655155)
- */
- mt6370_backlight_set_dim(MT6370_BLDIM_DEFAULT * 3 / 4);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/*
- * Re-configure i2c-2 to 100kHz for EVT devices, this must execute after
- * i2c_init (in main()) and before battery fuel gauge access the battery
- * (i.e. HOOK_PRIO_I2C + 1).
- *
- * Note that stm32f0 don't run adc_init in hooks, so we can safely call
- * board_get_version() before HOOK_PRIO_INIT_ADC(=HOOK_PRIO_DEFAULT).
- */
-static void board_i2c_init(void)
-{
- if (board_get_version() < 2)
- i2c_set_freq(1, I2C_FREQ_100KHZ);
-}
-DECLARE_HOOK(HOOK_INIT, board_i2c_init, HOOK_PRIO_INIT_I2C);
-
-/* Motion sensors */
-/* Mutexes */
-#ifdef SECTION_IS_RW
-static struct mutex g_lid_mutex;
-
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lsm6dsm_drv,
- .mutex = &g_lid_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_ACCEL_INT_ODL,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* Enable accel in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lsm6dsm_drv,
- .mutex = &g_lid_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_GYRO),
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
- [VSYNC] = {
- .name = "Camera vsync",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-#endif /* SECTION_IS_RW */
-
-/*
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
- /*
- * Though we have a more tolerant range (3.9V~13.4V), setting 4400 to
- * prevent from a bad charger crashed.
- *
- * TODO(b:131284131): mt6370 VBUS reading is not accurate currently.
- * Vendor will provide a workaround solution to fix the gap between ADC
- * reading and actual voltage. After the workaround applied, we could
- * try to raise this value to 4600. (when it says it read 4400, it is
- * actually close to 4600)
- */
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < 4400;
-}
-
-int board_get_battery_i2c(void)
-{
- return board_get_version() >= 2 ? 2 : 1;
-}
diff --git a/board/kodama/board.h b/board/kodama/board.h
deleted file mode 100644
index 48e39b2300..0000000000
--- a/board/kodama/board.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_MT6370
-#define VARIANT_KUKUI_EC_STM32F098
-#define VARIANT_KUKUI_POGO_KEYBOARD
-#define VARIANT_KUKUI_TABLET_PWRBTN
-#undef CONFIG_CMD_MFALLOW
-
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#define CONFIG_DEBUG_ASSERT_BRIEF
-
-#define CONFIG_VOLUME_BUTTONS
-
-#define CONFIG_USB_MUX_IT5205
-
-#define CONFIG_LED_ONOFF_STATES
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_I2C_BITBANG
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 3
-#define CONFIG_SMBUS_PEC
-
-/* Battery */
-#define BATTERY_DESIRED_CHARGING_CURRENT 2000 /* mA */
-
-#define CONFIG_CHARGER_MT6370_BACKLIGHT
-#define CONFIG_CHARGER_MAINTAIN_VBAT
-
-/* Motion Sensors */
-#ifdef SECTION_IS_RW
-#define CONFIG_ACCELGYRO_LSM6DSM
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-/* Camera VSYNC */
-#define CONFIG_SYNC
-#define CONFIG_SYNC_COMMAND
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-#endif /* SECTION_IS_RW */
-
-/* I2C ports */
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_ACCEL 1
-#define I2C_PORT_BATTERY board_get_battery_i2c()
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-/* Define the host events which are allowed to wakeup AP in S3. */
-#define CONFIG_MKBP_INPUT_DEVICES
-
-#define PD_OPERATING_POWER_MW 15000
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_POGO_ADC_INT_L,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- VSYNC,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_SIMPLO,
- BATTERY_CELXPERT,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-void pogo_adc_interrupt(enum gpio_signal signal);
-int board_discharge_on_ac(int enable);
-/* returns the i2c port number of battery */
-int board_get_battery_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kodama/build.mk b/board/kodama/build.mk
deleted file mode 100644
index 0b3565fd84..0000000000
--- a/board/kodama/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/kodama/ec.tasklist b/board/kodama/ec.tasklist
deleted file mode 100644
index f71a208dd6..0000000000
--- a/board/kodama/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
-
diff --git a/board/kodama/gpio.inc b/board/kodama/gpio.inc
deleted file mode 100644
index 75a3db7d20..0000000000
--- a/board/kodama/gpio.inc
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(VOLUME_UP_L, PIN(B, 10), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-GPIO_INT(VOLUME_DOWN_L, PIN(B, 11), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- lsm6dsm_interrupt)
-GPIO_INT(CHARGER_INT_ODL, PIN(C, 13), GPIO_INT_FALLING | GPIO_PULL_UP,
- rt946x_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event)
-GPIO_INT_RW(SYNC_INT, PIN(A, 8), GPIO_INT_RISING | GPIO_PULL_DOWN,
- sync_interrupt)
-GPIO_INT(HALL_INT_L, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(POGO_ADC_INT_L, PIN(A, 6), GPIO_INT_BOTH,
- pogo_adc_interrupt)
-
-/* unused */
-GPIO(POGO_VBUS_PRESENT, PIN(A, 14), GPIO_INPUT)
-
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(C, 10), GPIO_ODR_HIGH)
-GPIO(PMIC_FORCE_RESET_ODL, PIN(A, 2), GPIO_ODR_HIGH)
-GPIO(MT6370_RST_L, PIN(F, 0), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(D, 2), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(B, 12), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_DP_POLARITY, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(BATT_CUTOFF_INDICATOR, PIN(A, 5), GPIO_OUT_LOW)
-GPIO(EN_PP3300_POGO, PIN(A, 13), GPIO_OUT_LOW)
-GPIO(BC12_DET_EN, PIN(C, 4), GPIO_OUT_LOW)
-
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-#ifdef SECTION_IS_RO
-/* SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-#endif
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
diff --git a/board/kodama/led.c b/board/kodama/led.c
deleted file mode 100644
index d96b340d73..0000000000
--- a/board/kodama/led.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery LED control for Kukui board.
- */
-#include "charge_state.h"
-#include "driver/charger/rt946x.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "ec_commands.h"
-
-#define LED_RED MT6370_LED_ID1
-#define LED_GREEN MT6370_LED_ID2
-#define LED_WHITE MT6370_LED_ID3
-
-#define LED_MASK_OFF 0
-#define LED_MASK_RED MT6370_MASK_RGB_ISNK1DIM_EN
-#define LED_MASK_GREEN MT6370_MASK_RGB_ISNK2DIM_EN
-#define LED_MASK_WHITE MT6370_MASK_RGB_ISNK3DIM_EN
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, LED_ONE_SEC / 2} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-static int led_mask = LED_MASK_OFF;
-
-static void led_set_color(int mask)
-{
- static int new_mask = LED_MASK_OFF;
-
- if (new_mask == mask)
- return;
- else
- new_mask = mask;
-
- mt6370_led_set_color(led_mask);
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- led_mask |= LED_MASK_WHITE;
- else
- led_mask &= ~LED_MASK_WHITE;
- led_set_color(led_mask);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- led_mask |= LED_MASK_RED;
- led_mask &= ~LED_MASK_GREEN;
- break;
- case EC_LED_COLOR_AMBER:
- led_mask |= LED_MASK_RED;
- led_mask |= LED_MASK_GREEN;
- break;
- case EC_LED_COLOR_GREEN:
- led_mask &= ~LED_MASK_RED;
- led_mask |= LED_MASK_GREEN;
- break;
- default: /* LED_OFF and other unsupported colors */
- led_mask &= ~LED_MASK_RED;
- led_mask &= ~LED_MASK_GREEN;
- break;
- }
- led_set_color(led_mask);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-}
-
-static void kodama_led_init(void)
-{
- const enum mt6370_led_dim_mode dim = MT6370_LED_DIM_MODE_PWM;
- const enum mt6370_led_pwm_freq freq = MT6370_LED_PWM_FREQ1000;
-
- mt6370_led_set_color(LED_MASK_RED | LED_MASK_GREEN | LED_MASK_WHITE);
- mt6370_led_set_dim_mode(LED_RED, dim);
- mt6370_led_set_dim_mode(LED_GREEN, dim);
- mt6370_led_set_dim_mode(LED_WHITE, dim);
- mt6370_led_set_pwm_frequency(LED_RED, freq);
- mt6370_led_set_pwm_frequency(LED_GREEN, freq);
- mt6370_led_set_pwm_frequency(LED_WHITE, freq);
- mt6370_led_set_pwm_dim_duty(LED_RED, 12);
- mt6370_led_set_pwm_dim_duty(LED_GREEN, 31);
- mt6370_led_set_pwm_dim_duty(LED_WHITE, 12);
- mt6370_led_set_brightness(LED_MASK_RED, 7);
- mt6370_led_set_brightness(LED_MASK_GREEN, 7);
- mt6370_led_set_brightness(LED_MASK_WHITE, 7);
-}
-DECLARE_HOOK(HOOK_INIT, kodama_led_init, HOOK_PRIO_DEFAULT);
diff --git a/board/kodama/vif_override.xml b/board/kodama/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kodama/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kohaku/battery.c b/board/kohaku/battery.c
deleted file mode 100644
index 8d35008f6e..0000000000
--- a/board/kohaku/battery.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-#include "system.h"
-#include "util.h"
-
-/*
- * Battery info for all Hatch battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-/* charging current is limited to 0.45C */
-#define CHARGING_CURRENT_45C 2804
-
-const struct board_batt_params board_battery_info[] = {
- /* Dyna Battery Information */
- [BATTERY_DYNA] = {
- .fuel_gauge = {
- .manuf_name = "Dyna",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7600, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 150, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SDI",
- .device_name = "4404D62",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 55,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SDI;
-
-enum battery_present variant_battery_present(void)
-{
- if (system_get_board_version() != 1)
- return BP_NOT_SURE;
-
- /*
- * For board version 1, there is a known issue with battery present
- * signal. So, always return BP_YES indicating battery is
- * present. battery_status() later should fail to talk to the battery in
- * case the battery is not really present.
- */
- return BP_YES;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return 0;
-
- if (curr->requested_current > CHARGING_CURRENT_45C)
- curr->requested_current = CHARGING_CURRENT_45C;
-
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/kohaku/board.c b/board/kohaku/board.c
deleted file mode 100644
index 0204cdd87f..0000000000
--- a/board/kohaku/board.c
+++ /dev/null
@@ -1,485 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Kohaku board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_bh1730.h"
-#include "driver/als_tcs3400.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/bc12/max14637.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-/* BC 1.2 chip Configuration */
-const struct max14637_config_t max14637_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .chip_enable_pin = GPIO_USB_C0_BC12_VBUS_ON,
- .chg_det_pin = GPIO_USB_C0_BC12_CHG_DET_L,
- .flags = MAX14637_FLAGS_CHG_DET_ACTIVE_LOW,
- },
- {
- .chip_enable_pin = GPIO_USB_C1_BC12_VBUS_ON,
- .chg_det_pin = GPIO_USB_C1_BC12_CHG_DET_L,
- .flags = MAX14637_FLAGS_CHG_DET_ACTIVE_LOW,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* BH1730 private data */
-struct bh1730_drv_data_t g_bh1730_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(0.74), /* CT */
- },
-};
-
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 3, /* 3.0350726 */
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-0.34710205),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(1.72064361),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(-0.95427326),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.20677441),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(0.5)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 7, /* 6.50411397 */
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-0.40729596),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(1.82527267),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(-1.01523751),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.20903764),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = -4, /* -4.13932233 */
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-2.35802533),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(-0.19742447),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0.13837045),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(1.07436207),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.44)
- }
- },
- .calibration.irt = FLOAT_TO_FP(0.35),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
- [BASE_ALS] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BH1730,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bh1730_drv,
- .drv_data = &g_bh1730_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BH1730_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 65535,
- .min_frequency = BH1730_MIN_FREQ,
- .max_frequency = BH1730_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = BH1730_10000_MHZ,
- },
- },
- },
-
- [VSYNC] = {
- .name = "Camera VSYNC",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[BASE_ALS],
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-/**********************************************************************/
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_AMB", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_3] = {
- "TEMP_GT", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_4] = {
- "TEMP_IA", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "GT",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "IA",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Kohaku Temperature sensors */
-/*
- * TODO(b/138578073): These setting need to be reviewed and set appropriately
- * for Kohaku. They matter when the EC is controlling the fan as opposed to DPTF
- * control.
- */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(50),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1] = thermal_a,
- [TEMP_SENSOR_2] = thermal_a,
- [TEMP_SENSOR_3] = thermal_a,
- [TEMP_SENSOR_4] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-enum gpio_signal gpio_en_pp5000_a = GPIO_EN_PP5000_A;
-
-static void board_init(void)
-{
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- /* Enable gpio interrupt for camera vsync */
- gpio_enable_interrupt(GPIO_WFCAM_VSYNC);
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_TCS3400_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-int board_tcpc_post_init(int port)
-{
- int rv = EC_SUCCESS;
-
- if (port == USB_PD_PORT_TCPC_0)
- /* Set MUX_DP_EQ to 3.6dB (0x98) */
- rv = tcpc_write(port, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
-
- return rv;
-}
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255) || (sku == 1);
-}
diff --git a/board/kohaku/board.h b/board/kohaku/board.h
deleted file mode 100644
index 895a30f0d2..0000000000
--- a/board/kohaku/board.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Kohaku board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_DPTF_MOTION_LID_NO_GMR_SENSOR
-#define CONFIG_DPTF_MULTI_PROFILE
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* Camera VSYNC */
-#define CONFIG_SYNC
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-/* BH1730 and TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 2
-#define I2C_PORT_ALS I2C_PORT_SENSOR
-#define CONFIG_ALS_BH1730
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(BASE_ALS) | BIT(CLEAR_ALS))
-
-/* Parameter to calculate LUX on Kohaku */
-#define CONFIG_ALS_BH1730_LUXTH_PARAMS
-/*
- * Calulation formula depends on characteristic of optical window.
- * In case of kohaku, we can select two different formula
- * as characteristic of optical window.
- * BH1730_LUXTH1_1K is charateristic of optical window.
- * 1. d1_1K/d0_1K * 1000 < BH1730_LUXTH1_1K
- * 2. d1_1K/d0_1K * 1000 >= BH1730_LUXTH1_1K
- * d0 and d1 are unsigned 16 bit. So, d1/d0 max is 65535
- * To meet 2nd condition, make BH1730_LUXTH2_1K to (max+1)*1000
- * Kohaku will not use both BH1730_LUXTH3_1K condition
- * and BH1730_LUXTH4_1K condition.
- */
-#define BH1730_LUXTH1_1K 270
-#define BH1730_LUXTH1_D0_1K 19200
-#define BH1730_LUXTH1_D1_1K 30528
-#define BH1730_LUXTH2_1K 655360000
-#define BH1730_LUXTH2_D0_1K 11008
-#define BH1730_LUXTH2_D1_1K 10752
-#define BH1730_LUXTH3_1K 1030
-#define BH1730_LUXTH3_D0_1K 11008
-#define BH1730_LUXTH3_D1_1K 10752
-#define BH1730_LUXTH4_1K 3670
-#define BH1730_LUXTH4_D0_1K 11008
-#define BH1730_LUXTH4_D1_1K 10752
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY 0
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C0_TCPC_RST GPIO_USB_C0_TCPC_RST_ODL
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-#define GPIO_BAT_LED_RED_L GPIO_LED_1_L
-#define GPIO_BAT_LED_GREEN_L GPIO_LED_3_L
-#define GPIO_PWR_LED_BLUE_L GPIO_LED_2_L
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_MAX14637
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set via experimentation by finding how high it can be set and still boot
- * the AP successfully, then backing off to provide margin.
- *
- * TODO(b/133444665): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 6144
-#define CONFIG_BATTERY_CHECK_CHARGE_TEMP_LIMITS
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Thermal features */
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* GPIO signals updated base on board version. */
-extern enum gpio_signal gpio_en_pp5000_a;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC2 */
- ADC_TEMP_SENSOR_4, /* ADC3 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- BASE_ALS,
- VSYNC,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNA,
- BATTERY_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kohaku/build.mk b/board/kohaku/build.mk
deleted file mode 100644
index 733912454f..0000000000
--- a/board/kohaku/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/kohaku/ec.tasklist b/board/kohaku/ec.tasklist
deleted file mode 100644
index 63d366a33b..0000000000
--- a/board/kohaku/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/kohaku/gpio.inc b/board/kohaku/gpio.inc
deleted file mode 100644
index 742a570cf8..0000000000
--- a/board/kohaku/gpio.inc
+++ /dev/null
@@ -1,163 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, bmi160_interrupt)
-GPIO_INT(WFCAM_VSYNC, PIN(B, 7), GPIO_INT_RISING , sync_interrupt)
-GPIO_INT(TCS3400_INT_ODL, PIN(7, 2), GPIO_INT_FALLING, tcs3400_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(9, 7), GPIO_ODR_HIGH)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(6, 0), GPIO_INPUT)
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(9, 6), GPIO_INPUT)
-GPIO(USB_C0_BC12_VBUS_ON, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_BC12_VBUS_ON, PIN(C, 6), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | /* Lid accelerometer */
- GPIO_SEL_1P8V)
-
-/*
- * TODO: b/130822500
- * Configured as if it were NC for now
- */
-GPIO(M2_SD_PLN, PIN(A, 0), GPIO_INPUT | /* Provide SSD a shutdown warning */
- GPIO_PULL_UP)
-
-/*
- * TODO: b/130824532
- * Configured as if it were NC for now (but has external 1K pulldown)
- */
-GPIO(IMVP8_PE, PIN(A, 7), GPIO_INPUT) /* Pull high to flash MPS part */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* NC / TP */
-GPIO(TP58, PIN(0, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP73, PIN(8, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP18, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP54, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP56, PIN(6, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP57, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP55, PIN(7, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP59, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3C), 0, MODULE_ADC, 0) /* ADC0-3 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/kohaku/led.c b/board/kohaku/led.c
deleted file mode 100644
index 029cf5c315..0000000000
--- a/board/kohaku/led.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Kohaku
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Kohaku : There are 3 leds for AC, Battery and Power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- if (color == EC_LED_COLOR_BLUE)
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- }
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- /* Battery leds must be turn off when blue led is on
- * because kohaku has 3-in-1 led.
- */
- if(!gpio_get_level(GPIO_PWR_LED_BLUE_L))
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- return;
- }
-
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_BAT_LED_RED_L, !brightness[EC_LED_COLOR_RED]);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/kohaku/vif_override.xml b/board/kohaku/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kohaku/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kracko/battery.c b/board/kracko/battery.c
deleted file mode 100644
index 13faf9f12b..0000000000
--- a/board/kracko/battery.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all kracko battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo Battery Information */
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "SMP-4473A9PU",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-0D-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO;
diff --git a/board/kracko/board.c b/board/kracko/board.c
deleted file mode 100644
index 99dcd56810..0000000000
--- a/board/kracko/board.c
+++ /dev/null
@@ -1,765 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Kracko board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/sm5803.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-uint32_t board_version;
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-__override void board_process_pd_alert(int port)
-{
- /*
- * PD_INT task will process this alert, and that task is only needed on
- * C1.
- */
- if (port != 1)
- return;
-
- if (gpio_get_level(GPIO_USB_C1_INT_ODL))
- return;
-
- sm5803_handle_interrupt(port);
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- sm5803_interrupt(0);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void button_sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
- int hdmi_hpd = gpio_get_level(GPIO_VOLUP_BTN_ODL_HDMI_HPD);
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE)
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, hdmi_hpd);
- else
- button_interrupt(s);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-static void pen_detect_interrupt(enum gpio_signal s)
-{
- int pen_detect = !gpio_get_level(GPIO_PEN_DET_ODL);
-
- gpio_set_level(GPIO_EN_PP5000_PEN, pen_detect);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
- [ADC_TEMP_SENSOR_4] = {
- .name = "TEMP_SENSOR4",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH16
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-static struct kionix_accel_data g_kx022_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_kx022_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* Drivers */
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_kx022_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- int on;
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE) {
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
- } else {
- /* Select AUX option */
- gpio_set_level(GPIO_HDMI_SEL_L, 1);
- }
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
-
- /* Store board version for use in determining charge limits */
- cbi_get_board_version(&board_version);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_PRESENT) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Second source LID ACCEL */
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID ACCEL is KX022");
- } else
- ccprints("LID ACCEL is BMA253");
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Make sure pen detection is triggered or not at sysjump */
- if (!gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_EN_PP5000_PEN, 1);
-
- /* Charger on the MB will be outputting PROCHOT_ODL and OD CHG_DET */
- sm5803_configure_gpio0(CHARGER_PRIMARY, GPIO0_MODE_PROCHOT, 1);
- sm5803_configure_chg_det_od(CHARGER_PRIMARY, 1);
-
- if (board_get_charger_chip_count() > 1) {
- /* Charger on the sub-board will be a push-pull GPIO */
- sm5803_configure_gpio0(CHARGER_SECONDARY, GPIO0_MODE_OUTPUT, 0);
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- sm5803_disable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_disable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
-
-static void board_suspend(void)
-{
- sm5803_enable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_enable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- sm5803_hibernate(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_hibernate(CHARGER_SECONDARY);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
-
- if (board_get_charger_chip_count() > 1) {
- if (sm5803_set_gpio0_level(1, !!enable))
- CPRINTUSB("Failed to %sable sub rails!", enable ?
- "en" : "dis");
- }
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CHARGER_NUM - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CHARGER_NUM;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- /*
- * TCPC 0 is embedded in the EC and processes interrupts in the chip
- * code (it83xx/intc.c)
- */
-
- uint16_t status = 0;
- int regval;
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /* Limit C1 on board version 0 to 2.0 A */
- if ((board_version == 0) && (port == 1))
- icl = MIN(icl, 2000);
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 && port < board_get_usb_pd_port_count());
-
- if (!is_valid_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTUSB("Disabling all charge ports");
-
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
-
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
-
- return EC_SUCCESS;
- }
-
- CPRINTUSB("New chg p%d", port);
-
- /*
- * Ensure other port is turned off, then enable new charge port
- */
- if (port == 0) {
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 1);
-
- } else {
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 1);
- }
-
- return EC_SUCCESS;
-}
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- int current;
-
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- current = (rp == TYPEC_RP_3A0) ? 3000 : 1500;
-
- charger_set_otg_current_voltage(port, current, 5000);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "5V regular",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 3;
- *kp_div = 20;
-
- *ki = 3;
- *ki_div = 125;
-
- *kd = 4;
- *kd_div = 40;
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {GPIO_KSO_H, 4}, {GPIO_KSO_H, 0}, {GPIO_KSO_H, 1},
- {GPIO_KSO_H, 3}, {GPIO_KSO_H, 2}, {GPIO_KSO_L, 5}, {GPIO_KSO_L, 6},
- {GPIO_KSO_L, 3}, {GPIO_KSO_L, 2}, {GPIO_KSI, 0}, {GPIO_KSO_L, 1},
- {GPIO_KSO_L, 4}, {GPIO_KSI, 3}, {GPIO_KSI, 2}, {GPIO_KSO_L, 0},
- {GPIO_KSI, 5}, {GPIO_KSI, 4}, {GPIO_KSO_L, 7}, {GPIO_KSI, 6},
- {GPIO_KSI, 7}, {GPIO_KSI, 1}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
diff --git a/board/kracko/board.h b/board/kracko/board.h
deleted file mode 100644
index ce26c90b70..0000000000
--- a/board/kracko/board.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Kracko board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-#undef GPIO_VOLUME_UP_L
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL_HDMI_HPD
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_5V_CHARGER_CTRL
-#define CONFIG_CHARGER_OTG
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_OCPC
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 21 /* R_DS(on) 10.7mOhm + 10mOhm sns rstr */
-
-/* PWM */
-#define CONFIG_PWM
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Sensors */
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_PWM_KBLIGHT
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0: ITE EC TCPC */
-#define CONFIG_USB_PD_TCPM_PS8705 /* C1: PS8705 TCPC*/
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_SUB_ANALOG, /* ADC13 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_TEMP_SENSOR_4, /* ADC16 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SIMPLO,
- BATTERY_COS,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kracko/build.mk b/board/kracko/build.mk
deleted file mode 100644
index 8167ca9966..0000000000
--- a/board/kracko/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/kracko/cbi_ssfc.c b/board/kracko/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/kracko/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/kracko/cbi_ssfc.h b/board/kracko/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/kracko/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/kracko/ec.tasklist b/board/kracko/ec.tasklist
deleted file mode 100644
index 5c9a2d1a01..0000000000
--- a/board/kracko/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/kracko/gpio.inc b/board/kracko/gpio.inc
deleted file mode 100644
index cdcf8834c7..0000000000
--- a/board/kracko/gpio.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C1_INT_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL_HDMI_HPD, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_sub_hdmi_hpd_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(PEN_DET_ODL, PIN(J, 1), GPIO_INT_BOTH | GPIO_PULL_UP, pen_detect_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A_5V, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_HIGH)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-GPIO(EC_SUB_IO_1_2, PIN(F, 0), GPIO_INPUT)
-GPIO(EC_SUB_IO_2_1, PIN(F, 1), GPIO_INPUT)
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-GPIO(EN_PP5000_PEN, PIN(B, 5), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOA3_NC, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* LED */
-GPIO(BAT_LED_ORANGE_L, PIN(A, 1), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_BLUE_L, PIN(A, 2), GPIO_OUT_HIGH) /* LED_2_L */
-
-/* Alternate functions GPIO definitions */
-/* Keyboard */
-ALTERNATE(PIN_MASK(KSI, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSI0-7 */
-ALTERNATE(PIN_MASK(KSO_H, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO8-15 */
-ALTERNATE(PIN_MASK(KSO_L, 0xFB), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO0-1, 3-7 */
-GPIO(EC_KSO_02_INV, PIN(KSO_L, 2), GPIO_OUT_HIGH) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC13: EC_SUB_ANALOG, ADC15: TEMP_SENSOR_3, ADC16: TEMP_SENSOR_4 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0)), 0, MODULE_PWM, 0) /* KB_BL_PWM */
diff --git a/board/kracko/led.c b/board/kracko/led.c
deleted file mode 100644
index af78cfa883..0000000000
--- a/board/kracko/led.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Power and battery LED control for Kracko. */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Kracko: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
diff --git a/board/kracko/usb_pd_policy.c b/board/kracko/usb_pd_policy.c
deleted file mode 100644
index 3ff7152541..0000000000
--- a/board/kracko/usb_pd_policy.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/sm5803.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- if (port < 0 || port >= board_get_usb_pd_port_count())
- return;
-
- prev_en = charger_is_sourcing_otg_power(port);
-
- /* Disable Vbus */
- charger_enable_otg_power(port, 0);
-
- /* Discharge Vbus if previously enabled */
- if (prev_en)
- sm5803_set_vbus_disch(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- enum ec_error_list rv;
-
- /* Disable sinking */
- rv = sm5803_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- /* Disable Vbus discharge */
- sm5803_set_vbus_disch(port, 0);
-
- /* Provide Vbus */
- charger_enable_otg_power(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-__override bool pd_check_vbus_level(int port, enum vbus_level level)
-{
- int vbus_voltage;
-
- /* If we're unable to speak to the charger, best to guess false */
- if (charger_get_vbus_voltage(port, &vbus_voltage))
- return false;
-
- if (level == VBUS_SAFE0V)
- return vbus_voltage < PD_V_SAFE0V_MAX;
- else if (level == VBUS_PRESENT)
- return vbus_voltage > PD_V_SAFE5V_MIN;
- else
- return vbus_voltage < PD_V_SINK_DISCONNECT_MAX;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return sm5803_is_vbus_present(port);
-}
diff --git a/board/kracko/vif_override.xml b/board/kracko/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kracko/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/krane b/board/krane
deleted file mode 120000
index 0b14d5a383..0000000000
--- a/board/krane
+++ /dev/null
@@ -1 +0,0 @@
-kukui \ No newline at end of file
diff --git a/board/kukui/analyzestack.yaml b/board/kukui/analyzestack.yaml
deleted file mode 100644
index 4a057ce818..0000000000
--- a/board/kukui/analyzestack.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-remove:
-# Remove all callsites pointing to panic_assert_fail.
-- panic_assert_fail
diff --git a/board/kukui/board.c b/board/kukui/board.c
deleted file mode 100644
index 9abcc08cdc..0000000000
--- a/board/kukui/board.c
+++ /dev/null
@@ -1,611 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "charger_mt6370.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/rt946x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/mt6370.h"
-#include "driver/usb_mux/it5205.h"
-#include "extpower.h"
-#include "gesture.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_policy.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-static void gauge_interrupt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_CHARGER);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
- [ADC_BATT_ID] = {"BATT_ID", 3300, 4096, 0, STM32_AIN(7)},
- [ADC_POGO_ADC_INT_L] = {"POGO_ADC_INT_L", 3300, 4096, 0, STM32_AIN(6)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#define BC12_I2C_ADDR_FLAGS PI3USB9201_I2C_ADDR_3_FLAGS
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = MT6370_TCPC_I2C_ADDR_FLAGS,
- },
- .drv = &mt6370_tcpm_drv,
- },
-};
-
-struct mt6370_thermal_bound thermal_bound = {
- .target = 80,
- .err = 4,
-};
-
-void board_set_dp_mux_control(int output_enable, int polarity)
-{
- if (board_get_version() >= 5)
- return;
-
- gpio_set_level(GPIO_USB_C0_DP_OE_L, !output_enable);
- if (output_enable)
- gpio_set_level(GPIO_USB_C0_DP_POLARITY, polarity);
-}
-
-static void board_hpd_update(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-__override const struct rt946x_init_setting *board_rt946x_init_setting(void)
-{
- static const struct rt946x_init_setting battery_init_setting = {
- .eoc_current = 140,
- .mivr = 4000,
- .ircmp_vclamp = 32,
- .ircmp_res = 25,
- .boost_voltage = 5050,
- .boost_current = 1500,
- };
-
- return &battery_init_setting;
-}
-
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_update,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 0);
- break;
-#if CONFIG_DEDICATED_CHARGE_PORT_COUNT > 0
- case CHARGE_PORT_POGO:
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 0);
- break;
-#endif
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- gpio_set_level(GPIO_EN_POGO_CHARGE_L, 1);
- gpio_set_level(GPIO_EN_USBC_CHARGE_L, 1);
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- if (force_discharge && !enable)
- rt946x_toggle_bc12_detection();
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-#ifndef VARIANT_KUKUI_POGO_KEYBOARD
-int kukui_pogo_extpower_present(void)
-{
- return 0;
-}
-#endif
-
-int extpower_is_present(void)
-{
- /*
- * The charger will indicate VBUS presence if we're sourcing 5V,
- * so exclude such ports.
- */
- int usb_c_extpower_present;
-
- if (board_vbus_source_enabled(CHARGE_PORT_USB_C))
- usb_c_extpower_present = 0;
- else
- usb_c_extpower_present = tcpm_check_vbus_level(
- CHARGE_PORT_USB_C,
- VBUS_PRESENT);
-
- return usb_c_extpower_present || kukui_pogo_extpower_present();
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port)
- panic("Invalid charge port\n");
-
- return rt946x_is_vbus_ready();
-}
-
-#if defined(BOARD_KUKUI) || defined(BOARD_KODAMA)
-/* fake interrupt function for kukui */
-void pogo_adc_interrupt(enum gpio_signal signal)
-{
-}
-#endif
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_ODL);
-
-#ifdef SECTION_IS_RW
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* Enable interrupt for the camera vsync. */
- gpio_enable_interrupt(GPIO_SYNC_INT);
-#endif /* SECTION_IS_RW */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable gauge interrupt from max17055 */
- gpio_enable_interrupt(GPIO_GAUGE_INT_ODL);
-
- if (IS_ENABLED(BOARD_KRANE)) {
- /*
- * Fix backlight led maximum current:
- * tolerance 120mA * 0.75 = 90mA.
- * (b/133655155)
- */
- mt6370_backlight_set_dim(MT6370_BLDIM_DEFAULT * 3 / 4);
- }
-
- /* Enable pogo charging signal */
- gpio_enable_interrupt(GPIO_POGO_VBUS_PRESENT);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_rev_init(void)
-{
- /* Board revision specific configs. */
-
- /*
- * It's a P1 pin BOOTBLOCK_MUX_OE, also a P2 pin BC12_DET_EN.
- * Keep this pin defaults to P1 setting since that eMMC enabled with
- * High-Z stat.
- */
- if (IS_ENABLED(BOARD_KUKUI) && board_get_version() == 1)
- gpio_set_flags(GPIO_BC12_DET_EN, GPIO_ODR_HIGH);
-
- if (board_get_version() >= 2 && board_get_version() < 4) {
- /* Display bias settings. */
- mt6370_db_set_voltages(6000, 5800, 5800);
-
- /*
- * Enable MT6370 DB_POSVOUT/DB_NEGVOUT (controlled by _EN pins).
- */
- mt6370_db_external_control(1);
- }
-
- if (board_get_version() == 2) {
- /* configure PI3USB9201 to USB Path ON Mode */
- i2c_write8(I2C_PORT_BC12, BC12_I2C_ADDR_FLAGS,
- PI3USB9201_REG_CTRL_1,
- (PI3USB9201_USB_PATH_ON <<
- PI3USB9201_REG_CTRL_1_MODE_SHIFT));
- }
-
- if (board_get_version() < 5) {
- gpio_set_flags(GPIO_USB_C0_DP_OE_L, GPIO_OUT_HIGH);
- gpio_set_flags(GPIO_USB_C0_DP_POLARITY, GPIO_OUT_LOW);
- usb_muxes[0].driver = &virtual_usb_mux_driver;
- usb_muxes[0].hpd_update = &virtual_hpd_update;
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_rev_init, HOOK_PRIO_INIT_ADC + 1);
-
-void sensor_board_proc_double_tap(void)
-{
- CPRINTS("Detect double tap");
-}
-
-/* Motion sensors */
-/* Mutexes */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- /*
- * TODO(b:139366662): calculates the actual coefficients and scaling
- * factors
- */
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.1),
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Matrix to rotate accelerometer into standard reference frame */
-#ifdef BOARD_KUKUI
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-#else
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- {0, FLOAT_TO_FP(-1), 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-#endif /* BOARD_KUKUI */
-
-#ifdef CONFIG_MAG_BMI_BMM150
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t mag_standard_ref = {
- {0, FLOAT_TO_FP(-1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-#endif /* CONFIG_MAG_BMI_BMM150 */
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* Enable accel in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- /* For double tap detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = TAP_ODR,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-#ifdef CONFIG_MAG_BMI_BMM150
- [LID_MAG] = {
- .name = "Lid Mag",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_MAG,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = BIT(11), /* 16LSB / uT, fixed */
- .rot_standard_ref = &mag_standard_ref,
- .min_frequency = BMM150_MAG_MIN_FREQ,
- .max_frequency = BMM150_MAG_MAX_FREQ(SPECIAL),
- },
-#endif /* CONFIG_MAG_BMI_BMM150 */
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
- [RGB_ALS] = {
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- /*.port = I2C_PORT_ALS,*/ /* Unused. RGB channels read by CLEAR_ALS. */
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = 0, /* 0 indicates we should not use sensor directly */
- .max_frequency = 0, /* 0 indicates we should not use sensor directly */
- },
- [VSYNC] = {
- .name = "Camera vsync",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/*
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
- /*
- * Though we have a more tolerant range (3.9V~13.4V), setting 4400 to
- * prevent from a bad charger crashed.
- *
- * TODO(b:131284131): mt6370 VBUS reading is not accurate currently.
- * Vendor will provide a workaround solution to fix the gap between ADC
- * reading and actual voltage. After the workaround applied, we could
- * try to raise this value to 4600. (when it says it read 4400, it is
- * actually close to 4600)
- */
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < 4400;
-}
-
-__override int board_charge_port_is_sink(int port)
-{
- /* TODO(b:128386458): Check POGO_ADC_INT_L */
- return 1;
-}
-
-__override int board_charge_port_is_connected(int port)
-{
- return gpio_get_level(GPIO_POGO_VBUS_PRESENT);
-}
-
-__override
-void board_fill_source_power_info(int port,
- struct ec_response_usb_pd_power_info *r)
-{
- r->meas.voltage_now = 3300;
- r->meas.voltage_max = 3300;
- r->meas.current_max = 1500;
- r->meas.current_lim = 1500;
- r->max_power = r->meas.voltage_now * r->meas.current_max;
-}
-
-__override int board_has_virtual_mux(void)
-{
- return board_get_version() < 5;
-}
diff --git a/board/kukui/board.h b/board/kukui/board.h
deleted file mode 100644
index e771c9891d..0000000000
--- a/board/kukui/board.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#ifdef BOARD_KRANE
-#define VARIANT_KUKUI_BATTERY_MM8013
-#define VARIANT_KUKUI_POGO_KEYBOARD
-#else
-#define VARIANT_KUKUI_BATTERY_MAX17055
-#endif
-
-#define VARIANT_KUKUI_CHARGER_MT6370
-#define VARIANT_KUKUI_EC_STM32F098
-#define VARIANT_KUKUI_DP_MUX_GPIO
-#define VARIANT_KUKUI_TABLET_PWRBTN
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#define CONFIG_USB_MUX_IT5205
-#define CONFIG_USB_MUX_VIRTUAL
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* Battery */
-#ifdef BOARD_KRANE
-#define BATTERY_DESIRED_CHARGING_CURRENT 3500 /* mA */
-#else
-#define BATTERY_DESIRED_CHARGING_CURRENT 2000 /* mA */
-#endif /* BOARD_KRANE */
-
-#ifdef BOARD_KRANE
-#define CONFIG_CHARGER_MT6370_BACKLIGHT
-#endif /* BOARD_KRANE */
-
-#ifdef BOARD_KUKUI
-/* kukui doesn't have BC12_DET_EN pin */
-#undef CONFIG_CHARGER_MT6370_BC12_GPIO
-#endif
-
-/* Motion Sensors */
-#ifdef SECTION_IS_RW
-#ifndef BOARD_KRANE
-#define CONFIG_MAG_BMI_BMM150
-#define CONFIG_ACCELGYRO_SEC_ADDR_FLAGS BMM150_ADDR0_FLAGS
-#define CONFIG_MAG_CALIBRATE
-#endif /* !BOARD_KRANE */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define CONFIG_ALS
-
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-#define CONFIG_ALS_TCS3400_EMULATED_IRQ_EVENT
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(CLEAR_ALS)
-
-/* Camera VSYNC */
-#define CONFIG_SYNC
-#define CONFIG_SYNC_COMMAND
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-#endif /* SECTION_IS_RW */
-
-/* I2C ports */
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_ACCEL 1
-#define I2C_PORT_BC12 1
-#define I2C_PORT_ALS 1
-
-/* Route sbs host requests to virtual battery driver */
-#define VIRTUAL_BATTERY_ADDR_FLAGS 0x0B
-
-/* MKBP */
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_EVENT_WAKEUP_MASK \
- (BIT(EC_MKBP_EVENT_SENSOR_FIFO) | BIT(EC_MKBP_EVENT_HOST_EVENT))
-
-#define PD_OPERATING_POWER_MW 15000
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_BATT_ID,
- ADC_POGO_ADC_INT_L,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
-#ifdef CONFIG_MAG_BMI_BMM150
- LID_MAG,
-#endif /* CONFIG_MAG_BMI_BMM150 */
- CLEAR_ALS,
- RGB_ALS,
- VSYNC,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-#if CONFIG_DEDICATED_CHARGE_PORT_COUNT > 0
- CHARGE_PORT_POGO,
-#endif
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-void pogo_adc_interrupt(enum gpio_signal signal);
-int board_discharge_on_ac(int enable);
-
-/* Enable double tap detection */
-#define CONFIG_GESTURE_DETECTION
-#define CONFIG_GESTURE_HOST_DETECTION
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP
-#define CONFIG_GESTURE_TAP_FOR_HOST
-#define CONFIG_GESTURE_SAMPLING_INTERVAL_MS 5
-#define CONFIG_GESTURE_TAP_THRES_MG 100
-#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 500
-#define CONFIG_GESTURE_TAP_SENSOR 0
-#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_GESTURE_TAP_SENSOR)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kukui/build.mk b/board/kukui/build.mk
deleted file mode 100644
index 694879cee6..0000000000
--- a/board/kukui/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=board.o led.o
diff --git a/board/kukui/ec.tasklist b/board/kukui/ec.tasklist
deleted file mode 100644
index 9ba564ce52..0000000000
--- a/board/kukui/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
-
diff --git a/board/kukui/gpio.inc b/board/kukui/gpio.inc
deleted file mode 100644
index 1f17a24bcd..0000000000
--- a/board/kukui/gpio.inc
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(VOLUME_UP_L, PIN(B, 10), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-GPIO_INT(VOLUME_DOWN_L, PIN(B, 11), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- bmi160_interrupt)
-GPIO_INT(CHARGER_INT_ODL, PIN(C, 13), GPIO_INT_FALLING | GPIO_PULL_UP,
- rt946x_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event)
-GPIO_INT_RW(SYNC_INT, PIN(A, 8), GPIO_INT_RISING | GPIO_PULL_DOWN,
- sync_interrupt)
-GPIO_INT(HALL_INT_L, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(GAUGE_INT_ODL, PIN(C, 9), GPIO_INT_FALLING | GPIO_PULL_UP,
- gauge_interrupt)
-GPIO_INT(POGO_ADC_INT_L, PIN(A, 6), GPIO_INT_BOTH,
- pogo_adc_interrupt)
-
-/* unused */
-GPIO(POGO_VBUS_PRESENT, PIN(A, 14), GPIO_INPUT)
-/* unused after board rev 5 */
-GPIO(USB_C0_DP_POLARITY, PIN(C, 14), GPIO_INPUT)
-GPIO(USB_C0_DP_OE_L, PIN(A, 5), GPIO_INPUT)
-
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(C, 10), GPIO_ODR_HIGH)
-GPIO(PMIC_FORCE_RESET_ODL, PIN(A, 2), GPIO_ODR_HIGH)
-GPIO(MT6370_RST_L, PIN(F, 0), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-
-/* Analog pins */
-GPIO(BATT_ID, PIN(A, 7), GPIO_ANALOG)
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(B, 12), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP3300_POGO, PIN(A, 13), GPIO_OUT_LOW)
-GPIO(EN_POGO_CHARGE_L, PIN(B, 6), GPIO_OUT_HIGH)
-GPIO(EN_USBC_CHARGE_L, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EN_PP5000_USBC, PIN(D, 2), GPIO_OUT_LOW)
-GPIO(BC12_DET_EN, PIN(C, 4), GPIO_OUT_LOW)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-#ifdef SECTION_IS_RO
-/* SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-#endif
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
diff --git a/board/kukui/led.c b/board/kukui/led.c
deleted file mode 100644
index 59f7681754..0000000000
--- a/board/kukui/led.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery LED control for Kukui board.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "driver/charger/rt946x.h"
-#include "hooks.h"
-#include "led_common.h"
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-static enum charge_state prv_chstate = PWR_STATE_INIT;
-
-#define LED_OFF MT6370_LED_ID_OFF
-#define LED_RED MT6370_LED_ID1
-#define LED_GREEN MT6370_LED_ID2
-#define LED_BLUE MT6370_LED_ID3
-
-#define LED_MASK_OFF 0
-#define LED_MASK_RED MT6370_MASK_RGB_ISNK1DIM_EN
-#define LED_MASK_GREEN MT6370_MASK_RGB_ISNK2DIM_EN
-#define LED_MASK_BLUE MT6370_MASK_RGB_ISNK3DIM_EN
-
-static void kukui_led_set_battery(void)
-{
- enum charge_state chstate;
- static uint8_t prv_r, prv_g, prv_b;
- uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
-
- chstate = charge_get_state();
-
- if (prv_chstate == chstate &&
- chstate != PWR_STATE_DISCHARGE)
- return;
-
- prv_chstate = chstate;
-
- switch (chstate) {
- case PWR_STATE_CHARGE:
- /* RGB(current, duty) = (4mA,1/32)*/
- br[EC_LED_COLOR_BLUE] = 1;
- break;
- case PWR_STATE_DISCHARGE:
- /* display SoC 10% = real battery SoC 13%*/
- if (charge_get_percent() <= 13)
- br[EC_LED_COLOR_RED] = 1;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- br[EC_LED_COLOR_GREEN] = 1;
- break;
- case PWR_STATE_ERROR:
- br[EC_LED_COLOR_RED] = 1;
- break;
- default:
- /* Other states don't alter LED behavior */
- return;
- }
-
- if (prv_r == br[EC_LED_COLOR_RED] &&
- prv_g == br[EC_LED_COLOR_GREEN] &&
- prv_b == br[EC_LED_COLOR_BLUE])
- return;
-
- prv_r = br[EC_LED_COLOR_RED];
- prv_g = br[EC_LED_COLOR_GREEN];
- prv_b = br[EC_LED_COLOR_BLUE];
- led_set_brightness(EC_LED_ID_BATTERY_LED, br);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id != EC_LED_ID_BATTERY_LED)
- return;
-
- brightness_range[EC_LED_COLOR_RED] = MT6370_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_GREEN] = MT6370_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_BLUE] = MT6370_LED_BRIGHTNESS_MAX;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- uint8_t red, green, blue;
-
- if (led_id != EC_LED_ID_BATTERY_LED)
- return EC_ERROR_INVAL;
-
- red = brightness[EC_LED_COLOR_RED];
- green = brightness[EC_LED_COLOR_GREEN];
- blue = brightness[EC_LED_COLOR_BLUE];
-
- mt6370_led_set_brightness(LED_RED, red);
- mt6370_led_set_brightness(LED_GREEN, green);
- mt6370_led_set_brightness(LED_BLUE, blue);
-
- /* Enables LED sink power if necessary. */
- mt6370_led_set_color((red ? LED_MASK_RED : 0) |
- (blue ? LED_MASK_BLUE : 0) |
- (green ? LED_MASK_GREEN : 0));
- return EC_SUCCESS;
-}
-
-/*
- * Reset prv_chstate so that led can be updated immediately once
- * auto-controlled.
- */
-static void led_reset_auto_control(void)
-{
- prv_chstate = PWR_STATE_INIT;
-}
-
-static void krane_led_init(void)
-{
- const enum mt6370_led_dim_mode dim = MT6370_LED_DIM_MODE_PWM;
- const enum mt6370_led_pwm_freq freq = MT6370_LED_PWM_FREQ1000;
- mt6370_led_set_color(0);
- mt6370_led_set_dim_mode(LED_RED, dim);
- mt6370_led_set_dim_mode(LED_GREEN, dim);
- mt6370_led_set_dim_mode(LED_BLUE, dim);
- mt6370_led_set_pwm_frequency(LED_RED, freq);
- mt6370_led_set_pwm_frequency(LED_GREEN, freq);
- mt6370_led_set_pwm_frequency(LED_BLUE, freq);
- mt6370_led_set_pwm_dim_duty(LED_RED, 0);
- mt6370_led_set_pwm_dim_duty(LED_GREEN, 0);
- mt6370_led_set_pwm_dim_duty(LED_BLUE, 0);
-}
-DECLARE_HOOK(HOOK_INIT, krane_led_init, HOOK_PRIO_DEFAULT);
-
-/* Called by hook task every 1 sec */
-static void led_second(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- kukui_led_set_battery();
- else
- led_reset_auto_control();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
-
-__override void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_reset_auto_control();
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- return;
- }
-
- if (state)
- br[EC_LED_COLOR_GREEN] = 1;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
- led_set_brightness(EC_LED_ID_BATTERY_LED, br);
-}
diff --git a/board/kukui/vif_override.xml b/board/kukui/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/kukui/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/kukui_scp/board.c b/board/kukui_scp/board.c
deleted file mode 100644
index e5c4f0c760..0000000000
--- a/board/kukui_scp/board.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 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.
- */
-/* Kukui SCP configuration */
-
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "power.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-
-/* Build GPIO tables */
-#include "gpio_list.h"
-
diff --git a/board/kukui_scp/board.h b/board/kukui_scp/board.h
deleted file mode 100644
index 4847cdf939..0000000000
--- a/board/kukui_scp/board.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Kukui SCP configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_HOSTCMD) | CC_MASK(CC_IPI)))
-
-#define CONFIG_FLASH_SIZE_BYTES 0x58000 /* Image file size: 256KB */
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_FW_INCLUDE_RO
-#define CONFIG_MKBP_EVENT
-/* Sent MKBP event via IPI. */
-#define CONFIG_MKBP_USE_CUSTOM
-#define CONFIG_FPU
-#define CONFIG_PRESERVE_LOGS
-
-#define CONFIG_HOSTCMD_ALIGNED
-
-/*
- * RW only, no flash
- * +-------------------- 0x0
- * | ROM vectortable, .text, .rodata, .data LMA
- * +-------------------- 0x10000
- * | RAM .bss, .data
- * +-------------------- 0x7BDB0
- * | IPI shared buffer with AP (288 + 8) * 2
- * +-------------------- 0x7C000
- * | 8KB I-CACHE
- * +-------------------- 0x7E000
- * | 8KB D-CACHE
- * +-------------------- 0x80000
- */
-#define ICACHE_BASE 0x7C000
-#define CONFIG_ROM_BASE 0x0
-#define CONFIG_RAM_BASE 0x58000
-#define CONFIG_ROM_SIZE (CONFIG_RAM_BASE - CONFIG_ROM_BASE)
-#define CONFIG_RAM_SIZE (CONFIG_IPC_SHARED_OBJ_ADDR - CONFIG_RAM_BASE)
-#define CONFIG_CODE_RAM_SIZE CONFIG_RAM_BASE
-#define CONFIG_DATA_RAM_SIZE (ICACHE_BASE - CONFIG_RAM_BASE)
-#define CONFIG_RO_MEM_OFF 0
-
-/* Access DRAM through cached access */
-#define CONFIG_DRAM_BASE 0x10000000
-/* Shared memory address in AP physical address space. */
-#define CONFIG_DRAM_BASE_LOAD 0x50000000
-#define CONFIG_DRAM_SIZE 0x01400000 /* 20 MB */
-
-/* IPI configs */
-#define CONFIG_IPC_SHARED_OBJ_BUF_SIZE 288
-#define CONFIG_IPC_SHARED_OBJ_ADDR \
- (ICACHE_BASE - \
- (CONFIG_IPC_SHARED_OBJ_BUF_SIZE + 2 * 4 /* int32_t */) * 2)
-#define CONFIG_IPI
-#define CONFIG_RPMSG_NAME_SERVICE
-
-#define CONFIG_LTO
-
-/* IPI ID should be in sync across kernel and EC. */
-#define IPI_SCP_INIT 0
-#define IPI_VDEC_H264 1
-#define IPI_VDEC_VP8 2
-#define IPI_VDEC_VP9 3
-#define IPI_VENC_H264 4
-#define IPI_VENC_VP8 5
-#define IPI_MDP_INIT 6
-#define IPI_MDP_DEINIT 7
-#define IPI_MDP_FRAME 8
-#define IPI_DIP 9
-#define IPI_ISP_CMD 10
-#define IPI_ISP_FRAME 11
-#define IPI_FD_CMD 12
-#define IPI_HOST_COMMAND 13
-#define IPI_COUNT 14
-
-#define IPI_NS_SERVICE 0xFF
-
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 8192
-
-#undef CONFIG_UART_CONSOLE
-/*
- * CONFIG_UART_CONSOLE
- * 0 - SCP UART0
- * 1 - SCP UART1
- * 2 - share with AP UART0
- */
-#define CONFIG_UART_CONSOLE 0
-
-/* We let AP setup the correct pinmux. */
-#undef UART0_PINMUX_11_12
-#undef UART0_PINMUX_110_112
-
-/* Track AP power state */
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* Debugging features */
-#define CONFIG_DEBUG_EXCEPTIONS
-#define CONFIG_DEBUG_STACK_OVERFLOW
-#define CONFIG_CMD_GPIO_EXTENDED
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/kukui_scp/build.mk b/board/kukui_scp/build.mk
deleted file mode 100644
index 19355b5af5..0000000000
--- a/board/kukui_scp/build.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-CHIP:=mt_scp
-CHIP_VARIANT:=mt8183
-
-board-y=board.o
-board-$(HAS_TASK_VDEC_SERVICE)+=vdec.o
-board-$(HAS_TASK_VENC_SERVICE)+=venc.o
-
-# ISP P1
-board-$(HAS_TASK_ISP_SERVICE)+=isp_p1_srv.o
-# FD
-board-$(HAS_TASK_FD_SERVICE)+=fd.o
-
-# ISP P2
-board-$(HAS_TASK_DIP_SERVICE)+=isp_p2_srv.o
-# MDP3
-board-$(HAS_TASK_MDP_SERVICE)+=mdp_ipi_message.o
diff --git a/board/kukui_scp/ec.tasklist b/board/kukui_scp/ec.tasklist
deleted file mode 100644
index 935d409b00..0000000000
--- a/board/kukui_scp/ec.tasklist
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-/* We don't need uart_task when using scp uart (uart0, uart1). */
-#if CONFIG_UART_CONSOLE == 2
-#define UART_TASK TASK_ALWAYS(APUART, uart_task, NULL, LARGER_TASK_STACK_SIZE)
-#else
-#define UART_TASK
-#endif
-
-#define S3_SUSPEND_TASK_LIST \
- TASK_ALWAYS(VDEC_SERVICE, vdec_service_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(VENC_SERVICE, venc_service_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(FD_SERVICE, fd_service_task, NULL, 760) \
- TASK_ALWAYS(DIP_SERVICE, dip_service_task, NULL, 6400) \
- TASK_ALWAYS(MDP_SERVICE, mdp_service_task, NULL, 1800) \
- TASK_ALWAYS(ISP_SERVICE, isp_service_task, NULL, 880)
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- UART_TASK \
- S3_SUSPEND_TASK_LIST \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/kukui_scp/fd.c b/board/kukui_scp/fd.c
deleted file mode 100644
index 237f15ca94..0000000000
--- a/board/kukui_scp/fd.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "console.h"
-#include "fd.h"
-#include "hooks.h"
-#include "ipi_chip.h"
-#include "queue.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_IPI, format, ##args)
-#define CPRINTS(format, args...) cprints(CC_IPI, format, ##args)
-
-/* Forwad declaration. */
-static struct consumer const event_fd_consumer;
-static void event_fd_written(struct consumer const *consumer, size_t count);
-
-static struct queue const fd_queue = QUEUE_DIRECT(4, struct fd_msg,
- null_producer,
- event_fd_consumer);
-static struct consumer const event_fd_consumer = {
- .queue = &fd_queue,
- .ops = &((struct consumer_ops const) {
- .written = event_fd_written,
- }),
-};
-
-/* Stub functions only provided by private overlays. */
-// Jerry TODO implement private part and remove this
-#ifndef HAVE_PRIVATE_MT8183
-void fd_ipi_msg_handler(void *data) {}
-#endif
-
-static void event_fd_written(struct consumer const *consumer, size_t count)
-{
- task_wake(TASK_ID_FD_SERVICE);
-}
-
-static void fd_ipi_handler(int id, void *data, uint32_t len)
-{
- struct fd_msg rsv_msg;
-
- if (!len)
- return;
-
- rsv_msg.type = IPI_FD_CMD;
- memcpy(rsv_msg.msg, data, MIN(len, sizeof(rsv_msg.msg)));
-
- /*
- * If there is no other IPI handler touch this queue, we don't need to
- * interrupt_disable() or task_disable_irq().
- */
- if (!queue_add_unit(&fd_queue, &rsv_msg))
- CPRINTS("Could not send fd %d to the queue.", rsv_msg.type);
-}
-DECLARE_IPI(IPI_FD_CMD, fd_ipi_handler, 0);
-
-/* This function renames from fd_service_entry. */
-void fd_service_task(void *u)
-{
- struct fd_msg rsv_msg;
- size_t size;
-
- while (1) {
- /*
- * Queue unit is added in IPI handler, which is in ISR context.
- * Disable IRQ to prevent a clobbered queue.
- */
- ipi_disable_irq(SCP_IRQ_IPC0);
- size = queue_remove_unit(&fd_queue, &rsv_msg);
- ipi_enable_irq(SCP_IRQ_IPC0);
-
- if (!size)
- task_wait_event(-1);
- else
- fd_ipi_msg_handler(rsv_msg.msg);
- }
-}
diff --git a/board/kukui_scp/fd.h b/board/kukui_scp/fd.h
deleted file mode 100644
index 3f70387400..0000000000
--- a/board/kukui_scp/fd.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#ifndef __CROS_EC_SCP_FD_H
-#define __CROS_EC_SCP_FD_H
-
-#include "compile_time_macros.h"
-#include "queue.h"
-#include "registers.h"
-
-enum fd_msg_type {
- FD_IPI_MSG,
- FD_MAX,
-};
-
-enum fd_cmd_type {
- FD_CMD_INIT,
- FD_CMD_ENQ,
- FD_CMD_EXIT,
-};
-
-typedef void (*fd_msg_handler)(void *msg);
-
-struct fd_msg {
- enum fd_msg_type type;
- unsigned char msg[110];
-};
-BUILD_ASSERT(member_size(struct fd_msg, msg) <= CONFIG_IPC_SHARED_OBJ_BUF_SIZE);
-
-/* Functions provided by private overlay. */
-void fd_ipi_msg_handler(void *data);
-
-#endif /* __CROS_EC_SCP_FD_H */
diff --git a/board/kukui_scp/gpio.inc b/board/kukui_scp/gpio.inc
deleted file mode 100644
index b186904aad..0000000000
--- a/board/kukui_scp/gpio.inc
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-/*
- * GPIOn = port * 32 + bit
- *
- * EINT ALT function:
- * GPIO[0-3]: Alt3
- * GPIO[4-7]: Alt6
- * UART0 ALT function:
- * GPIO[110]: Alt3 TP_URXD1_AO
- * GPIO[112]: Alt3 TP_UTXD1_AO
- */
-ALTERNATE(PIN_MASK(0, 0x00000070), 6, MODULE_GPIO, 0) /* GPIO 5,6,7 as SCP EINT */
-#if CONFIG_UART_CONSOLE == 0
-#ifdef UART0_PINMUX_110_112
-/* Use SCP debug UART. */
-ALTERNATE(PIN_MASK(3, 0x00014000), 3, MODULE_UART, 0) /* GPIO 110,112 as UART0 */
-#endif /* UART0_PINMUX_110_112 */
-#ifdef UART0_PINMUX_11_12
-/* Use H1(AP->H1) rework UART. */
-ALTERNATE(PIN_MASK(0, 0x00001800), 1, MODULE_UART, 0) /* GPIO 11,12 as UART0 */
-#endif /* UART0_PINMUX_11_12 */
-#endif /* CONFIG_UART_CONSOLE == 0 */
diff --git a/board/kukui_scp/isp_p1_srv.c b/board/kukui_scp/isp_p1_srv.c
deleted file mode 100644
index 5c2ae7c2e9..0000000000
--- a/board/kukui_scp/isp_p1_srv.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "console.h"
-#include "dma.h"
-#include "hooks.h"
-#include "ipi_chip.h"
-#include "isp_p1_srv.h"
-#include "queue.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_IPI, format, ##args)
-
-/* Forwad declaration. */
-static struct consumer const event_isp_consumer;
-static void event_isp_written(struct consumer const *consumer, size_t count);
-
-static struct queue const event_isp_queue = QUEUE_DIRECT(8,
- struct isp_msg, null_producer, event_isp_consumer);
-
-static struct consumer const event_isp_consumer = {
- .queue = &event_isp_queue,
- .ops = &((struct consumer_ops const) {
- .written = event_isp_written,
- }),
-};
-
-/* Stub functions only provided by private overlays. */
-#ifndef HAVE_PRIVATE_MT8183
-void isp_msg_handler(void *data) {}
-#endif
-
-static void event_isp_written(struct consumer const *consumer, size_t count)
-{
- task_wake(TASK_ID_ISP_SERVICE);
-}
-
-static void isp_ipi_msg_handler(int id, void *data, uint32_t len)
-{
- struct isp_msg rsv_msg;
-
- if (!len)
- return;
-
- rsv_msg.id = id;
- memcpy(rsv_msg.msg, data, MIN(len, sizeof(rsv_msg.msg)));
-
- /*
- * If there is no other IPI handler touch this queue, we don't need to
- * interrupt_disable() or task_disable_irq().
- */
- if (!queue_add_unit(&event_isp_queue, &rsv_msg))
- CPRINTS("Could not send isp %d to the queue", id);
-}
-DECLARE_IPI(IPI_ISP_CMD, isp_ipi_msg_handler, 0);
-DECLARE_IPI(IPI_ISP_FRAME, isp_ipi_msg_handler, 0);
-
-/* This function renames from isp_service_entry. */
-void isp_service_task(void *u)
-{
- struct isp_msg rsv_msg;
- size_t size;
-
- while (1) {
- /*
- * Queue unit is added in IPI handler, which is in ISR context.
- * Disable IRQ to prevent a clobbered queue.
- */
- ipi_disable_irq(SCP_IRQ_IPC0);
- size = queue_remove_unit(&event_isp_queue, &rsv_msg);
- ipi_enable_irq(SCP_IRQ_IPC0);
-
- if (!size)
- task_wait_event(-1);
- else
- isp_msg_handler(&rsv_msg);
- }
-}
diff --git a/board/kukui_scp/isp_p1_srv.h b/board/kukui_scp/isp_p1_srv.h
deleted file mode 100644
index ba6fa7d110..0000000000
--- a/board/kukui_scp/isp_p1_srv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#ifndef __CROS_EC_ISP_P1_SRV_H
-#define __CROS_EC_ISP_P1_SRV_H
-
-#include "ipi_chip.h"
-
-struct isp_msg {
- unsigned char id;
- unsigned char msg[140];
-};
-
-BUILD_ASSERT(member_size(struct isp_msg, msg) <= CONFIG_IPC_SHARED_OBJ_BUF_SIZE);
-
-/* Functions provided by private overlay. */
-void isp_msg_handler(void *data);
-
-#endif /* __CROS_EC_ISP_P1_SRV_H */
diff --git a/board/kukui_scp/isp_p2_srv.c b/board/kukui_scp/isp_p2_srv.c
deleted file mode 100755
index dba330c6a8..0000000000
--- a/board/kukui_scp/isp_p2_srv.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "console.h"
-#include "hooks.h"
-#include "ipi_chip.h"
-#include "isp_p2_srv.h"
-#include "queue.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_IPI, format, ##args)
-
-/* Forwad declaration. */
-static struct consumer const event_dip_consumer;
-static void event_dip_written(struct consumer const *consumer, size_t count);
-
-static struct queue const event_dip_queue = QUEUE_DIRECT(4,
- struct dip_msg_service, null_producer, event_dip_consumer);
-
-static struct consumer const event_dip_consumer = {
- .queue = &event_dip_queue,
- .ops = &((struct consumer_ops const) {
- .written = event_dip_written,
- }),
-};
-
-/* Stub functions only provided by private overlays. */
-#ifndef HAVE_PRIVATE_MT8183
-void dip_msg_handler(void *data) {}
-#endif
-
-static void event_dip_written(struct consumer const *consumer, size_t count)
-{
- task_wake(TASK_ID_DIP_SERVICE);
-}
-
-static void dip_scp_ipi_handler(int id, void *data, uint32_t len)
-{
- struct dip_msg_service rsv_msg;
-
- if (!len)
- return;
- rsv_msg.id = id;
- memcpy(rsv_msg.msg, data, MIN(len, sizeof(rsv_msg.msg)));
-
- /*
- * If there is no other IPI handler touch this queue, we don't need to
- * interrupt_disable() or task_disable_irq().
- */
- if (!queue_add_unit(&event_dip_queue, &rsv_msg))
- CPRINTS("Could not send dip %d to the queue.", id);
-}
-DECLARE_IPI(IPI_DIP, dip_scp_ipi_handler, 0);
-
-/* This function renames from dip_service_entry. */
-void dip_service_task(void *u)
-{
- struct dip_msg_service rsv_msg;
- size_t size;
-
- while (1) {
- /*
- * Queue unit is added in IPI handler, which is in ISR context.
- * Disable IRQ to prevent a clobbered queue.
- */
- ipi_disable_irq(SCP_IRQ_IPC0);
- size = queue_remove_unit(&event_dip_queue, &rsv_msg);
- ipi_enable_irq(SCP_IRQ_IPC0);
-
- if (!size)
- task_wait_event(-1);
- else
- dip_msg_handler(&rsv_msg);
- }
-}
diff --git a/board/kukui_scp/isp_p2_srv.h b/board/kukui_scp/isp_p2_srv.h
deleted file mode 100644
index 70fb0673de..0000000000
--- a/board/kukui_scp/isp_p2_srv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#ifndef __CROS_EC_ISP_P2_SRV_H
-#define __CROS_EC_ISP_P2_SRV_H
-
-#include "ipi_chip.h"
-
-struct dip_msg_service {
- unsigned char id;
- unsigned char msg[288];
-};
-
-BUILD_ASSERT(member_size(struct dip_msg_service, msg) <= CONFIG_IPC_SHARED_OBJ_BUF_SIZE);
-
-/* Functions provided by private overlay. */
-void dip_msg_handler(void *data);
-
-#endif /* __CROS_EC_ISP_P2_SRV_H */
diff --git a/board/kukui_scp/mdp_ipi_message.c b/board/kukui_scp/mdp_ipi_message.c
deleted file mode 100644
index eca40b741b..0000000000
--- a/board/kukui_scp/mdp_ipi_message.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "console.h"
-#include "ipi_chip.h"
-#include "mdp_ipi_message.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_IPI, format, ##args)
-#define CPRINTS(format, args...) cprints(CC_IPI, format, ##args)
-
-/* Forwad declaration. */
-static struct consumer const event_mdp_consumer;
-static void event_mdp_written(struct consumer const *consumer, size_t count);
-
-static struct queue const event_mdp_queue = QUEUE_DIRECT(4,
- struct mdp_msg_service, null_producer, event_mdp_consumer);
-static struct consumer const event_mdp_consumer = {
- .queue = &event_mdp_queue,
- .ops = &((struct consumer_ops const) {
- .written = event_mdp_written,
- }),
-};
-
-/* Stub functions only provided by private overlays. */
-#ifndef HAVE_PRIVATE_MT8183
-void mdp_common_init(void) {}
-void mdp_ipi_task_handler(void *pvParameters) {}
-#endif
-
-static void event_mdp_written(struct consumer const *consumer, size_t count)
-{
- task_wake(TASK_ID_MDP_SERVICE);
-}
-
-static void mdp_ipi_handler(int id, void *data, unsigned int len)
-{
- struct mdp_msg_service cmd;
-
- cmd.id = id;
- memcpy(cmd.msg, data, MIN(len, sizeof(cmd.msg)));
-
- /*
- * If there is no other IPI handler touch this queue, we don't need to
- * interrupt_disable() or task_disable_irq().
- */
- if (!queue_add_unit(&event_mdp_queue, &cmd))
- CPRINTS("Could not send mdp id: %d to the queue.", id);
-}
-DECLARE_IPI(IPI_MDP_INIT, mdp_ipi_handler, 0);
-DECLARE_IPI(IPI_MDP_FRAME, mdp_ipi_handler, 0);
-DECLARE_IPI(IPI_MDP_DEINIT, mdp_ipi_handler, 0);
-
-/* This function renames from mdp_service_entry. */
-void mdp_service_task(void *u)
-{
- struct mdp_msg_service rsv_msg;
- size_t size;
-
- mdp_common_init();
-
- while (1) {
- /*
- * Queue unit is added in IPI handler, which is in ISR context.
- * Disable IRQ to prevent a clobbered queue.
- */
- ipi_disable_irq(SCP_IRQ_IPC0);
- size = queue_remove_unit(&event_mdp_queue, &rsv_msg);
- ipi_enable_irq(SCP_IRQ_IPC0);
-
- if (!size)
- task_wait_event(-1);
- else
- mdp_ipi_task_handler(&rsv_msg);
- }
-}
diff --git a/board/kukui_scp/mdp_ipi_message.h b/board/kukui_scp/mdp_ipi_message.h
deleted file mode 100644
index bcedb58504..0000000000
--- a/board/kukui_scp/mdp_ipi_message.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#ifndef _MDP_IPI_MESSAGE_H
-#define _MDP_IPI_MESSAGE_H
-
-struct mdp_msg_service {
- int id;
- unsigned char msg[20];
-};
-
-BUILD_ASSERT(member_size(struct mdp_msg_service, msg) <= CONFIG_IPC_SHARED_OBJ_BUF_SIZE);
-
-void mdp_common_init(void);
-void mdp_ipi_task_handler(void *pvParameters);
-
-#endif // _MDP_IPI_MESSAGE_H
diff --git a/board/kukui_scp/update_scp b/board/kukui_scp/update_scp
deleted file mode 100755
index 846095a7f9..0000000000
--- a/board/kukui_scp/update_scp
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-# Copyright 2019 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.
-
-usage() {
- echo "Usage: $0 [IP] [bin/elf]" >&2
- echo >&2
- echo "Deploy kukui_scp image to DUT, and restart the remoteproc driver" >&2
- exit 2
-}
-
-if [[ -z "$1" ]]; then
- usage
-fi
-
-KUKUI_IP="$1"
-INFILE="build/kukui_scp/ec.bin"
-
-case "$2" in
-bin)
- ;;
-elf|"") # Default
- # ec.obj is an elf file that has the right memory layout to be loaded
- # from the AP/kernel.
- INFILE="build/kukui_scp/ec.obj"
- ;;
-*)
- usage
- ;;
-esac
-
-scp "$INFILE" "$KUKUI_IP":/lib/firmware/scp.img
-
-ssh "$KUKUI_IP" sh -x -c "'
- sync;
- echo stop > /sys/class/remoteproc/remoteproc0/state;
- echo start > /sys/class/remoteproc/remoteproc0/state'"
diff --git a/board/kukui_scp/vdec.c b/board/kukui_scp/vdec.c
deleted file mode 100644
index eb4f1f8fa1..0000000000
--- a/board/kukui_scp/vdec.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "console.h"
-#include "hooks.h"
-#include "ipi_chip.h"
-#include "queue.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-#include "vdec.h"
-
-#define CPRINTF(format, args...) cprintf(CC_IPI, format, ##args)
-#define CPRINTS(format, args...) cprints(CC_IPI, format, ##args)
-
-/* Forwad declaration. */
-static struct consumer const event_vdec_consumer;
-static void event_vdec_written(struct consumer const *consumer, size_t count);
-
-static struct queue const event_vdec_queue = QUEUE_DIRECT(8,
- struct vdec_msg, null_producer, event_vdec_consumer);
-static struct consumer const event_vdec_consumer = {
- .queue = &event_vdec_queue,
- .ops = &((struct consumer_ops const) {
- .written = event_vdec_written,
- }),
-};
-
-/* Stub functions only provided by private overlays. */
-#ifndef HAVE_PRIVATE_MT8183
-void vdec_h264_service_init(void) {}
-void vdec_h264_msg_handler(void *data) {}
-#endif
-
-static vdec_msg_handler mtk_vdec_msg_handle[VDEC_MAX];
-
-static void event_vdec_written(struct consumer const *consumer, size_t count)
-{
- task_wake(TASK_ID_VDEC_SERVICE);
-}
-
-static void vdec_h264_ipi_handler(int id, void *data, uint32_t len)
-{
- struct vdec_msg rsv_msg;
-
- if (!len)
- return;
-
- rsv_msg.type = VDEC_H264;
- memcpy(rsv_msg.msg, data, MIN(len, sizeof(rsv_msg.msg)));
-
- /*
- * If there is no other IPI handler touch this queue, we don't need to
- * interrupt_disable() or task_disable_irq().
- */
- if (!queue_add_unit(&event_vdec_queue, &rsv_msg))
- CPRINTS("Could not send vdec %d to the queue.", rsv_msg.type);
-}
-DECLARE_IPI(IPI_VDEC_H264, vdec_h264_ipi_handler, 0);
-
-/* This function renames from vdec_service_entry. */
-void vdec_service_task(void *u)
-{
- struct vdec_msg rsv_msg;
- size_t size;
-
- vdec_h264_service_init();
- mtk_vdec_msg_handle[VDEC_H264] = vdec_h264_msg_handler;
-
- while (1) {
- /*
- * Queue unit is added in IPI handler, which is in ISR context.
- * Disable IRQ to prevent a clobbered queue.
- */
- ipi_disable_irq(SCP_IRQ_IPC0);
- size = queue_remove_unit(&event_vdec_queue, &rsv_msg);
- ipi_enable_irq(SCP_IRQ_IPC0);
-
- if (!size)
- task_wait_event(-1);
- else if (mtk_vdec_msg_handle[rsv_msg.type])
- vdec_h264_msg_handler(rsv_msg.msg);
- else
- CPRINTS("vdec handler %d not exists.", rsv_msg.type);
- }
-}
diff --git a/board/kukui_scp/vdec.h b/board/kukui_scp/vdec.h
deleted file mode 100644
index 9cfb877e12..0000000000
--- a/board/kukui_scp/vdec.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#ifndef __CROS_EC_SCP_VDEC_H
-#define __CROS_EC_SCP_VDEC_H
-
-#include "compile_time_macros.h"
-#include "queue.h"
-#include "registers.h"
-
-enum vdec_type {
- VDEC_H264,
- VDEC_VP8,
- VDEC_VP9,
- VDEC_MAX,
-};
-
-typedef void (*vdec_msg_handler)(void *msg);
-
-struct vdec_msg {
- enum vdec_type type;
- unsigned char msg[48];
-};
-
-BUILD_ASSERT(member_size(struct vdec_msg, msg) <= CONFIG_IPC_SHARED_OBJ_BUF_SIZE);
-
-/* Functions provided by private overlay. */
-void vdec_h264_service_init(void);
-void vdec_h264_msg_handler(void *data);
-
-#endif /* __CROS_EC_SCP_VDEC_H */
diff --git a/board/kukui_scp/venc.c b/board/kukui_scp/venc.c
deleted file mode 100644
index c7e19d120c..0000000000
--- a/board/kukui_scp/venc.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "console.h"
-#include "hooks.h"
-#include "ipi_chip.h"
-#include "queue.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-#include "venc.h"
-
-#define CPRINTF(format, args...) cprintf(CC_IPI, format, ##args)
-#define CPRINTS(format, args...) cprints(CC_IPI, format, ##args)
-
-/* Forwad declaration. */
-static struct consumer const event_venc_consumer;
-static void event_venc_written(struct consumer const *consumer, size_t count);
-
-static struct queue const event_venc_queue = QUEUE_DIRECT(8,
- struct venc_msg, null_producer, event_venc_consumer);
-static struct consumer const event_venc_consumer = {
- .queue = &event_venc_queue,
- .ops = &((struct consumer_ops const) {
- .written = event_venc_written,
- }),
-};
-
-static venc_msg_handler mtk_venc_msg_handle[VENC_MAX];
-
-/* Stub functions only provided by private overlays. */
-#ifndef HAVE_PRIVATE_MT8183
-void venc_h264_msg_handler(void *data) {}
-#endif
-
-static void event_venc_written(struct consumer const *consumer, size_t count)
-{
- task_wake(TASK_ID_VENC_SERVICE);
-}
-
-static void venc_h264_ipi_handler(int id, void *data, uint32_t len)
-{
- struct venc_msg rsv_msg;
-
- if (!len)
- return;
- rsv_msg.type = VENC_H264;
- memcpy(rsv_msg.msg, data, MIN(len, sizeof(rsv_msg.msg)));
-
- /*
- * If there is no other IPI handler touch this queue, we don't need to
- * interrupt_disable() or task_disable_irq().
- */
- if (!queue_add_unit(&event_venc_queue, &rsv_msg))
- CPRINTS("Could not send venc %d to the queue.", rsv_msg.type);
-}
-DECLARE_IPI(IPI_VENC_H264, venc_h264_ipi_handler, 0);
-
-/* This function renames from venc_service_entry. */
-void venc_service_task(void *u)
-{
- struct venc_msg rsv_msg;
- size_t size;
-
- mtk_venc_msg_handle[VENC_H264] = venc_h264_msg_handler;
- while (1) {
- /*
- * Queue unit is added in IPI handler, which is in ISR context.
- * Disable IRQ to prevent a clobbered queue.
- */
- ipi_disable_irq(SCP_IRQ_IPC0);
- size = queue_remove_unit(&event_venc_queue, &rsv_msg);
- ipi_enable_irq(SCP_IRQ_IPC0);
-
- if (!size)
- task_wait_event(-1);
- else if (mtk_venc_msg_handle[rsv_msg.type])
- venc_h264_msg_handler(rsv_msg.msg);
- else
- CPRINTS("venc handler %d not exists.", rsv_msg.type);
- }
-}
diff --git a/board/kukui_scp/venc.h b/board/kukui_scp/venc.h
deleted file mode 100644
index 7046633046..0000000000
--- a/board/kukui_scp/venc.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#ifndef __CROS_EC_SCP_VENC_H
-#define __CROS_EC_SCP_VENC_H
-
-#include "compile_time_macros.h"
-#include "queue.h"
-#include "registers.h"
-
-enum venc_type {
- VENC_H264,
- VENC_MAX,
-};
-
-typedef void (*venc_msg_handler)(void *msg);
-
-struct venc_msg {
- enum venc_type type;
- unsigned char msg[288];
-};
-
-BUILD_ASSERT(member_size(struct venc_msg, msg) <= CONFIG_IPC_SHARED_OBJ_BUF_SIZE);
-
-/* Functions provided by private overlay. */
-void venc_h264_msg_handler(void *data);
-
-#endif /* __CROS_EC_SCP_VENC_H */
diff --git a/board/lalala/battery.c b/board/lalala/battery.c
deleted file mode 100644
index 326ac93a6b..0000000000
--- a/board/lalala/battery.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "gpio.h"
-#include "util.h"
-
-/*
- * Battery info for lalala battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP19B8M */
- [BATTERY_AP19B8M] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G024",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13350,
- .voltage_normal = 11610,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC_AP18C8K;
diff --git a/board/lalala/board.c b/board/lalala/board.c
deleted file mode 100644
index 3065c5b9bd..0000000000
--- a/board/lalala/board.c
+++ /dev/null
@@ -1,851 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lalala board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "driver/retimer/ps8802.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_config.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-#define ADC_VOL_UP_MASK BIT(0)
-#define ADC_VOL_DOWN_MASK BIT(1)
-
-static uint8_t new_adc_key_state;
-
-static void ps8762_chaddr_deferred(void);
-DECLARE_DEFERRED(ps8762_chaddr_deferred);
-
-/******************************************************************************/
-/* USB-A Configuration */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
- GPIO_EN_USB_A1_VBUS,
-};
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff, 0xff, /* full set */
- },
-};
-
-static const struct ec_response_keybd_config lalala_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &lalala_keybd;
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_SUB_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void sub_usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(73),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_thermal(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_b;
-}
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-static void ps8762_chaddr_deferred(void)
-{
- /* Switch PS8762 I2C Address to 0x50*/
- if (ps8802_chg_i2c_addr(I2C_PORT_SUB_USB_C1) == EC_SUCCESS)
- CPRINTS("Switch PS8762 address to 0x50 success");
- else
- CPRINTS("Switch PS8762 address to 0x50 failed");
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ? "en" : "dis");
-
- if (!enable)
- return;
- /*
- * Port C1 the PP3300_USB_C1 assert, delay 15ms
- * colud be accessed PS8762 by I2C.
- */
- hook_call_deferred(&ps8762_chaddr_deferred_data, 15 * MSEC);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-static const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* ICM426 private data */
-static struct icm_drv_data_t g_icm426xx_data;
-/* KX022 private data */
-static struct kionix_accel_data g_kx022_data;
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_SUB_USB_C1_INT_ODL);
- check_c0_line();
- check_c1_line();
-
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- if (get_cbi_fw_config_tablet_mode()) {
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- cprints(CC_SYSTEM, "BASE GYRO is ICM426XX");
- } else
- cprints(CC_SYSTEM, "BASE GYRO is BMI160");
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- cprints(CC_SYSTEM, "LID_ACCEL is KX022");
- } else
- cprints(CC_SYSTEM, "LID_ACCEL is BMA253");
-
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* Initialize THERMAL */
- setup_thermal();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (get_cbi_ssfc_base_sensor()) {
- case SSFC_SENSOR_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case SSFC_SENSOR_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8802_I2C_ADDR_FLAGS_CUSTOM,
- .driver = &ps8802_usb_mux_driver,
- }
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (!gpio_get_level(GPIO_SUB_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-int adc_to_physical_value(enum gpio_signal gpio)
-{
- if (gpio == GPIO_VOLUME_UP_L)
- return !!(new_adc_key_state & ADC_VOL_UP_MASK);
- else if (gpio == GPIO_VOLUME_DOWN_L)
- return !!(new_adc_key_state & ADC_VOL_DOWN_MASK);
-
- CPRINTS("Not a volume up or down key");
- return 0;
-}
-
-int button_is_adc_detected(enum gpio_signal gpio)
-{
- return (gpio == GPIO_VOLUME_DOWN_L) || (gpio == GPIO_VOLUME_UP_L);
-}
-
-static void adc_vol_key_press_check(void)
-{
- int volt = adc_read_channel(ADC_SUB_ANALOG);
- static uint8_t old_adc_key_state;
- uint8_t adc_key_state_change;
-
- if (volt > 2400 && volt < 2490) {
- /* volume-up is pressed */
- new_adc_key_state = ADC_VOL_UP_MASK;
- } else if (volt > 2600 && volt < 2690) {
- /* volume-down is pressed */
- new_adc_key_state = ADC_VOL_DOWN_MASK;
- } else if (volt < 2290) {
- /* both volumn-up and volume-down are pressed */
- new_adc_key_state = ADC_VOL_UP_MASK | ADC_VOL_DOWN_MASK;
- } else if (volt > 2700) {
- /* both volumn-up and volume-down are released */
- new_adc_key_state = 0;
- }
- if (new_adc_key_state != old_adc_key_state) {
- adc_key_state_change = old_adc_key_state ^ new_adc_key_state;
- if (adc_key_state_change && ADC_VOL_UP_MASK)
- button_interrupt(GPIO_VOLUME_UP_L);
- if (adc_key_state_change && ADC_VOL_DOWN_MASK)
- button_interrupt(GPIO_VOLUME_DOWN_L);
-
- old_adc_key_state = new_adc_key_state;
- }
-}
-DECLARE_HOOK(HOOK_TICK, adc_vol_key_press_check, HOOK_PRIO_DEFAULT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/lalala/board.h b/board/lalala/board.h
deleted file mode 100644
index 1cbb6bf7e2..0000000000
--- a/board/lalala/board.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lalala board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KEEBY_EC_NPCX797FC
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#undef CONFIG_CMD_CHARGER_DUMP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* GPIO for C1 interrupts, for baseboard use */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_USB_C1_INT_ODL
-
-/* Keyboard */
-
-#define CONFIG_KEYBOARD_KEYPAD
-#define CONFIG_PWM_KBLIGHT
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* PWM */
-#define CONFIG_PWM
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* Temp sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_PS8802
-
-/* Common USB-A defines */
-#define USB_PORT_COUNT 2
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_INVERTED
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL GPIO_USB_A1_CHARGE_EN_L
-
-/******************************************************************************/
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source*/
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Volume Button feature */
-#define CONFIG_ADC_BUTTONS
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-enum battery_type {
- BATTERY_AP19B8M,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_TYPE_COUNT,
-};
-
-int board_is_sourcing_vbus(int port);
-void motion_interrupt(enum gpio_signal signal);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/lalala/build.mk b/board/lalala/build.mk
deleted file mode 100644
index b012d8d502..0000000000
--- a/board/lalala/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=keeby
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/lalala/cbi_ssfc.c b/board/lalala/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/lalala/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/lalala/cbi_ssfc.h b/board/lalala/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/lalala/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/lalala/ec.tasklist b/board/lalala/ec.tasklist
deleted file mode 100644
index d4fb416bce..0000000000
--- a/board/lalala/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/lalala/gpio.inc b/board/lalala/gpio.inc
deleted file mode 100644
index 3d81cd089d..0000000000
--- a/board/lalala/gpio.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(SUB_USB_C1_INT_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt)
-
-/* Button interrupts */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-
-/* Extra Sub-board I/O pins */
-
-GPIO(EC_SUB_IO_2, PIN(3, 4), GPIO_OUT_LOW)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(6, 3), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_KB_BL, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(EC_CBI_WP, PIN(E, 5), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED_B_ODL, PIN(C, 2), GPIO_OUT_HIGH) /* PWM_CH_LED2_BLUE */
-GPIO(LED_G_ODL, PIN(C, 3), GPIO_OUT_HIGH) /* PWM_CH_LED1_GREEN */
-GPIO(LED_R_ODL, PIN(C, 4), GPIO_OUT_HIGH) /* PWM_CH_LED2_ORANGE */
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* USB pins */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(USB_A0_CHARGE_EN_L, PIN(3, 7), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(F, 3), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_A1_VBUS, PIN(F, 2), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-/*
- * Lalala doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-UNIMPLEMENTED(VOLDN_BTN_ODL)
-UNIMPLEMENTED(VOLUP_BTN_ODL)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO40_NC, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/lalala/led.c b/board/lalala/led.c
deleted file mode 100644
index cfe6f9eb6a..0000000000
--- a/board/lalala/led.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for lalala
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_R_ODL, LED_ON_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/lalala/usb_pd_policy.c b/board/lalala/usb_pd_policy.c
deleted file mode 100644
index fd9018a3f0..0000000000
--- a/board/lalala/usb_pd_policy.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/lalala/vif_override.xml b/board/lalala/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/lalala/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/lantis/battery.c b/board/lantis/battery.c
deleted file mode 100644
index 94a9128e37..0000000000
--- a/board/lantis/battery.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all lantis battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack CosMX Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo CosMX Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX B00C4473A9D0002 Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/lantis/board.c b/board/lantis/board.c
deleted file mode 100644
index a64d8fa17a..0000000000
--- a/board/lantis/board.c
+++ /dev/null
@@ -1,739 +0,0 @@
-/* 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.
- */
-
-/* Lantis board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/sm5803.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_8042.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-uint32_t board_version;
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-__override void board_process_pd_alert(int port)
-{
- /*
- * PD_INT task will process this alert, and that task is only needed on
- * C1.
- */
- if (port != 1)
- return;
-
- if (gpio_get_level(GPIO_USB_C1_INT_ODL))
- return;
-
- sm5803_handle_interrupt(port);
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- sm5803_interrupt(0);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void button_sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
- int hdmi_hpd = gpio_get_level(GPIO_VOLUP_BTN_ODL_HDMI_HPD);
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE)
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, hdmi_hpd);
- else
- button_interrupt(s);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-static void pen_detect_interrupt(enum gpio_signal s)
-{
- int pen_detect = !gpio_get_level(GPIO_PEN_DET_ODL);
-
- gpio_set_level(GPIO_EN_PP5000_PEN, pen_detect);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
- [ADC_TEMP_SENSOR_4] = {
- .name = "TEMP_SENSOR4",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH16
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static const struct ec_response_keybd_config keybd1 = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad and no screenlock key */
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &keybd1;
-}
-
-void board_init(void)
-{
- int on;
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_LTE_HDMI || db == DB_1A_HDMI_LTE) {
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
- } else {
- /* Select AUX option */
- gpio_set_level(GPIO_HDMI_SEL_L, 1);
- }
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
-
- /* Store board version for use in determining charge limits */
- cbi_get_board_version(&board_version);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_PRESENT) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Charger on the MB will be outputting PROCHOT_ODL and OD CHG_DET */
- sm5803_configure_gpio0(CHARGER_PRIMARY, GPIO0_MODE_PROCHOT, 1);
- sm5803_configure_chg_det_od(CHARGER_PRIMARY, 1);
-
- if (board_get_charger_chip_count() > 1) {
- /* Charger on the sub-board will be a push-pull GPIO */
- sm5803_configure_gpio0(CHARGER_SECONDARY, GPIO0_MODE_OUTPUT, 0);
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- sm5803_disable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_disable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
-
-static void board_suspend(void)
-{
- sm5803_enable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_enable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- sm5803_hibernate(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_hibernate(CHARGER_SECONDARY);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
-
- if (board_get_charger_chip_count() > 1) {
- if (sm5803_set_gpio0_level(1, !!enable))
- CPRINTUSB("Failed to %sable sub rails!", enable ?
- "en" : "dis");
- }
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- enum fw_config_db db = get_cbi_fw_config_db();
-
- if (db == DB_1A_HDMI || db == DB_NONE || db == DB_LTE_HDMI
- || db == DB_1A_HDMI_LTE)
- return CHARGER_NUM - 1;
- else if (db == DB_1C || db == DB_1C_LTE || db == DB_1C_1A
- || db == DB_1C_1A_LTE)
- return CHARGER_NUM;
-
- ccprints("Unhandled DB configuration: %d", db);
- return 0;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- /*
- * TCPC 0 is embedded in the EC and processes interrupts in the chip
- * code (it83xx/intc.c)
- */
-
- uint16_t status = 0;
- int regval;
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 && port < board_get_usb_pd_port_count());
-
- if (!is_valid_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTUSB("Disabling all charge ports");
-
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
-
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
-
- return EC_SUCCESS;
- }
-
- CPRINTUSB("New chg p%d", port);
-
- /*
- * Ensure other port is turned off, then enable new charge port
- */
- if (port == 0) {
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 1);
-
- } else {
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 1);
- }
-
- return EC_SUCCESS;
-}
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- int current;
-
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- current = (rp == TYPEC_RP_3A0) ? 3000 : 1500;
-
- charger_set_otg_current_voltage(port, current, 5000);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "5V regular",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 3;
- *kp_div = 20;
-
- *ki = 3;
- *ki_div = 125;
-
- *kd = 4;
- *kd_div = 40;
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {GPIO_KSO_H, 4}, {GPIO_KSO_H, 0}, {GPIO_KSO_H, 1},
- {GPIO_KSO_H, 3}, {GPIO_KSO_H, 2}, {GPIO_KSO_L, 5}, {GPIO_KSO_L, 6},
- {GPIO_KSO_L, 3}, {GPIO_KSO_L, 2}, {GPIO_KSI, 0}, {GPIO_KSO_L, 1},
- {GPIO_KSO_L, 4}, {GPIO_KSI, 3}, {GPIO_KSI, 2}, {GPIO_KSO_L, 0},
- {GPIO_KSI, 5}, {GPIO_KSI, 4}, {GPIO_KSO_L, 7}, {GPIO_KSI, 6},
- {GPIO_KSI, 7}, {GPIO_KSI, 1}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
diff --git a/board/lantis/board.h b/board/lantis/board.h
deleted file mode 100644
index df209187ac..0000000000
--- a/board/lantis/board.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* 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.
- */
-
-/* Lantis board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-#undef GPIO_VOLUME_UP_L
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL_HDMI_HPD
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_5V_CHARGER_CTRL
-#define CONFIG_CHARGER_OTG
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_OCPC
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 21 /* R_DS(on) 10.7mOhm + 10mOhm sns rstr */
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_PWM_KBLIGHT
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0: ITE EC TCPC */
-#define CONFIG_USB_PD_TCPM_PS8705 /* C1: PS8705 TCPC*/
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_SUB_ANALOG, /* ADC13 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_TEMP_SENSOR_4, /* ADC16 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_DYNAPACK_ATL,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COS,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/lantis/build.mk b/board/lantis/build.mk
deleted file mode 100644
index 806168ea0d..0000000000
--- a/board/lantis/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/lantis/cbi_ssfc.c b/board/lantis/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/lantis/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/lantis/cbi_ssfc.h b/board/lantis/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/lantis/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/lantis/ec.tasklist b/board/lantis/ec.tasklist
deleted file mode 100644
index 2edf48ee05..0000000000
--- a/board/lantis/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/lantis/gpio.inc b/board/lantis/gpio.inc
deleted file mode 100644
index c24e20d5ec..0000000000
--- a/board/lantis/gpio.inc
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C1_INT_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL_HDMI_HPD, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_sub_hdmi_hpd_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(PEN_DET_ODL, PIN(J, 1), GPIO_INT_BOTH | GPIO_PULL_UP, pen_detect_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_A_5V, PIN(L, 6), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_HIGH)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-GPIO(EN_PP5000_PEN, PIN(B, 5), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* LED */
-GPIO(BAT_LED_AMBER_C0, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(BAT_LED_WHITE_C0, PIN(A, 2), GPIO_OUT_HIGH)
-GPIO(BAT_LED_AMBER_C1, PIN(F, 1), GPIO_OUT_HIGH)
-GPIO(BAT_LED_WHITE_C1, PIN(F, 0), GPIO_OUT_HIGH)
-GPIO(PWR_LED_WHITE_L, PIN(A, 3), GPIO_OUT_HIGH)
-
-/* Alternate functions GPIO definitions */
-/* Keyboard */
-ALTERNATE(PIN_MASK(KSI, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSI0-7 */
-ALTERNATE(PIN_MASK(KSO_H, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO8-15 */
-ALTERNATE(PIN_MASK(KSO_L, 0xFB), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO0-1, 3-7 */
-GPIO(EC_KSO_02_INV, PIN(KSO_L, 2), GPIO_OUT_HIGH) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC13: EC_SUB_ANALOG, ADC15: TEMP_SENSOR_3, ADC16: TEMP_SENSOR_4 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0)), 0, MODULE_PWM, 0) /* KB_BL_PWM */
diff --git a/board/lantis/led.c b/board/lantis/led.c
deleted file mode 100644
index c4868de740..0000000000
--- a/board/lantis/led.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* 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.
- */
-
-/* Lantis specific LED settings. */
-
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "led_common.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- LEFT_PORT = 0,
- RIGHT_PORT
-};
-
-static int led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == RIGHT_PORT ? GPIO_BAT_LED_AMBER_C1 :
- GPIO_BAT_LED_AMBER_C0);
- white_led = (port == RIGHT_PORT ? GPIO_BAT_LED_WHITE_C1 :
- GPIO_BAT_LED_WHITE_C0);
-
- switch (color) {
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-static int led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_RIGHT_LED:
- rv = led_set_color_battery(RIGHT_PORT, color);
- break;
- case EC_LED_ID_LEFT_LED:
- rv = led_set_color_battery(LEFT_PORT, color);
- break;
- case EC_LED_ID_POWER_LED:
- rv = led_set_color_power(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color(led_id, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LED for clamshell SKU, which doesn't have power
- * LED, blinking battery white LED to indicate system suspend without
- * charging.
- */
- if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
- led_set_color_battery(RIGHT_PORT, power_ticks++ & 0x2 ?
- LED_WHITE : LED_OFF);
- led_set_color_battery(LEFT_PORT, power_ticks++ & 0x2 ?
- LED_WHITE : LED_OFF);
- return;
- }
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- set_active_port_color(LED_WHITE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE:
- /*
- * Blink white light (1 sec on, 1 sec off)
- * when battery capacity is less than 10%
- */
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks & 0x2) ? LED_WHITE : LED_OFF);
- else
- set_active_port_color(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color(
- (battery_ticks % 0x2) ? LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color(
- (battery_ticks & 0x2) ? LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_set_color_power(
- (power_tick & 0x2) ? LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/lantis/usb_pd_policy.c b/board/lantis/usb_pd_policy.c
deleted file mode 100644
index 7046e25d6c..0000000000
--- a/board/lantis/usb_pd_policy.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/sm5803.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- if (port < 0 || port >= board_get_usb_pd_port_count())
- return;
-
- prev_en = charger_is_sourcing_otg_power(port);
-
- /* Disable Vbus */
- charger_enable_otg_power(port, 0);
-
- /* Discharge Vbus if previously enabled */
- if (prev_en)
- sm5803_set_vbus_disch(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- enum ec_error_list rv;
-
- /* Disable sinking */
- rv = sm5803_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- /* Disable Vbus discharge */
- sm5803_set_vbus_disch(port, 0);
-
- /* Provide Vbus */
- charger_enable_otg_power(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-__override bool pd_check_vbus_level(int port, enum vbus_level level)
-{
- int vbus_voltage;
-
- /* If we're unable to speak to the charger, best to guess false */
- if (charger_get_vbus_voltage(port, &vbus_voltage))
- return false;
-
- if (level == VBUS_SAFE0V)
- return vbus_voltage < PD_V_SAFE0V_MAX;
- else if (level == VBUS_PRESENT)
- return vbus_voltage > PD_V_SAFE5V_MIN;
- else
- return vbus_voltage < PD_V_SINK_DISCONNECT_MAX;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return sm5803_is_vbus_present(port);
-}
diff --git a/board/lantis/vif_override.xml b/board/lantis/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/lantis/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/lazor/battery.c b/board/lazor/battery.c
deleted file mode 100644
index 6cad716e2c..0000000000
--- a/board/lazor/battery.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all lazor battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* AP16L5J */
- [BATTERY_AP16L5J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP16L5J with PN version */
- [BATTERY_AP16L5J_009] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00205009",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP16L8J */
- [BATTERY_AP16L8J] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0020G010",
- .device_name = "AP16L8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7500, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP16L5J;
diff --git a/board/lazor/board.c b/board/lazor/board.c
deleted file mode 100644
index 1118f3a845..0000000000
--- a/board/lazor/board.c
+++ /dev/null
@@ -1,431 +0,0 @@
-/* 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.
- */
-
-/* Lazor board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/ln9310.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "sku.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#include "gpio_list.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Use 80 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /*
- * Unmask 0x08 in [0] (KSO_00/KSI_03, the new location of Search key);
- * as it still uses the legacy location (KSO_01/KSI_00).
- */
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca
- },
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
-};
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Mutexes */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-static struct accelgyro_saved_data_t g_bma255_data;
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_ICM426XX = 2,
-};
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref_bmi160 = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref_icm426xx = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref_bma255 = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref_kx022 = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref_bma255,
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_bmi160,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_bmi160,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref_kx022,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref_icm426xx,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm426xx,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-static int base_accelgyro_config;
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_accelgyro_config) {
- case BASE_GYRO_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case BASE_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-static void board_detect_motionsensor(void)
-{
- int ret;
- int val;
-
- /* Check lid accel chip */
- ret = i2c_read8(I2C_PORT_SENSOR, BMA2x2_I2C_ADDR1_FLAGS,
- BMA2x2_CHIP_ID_ADDR, &val);
- if (ret)
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
-
- CPRINTS("Lid Accel: %s", ret ? "KX022" : "BMA255");
-
- /* Check base accelgyro chip */
- ret = icm_read8(&icm426xx_base_accel, ICM426XX_REG_WHO_AM_I, &val);
- if (val == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- }
-
- base_accelgyro_config = (val == ICM426XX_CHIP_ICM40608)
- ? BASE_GYRO_ICM426XX : BASE_GYRO_BMI160;
- CPRINTS("Base Accelgyro: %s", (val == ICM426XX_CHIP_ICM40608)
- ? "ICM40608" : "BMI160");
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_clamshell()) {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* The sensors are not stuffed; don't allow lines to float */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_LID_ACCEL_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- } else {
- board_detect_motionsensor();
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable interrupt for the base accel sensor */
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_update_sensor_config_from_sku,
- HOOK_PRIO_INIT_I2C + 2);
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-__override uint32_t board_get_sku_id(void)
-{
- static int sku_id = -1;
-
- if (sku_id == -1) {
- int bits[3];
-
- bits[0] = gpio_get_ternary(GPIO_SKU_ID0);
- bits[1] = gpio_get_ternary(GPIO_SKU_ID1);
- bits[2] = gpio_get_ternary(GPIO_SKU_ID2);
- sku_id = binary_first_base3_from_bits(bits, ARRAY_SIZE(bits));
- }
-
- return (uint32_t)sku_id;
-}
diff --git a/board/lazor/board.h b/board/lazor/board.h
deleted file mode 100644
index d045c13cb5..0000000000
--- a/board/lazor/board.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* 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.
- */
-
-/* Lazor board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Switchcap */
-#define CONFIG_LN9310
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-
-#define CONFIG_PWM_KBLIGHT
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USB_PD_TCPM_PS8805_FORCE_DID
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* USB-A */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* ICM426XX Base accel/gyro */
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* KX022 lid accel */
-#define CONFIG_ACCEL_KX022
-
-/* BMA253 lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PMIC_RESIN_L GPIO_PM845_RESIN_L
-#define GPIO_SWITCHCAP_PG_INT_L GPIO_DA9313_GPIO0
-#define GPIO_SWITCHCAP_ON_L GPIO_SWITCHCAP_ON
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-#include "sku.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_DISPLIGHT,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_AP16L5J,
- BATTERY_AP16L5J_009,
- BATTERY_AP16L8J,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_TYPE_COUNT,
-};
-
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-/* Motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/lazor/build.mk b/board/lazor/build.mk
deleted file mode 100644
index 8cf8679e35..0000000000
--- a/board/lazor/build.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y+=battery.o
-board-y+=board.o
-board-y+=hibernate.o
-board-y+=led.o
-board-y+=sku.o
-board-y+=switchcap.o
-board-y+=usbc_config.o
diff --git a/board/lazor/ec.tasklist b/board/lazor/ec.tasklist
deleted file mode 100644
index 2b55c26c20..0000000000
--- a/board/lazor/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/lazor/gpio.inc b/board/lazor/gpio.inc
deleted file mode 100644
index b5c15b3729..0000000000
--- a/board/lazor/gpio.inc
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-GPIO_INT(USB_A0_OC_ODL, PIN(D, 1), GPIO_INT_BOTH | GPIO_PULL_UP, usba_oc_interrupt)
-
-/* System interrupts */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-/* Sensor interrupts */
-GPIO_INT(TABLET_MODE_L, PIN(C, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, motion_interrupt) /* Accelerometer/gyro interrupt */
-
-/* Switchcap
- *
- * For DA9313 SKUs, it is GPIO0 of DA9313. The GPIO0 is configured as PVC_PG.
- * For LN9310 SKUs, it is the interrupt line of LN9310.
- */
-GPIO_INT(DA9313_GPIO0, PIN(E, 2), GPIO_INT_FALLING, ln9310_interrupt)
-
-/*
- * EC_RST_ODL used to be a wake source from PSL mode. However, we disabled
- * the PSL mode. This GPIO does nothing now. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PM845_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-GPIO(QSIP_ON, PIN(5, 0), GPIO_OUT_LOW) /* Not used, for non-switchcap testing */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap; will be configured in the board init */
-/* TODO(waihong): Remove it. The VBOB switch is for backup. */
-GPIO(VBOB_EN, PIN(D, 3), GPIO_OUT_LOW) /* Enable VBOB */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Sensors */
-GPIO(LID_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT) /* Lid accel sensor interrupt */
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(7, 4), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_ODR_HIGH) /* Port-0 TCPC chip reset, actaully Open-Drain */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_ODR_HIGH) /* Port-1 TCPC chip reset, actually Open-Drain */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* USB-A */
-GPIO(EN_USB_A_5V, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(USB_A_CDP_ILIM_EN, PIN(7, 5), GPIO_OUT_HIGH) /* H: CDP, L:SDP. Only one USB-A port, always CDP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C1, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_B_C1, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(KB_BL_PWM, PIN(8, 0), GPIO_INPUT) /* PWM3 */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(0, 4))
-UNUSED(PIN(C, 0))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(3, 7))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(6, 2))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(6, 0))
-UNUSED(PIN(7, 2))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-
-/* Keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* Keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO10 (GPIO07), KSO11 (GPIO06), KSO12 (GPIO05) */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO03 (GPIO16), KSO04 (GPIO15), KSO05 (GPIO14), KSO06 (GPIO13), KSO07 (GPIO12), KSO08 (GPIO11), KSO09 (GPIO10) */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO00 (GPIO21), KSO01 (GPIO20) */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI2 (GPIO27), KSI3 (GPIO26), KSI4 (GPIO25), KSI5 (GPIO24), KSI6 (GPIO23), KSI7 (GPIO22) */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI0 (GPIO31), KSI1 (GPIO30) */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2) /* KSO02 (GPIO17) */
diff --git a/board/lazor/hibernate.c b/board/lazor/hibernate.c
deleted file mode 100644
index 1187348e31..0000000000
--- a/board/lazor/hibernate.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "sku.h"
-#include "system.h"
-#include "usbc_ppc.h"
-
-void board_hibernate(void)
-{
- int i;
-
- if (!board_is_clamshell()) {
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_LID_ACCEL_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /*
- * Board rev 5+ has the hardware fix. Don't need the following
- * workaround.
- */
- if (system_get_board_version() >= 5)
- return;
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
diff --git a/board/lazor/led.c b/board/lazor/led.c
deleted file mode 100644
index f9c91c1c6a..0000000000
--- a/board/lazor/led.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_BLUE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_Y_C1,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_EC_CHG_LED_B_C1,
- (color == LED_BLUE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color(LED_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(LED_AMBER);
- else
- led_set_color(LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- int color = LED_OFF;
- int period = 0;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate amber on when charging. */
- color = LED_AMBER;
- break;
- case PWR_STATE_DISCHARGE:
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Discharging in S3: Amber 1 sec, off 3 sec */
- period = (1 + 3) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_AMBER;
- else
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- /* Discharging in S5: off */
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ON)) {
- /* Discharging in S0: Blue on */
- color = LED_BLUE;
- }
- break;
- case PWR_STATE_ERROR:
- /* Battery error: Amber 1 sec, off 1 sec */
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_AMBER;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- /* Full Charged: Blue on */
- color = LED_BLUE;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode: Blue 2 sec, Amber 2 sec */
- period = (2 + 2) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2 * LED_ONE_SEC)
- color = LED_BLUE;
- else
- color = LED_AMBER;
- } else
- color = LED_BLUE;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_BLUE : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color(color);
-}
diff --git a/board/lazor/sku.c b/board/lazor/sku.c
deleted file mode 100644
index 815295d9f5..0000000000
--- a/board/lazor/sku.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "config.h"
-#include "console.h"
-#include "driver/ln9310.h"
-#include "tcpm/ps8xxx_public.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "sku.h"
-#include "system.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static uint8_t sku_id;
-
-enum board_model {
- LAZOR,
- LIMOZEEN,
- UNKNOWN,
-};
-
-static const char *const model_name[] = {
- "LAZOR",
- "LIMOZEEN",
- "UNKNOWN",
-};
-
-static enum board_model get_model(void)
-{
- if (sku_id == 0 || sku_id == 1 || sku_id == 2 || sku_id == 3)
- return LAZOR;
- if (sku_id == 4 || sku_id == 5 || sku_id == 6)
- return LIMOZEEN;
- return UNKNOWN;
-}
-
-/* Read SKU ID from GPIO and initialize variables for board variants */
-static void sku_init(void)
-{
- sku_id = system_get_sku_id();
- CPRINTS("SKU: %u (%s)", sku_id, model_name[get_model()]);
-}
-DECLARE_HOOK(HOOK_INIT, sku_init, HOOK_PRIO_INIT_I2C + 1);
-
-enum battery_cell_type board_get_battery_cell_type(void)
-{
- switch (get_model()) {
- case LIMOZEEN:
- return BATTERY_CELL_TYPE_3S;
- default:
- return BATTERY_CELL_TYPE_UNKNOWN;
- }
-}
-
-int board_is_clamshell(void)
-{
- return get_model() == LIMOZEEN;
-}
-
-__override uint16_t board_get_ps8xxx_product_id(int port)
-{
- /*
- * Lazor (SKU_ID: 0, 1, 2, 3) rev 3+ changes TCPC from PS8751 to
- * PS8805.
- *
- * Limozeen (SKU_ID: 4, 5, 6) all-rev uses PS8805.
- */
- if (get_model() == LAZOR && system_get_board_version() < 3)
- return PS8751_PRODUCT_ID;
-
- return PS8805_PRODUCT_ID;
-}
-
-int board_has_da9313(void)
-{
- return get_model() == LAZOR;
-}
-
-int board_has_buck_ic(void)
-{
- return get_model() == LIMOZEEN && system_get_board_version() >= 8;
-}
-
-int board_has_ln9310(void)
-{
- return get_model() == LIMOZEEN && system_get_board_version() < 8;
-}
diff --git a/board/lazor/sku.h b/board/lazor/sku.h
deleted file mode 100644
index 96eaf2bb92..0000000000
--- a/board/lazor/sku.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lazor board-specific SKU configuration */
-
-#ifndef __CROS_EC_SKU_H
-#define __CROS_EC_SKU_H
-
-int board_get_version(void);
-int board_is_clamshell(void);
-int board_has_da9313(void);
-int board_has_ln9310(void);
-int board_has_buck_ic(void);
-
-#endif /* __CROS_EC_SKU_H */
diff --git a/board/lazor/switchcap.c b/board/lazor/switchcap.c
deleted file mode 100644
index 16f4a54c79..0000000000
--- a/board/lazor/switchcap.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "config.h"
-#include "console.h"
-#include "driver/ln9310.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "power/qcom.h"
-#include "system.h"
-#include "sku.h"
-
-#define CPRINTS(format, args...) cprints(CC_I2C, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_I2C, format, ## args)
-
-/* LN9310 switchcap */
-const struct ln9310_config_t ln9310_config = {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = LN9310_I2C_ADDR_0_FLAGS,
-};
-
-static void switchcap_init(void)
-{
- if (board_has_da9313()) {
- CPRINTS("Use switchcap: DA9313");
-
- /*
- * When the chip in power down mode, it outputs high-Z.
- * Set pull-down to avoid floating.
- */
- gpio_set_flags(GPIO_DA9313_GPIO0, GPIO_INPUT | GPIO_PULL_DOWN);
-
- /*
- * Configure DA9313 enable, push-pull output. Don't set the
- * level here; otherwise, it will override its value and
- * shutdown the switchcap when sysjump to RW.
- */
- gpio_set_flags(GPIO_SWITCHCAP_ON, GPIO_OUTPUT);
- } else if (board_has_ln9310()) {
- CPRINTS("Use switchcap: LN9310");
-
- /* Configure and enable interrupt for LN9310 */
- gpio_set_flags(GPIO_SWITCHCAP_PG_INT_L, GPIO_INT_FALLING);
- gpio_enable_interrupt(GPIO_SWITCHCAP_PG_INT_L);
-
- /*
- * Configure LN9310 enable, open-drain output. Don't set the
- * level here; otherwise, it will override its value and
- * shutdown the switchcap when sysjump to RW.
- *
- * Note that the gpio.inc configures it GPIO_OUT_LOW. When
- * sysjump to RW, will output push-pull a short period of
- * time. As it outputs LOW, should be fine.
- *
- * This GPIO changes like:
- * (1) EC boots from RO -> high-Z
- * (2) GPIO init according to gpio.inc -> push-pull LOW
- * (3) This function configures it -> open-drain HIGH
- * (4) Power sequence turns on the switchcap -> open-drain LOW
- * (5) EC sysjumps to RW
- * (6) GPIO init according to gpio.inc -> push-pull LOW
- * (7) This function configures it -> open-drain LOW
- */
- gpio_set_flags(GPIO_SWITCHCAP_ON_L,
- GPIO_OUTPUT | GPIO_OPEN_DRAIN);
-
- /* Only configure the switchcap if not sysjump */
- if (!system_jumped_late()) {
- /*
- * Deassert the enable pin (set it HIGH), so the
- * switchcap won't be enabled after the switchcap is
- * configured from standby mode to switching mode.
- */
- gpio_set_level(GPIO_SWITCHCAP_ON_L, 1);
- ln9310_init();
- }
- } else if (board_has_buck_ic()) {
- CPRINTS("Use Buck IC");
- } else {
- CPRINTS("ERROR: No switchcap solution");
- }
-}
-DECLARE_HOOK(HOOK_INIT, switchcap_init, HOOK_PRIO_DEFAULT);
-
-void board_set_switchcap_power(int enable)
-{
- if (board_has_da9313()) {
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
- } else if (board_has_ln9310()) {
- gpio_set_level(GPIO_SWITCHCAP_ON_L, !enable);
- ln9310_software_enable(enable);
- } else if (board_has_buck_ic()) {
- gpio_set_level(GPIO_VBOB_EN, enable);
- }
-}
-
-int board_is_switchcap_enabled(void)
-{
- if (board_has_da9313())
- return gpio_get_level(GPIO_SWITCHCAP_ON);
- else if (board_has_ln9310())
- return !gpio_get_level(GPIO_SWITCHCAP_ON_L);
-
- /* Board has buck ic*/
- return gpio_get_level(GPIO_VBOB_EN);
-}
-
-int board_is_switchcap_power_good(void)
-{
- if (board_has_da9313())
- return gpio_get_level(GPIO_DA9313_GPIO0);
- else if (board_has_ln9310())
- return ln9310_power_good();
-
- /* Board has buck ic no way to check POWER GOOD */
- return 1;
-}
diff --git a/board/lazor/usbc_config.c b/board/lazor/usbc_config.c
deleted file mode 100644
index f8c9662136..0000000000
--- a/board/lazor/usbc_config.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Lazor board-specific USB-C configuration */
-
-#include "battery_fuel_gauge.h"
-#include "bc12/pi3usb9201_public.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "config.h"
-#include "driver/ln9310.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ppc/sn5s330_public.h"
-#include "system.h"
-#include "tcpm/ps8xxx_public.h"
-#include "tcpm/tcpci.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "usbc_config.h"
-#include "usb_mux.h"
-#include "usbc_ocp.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void usba_oc_deferred(void)
-{
- /* Use next number after all USB-C ports to indicate the USB-A port */
- board_overcurrent_event(CONFIG_USB_PD_PORT_MAX_COUNT,
- !gpio_get_level(GPIO_USB_A0_OC_ODL));
-}
-DECLARE_DEFERRED(usba_oc_deferred);
-
-void usba_oc_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&usba_oc_deferred_data, 0);
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-/* GPIO Interrupt Handlers */
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-__override int board_get_default_battery_type(void)
-{
- /*
- * A 2S battery is set as default. If the board is configured to use
- * a 3S battery, according to its SKU_ID, return a 3S battery as
- * default. It helps to configure the charger to output a correct
- * voltage in case the battery is not attached.
- */
- if (board_get_battery_cell_type() == BATTERY_CELL_TYPE_3S)
- return BATTERY_LGC_AP18C8K;
-
- return DEFAULT_BATTERY_TYPE;
-}
-
-/* Initialize board USC-C things */
-static void board_init_usbc(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Enable USB-A overcurrent interrupt */
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init_usbc, HOOK_PRIO_DEFAULT);
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
diff --git a/board/lazor/usbc_config.h b/board/lazor/usbc_config.h
deleted file mode 100644
index 9c1d8d1e74..0000000000
--- a/board/lazor/usbc_config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* lazor board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#include "gpio.h"
-
-void tcpc_alert_event(enum gpio_signal signal);
-void usb0_evt(enum gpio_signal signal);
-void usb1_evt(enum gpio_signal signal);
-void usba_oc_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-void board_connect_c0_sbu(enum gpio_signal s);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/lazor/vif_override.xml b/board/lazor/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/lazor/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/liara/analyzestack.yaml b/board/liara/analyzestack.yaml
deleted file mode 120000
index 9873122a08..0000000000
--- a/board/liara/analyzestack.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/grunt/analyzestack.yaml \ No newline at end of file
diff --git a/board/liara/battery.c b/board/liara/battery.c
deleted file mode 100644
index bf244125b0..0000000000
--- a/board/liara/battery.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "common.h"
-#include "hooks.h"
-#include "usb_pd.h"
-
-/*
- * Battery info for all Liara battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /*
- * Panasonic AP15O5L battery information from the Grunt reference
- * design.
- */
- [BATTERY_PANASONIC] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- },
- .imbalance_mv = battery_default_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- /*
- * Sunwoda 2018 Battery Information for Liara.
- * Gauge IC: TI BQ40Z697A
- */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda 2018",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = battery_bq4050_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
- /*
- * Simplo 2018 Battery Information for Liara
- * Gauge IC: TI BQ40Z695A
- */
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "SMP2018",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- .imbalance_mv = battery_bq4050_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 247, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
- /*
- * LGC 2018 Battery Information for Liara
- * Gauge IC: Renesas RAJ240047A20DNP
- */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC2018",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x0010,
- .disconnect_val = 0x0,
- },
- .imbalance_mv = battery_default_imbalance_mv,
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC;
diff --git a/board/liara/board.c b/board/liara/board.c
deleted file mode 100644
index 4f8b552d1f..0000000000
--- a/board/liara/board.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Liara board-specific configuration */
-
-#include "button.h"
-#include "driver/led/lm3630a.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-
-#include "gpio_list.h"
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
- GPIO_EC_RST_ODL,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* I2C port map. */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", I2C_PORT_THERMAL_AP, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"kblight", I2C_PORT_KBLIGHT, 100, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 5,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
- [PWM_CH_LED1_WHITE] = {
- .channel = 0,
- .flags = (PWM_CONFIG_OPEN_DRAIN | PWM_CONFIG_ACTIVE_LOW
- | PWM_CONFIG_DSLEEP),
- .freq = 100,
- },
- [PWM_CH_LED2_AMBER] = {
- .channel = 2,
- .flags = (PWM_CONFIG_OPEN_DRAIN | PWM_CONFIG_ACTIVE_LOW
- | PWM_CONFIG_DSLEEP),
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_kblight_init(void)
-{
- /*
- * Enable keyboard backlight. This needs to be done here because
- * the chip doesn't have power until PP3300_S0 comes up.
- */
- gpio_set_level(GPIO_KB_BL_EN, 1);
- lm3630a_poweron();
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_kblight_init, HOOK_PRIO_DEFAULT);
diff --git a/board/liara/board.h b/board/liara/board.h
deleted file mode 100644
index ae4494115b..0000000000
--- a/board/liara/board.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Liara board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_GRUNT_TCPC_0_ANX3429
-#define VARIANT_GRUNT_NO_SENSORS
-
-#include "baseboard.h"
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-#define CONFIG_MKBP_USE_HOST_EVENT
-
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 5000
-
-/* Power and battery LEDs */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_PWM_CHARGE_STATE_ONLY
-#define CONFIG_CMD_LEDTEST
-
-#undef CONFIG_LED_PWM_NEAR_FULL_COLOR
-#undef CONFIG_LED_PWM_CHARGE_ERROR_COLOR
-
-#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_CHARGE_ERROR_COLOR EC_LED_COLOR_AMBER
-
-#define CONFIG_LED_PWM_COUNT 1
-
-#define I2C_PORT_KBLIGHT NPCX_I2C_PORT5_0
-
-/* KB backlight driver */
-#define CONFIG_LED_DRIVER_LM3630A
-
-#define CONFIG_BATTERY_BQ4050
-#define CONFIG_BATTERY_MEASURE_IMBALANCE
-
-#ifndef __ASSEMBLER__
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_LED1_WHITE,
- PWM_CH_LED2_AMBER,
- PWM_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_PANASONIC,
- BATTERY_SUNWODA,
- BATTERY_SIMPLO,
- BATTERY_LGC,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/liara/build.mk b/board/liara/build.mk
deleted file mode 100644
index c808e65aed..0000000000
--- a/board/liara/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6f
-BASEBOARD:=grunt
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/liara/ec.tasklist b/board/liara/ec.tasklist
deleted file mode 100644
index b562761311..0000000000
--- a/board/liara/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/liara/gpio.inc b/board/liara/gpio.inc
deleted file mode 100644
index 343c50f503..0000000000
--- a/board/liara/gpio.inc
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(A, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S5_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S5_PGOOD, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(USB_C0_CABLE_DET, PIN(3, 7), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_LOCKED)
-
-GPIO(EN_PWR_A, PIN(E, 2), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EN_PP1800_SENSOR, PIN(6, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(ENABLE_BACKLIGHT_L, PIN(D, 3), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(SYS_RESET_L, PIN(E, 4), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT | GPIO_PULL_UP) /* Battery Present */
-GPIO(PCH_SYS_PWROK, PIN(D, 6), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(CPU_PROCHOT, PIN(3, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* PROCHOT to SOC */
-GPIO(APU_ALERT_L, PIN(A, 2), GPIO_INPUT) /* Alert to SOC */
-GPIO(3AXIS_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* 3 Axis Accel */
-GPIO(KB_BL_EN, PIN(F, 2), GPIO_OUT_LOW) /* Enable KB Backlight */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SIC */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SID */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL and
- EC_I2C_KB_BL_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_EEPROM_SDA and
- EC_I2C_KB_BL_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SDA */
-
-/*
- * The NPCX LPC driver configures and controls SCI and SMI,
- * so PCH_SCI_ODL [PIN(7, 6)] and PCH_SMI_ODL [PIN(C, 6)] are
- * not defined here as GPIOs.
- */
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT)
-
-GPIO(EN_USB_A0_5V, PIN(6, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(C, 0), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_C0_TCPC_PWR, PIN(6, 0), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(USB_C0_OC_L, PIN(7, 3), GPIO_OUT_HIGH) /* C0 Over Current */
-GPIO(USB_C1_OC_L, PIN(7, 2), GPIO_OUT_HIGH) /* C1 Over Current */
-GPIO(USB_C0_PD_RST_L, PIN(3, 2), GPIO_OUT_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(D, 5), GPIO_OUT_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON_L, PIN(4, 0), GPIO_ODR_HIGH) /* C0 BC1.2 Power */
-GPIO(USB_C1_BC12_VBUS_ON_L, PIN(B, 1), GPIO_ODR_HIGH| GPIO_PULL_UP) /* C1 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET, PIN(6, 2), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C1_BC12_CHG_DET, PIN(8, 3), GPIO_INPUT | GPIO_PULL_DOWN) /* C1 BC1.2 Detect */
-GPIO(USB_C0_DP_HPD, PIN(9, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(9, 6), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 7), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(9, 3), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(8, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(4, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x02), 0, MODULE_ADC, 0) /* ADC8 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* KB Backlight */
-ALTERNATE(PIN_MASK(C, 0x18), 0, MODULE_PWM, 0) /* LED 1 & 2 */
-
-/* Keyboard Pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = AC_PRESENT,
- GPIO01 = POWER_BUTTON_L,
- GPIO02 = EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
diff --git a/board/liara/led.c b/board/liara/led.c
deleted file mode 100644
index 371c08ce40..0000000000
--- a/board/liara/led.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-/*
- * We only have a blue and an amber LED, so setting any other colour results in
- * both LEDs being off.
- */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* White, Amber */
- [EC_LED_COLOR_RED] = { 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0 },
- [EC_LED_COLOR_YELLOW] = { 0, 0 },
- [EC_LED_COLOR_WHITE] = { 100, 0 },
- [EC_LED_COLOR_AMBER] = { 0, 100 },
-};
-
-/* One logical LED with amber and blue channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED1_WHITE,
- .ch1 = PWM_CH_LED2_AMBER,
- .ch2 = PWM_LED_NO_CHANNEL,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/liara/vif_override.xml b/board/liara/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/liara/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/lick/battery.c b/board/lick/battery.c
deleted file mode 100644
index fa746a8c9f..0000000000
--- a/board/lick/battery.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all lick battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 5B10Q13163 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* LGC 5B10Q13162 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 181, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L18D3PG1 */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
diff --git a/board/lick/board.c b/board/lick/board.c
deleted file mode 100644
index 4b5608b7b0..0000000000
--- a/board/lick/board.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Lick board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/anx7447.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "util.h"
-#include "battery_smart.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate lid and base sensor into standard reference frame */
-const mat33_fp_t standard_rot_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &standard_rot_ref,
- /* We only use 2g because its resolution is only 8-bits */
- .default_range = 2, /* g */
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &standard_rot_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &standard_rot_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static int board_is_convertible(void)
-{
- return sku_id != 255 && sku_id != 1;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-}
-
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- ccprints("SKU: 0x%04x", sku_id);
-
- board_update_sensor_config_from_sku();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-int board_is_lid_angle_tablet_mode(void)
-{
- return board_is_convertible();
-}
-
-/* Battery functions */
-#define SB_OPTIONALMFG_FUNCTION2 0x3e
-/* Optional mfg function2 */
-#define SMART_QUICK_CHARGE (1<<12)
-/* Quick charge support */
-#define MODE_QUICK_CHARGE_SUPPORT (1<<4)
-
-static void sb_quick_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_BATTERY_MODE, &val);
- if (rv || !(val & MODE_QUICK_CHARGE_SUPPORT))
- return;
-
- rv = sb_read(SB_OPTIONALMFG_FUNCTION2, &val);
- if (rv)
- return;
-
- if (enable)
- val |= SMART_QUICK_CHARGE;
- else
- val &= ~SMART_QUICK_CHARGE;
-
- sb_write(SB_OPTIONALMFG_FUNCTION2, val);
-}
-
-/* Called on AP S3/S0ix -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Normal charge current */
- sb_quick_charge_mode(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3/S0ix transition */
-static void board_chipset_suspend(void)
-{
- /* Quick charge current */
- sb_quick_charge_mode(1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
diff --git a/board/lick/board.h b/board/lick/board.h
deleted file mode 100644
index f377662111..0000000000
--- a/board/lick/board.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Lick board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_LED_COMMON
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* Sensors */
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/lick/build.mk b/board/lick/build.mk
deleted file mode 100644
index 137e208b53..0000000000
--- a/board/lick/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/lick/ec.tasklist b/board/lick/ec.tasklist
deleted file mode 100644
index 6eac78a042..0000000000
--- a/board/lick/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/lick/gpio.inc b/board/lick/gpio.inc
deleted file mode 100644
index ad6773a211..0000000000
--- a/board/lick/gpio.inc
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-/*
- * High-to-low transition on POWER_BUTTON_L is treated as a wake event from
- * hibernate. Absence of GPIO_HIB_WAKE_HIGH flag is treated as wake on
- * high-to-low edge.
- */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_RED_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_GREEN_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(PWR_LED_WHITE_L, PIN(D, 7), GPIO_OUT_HIGH) /* LED_3_L */
-
-/* Not implemented in hardware */
-UNIMPLEMENTED(KB_BL_PWR_EN)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Camera */
-GPIO(EC_GPIO_03, PIN(0, 3), GPIO_INPUT) /* TP only */
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-/* Misc. */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Unused pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_GPIO97, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/lick/led.c b/board/lick/led.c
deleted file mode 100644
index a55a3e989e..0000000000
--- a/board/lick/led.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Lick
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/lick/vif_override.xml b/board/lick/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/lick/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/lindar/battery.c b/board/lindar/battery.c
deleted file mode 100644
index 503b2f11c0..0000000000
--- a/board/lindar/battery.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 332, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L19L4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- /*
- * voltage min value and precharge current value are
- * specified by LGC directly and not shown in the SPEC.
- */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .device_name = "L19D4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 333, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
-
-__override bool board_battery_is_initialized(void)
-{
- bool batt_initialization_state;
- int batt_status;
-
- batt_initialization_state = (battery_status(&batt_status) ? false :
- !!(batt_status & STATUS_INITIALIZED));
- return batt_initialization_state;
-}
-
diff --git a/board/lindar/board.c b/board/lindar/board.c
deleted file mode 100644
index 030940cfb1..0000000000
--- a/board/lindar/board.c
+++ /dev/null
@@ -1,600 +0,0 @@
-/* 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.
- */
-
-/* lindar board-specific configuration */
-#include "button.h"
-#include "cbi_ec_fw_config.h"
-#include "common.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tusb422.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Malefor if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_NO_A,
-};
-
-static void board_init(void)
-{
- if (ec_cfg_has_tabletmode()) {
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_EC_IMU_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /*
- * TODO: b/154447182 - Malefor will control power LED and battery LED
- * independently, and keep the max brightness of power LED and battery
- * LED as 50%.
- */
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int board_is_i2c_port_powered(int port)
-{
- if (port != I2C_PORT_LIGHTBAR)
- return 1;
-
- /*
- * Lightbar rails are off in S5/G3
- * Refer CL-2739008.
- */
- return chipset_in_state(CHIPSET_STATE_ANY_OFF) ? 0 : 1;
-}
-
-int board_is_lid_angle_tablet_mode(void)
-{
- return ec_cfg_has_tabletmode();
-}
-
-/* Enable or disable input devices, based on tablet mode or chipset state */
-__override void lid_angle_peripheral_enable(int enable)
-{
- if (ec_cfg_has_tabletmode()) {
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF) ||
- tablet_get_mode())
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-/******************************************************************************/
-/* Sensors */
-/* Lid and base Sensor mutex */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* Lid and base accel private data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate lid and base sensor into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_EC_IMU_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_EC_IMU_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (100 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- [EC_TEMP_THRESH_HALT] = C_TO_K(100),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- },
- .temp_fan_off = C_TO_K(30),
- .temp_fan_max = C_TO_K(60),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 100c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- [EC_TEMP_THRESH_HALT] = C_TO_K(100),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- },
- .temp_fan_off = C_TO_K(30),
- .temp_fan_max = C_TO_K(60),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "lightbar",
- .port = I2C_PORT_LIGHTBAR,
- .kbps = 400,
- .scl = GPIO_EC_I2C3_LEDBAR_SCL,
- .sda = GPIO_EC_I2C3_LEDBAR_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /* Run at a higher frequency than the color PWM signals to avoid
- * timing-based color shifts.
- */
- .freq = 4800,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void kb_backlight_enable(void)
-{
- if (ec_cfg_has_keyboard_backlight() == 1)
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- if (ec_cfg_has_keyboard_backlight() == 1)
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0
- | TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = NULL,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-
- if (get_board_id() <= 1) {
- tcpc_config[USBC_PORT_C0].i2c_info.addr_flags =
- TUSB422_I2C_ADDR_FLAGS;
- tcpc_config[USBC_PORT_C0].drv = &tusb422_tcpm_drv;
- tcpc_config[USBC_PORT_C0].flags = 0;
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/lindar/board.h b/board/lindar/board.h
deleted file mode 100644
index d89d33582e..0000000000
--- a/board/lindar/board.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-
-#undef CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_MUTE_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define CONFIG_I2C_BUS_MAY_BE_UNPOWERED
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_LIGHTBAR NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED4_SIDESEL = 0,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/lindar/build.mk b/board/lindar/build.mk
deleted file mode 100644
index 43b40c644c..0000000000
--- a/board/lindar/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
diff --git a/board/lindar/ec.tasklist b/board/lindar/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/lindar/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/lindar/gpio.inc b/board/lindar/gpio.inc
deleted file mode 100644
index 246b83cd3f..0000000000
--- a/board/lindar/gpio.inc
+++ /dev/null
@@ -1,179 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(EC_ACCEL_INT_L, PIN(8, 1), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_MUTE_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* HW_ID PIN */
-GPIO(HW_ID, PIN(D, 4), GPIO_INPUT)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-
-
-/* The EC does not buffer this signal on Volteer. */
-UNIMPLEMENTED(PCH_DSW_PWROK)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-UNIMPLEMENTED(EC_PROCHOT_IN_L)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset on boards board ID >=1 */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknoledgement */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_LEDBAR_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_LEDBAR_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* LED */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery - Green LED */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery - Red LED */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH) /* Power - White LED */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
-
-/* Unused signals */
-GPIO(UNUSED_GPIO60, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF3, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/lindar/ktd20xx.h b/board/lindar/ktd20xx.h
deleted file mode 100644
index ad93ee3de8..0000000000
--- a/board/lindar/ktd20xx.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright 2021 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.
- *
- * Public header for Kinetic 36-Channel RGB LED Drivers with I2C control,
- * including KTD2061/58/59/60.
- */
-
-#ifndef __CROS_EC_DRIVER_RGB_LED_DRIVER_KTD20XX_PUBLIC_H
-#define __CROS_EC_DRIVER_RGB_LED_DRIVER_KTD20XX_PUBLIC_H
-
-/*
- * KTD20xx Register Definition
- *
- * Reg0x00: ID Data Register
- * skip...
- * Reg0x01: MONITOR Status Register
- * skip...
- * Reg0x02: CONTROL Configuration Register
- * BIT7:6 is EN_MODE[1:0]
- * 00 = global off, 01 = Night mode,
- * 10 = Normal mode, 11 = reset as default
- * BIT5 is BrightExtendTM Enable
- * 0 = disable/1 = enable
- * BIT4:3 is CoolExtendTM Temperature Setting
- * 00 = 135°C rising, 01 = 120°C
- * 10 = 105°C, 11 = 90°C
- * BIT2:0 is Fade Rate Exponential Time-Constant Setting
- * 000 = 31ms, 001 = 63ms, 010 = 125ms, 011 = 250ms
- * 100 = 500ms, 101 = 1s, 110 = 2s, 111 = 4s
- *
- * Reg0x03: IRED0 Color Configuration Register
- * IRED_SET0[7:0] Red Current Setting 0
- * 0000 0000 = 0μA
- * 0000 0001 = 125μA
- * ...
- * 0010 1000 = 5mA
- * ...
- * 1100 0000 = 24mA
- * 1100 0001 = 24mA (reads back as 1100 0000)
- * ...
- * 1111 1111 = 24mA (reads back as 1100 0000)
- * Reg0x04: IGRN0 Color Configuration Register
- * IGRN_SET0[7:0] Green Current Setting 0
- * Reg0x05: IBLU0 Color Configuration Register
- * IBLU_SET0[7:0] Blue Current Setting 0
- * Reg0x06: IRED1 Color Configuration Register
- * IRED_SET1[7:0] Red Current Setting 1
- * Reg0x07: IGRN1 Color Configuration Register
- * IGRN_SET1[7:0] Green Current Setting 1
- * Reg0x08: IBLU1 Color Configuration Register
- * IBLU_SET1[7:0] Blue Current Setting 1
- *
- * Reg0x09: ISELA12 Selection Configuration Register
- * BIT7 is ENA1, Enable RGB with anode connected to LEDA1 pin
- * 0 = use 0μA for these LEDs (includes fade to 0μA)
- * 1 = use the settings selected by RGBA1_SEL[2:0]
- * BIT6:4 is RGBA1_SEL[2:0]
- * Current Selection for RGB with anode connected to LEDA1 pin
- * 0XX = I LEDA3 selects IRED_SET0[7:0]
- * 1XX = I LEDA3 selects IRED_SET1[7:0]
- * X0X = I LEDA2 selects IGRN_SET0[7:0]
- * X1X = I LEDA2 selects IGRN_SET1[7:0]
- * XX0 = I LEDA4 selects IBLU_SET0[7:0]
- * XX1 = I LEDA4 selects IBLU_SET1[7:0]
- * BIT3 IS ENA2
- * 0 = use 0μA for these LEDs (includes fade to 0μA)
- * 1 = use the settings selected by RGBA2_SEL[2:0]
- * BIT2:0 is RGBA2_SEL[2:0]
- * Current Selection for RGB with anode connected to LEDA2 pin
- * 0XX = I LEDA4 selects IRED_SET0[7:0]
- * 1XX = I LEDA4 selects IRED_SET1[7:0]
- * X0X = I LEDA3 selects IGRN_SET0[7:0]
- * X1X = I LEDA3 selects IGRN_SET1[7:0]
- * XX0 = I LEDA1 selects IBLU_SET0[7:0]
- * XX1 = I LEDA1 selects IBLU_SET1[7:0]
- * Reg0x0A: ISELA34 Selection Configuration Register
- * BIT7 is ENA3, Enable RGB with anode connected to LEDA3 pin
- * 0 = use 0μA for these LEDs (includes fade to 0μA)
- * 1 = use the settings selected by RGBA3_SEL[2:0]
- * BIT6:4 is RGBA3_SEL[2:0]
- * Current Selection for RGB with anode connected to LEDA3 pin
- * 0XX = I LEDA1 selects IRED_SET0[7:0]
- * 1XX = I LEDA1 selects IRED_SET1[7:0]
- * X0X = I LEDA4 selects IGRN_SET0[7:0]
- * X1X = I LEDA4 selects IGRN_SET1[7:0]
- * XX0 = I LEDA2 selects IBLU_SET0[7:0]
- * XX1 = I LEDA2 selects IBLU_SET1[7:0]
- * BIT3 IS ENA4
- * 0 = use 0μA for these LEDs (includes fade to 0μA)
- * 1 = use the settings selected by RGBA4_SEL[2:0]
- * BIT2:0 is RGBA4_SEL[2:0]
- * Current Selection for RGB with anode connected to LEDA4 pin
- * 0XX = I LEDA2 selects IRED_SET0[7:0]
- * 1XX = I LEDA2 selects IRED_SET1[7:0]
- * X0X = I LEDA1 selects IGRN_SET0[7:0]
- * X1X = I LEDA1 selects IGRN_SET1[7:0]
- * XX0 = I LEDA3 selects IBLU_SET0[7:0]
- * XX1 = I LEDA3 selects IBLU_SET1[7:0]
- * Reg0x0B: ISELB12 Selection Configuration Register
- * BIT7 is ENB1, Enable RGB with anode connected to LEDB1 pin
- * 0 = use 0μA for these LEDs (includes fade to 0μA)
- * 1 = use the settings selected by RGB1_SEL[2:0]
- * BIT6:4 is RGBB1_SEL[2:0]
- * Current Selection for RGB with anode connected to LEDB1 pin
- * 0XX = I LEDB3 selects IRED_SET0[7:0]
- * 1XX = I LEDB3 selects IRED_SET1[7:0]
- * X0X = I LEDB2 selects IGRN_SET0[7:0]
- * X1X = I LEDB2 selects IGRN_SET1[7:0]
- * XX0 = I LEDB4 selects IBLU_SET0[7:0]
- * XX1 = I LEDB4 selects IBLU_SET1[7:0]
- * BIT3 IS ENB2
- * ...
- * Reg0x0C: ISELB34 Selection Configuration Register
- * ...
- * Reg0x0D: ISELC12 Selection Configuration Register
- * ...
- * Reg0x0E: ISELC34 Selection Configuration Register
- * ...
- */
-
-enum ktd20xx_register {
- KTD20XX_ID_DATA = 0x00,
- KTD20XX_STATUS_REG = 0x01,
- KTD20XX_CTRL_CFG = 0x02,
- KTD20XX_IRED_SET0 = 0x03,
- KTD20XX_IGRN_SET0 = 0x04,
- KTD20XX_IBLU_SET0 = 0x05,
- KTD20XX_IRED_SET1 = 0x06,
- KTD20XX_IGRN_SET1 = 0x07,
- KTD20XX_IBLU_SET1 = 0x08,
- KTD20XX_ISEL_A12 = 0x09,
- KTD20XX_ISEL_A34 = 0x0A,
- KTD20XX_ISEL_B12 = 0x0B,
- KTD20XX_ISEL_B34 = 0x0C,
- KTD20XX_ISEL_C12 = 0x0D,
- KTD20XX_ISEL_C34 = 0x0E,
- KTD20XX_TOTOAL_REG
-};
-
-#endif /* __CROS_EC_DRIVER_RGB_LED_DRIVER_KTD20XX_PUBLIC_H */
diff --git a/board/lindar/led.c b/board/lindar/led.c
deleted file mode 100644
index 6d602d5c4e..0000000000
--- a/board/lindar/led.c
+++ /dev/null
@@ -1,793 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Malefor
- */
-
-#include "cbi_ssfc.h"
-#include "charge_state.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "ktd20xx.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "lid_switch.h"
-#include "stdbool.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-static const uint16_t ktd2061_i2c_addr = 0x68;
-static void controller_write(uint8_t reg, uint8_t val)
-{
- uint8_t buf[2];
-
- buf[0] = reg;
- buf[1] = val;
-
- i2c_xfer_unlocked(I2C_PORT_LIGHTBAR, ktd2061_i2c_addr,
- buf, 2, 0, 0,
- I2C_XFER_SINGLE);
-}
-
-enum lightbar_states {
- LB_STATE_OFF,
- LB_STATE_LID_CLOSE,
- LB_STATE_SLEEP_AC_ONLY,
- LB_STATE_SLEEP_AC_BAT_LOW,
- LB_STATE_SLEEP_AC_BAT_LV1,
- LB_STATE_SLEEP_AC_BAT_LV2,
- LB_STATE_SLEEP_AC_BAT_LV3,
- LB_STATE_SLEEP_AC_BAT_LV4,
- LB_STATE_SLEEP_BAT_LOW,
- LB_STATE_SLEEP_BAT_ONLY,
- LB_STATE_S0_AC_ONLY,
- LB_STATE_S0_BAT_LOW,
- LB_STATE_S0_BAT_LV1,
- LB_STATE_S0_BAT_LV2,
- LB_STATE_S0_BAT_LV3,
- LB_STATE_S0_BAT_LV4,
- LB_NUM_STATES
-};
-
-/*
- * All lightbar states should have one phase defined,
- * and an additional phase can be defined for blinking
- */
-enum lightbar_phase {
- LIGHTBAR_PHASE_0 = 0,
- LIGHTBAR_PHASE_1 = 1,
- LIGHTBAR_NUM_PHASES
-};
-
-enum ec_lightbar_colors {
- BAR_RESET,
- BAR_OFF,
- BAR_COLOR_ORG_20_PERCENT,
- BAR_COLOR_GRN_40_PERCENT,
- BAR_COLOR_GRN_60_PERCENT,
- BAR_COLOR_GRN_80_PERCENT,
- BAR_COLOR_GRN_FULL,
- BAR_COLOR_ORG_FULL,
- LIGHTBAR_COLOR_TOTAL
-};
-
-struct lightbar_descriptor {
- enum ec_lightbar_colors color;
- uint8_t ticks;
-};
-
-#define BAR_INFINITE UINT8_MAX
-#define LIGHTBAR_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-#define LIGHTBAR_COUNT_FOR_RESUME_FROM_SLEEP (3 * LIGHTBAR_ONE_SEC)
-int lightbar_resume_tick;
-
-const struct lightbar_descriptor
- lb_table[LB_NUM_STATES][LIGHTBAR_NUM_PHASES] = {
- [LB_STATE_OFF] = {{BAR_OFF, BAR_INFINITE} },
- [LB_STATE_LID_CLOSE] = {{BAR_OFF, BAR_INFINITE} },
- [LB_STATE_SLEEP_AC_ONLY] = {{BAR_OFF, BAR_INFINITE} },
- [LB_STATE_SLEEP_AC_BAT_LOW] = {{BAR_COLOR_ORG_20_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_SLEEP_AC_BAT_LV1] = {{BAR_COLOR_GRN_40_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_SLEEP_AC_BAT_LV2] = {{BAR_COLOR_GRN_60_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_SLEEP_AC_BAT_LV3] = {{BAR_COLOR_GRN_80_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_SLEEP_AC_BAT_LV4] = {{BAR_COLOR_GRN_FULL, BAR_INFINITE} },
- [LB_STATE_SLEEP_BAT_LOW] = {{BAR_OFF, 5 * LIGHTBAR_ONE_SEC},
- {BAR_COLOR_ORG_FULL, LIGHTBAR_ONE_SEC} },
- [LB_STATE_SLEEP_BAT_ONLY] = {{BAR_OFF, BAR_INFINITE} },
- [LB_STATE_S0_AC_ONLY] = {{BAR_OFF, BAR_INFINITE} },
- [LB_STATE_S0_BAT_LOW] = {{BAR_COLOR_ORG_20_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_S0_BAT_LV1] = {{BAR_COLOR_GRN_40_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_S0_BAT_LV2] = {{BAR_COLOR_GRN_60_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_S0_BAT_LV3] = {{BAR_COLOR_GRN_80_PERCENT,
- BAR_INFINITE} },
- [LB_STATE_S0_BAT_LV4] = {{BAR_COLOR_GRN_FULL, BAR_INFINITE} },
-};
-
-#define DISABLE_LIGHTBAR 0x00
-#define ENABLE_LIGHTBAR 0x80
-#define I_OFF 0x00
-#define GRN_I_ON 0x1E
-#define ORG_I_ON 0x28
-#define SEL_OFF 0x00
-#define SEL_1ST_LED BIT(7)
-#define SEL_2ND_LED BIT(3)
-#define SEL_BOTH (SEL_1ST_LED | SEL_2ND_LED)
-#define SKU_ID_NONE 0x00
-#define SKU_ID_INVALID 0x01
-#define LB_SUPPORTED_SKUID_LOWER 458700
-#define LB_SUPPORTED_SKUID_UPPER 458800
-
-static bool lightbar_is_supported(void)
-{
- static uint32_t skuid = SKU_ID_NONE;
- bool result;
-
- /* lindar add SSFC tag to cbi image from "board_id = 3". */
- if (get_board_id() >= 3) {
- if (get_cbi_ssfc_lightbar() == SSFC_LIGHTBAR_NONE)
- return false;
- return true;
- }
-
- if (skuid == SKU_ID_NONE) {
- if (cbi_get_sku_id(&skuid)) {
- CPRINTS("Cannot get skuid for lightbar supported");
- skuid = SKU_ID_INVALID;
- }
- }
-
- /*
- * If board_id = 1 or 2, it needs to check sku_id to know
- * if system support lightbar or not.
- */
- if (skuid >= LB_SUPPORTED_SKUID_LOWER &&
- skuid <= LB_SUPPORTED_SKUID_UPPER)
- result = true;
- else
- result = false;
-
- return result;
-}
-
-/*
- * lightbar_enter_s0ix_s3:
- * This flag is used to know if system ever enter S0ix/S3.
- * Lightbar V9 SPEC define lightbar resuming behavior, "S0ix/S3 -> S0",
- * but not include "G3/S5/S4 -> S0". "G3/S5/S4 -> S0" need to keep off.
- */
-static bool lightbar_enter_s0ix_s3;
-
-/*
- * lightbar_auto_control:
- * We need some command for testing lightbar in factory.
- * So, create this flag to stop regular action in lightbar_update().
- *
- * lightbar_demo_state:
- * It's used for testing lightbar via executing command under
- * console.
- */
-static bool lightbar_auto_control;
-static enum lightbar_states lightbar_demo_state;
-
-static void lightbar_set_auto_control(bool state)
-{
- lightbar_auto_control = state;
-}
-
-static bool lightbar_is_auto_control(void)
-{
- return lightbar_auto_control;
-}
-
-static void lightbar_set_demo_state(enum lightbar_states tmp_state)
-{
- if (tmp_state >= LB_NUM_STATES || tmp_state < LB_STATE_OFF) {
- lightbar_demo_state = LB_NUM_STATES;
- lightbar_resume_tick = 0;
- } else {
- lightbar_demo_state = tmp_state;
-
- if (lightbar_demo_state >= LB_STATE_S0_AC_ONLY)
- lightbar_resume_tick =
- LIGHTBAR_COUNT_FOR_RESUME_FROM_SLEEP;
- }
- ccprintf("lightbar_demo_state = %d; lightbar_resume_tick %d.\n",
- lightbar_demo_state,
- lightbar_resume_tick);
-}
-
-static enum lightbar_states lightbar_get_demo_state(void)
-{
- /*
- * Once tick count to zero, it needs to return LB_STATE_OFF to
- * simulate lightbar off.
- */
- if ((lightbar_demo_state != LB_NUM_STATES) &&
- (lightbar_demo_state >= LB_STATE_S0_AC_ONLY) &&
- (lightbar_resume_tick == 0))
- return LB_STATE_OFF;
-
- return lightbar_demo_state;
-}
-
-static bool lightbar_is_enabled(void)
-{
- if (!lightbar_is_supported())
- return false;
-
- /*
- * Lightbar's I2C is powered by PP3300_A, and its power will be turn
- * when system enter S4/S5. It may get I2C error if EC keep polling
- * lightbar. We should stop it when EC doesn't turn on PP330_A.
- */
- if (!board_is_i2c_port_powered(I2C_PORT_LIGHTBAR))
- return false;
-
- return true;
-}
-
-/*
- * From "board_id = 3", HW change lightbar circuit, and it only support
- * two colors, orange (amber) and green. It connects KTD20xx's red-channel
- * green color led, and green-channel to orange color led.
- * Blue-channel is unused.
- *
- * The configuration format of lightbar_xx_led_cfg's is as below.
- * ID_DAT, STATUS_REG, CTRL_CFG
- * IRED_SET0, IGRN_SET0, IBLU_SET0, IRED_SET1, IGRN_SET1, IBLU_SET1
- * ISEL_A12, ISEL_A34, ISEL_B12, ISEL_B34, ISEL_C12, ISEL_C34
- */
-const uint8_t lightbar_10_led_cfg[LIGHTBAR_COLOR_TOTAL][KTD20XX_TOTOAL_REG] = {
- [BAR_RESET] = {
- 0x00, 0x00, DISABLE_LIGHTBAR,
- I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF
- },
- [BAR_OFF] = {
- 0x00, 0x00, DISABLE_LIGHTBAR,
- I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_ORG_20_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_OFF, SEL_BOTH, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_GRN_40_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_GRN_60_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_BOTH, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_GRN_80_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_GRN_FULL] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF
- },
- [BAR_COLOR_ORG_FULL] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF
- }
-};
-
-const uint8_t lightbar_12_led_cfg[LIGHTBAR_COLOR_TOTAL][KTD20XX_TOTOAL_REG] = {
- [BAR_RESET] = {
- 0x00, 0x00, DISABLE_LIGHTBAR,
- I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF
- },
- [BAR_OFF] = {
- 0x00, 0x00, DISABLE_LIGHTBAR,
- I_OFF, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_ORG_20_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_2ND_LED, SEL_BOTH, SEL_OFF, SEL_OFF, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_GRN_40_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_2ND_LED, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_GRN_60_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_2ND_LED, SEL_BOTH, SEL_OFF, SEL_OFF
- },
- [BAR_COLOR_GRN_80_PERCENT] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_OFF, SEL_2ND_LED
- },
- [BAR_COLOR_GRN_FULL] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- GRN_I_ON, I_OFF, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH
- },
- [BAR_COLOR_ORG_FULL] = {
- 0x00, 0x00, ENABLE_LIGHTBAR,
- I_OFF, ORG_I_ON, I_OFF, I_OFF, I_OFF, I_OFF,
- SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH, SEL_BOTH
- }
-};
-
-/*
- * lightbar_ctrl is a pointer to 2-dimension lightbar configuration. It's used
- * to base on DUT type to load different cfg.
- * Default is lightbar_10_led_cfg.
- */
-const uint8_t (*lightbar_ctrl)[KTD20XX_TOTOAL_REG] = lightbar_10_led_cfg;
-
-static void lightbar_set_color(enum ec_lightbar_colors color)
-{
- enum ktd20xx_register i;
-
- if (color >= LIGHTBAR_COLOR_TOTAL) {
- CPRINTS("Lightbar Error! Incorrect lightbard color %d", color);
- color = BAR_RESET;
- }
-
- i2c_lock(I2C_PORT_LIGHTBAR, 1);
- for (i = KTD20XX_IRED_SET0; i <= KTD20XX_ISEL_C34; i++)
- controller_write(i, lightbar_ctrl[color][i]);
-
- controller_write(KTD20XX_CTRL_CFG,
- lightbar_ctrl[color][KTD20XX_CTRL_CFG]);
-
- i2c_lock(I2C_PORT_LIGHTBAR, 0);
-}
-
-static void lightbar_init(void)
-{
- if (!lightbar_is_enabled())
- return;
-
- if (get_cbi_ssfc_lightbar() == SSFC_LIGHTBAR_12_LED)
- lightbar_ctrl = lightbar_12_led_cfg;
- else
- lightbar_ctrl = lightbar_10_led_cfg;
-
- /* Clear this flag if system doesn't enter S0ix/S3 */
- lightbar_enter_s0ix_s3 = false;
- lightbar_resume_tick = 0;
-
- lightbar_set_color(BAR_RESET);
-}
-
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, lightbar_init, HOOK_PRIO_DEFAULT);
-
-static void lightbar_sleep_entry(void)
-{
- if (!lightbar_is_enabled())
- return;
-
- lightbar_set_auto_control(true);
- /*
- * Set this flag, then EC'll base on it to set resume tick after
- * S0ix/S3 exit.
- */
- lightbar_enter_s0ix_s3 = true;
- lightbar_resume_tick = 0;
-
- lightbar_set_color(BAR_RESET);
-}
-
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, lightbar_sleep_entry, HOOK_PRIO_DEFAULT);
-
-static void lightbar_sleep_exit(void)
-{
- if (!lightbar_is_enabled())
- return;
-
- lightbar_set_auto_control(true);
- if (lightbar_enter_s0ix_s3)
- lightbar_resume_tick = LIGHTBAR_COUNT_FOR_RESUME_FROM_SLEEP;
- else
- lightbar_resume_tick = 0;
- lightbar_enter_s0ix_s3 = false;
-}
-
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, lightbar_sleep_exit, HOOK_PRIO_DEFAULT);
-
-#define LB_BAT_THRESHOLD_1 16
-#define LB_BAT_THRESHOLD_2 40
-#define LB_BAT_THRESHOLD_3 60
-#define LB_BAT_THRESHOLD_4 80
-
-static enum lightbar_states lightbar_get_state(void)
-{
- enum lightbar_states new_state = LB_NUM_STATES;
- int cur_bat_percent;
-
- cur_bat_percent = charge_get_percent();
-
- if (!lid_is_open())
- return LB_STATE_LID_CLOSE;
-
- if (lightbar_resume_tick) {
- if ((battery_is_present() == BP_YES) &&
- charge_get_display_charge()) {
- if (cur_bat_percent < LB_BAT_THRESHOLD_1)
- new_state = LB_STATE_S0_BAT_LOW;
- else if (cur_bat_percent < LB_BAT_THRESHOLD_2)
- new_state = LB_STATE_S0_BAT_LV1;
- else if (cur_bat_percent < LB_BAT_THRESHOLD_3)
- new_state = LB_STATE_S0_BAT_LV2;
- else if (cur_bat_percent < LB_BAT_THRESHOLD_4)
- new_state = LB_STATE_S0_BAT_LV3;
- else
- new_state = LB_STATE_S0_BAT_LV4;
- } else
- new_state = LB_STATE_S0_AC_ONLY;
- return new_state;
- }
-
- if (!chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return LB_STATE_OFF;
-
- if (extpower_is_present()) {
- if ((battery_is_present() == BP_YES) &&
- charge_get_display_charge()) {
- if (cur_bat_percent < LB_BAT_THRESHOLD_1)
- new_state = LB_STATE_SLEEP_AC_BAT_LOW;
- else if (cur_bat_percent < LB_BAT_THRESHOLD_2)
- new_state = LB_STATE_SLEEP_AC_BAT_LV1;
- else if (cur_bat_percent < LB_BAT_THRESHOLD_3)
- new_state = LB_STATE_SLEEP_AC_BAT_LV2;
- else if (cur_bat_percent < LB_BAT_THRESHOLD_4)
- new_state = LB_STATE_SLEEP_AC_BAT_LV3;
- else
- new_state = LB_STATE_SLEEP_AC_BAT_LV4;
- } else
- new_state = LB_STATE_SLEEP_AC_ONLY;
- } else {
- if (cur_bat_percent < LB_BAT_THRESHOLD_1)
- new_state = LB_STATE_SLEEP_BAT_LOW;
- else
- new_state = LB_STATE_SLEEP_BAT_ONLY;
- }
-
- return new_state;
-}
-
-#define LIGHTBAR_DEBOUNCE_TICKS 1
-static void lightbar_update(void)
-{
- static uint8_t ticks, period;
- static enum lightbar_states lb_cur_state = LB_NUM_STATES;
- static int debounce_lightbar_state_update;
- enum lightbar_states desired_state;
- int phase;
-
- if (!lightbar_is_enabled())
- return;
-
- if (lightbar_is_auto_control())
- desired_state = lightbar_get_state();
- else {
- desired_state = lightbar_get_demo_state();
- /*
- * Stop to update lb_cur_state if desired_state is equal to
- * LB_NUM_STATES.
- */
- if (desired_state == LB_NUM_STATES)
- return;
- }
-
- if (lightbar_resume_tick)
- lightbar_resume_tick--;
-
- if (desired_state != lb_cur_state &&
- desired_state < LB_NUM_STATES) {
- /* State is changing */
- lb_cur_state = desired_state;
- /* Reset ticks and period when state changes */
- ticks = 0;
-
- period = lb_table[lb_cur_state][LIGHTBAR_PHASE_0].ticks +
- lb_table[lb_cur_state][LIGHTBAR_PHASE_1].ticks;
-
- /*
- * System will be waken up when AC status change in S0ix. Due to
- * EC may be late to update chipset state and cause lightbar
- * flash a while when system transfer to S0. We add to debounce
- * for any lightbar status change.
- * It can make sure lightbar state is ready to to update.
- */
- debounce_lightbar_state_update = LIGHTBAR_DEBOUNCE_TICKS;
- }
-
- /* If this state is undefined, turn lightbar off */
- if (period == 0) {
- CPRINTS("Undefined lightbar behavior for lightbar state %d,"
- "turning off lightbar", lb_cur_state);
- lightbar_set_color(BAR_OFF);
- return;
- }
-
- if (debounce_lightbar_state_update != 0) {
- debounce_lightbar_state_update--;
- return;
- }
-
- /*
- * Determine which phase of the state table to use. The phase is
- * determined if it falls within first phase time duration.
- */
- phase = ticks < lb_table[lb_cur_state][LIGHTBAR_PHASE_0].ticks ? 0 : 1;
- ticks = (ticks + 1) % period;
-
- /* Set the color for the given state and phase */
- lightbar_set_color(lb_table[lb_cur_state][phase].color);
-
-}
-
-DECLARE_HOOK(HOOK_TICK, lightbar_update, HOOK_PRIO_DEFAULT);
-
-/****************************************************************************/
-/* EC console commands for lightbar */
-/****************************************************************************/
-static void lightbar_dump_status(void)
-{
- uint32_t cbi_bid, cbi_skuid;
- int cbi_ssfc_lightbar;
-
- ccprintf("lightbar is %ssupported, %sabled, auto_control: %sabled\n",
- lightbar_is_supported()?"":"un-",
- lightbar_is_enabled()?"en":"dis",
- lightbar_is_auto_control()?"en":"dis");
-
- cbi_bid = get_board_id();
- cbi_get_sku_id(&cbi_skuid);
- cbi_ssfc_lightbar = get_cbi_ssfc_lightbar();
- ccprintf("board id = %d, skuid = %d, ssfc_lightbar = %d\n",
- cbi_bid,
- cbi_skuid,
- cbi_ssfc_lightbar);
-}
-
-#ifdef CONFIG_CONSOLE_CMDHELP
-static int help(const char *cmd)
-{
- ccprintf("Usage:\n");
- ccprintf(" %s - dump lightbar status\n", cmd);
- ccprintf(" %s on - set on lightbar auto control\n",
- cmd);
- ccprintf(" %s off - set off lightbar auto control\n",
- cmd);
- ccprintf(" %s demo [%x - %x] - demo lightbar state\n",
- cmd, LB_STATE_OFF, (LB_NUM_STATES - 1));
- return EC_SUCCESS;
-}
-#endif
-
-static int command_lightbar(int argc, char **argv)
-{
- /* no args = dump lightbar status */
- if (argc == 1) {
- lightbar_dump_status();
- return EC_SUCCESS;
- }
-
- if (!strcasecmp(argv[1], "help")) {
- #ifdef CONFIG_CONSOLE_CMDHELP
- help(argv[0]);
- #endif
- return EC_SUCCESS;
- }
-
- if (!lightbar_is_enabled()) {
- lightbar_dump_status();
- return EC_ERROR_UNIMPLEMENTED;
- }
-
- if (!strcasecmp(argv[1], "on")) {
- lightbar_set_auto_control(true);
- return EC_SUCCESS;
- }
-
- if (!strcasecmp(argv[1], "off")) {
- lightbar_set_auto_control(false);
- lightbar_set_demo_state(LB_NUM_STATES);
- return EC_SUCCESS;
- }
-
- if (!strcasecmp(argv[1], "demo")) {
- int lb_demo_state;
- char *e;
-
- /* Need to disable auto_control before demo */
- if (lightbar_is_auto_control()) {
- ccprintf("Please set off auto control before demo.\n");
- return EC_ERROR_ACCESS_DENIED;
- }
-
- lb_demo_state = 0xff & strtoi(argv[2], &e, 16);
- lightbar_set_demo_state(lb_demo_state);
- return EC_SUCCESS;
- }
-
-#ifdef CONFIG_CONSOLE_CMDHELP
- help(argv[0]);
-#endif
-
- return EC_ERROR_INVAL;
-}
-
-DECLARE_CONSOLE_COMMAND(lightbar, command_lightbar,
- "[help | on | off | demo]",
- "get/set lightbar status");
-
-/****************************************************************************/
-/* EC host commands (ectool) for lightbar */
-/****************************************************************************/
-static enum ec_status lpc_cmd_lightbar(struct host_cmd_handler_args *args)
-{
- const struct ec_params_lightbar *in = args->params;
- int lb_demo_state;
-
- /*
- * HOST_CMD is binded with ectool. From ectool.c, it already define
- * command format.
- * We only base on "off", "on", and "seq" to do what we can do
- * now.
- * Originally, I expect to use "demo", but it limit "in->demo.num"
- * within 0~1. So, adopt "seq" command for basic testing.
- */
- switch (in->cmd) {
- case LIGHTBAR_CMD_OFF:
- lightbar_set_auto_control(false);
- lightbar_set_demo_state(LB_NUM_STATES);
- break;
- case LIGHTBAR_CMD_ON:
- lightbar_set_auto_control(true);
- break;
- case LIGHTBAR_CMD_SEQ:
- lb_demo_state = in->seq.num;
- if (lightbar_is_auto_control()) {
- CPRINTS("Please set off auto control before demo.");
- return EC_RES_ACCESS_DENIED;
- }
- lightbar_set_demo_state(lb_demo_state);
- break;
- default:
- CPRINTS("LB bad cmd 0x%x", in->cmd);
- return EC_RES_INVALID_PARAM;
- }
-
- return EC_RES_SUCCESS;
-}
-
-DECLARE_HOST_COMMAND(EC_CMD_LIGHTBAR_CMD,
- lpc_cmd_lightbar,
- EC_VER_MASK(0));
diff --git a/board/lindar/vif_override.xml b/board/lindar/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/lindar/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/lingcod/battery.c b/board/lingcod/battery.c
deleted file mode 100644
index 7f37c6fe10..0000000000
--- a/board/lingcod/battery.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 332, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L19L4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- /*
- * voltage min value and precharge current value are
- * specified by LGC directly and not shown in the SPEC.
- */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .device_name = "L19D4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 333, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
diff --git a/board/lingcod/board.c b/board/lingcod/board.c
deleted file mode 100644
index c294100b02..0000000000
--- a/board/lingcod/board.c
+++ /dev/null
@@ -1,542 +0,0 @@
-/* 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.
- */
-
-/* Malefor board-specific configuration */
-#include "button.h"
-#include "cbi_ec_fw_config.h"
-#include "common.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Malefor if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_NO_A,
-};
-
-static void board_init(void)
-{
- if (ec_cfg_has_tabletmode()) {
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_EC_IMU_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /*
- * TODO: b/154447182 - Malefor will control power LED and battery LED
- * independently, and keep the max brightness of power LED and battery
- * LED as 50%.
- */
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int board_is_lid_angle_tablet_mode(void)
-{
- return ec_cfg_has_tabletmode();
-}
-
-/* Enable or disable input devices, based on tablet mode or chipset state */
-__override void lid_angle_peripheral_enable(int enable)
-{
- if (ec_cfg_has_tabletmode()) {
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF) ||
- tablet_get_mode())
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-/******************************************************************************/
-/* Sensors */
-/* Lid and base Sensor mutex */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* Lid and base accel private data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate lid and base sensor into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_EC_IMU_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_EC_IMU_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /* Run at a higher frequency than the color PWM signals to avoid
- * timing-based color shifts.
- */
- .freq = 4800,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-void board_reset_pd_mcu(void)
-{
- /* TODO(b/159024035): Malefor: check USB PD reset operation */
-}
-
-__override void board_cbi_init(void)
-{
- /* TODO(b/159024035): Malefor: check FW_CONFIG fields for USB DB type */
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- /* USB-C port 0 doesn't have a retimer */
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/lingcod/board.h b/board/lingcod/board.h
deleted file mode 100644
index c2cef9c50b..0000000000
--- a/board/lingcod/board.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-/* Enabling USB4 mode */
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED4_SIDESEL = 0,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/lingcod/build.mk b/board/lingcod/build.mk
deleted file mode 100644
index 279b2e559e..0000000000
--- a/board/lingcod/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
diff --git a/board/lingcod/ec.tasklist b/board/lingcod/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/lingcod/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/lingcod/gpio.inc b/board/lingcod/gpio.inc
deleted file mode 100644
index 52bce7b2ce..0000000000
--- a/board/lingcod/gpio.inc
+++ /dev/null
@@ -1,163 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-/* The EC does not buffer this signal on Volteer. */
-UNIMPLEMENTED(PCH_DSW_PWROK)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-UNIMPLEMENTED(EC_PROCHOT_IN_L)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset on boards board ID >=1 */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Physical HPD pins are not needed on EC as these are configured by PMC */
-GPIO(USB_C0_DP_HPD, PIN(F, 3), GPIO_INPUT)
-GPIO(USB_C1_DP_HPD, PIN(7, 0), GPIO_INPUT)
-
-/* LED */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery - Green LED */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery - Red LED */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH) /* Power - White LED */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(6, BIT(0)), 0, MODULE_PWM, 0) /* LED_SIDESEL_4_L */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/lingcod/led.c b/board/lingcod/led.c
deleted file mode 100644
index 0f7d37723b..0000000000
--- a/board/lingcod/led.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Malefor
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/lingcod/vif_override.xml b/board/lingcod/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/lingcod/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/lux b/board/lux
deleted file mode 120000
index e61be5c7db..0000000000
--- a/board/lux
+++ /dev/null
@@ -1 +0,0 @@
-poppy \ No newline at end of file
diff --git a/board/madoo/battery.c b/board/madoo/battery.c
deleted file mode 100644
index 92afe149f3..0000000000
--- a/board/madoo/battery.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* 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.
- *
- * Battery pack information
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "extpower.h"
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define SB_SHUTDOWN_DATA 0x0010
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_CosMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_HIGHPOWER;
diff --git a/board/madoo/board.c b/board/madoo/board.c
deleted file mode 100644
index 1c989b859e..0000000000
--- a/board/madoo/board.c
+++ /dev/null
@@ -1,625 +0,0 @@
-/* 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.
- */
-
-/* Madoo board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/nb7v904m.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "keyboard_8042_sharedlib.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void sub_usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_SUB_USB_C1_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
- if (get_cbi_fw_config_keyboard() == CUST_UK2_KB) {
- /*
- * Observed on Shyvana with UK keyboard,
- * \|: 0x0061->0x61->0x56
- * r-ctrl: 0xe014->0x14->0x1d
- */
- uint16_t tmp = get_scancode_set2(4, 0);
-
- set_scancode_set2(4, 0, get_scancode_set2(2, 7));
- set_scancode_set2(2, 7, tmp);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, false);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-static void set_5v_gpio(int level)
-{
- gpio_set_level(GPIO_EN_PP5000, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC.
- */
- set_5v_gpio(!!enable);
-
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ?
- "en" : "dis");
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- reduce
- * our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usbc0_retimer = {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = NB7V904M_I2C_ADDR0,
- .driver = &nb7v904m_usb_redriver_drv,
-};
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = NB7V904M_I2C_ADDR0,
- .driver = &nb7v904m_usb_redriver_drv,
-};
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- }
-};
-
-static void reconfigure_usbmux(void)
-{
- if (system_get_board_version() < 2) {
- CPRINTS("add redriver at usbc0");
- usb_muxes[0].next_mux = &usbc0_retimer;
- }
-}
-DECLARE_HOOK(HOOK_INIT, reconfigure_usbmux, HOOK_PRIO_INIT_I2C+1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (!gpio_get_level(GPIO_SUB_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/madoo/board.h b/board/madoo/board.h
deleted file mode 100644
index 7528f256c0..0000000000
--- a/board/madoo/board.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* 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.
- */
-
-/* Madoo board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_DEDEDE_EC_NPCX796FC
-#include "baseboard.h"
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#undef CONFIG_CHARGER_SINGLE_CHIP
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* GPIO for C1 interrupts, for baseboard use */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_USB_C1_INT_ODL
-
-/* Keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* PWM */
-#define CONFIG_PWM
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_NB7V904M
-
-/* LED */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-enum battery_type {
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_SIMPLO_COS,
- BATTERY_CosMX,
- BATTERY_SAMSUNG_SDI,
- BATTERY_DYNAPACK_COS,
- BATTERY_DYNAPACK_ATL,
- BATTERY_TYPE_COUNT,
-};
-
-/* Keyboard type */
-enum fw_config_keyboard_type {
- COMMON_KB = 0,
- CUST_UK2_KB = 1,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/madoo/build.mk b/board/madoo/build.mk
deleted file mode 100644
index cd002a20e7..0000000000
--- a/board/madoo/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=dedede
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/madoo/cbi_ssfc.c b/board/madoo/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/madoo/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/madoo/cbi_ssfc.h b/board/madoo/cbi_ssfc.h
deleted file mode 100644
index 873b90f993..0000000000
--- a/board/madoo/cbi_ssfc.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t usb_ss_mux : 3;
- uint32_t reserved_2 : 23;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/madoo/ec.tasklist b/board/madoo/ec.tasklist
deleted file mode 100644
index 0aba1fabeb..0000000000
--- a/board/madoo/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/madoo/gpio.inc b/board/madoo/gpio.inc
deleted file mode 100644
index b26c7814ce..0000000000
--- a/board/madoo/gpio.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(SUB_USB_C1_INT_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt) /* C1 interrupt OR 5V power en */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(A, 2), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Button interrupts */
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(7, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(6, 3), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_KB_BL, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(IMVP9_PE, PIN(E, 0), GPIO_OUT_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-
-GPIO(USB_C0_RST_ODL, PIN(9, 7), GPIO_OUT_HIGH) /* currently unused */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/*LEDs*/
-GPIO(BAT_LED_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(BAT_LED_WHITE_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(PWR_LED_WHITE_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EC_CHG_LED_R_Y, PIN(F, 2), GPIO_OUT_HIGH)
-GPIO(EC_CHG_LED_R_W, PIN(F, 3), GPIO_OUT_HIGH)
-
-/*
- * Waddledoo doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO00_NC, PIN(0, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO34_NC, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO37_NC, PIN(3, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO41_NC, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/madoo/led.c b/board/madoo/led.c
deleted file mode 100644
index d6bed74e4b..0000000000
--- a/board/madoo/led.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for madoo
- */
-
-#include "charge_state.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "hooks.h"
-#include "system.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* madoo: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- /* STATE_DISCHARGE_S3 will changed if sku is clamshells */
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_OFF_LVL);
-}
-
-/*
- * Turn off battery LED, if AC is present but battery is not charging.
- * It could be caused by battery's protection like OTP.
- */
-int battery_safety_check(void)
-{
- uint8_t data[6];
- int rv;
-
- /* ignore battery in error state because it has other behavior */
- if (charge_get_state() == PWR_STATE_ERROR)
- return false;
-
- /* turn off LED due to a safety fault */
- rv = sb_read_mfgacc(PARAM_SAFETY_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv)
- return false;
- /*
- * Each bit represents for one safey status, and normally they should
- * all be 0. Data reads from LSB to MSB.
- * data[2] - BIT 7-0
- * AOLDL, AOLD, OCD2, OCD1, OCC2, OCC1, COV, CUV
- *
- * data[3] - BIT 15-8
- * RSVD, CUVC, OTD, OTC, ASCDL, ASCD, ASCCL, ASCC
- *
- * data[4] - BIT 23-16
- * CHGC, OC, RSVD, CTO, RSVD, PTO, RSVD, OTF
- *
- * data[5] - BIT 31-24
- * RSVD, RSVD, OCDL, COVL, UTD, UTC, PCHGC, CHGV
- */
- if (data[2] || data[3] || data[4] || data[5])
- return true;
-
- return false;
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- /* Ports are controlled by different GPIO */
- if (battery_safety_check()) {
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_W, LED_OFF_LVL);
- } else if (charge_manager_get_active_charge_port() == 1 ||
- system_get_board_version() < 3) {
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- } else if (charge_manager_get_active_charge_port() == 0) {
- gpio_set_level(GPIO_EC_CHG_LED_R_W, LED_ON_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_OFF_LVL);
- }
- break;
- case EC_LED_COLOR_AMBER:
- /* Ports are controlled by different GPIO */
- if (battery_safety_check()) {
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_OFF_LVL);
- } else if (charge_get_state() == PWR_STATE_ERROR &&
- system_get_board_version() >= 3) {
- gpio_set_level(GPIO_EC_CHG_LED_R_W, LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_ON_LVL);
- } else if (charge_manager_get_active_charge_port() == 1 ||
- system_get_board_version() < 3) {
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_ON_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_OFF_LVL);
- } else if (charge_manager_get_active_charge_port() == 0) {
- gpio_set_level(GPIO_EC_CHG_LED_R_W, LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_ON_LVL);
- } else if (charge_get_percent() <
- CONFIG_LED_ONOFF_STATES_BAT_LOW) {
- gpio_set_level(GPIO_EC_CHG_LED_R_W, LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_ON_LVL);
- }
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_W, LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/madoo/usb_pd_policy.c b/board/madoo/usb_pd_policy.c
deleted file mode 100644
index 02bb449f60..0000000000
--- a/board/madoo/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/madoo/vif_override.xml b/board/madoo/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/madoo/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/magnemite b/board/magnemite
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/magnemite
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/magolor/battery.c b/board/magolor/battery.c
deleted file mode 100644
index 84f75732ec..0000000000
--- a/board/magolor/battery.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "gpio.h"
-#include "util.h"
-
-/*
- * Battery info for magolor battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP19B8M */
- [BATTERY_AP19B8M] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G024",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13350,
- .voltage_normal = 11610,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP18C7M */
- [BATTERY_AP18C7M] = {
- .fuel_gauge = {
- .manuf_name = "SMP KT00407008",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = 17600,
- .voltage_normal = 15400,
- .voltage_min = 12000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
- /* COSMX AP20CBL Battery Information */
- [BATTERY_COSMX_AP20CBL] = {
- .fuel_gauge = {
- .manuf_name = "COSMX KT0030B002",
- .device_name = "AP20CBL",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC_AP18C8K;
diff --git a/board/magolor/board.c b/board/magolor/board.c
deleted file mode 100644
index 8ecabb551d..0000000000
--- a/board/magolor/board.c
+++ /dev/null
@@ -1,1100 +0,0 @@
-/* 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.
- */
-
-/* Waddledoo board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "driver/retimer/ps8802.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_config.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-#define ADC_VOL_UP_MASK BIT(0)
-#define ADC_VOL_DOWN_MASK BIT(1)
-
-static uint8_t new_adc_key_state;
-
-static void ps8762_chaddr_deferred(void);
-DECLARE_DEFERRED(ps8762_chaddr_deferred);
-
-/******************************************************************************/
-/* USB-A Configuration */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
- GPIO_EN_USB_A1_VBUS,
-};
-
-#ifdef BOARD_MAGOLOR
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff, 0xff, /* full set */
- },
-};
-
-static const struct ec_response_keybd_config magolor_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config magister_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config magpie_keybd = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-static const struct ec_response_keybd_config magma_keybd = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-__override
-uint8_t board_keyboard_row_refresh(void)
-{
- if (gpio_get_level(GPIO_EC_VIVALDIKEYBOARD_ID))
- return 3;
- else
- return 2;
-}
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- if (get_cbi_fw_config_numeric_pad()) {
- if (gpio_get_level(GPIO_EC_VIVALDIKEYBOARD_ID))
- return &magma_keybd;
- else
- return &magpie_keybd;
- }
- else {
- if (gpio_get_level(GPIO_EC_VIVALDIKEYBOARD_ID))
- return &magister_keybd;
- else
- return &magolor_keybd;
- }
-}
-#endif
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void sub_usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- int hdmi_hpd_odl = gpio_get_level(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, !hdmi_hpd_odl);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(73),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_thermal(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_b;
-}
-
-#ifdef BOARD_MAGOLOR
-static void board_update_no_keypad_by_fwconfig(void)
-{
- if (!get_cbi_fw_config_numeric_pad()) {
-#ifndef TEST_BUILD
- /* Disable scanning KSO13 & 14 if keypad isn't present. */
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
- keyscan_config.actual_key_mask[11] = 0xfa;
- keyscan_config.actual_key_mask[12] = 0xca;
-#endif
- }
-}
-#endif
-
-/* Enable HDMI any time the SoC is on */
-static void hdmi_enable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, hdmi_enable, HOOK_PRIO_DEFAULT);
-
-static void hdmi_disable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, hdmi_disable, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-#ifdef BOARD_WADDLEDOO
-static void reconfigure_5v_gpio(void)
-{
- /*
- * b/147257497: On early waddledoo boards, GPIO_EN_PP5000 was swapped
- * with GPIO_VOLUP_BTN_ODL. Therefore, we'll actually need to set that
- * GPIO instead for those boards. Note that this breaks the volume up
- * button functionality.
- */
- if (system_get_board_version() < 0) {
- CPRINTS("old board - remapping 5V en");
- gpio_set_flags(GPIO_VOLUP_BTN_ODL, GPIO_OUT_LOW);
- }
-}
-DECLARE_HOOK(HOOK_INIT, reconfigure_5v_gpio, HOOK_PRIO_INIT_I2C+1);
-#endif /* BOARD_WADDLEDOO */
-
-static void set_5v_gpio(int level)
-{
- int version;
- enum gpio_signal gpio = GPIO_EN_PP5000;
-
- /*
- * b/147257497: On early waddledoo boards, GPIO_EN_PP5000 was swapped
- * with GPIO_VOLUP_BTN_ODL. Therefore, we'll actually need to set that
- * GPIO instead for those boards. Note that this breaks the volume up
- * button functionality.
- */
- if (IS_ENABLED(BOARD_WADDLEDOO)) {
- version = system_get_board_version();
-
- /*
- * If the CBI EEPROM wasn't formatted, assume it's a very early
- * board.
- */
- gpio = version < 0 ? GPIO_VOLUP_BTN_ODL : GPIO_EN_PP5000;
- }
-
- gpio_set_level(gpio, level);
-}
-
-static void ps8762_chaddr_deferred(void)
-{
- /* Switch PS8762 I2C Address to 0x50*/
- if (ps8802_chg_i2c_addr(I2C_PORT_SUB_USB_C1) == EC_SUCCESS)
- CPRINTS("Switch PS8762 address to 0x50 success");
- else
- CPRINTS("Switch PS8762 address to 0x50 failed");
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC.
- */
- set_5v_gpio(!!enable);
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- gpio_set_level(GPIO_SUB_C1_INT_EN_RAILS_ODL, !enable);
- } else {
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ?
- "en" : "dis");
-
- if (!enable)
- return;
- /*
- * Port C1 the PP3300_USB_C1 assert, delay 15ms
- * colud be accessed PS8762 by I2C.
- */
- hook_call_deferred(&ps8762_chaddr_deferred_data, 15 * MSEC);
- }
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CHARGER_NUM - 1;
- else
- return CHARGER_NUM;
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* Matrices to rotate accelerometers into the magister reference. */
-static const mat33_fp_t lid_magister_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-#ifdef BOARD_MAGOLOR
-static const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* ICM426 private data */
-static struct icm_drv_data_t g_icm426xx_data;
-/* KX022 private data */
-static struct kionix_accel_data g_kx022_data;
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-#endif
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- /* Disable i2c on HDMI pins */
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, 0);
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-
- /* Set HDMI and sub-rail enables to output */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL,
- chipset_in_state(CHIPSET_STATE_ON) ?
- GPIO_ODR_LOW : GPIO_ODR_HIGH);
- gpio_set_flags(GPIO_SUB_C1_INT_EN_RAILS_ODL, GPIO_ODR_HIGH);
-
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
-
- /* Enable interrupt for passing through HPD */
- gpio_enable_interrupt(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- } else {
- /* Set SDA as an input */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL,
- GPIO_INPUT);
-
- /* Enable C1 interrupt and check if it needs processing */
- gpio_enable_interrupt(GPIO_SUB_C1_INT_EN_RAILS_ODL);
- check_c1_line();
- }
-
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- if (get_cbi_fw_config_tablet_mode()) {
-#ifdef BOARD_MAGOLOR
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else
- ccprints("BASE GYRO is BMI160");
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID_ACCEL is KX022");
- } else {
- if (system_get_board_version() >= 5) {
- motion_sensors[LID_ACCEL]
- .rot_standard_ref = &lid_magister_ref;
- }
- ccprints("LID_ACCEL is BMA253");
- }
-#endif
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* Initialize THERMAL */
- setup_thermal();
-
-#ifdef BOARD_MAGOLOR
- /* Support Keyboard Pad */
- board_update_no_keypad_by_fwconfig();
-#endif
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void motion_interrupt(enum gpio_signal signal)
-{
-#ifdef BOARD_MAGOLOR
- switch (get_cbi_ssfc_base_sensor()) {
- case SSFC_SENSOR_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case SSFC_SENSOR_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
- #else
- bmi160_interrupt(signal);
-#endif
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8802_I2C_ADDR_FLAGS_CUSTOM,
- .driver = &ps8802_usb_mux_driver,
- }
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (board_get_usb_pd_port_count() > 1 &&
- !gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-int adc_to_physical_value(enum gpio_signal gpio)
-{
- if (gpio == GPIO_VOLUME_UP_L)
- return !!(new_adc_key_state & ADC_VOL_UP_MASK);
- else if (gpio == GPIO_VOLUME_DOWN_L)
- return !!(new_adc_key_state & ADC_VOL_DOWN_MASK);
-
- CPRINTS("Not a volume up or down key");
- return 0;
-}
-
-int button_is_adc_detected(enum gpio_signal gpio)
-{
- return (gpio == GPIO_VOLUME_DOWN_L) || (gpio == GPIO_VOLUME_UP_L);
-}
-
-static void adc_vol_key_press_check(void)
-{
- int volt = adc_read_channel(ADC_SUB_ANALOG);
- static uint8_t old_adc_key_state;
- uint8_t adc_key_state_change;
-
- if (volt > 2400 && volt < 2540) {
- /* volume-up is pressed */
- new_adc_key_state = ADC_VOL_UP_MASK;
- } else if (volt > 2600 && volt < 2740) {
- /* volume-down is pressed */
- new_adc_key_state = ADC_VOL_DOWN_MASK;
- } else if (volt < 2300) {
- /* both volumn-up and volume-down are pressed */
- new_adc_key_state = ADC_VOL_UP_MASK | ADC_VOL_DOWN_MASK;
- } else if (volt > 2780) {
- /* both volumn-up and volume-down are released */
- new_adc_key_state = 0;
- }
- if (new_adc_key_state != old_adc_key_state) {
- adc_key_state_change = old_adc_key_state ^ new_adc_key_state;
- if (adc_key_state_change && ADC_VOL_UP_MASK)
- button_interrupt(GPIO_VOLUME_UP_L);
- if (adc_key_state_change && ADC_VOL_DOWN_MASK)
- button_interrupt(GPIO_VOLUME_DOWN_L);
-
- old_adc_key_state = new_adc_key_state;
- }
-}
-DECLARE_HOOK(HOOK_TICK, adc_vol_key_press_check, HOOK_PRIO_DEFAULT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/magolor/board.h b/board/magolor/board.h
deleted file mode 100644
index c1ef73cc64..0000000000
--- a/board/magolor/board.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/* 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.
- */
-
-/* Waddledoo board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_DEDEDE_EC_NPCX796FC
-#include "baseboard.h"
-
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-
-#ifdef BOARD_MAGOLOR_LEGACY
-/* this change saves 1656 bytes of RW flash space */
-#define CONFIG_CHIP_INIT_ROM_REGION
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#else
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-#endif
-
-/* Remove default commands to free flash space */
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_BATTFAKE
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#undef CONFIG_CMD_CHARGER_DUMP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* GPIO for C1 interrupts, for baseboard use */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_C1_INT_EN_RAILS_ODL
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#ifdef BOARD_MAGOLOR
-
-#define CONFIG_KEYBOARD_KEYPAD
-#endif
-#define CONFIG_PWM_KBLIGHT
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* PWM */
-#define CONFIG_PWM
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* Temp sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_PS8802
-
-/* Common USB-A defines */
-#define USB_PORT_COUNT 2
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_INVERTED
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL GPIO_USB_A1_CHARGE_EN_L
-
-/*******************************************************************************/
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/*
- * I2C pin names for baseboard
- *
- * Note: these lines will be set as i2c on start-up, but this should be
- * okay since they're ODL.
- */
-#define GPIO_EC_I2C_SUB_USB_C1_SCL GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL
-#define GPIO_EC_I2C_SUB_USB_C1_SDA GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-
-#ifdef BOARD_MAGOLOR
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source*/
-#endif
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#ifdef BOARD_MAGOLOR
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#endif
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Volume Button feature */
-#define CONFIG_ADC_BUTTONS
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-enum battery_type {
- BATTERY_AP19B8M,
- BATTERY_AP18C7M,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_COSMX_AP20CBL,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/magolor/build.mk b/board/magolor/build.mk
deleted file mode 100644
index fcf5dec3ed..0000000000
--- a/board/magolor/build.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-# A limited Magolor_legacy boards are reworked with NPCX796FC variant.
-# Set the modify the variant type to match.
-ifeq ($(BOARD),magolor_legacy)
-CHIP_VARIANT:=npcx7m6fc
-else
-CHIP_VARIANT:=npcx7m7fc
-endif
-BASEBOARD:=dedede
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/magolor/cbi_ssfc.c b/board/magolor/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/magolor/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/magolor/cbi_ssfc.h b/board/magolor/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/magolor/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/magolor/ec.tasklist b/board/magolor/ec.tasklist
deleted file mode 100644
index 0aba1fabeb..0000000000
--- a/board/magolor/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/magolor/gpio.inc b/board/magolor/gpio.inc
deleted file mode 100644
index b7b692ca56..0000000000
--- a/board/magolor/gpio.inc
+++ /dev/null
@@ -1,147 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(SUB_C1_INT_EN_RAILS_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt) /* C1 interrupt OR 5V power en */
-GPIO_INT(EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* C1 I2C SDA OR HDMI_HPD */
-
-/* Button interrupts */
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, PIN(9, 2), GPIO_INPUT) /* C1 I2C SCL OR HDMI en */
-
-/* Extra Sub-board I/O pins */
-
-GPIO(EC_SUB_IO_2, PIN(3, 4), GPIO_OUT_LOW)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(6, 3), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_KB_BL, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_VIVALDIKEYBOARD_ID, PIN(4, 0), GPIO_INPUT + GPIO_PULL_DOWN) /* keyboard ID */
-
-/* LED */
-GPIO(LED_B_ODL, PIN(C, 2), GPIO_OUT_HIGH) /* PWM_CH_LED2_BLUE */
-GPIO(LED_G_ODL, PIN(C, 3), GPIO_OUT_HIGH) /* PWM_CH_LED1_GREEN */
-GPIO(LED_R_ODL, PIN(C, 4), GPIO_OUT_HIGH) /* PWM_CH_LED2_ORANGE */
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-
-/* USB pins */
-GPIO(USB_C0_RST_ODL, PIN(9, 7), GPIO_OUT_HIGH) /* currently unused */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(USB_A0_CHARGE_EN_L, PIN(3, 7), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(F, 3), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_A1_VBUS, PIN(F, 2), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-/*
- * Waddledoo doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-UNIMPLEMENTED(VOLDN_BTN_ODL)
-UNIMPLEMENTED(VOLUP_BTN_ODL)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/magolor/led.c b/board/magolor/led.c
deleted file mode 100644
index 5206244073..0000000000
--- a/board/magolor/led.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Magolor
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_R_ODL, LED_ON_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/magolor/usb_pd_policy.c b/board/magolor/usb_pd_policy.c
deleted file mode 100644
index 02bb449f60..0000000000
--- a/board/magolor/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/magolor/vif_override.xml b/board/magolor/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/magolor/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/makomo/battery.c b/board/makomo/battery.c
deleted file mode 100644
index 1b162e93c7..0000000000
--- a/board/makomo/battery.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* LGC L20L3PG2, Gauge IC: RAJ240047A20DNP. */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L20L3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L20D3PG2, Gauge IC: BQ40Z697A. */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L20D3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SIMPLO L20M3PG2, Gauge IC: BQ40Z697A. */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- },
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -40,
- .discharging_max_c = 73,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/makomo/board.c b/board/makomo/board.c
deleted file mode 100644
index 1bb6b134a7..0000000000
--- a/board/makomo/board.c
+++ /dev/null
@@ -1,577 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "keyboard_backlight.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(-1) }
-};
-
-/* sensor private data */
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-const struct it8801_pwm_t it8801_pwm_channels[] = {
- [IT8801_PWM_CH_KBLIGHT] = {.index = 4},
-};
-
-void board_kblight_init(void)
-{
- kblight_register(&kblight_it8801);
-}
-
-bool board_has_kb_backlight(void)
-{
- /* Default enable keyboard backlight */
- return true;
-}
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Battery functions */
-#define SB_SMARTCHARGE 0x26
-/* Quick charge enable bit */
-#define SMART_QUICK_CHARGE 0x02
-/* Quick charge support bit */
-#define MODE_QUICK_CHARGE_SUPPORT 0x01
-
-static void sb_quick_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_SMARTCHARGE, &val);
- if (rv || !(val & MODE_QUICK_CHARGE_SUPPORT))
- return;
-
- if (enable)
- val |= SMART_QUICK_CHARGE;
- else
- val &= ~SMART_QUICK_CHARGE;
-
- sb_write(SB_SMARTCHARGE, val);
-}
-
-/* Called on AP S0iX -> S0 transition */
-static void board_chipset_resume(void)
-{
-#ifndef VARIANT_KUKUI_NO_SENSORS
- if (board_has_kb_backlight())
- ioex_set_level(IOEX_KB_BL_EN, 1);
-#endif
-
- /* Normal charge mode */
- sb_quick_charge_mode(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S0iX transition */
-static void board_chipset_suspend(void)
-{
-#ifndef VARIANT_KUKUI_NO_SENSORS
- if (board_has_kb_backlight())
- ioex_set_level(IOEX_KB_BL_EN, 0);
-#endif
-
- /* Quick charge mode */
- sb_quick_charge_mode(1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return board_get_version() == 1 ? 2 : 1;
-}
-
-int board_get_battery_i2c(void)
-{
- return board_get_version() >= 1 ? 2 : 1;
-}
-
-#ifdef SECTION_IS_RW
-static int it8801_get_target_channel(enum pwm_channel *channel,
- int type, int index)
-{
- switch (type) {
- case EC_PWM_TYPE_GENERIC:
- *channel = index;
- break;
- default:
- return -1;
- }
-
- return *channel >= 1;
-}
-
-static enum ec_status
-host_command_pwm_set_duty(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pwm_set_duty *p = args->params;
- enum pwm_channel channel;
- uint16_t duty;
-
- if (it8801_get_target_channel(&channel, p->pwm_type, p->index))
- return EC_RES_INVALID_PARAM;
-
- duty = (uint32_t) p->duty * 255 / 65535;
- it8801_pwm_set_raw_duty(channel, duty);
- it8801_pwm_enable(channel, p->duty > 0);
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PWM_SET_DUTY,
- host_command_pwm_set_duty,
- EC_VER_MASK(0));
-
-static enum ec_status
-host_command_pwm_get_duty(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pwm_get_duty *p = args->params;
- struct ec_response_pwm_get_duty *r = args->response;
-
- enum pwm_channel channel;
-
- if (it8801_get_target_channel(&channel, p->pwm_type, p->index))
- return EC_RES_INVALID_PARAM;
-
- r->duty = (uint32_t) it8801_pwm_get_raw_duty(channel) * 65535 / 255;
- args->response_size = sizeof(*r);
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PWM_GET_DUTY,
- host_command_pwm_get_duty,
- EC_VER_MASK(0));
-#endif
diff --git a/board/makomo/board.h b/board/makomo/board.h
deleted file mode 100644
index 844fd95292..0000000000
--- a/board/makomo/board.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Configuration for Makomo */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#undef CONFIG_CMD_MFALLOW
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-#undef CONFIG_SYSTEM_UNLOCKED
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#undef I2C_BITBANG_PORT_COUNT
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#define CONFIG_LED_ONOFF_STATES
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ALS
-#define CONFIG_CMD_ACCEL_INFO
-
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#ifdef SECTION_IS_RW
-#define CONFIG_IO_EXPANDER_IT8801_PWM
-#define CONFIG_KEYBOARD_BACKLIGHT
-#endif
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_CHARGER board_get_charger_i2c()
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_BATTERY 2
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_SMP,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- IT8801_PWM_CH_KBLIGHT = 0,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger/battery */
-int board_get_charger_i2c(void);
-int board_get_battery_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/makomo/build.mk b/board/makomo/build.mk
deleted file mode 100644
index 04b88d3d79..0000000000
--- a/board/makomo/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/makomo/ec.tasklist b/board/makomo/ec.tasklist
deleted file mode 100644
index e943459024..0000000000
--- a/board/makomo/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/makomo/gpio.inc b/board/makomo/gpio.inc
deleted file mode 100644
index 287ebbda1f..0000000000
--- a/board/makomo/gpio.inc
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- bmi160_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-IOEX(BAT_LED_GREEN_FULL_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
-IOEX(BAT_LED_RED_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-IOEX(KB_BL_EN, EXPIN(0, 0, 7), GPIO_OUT_LOW)
-
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-
-
-/* SPI1 */
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* SPI2 */
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/makomo/led.c b/board/makomo/led.c
deleted file mode 100644
index 140c31babe..0000000000
--- a/board/makomo/led.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Makomo
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
-led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_GREEN:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_RED:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_ON_LVL);
- break;
- default:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/makomo/vif_override.xml b/board/makomo/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/makomo/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/malefor/battery.c b/board/malefor/battery.c
deleted file mode 100644
index 7f37c6fe10..0000000000
--- a/board/malefor/battery.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 332, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L19L4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- /*
- * voltage min value and precharge current value are
- * specified by LGC directly and not shown in the SPEC.
- */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .device_name = "L19D4PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 333, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
diff --git a/board/malefor/board.c b/board/malefor/board.c
deleted file mode 100644
index 663c5bace9..0000000000
--- a/board/malefor/board.c
+++ /dev/null
@@ -1,595 +0,0 @@
-/* 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.
- */
-
-/* Malefor board-specific configuration */
-#include "button.h"
-#include "cbi_ec_fw_config.h"
-#include "common.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Malefor if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_NO_A,
-};
-
-static void board_init(void)
-{
- if (ec_cfg_has_tabletmode()) {
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_EC_IMU_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /*
- * TODO: b/154447182 - Malefor will control power LED and battery LED
- * independently, and keep the max brightness of power LED and battery
- * LED as 50%.
- */
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int board_is_lid_angle_tablet_mode(void)
-{
- return ec_cfg_has_tabletmode();
-}
-
-/* Enable or disable input devices, based on tablet mode or chipset state */
-__override void lid_angle_peripheral_enable(int enable)
-{
- if (ec_cfg_has_tabletmode()) {
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF) ||
- tablet_get_mode())
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-/******************************************************************************/
-/* Sensors */
-/* Lid and base Sensor mutex */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* Lid and base accel private data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate lid and base sensor into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_EC_IMU_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_EC_IMU_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /* Run at a higher frequency than the color PWM signals to avoid
- * timing-based color shifts.
- */
- .freq = 4800,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* USBC TCPC configuration for port 1 on USB3 board */
-static const struct tcpc_config_t tcpc_config_p1_usb3 = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 | TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
-};
-
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-static const struct usb_mux mux_config_p1_usb3 = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
-};
-
-void board_reset_pd_mcu(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-__override void board_cbi_init(void)
-{
- /* Config DB USB3 */
- tcpc_config[USBC_PORT_C1] = tcpc_config_p1_usb3;
- usb_muxes[USBC_PORT_C1] = mux_config_p1_usb3;
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- /* USB-C port 0 doesn't have a retimer */
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/malefor/board.h b/board/malefor/board.h
deleted file mode 100644
index e21984350d..0000000000
--- a/board/malefor/board.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-/* Enabling USB4 mode */
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_UART2_EC_RX
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED4_SIDESEL = 0,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/malefor/build.mk b/board/malefor/build.mk
deleted file mode 100644
index 279b2e559e..0000000000
--- a/board/malefor/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
diff --git a/board/malefor/ec.tasklist b/board/malefor/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/malefor/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/malefor/gpio.inc b/board/malefor/gpio.inc
deleted file mode 100644
index 6f770eb17a..0000000000
--- a/board/malefor/gpio.inc
+++ /dev/null
@@ -1,163 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-/* The EC does not buffer this signal on Volteer. */
-UNIMPLEMENTED(PCH_DSW_PWROK)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-UNIMPLEMENTED(EC_PROCHOT_IN_L)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset on boards board ID >=1 */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(UART2_EC_RX, PIN(7, 5), GPIO_OUT_LOW)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Physical HPD pins are not needed on EC as these are configured by PMC */
-GPIO(USB_C0_DP_HPD, PIN(F, 3), GPIO_INPUT)
-GPIO(USB_C1_DP_HPD, PIN(7, 0), GPIO_INPUT)
-
-/* LED */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery - Green LED */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery - Red LED */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH) /* Power - White LED */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(6, BIT(0)), 0, MODULE_PWM, 0) /* LED_SIDESEL_4_L */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/malefor/led.c b/board/malefor/led.c
deleted file mode 100644
index 0f7d37723b..0000000000
--- a/board/malefor/led.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Malefor
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/malefor/vif_override.xml b/board/malefor/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/malefor/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/marzipan/battery.c b/board/marzipan/battery.c
deleted file mode 100644
index 3a9a1cbaf1..0000000000
--- a/board/marzipan/battery.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all marzipan battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* COSMX DM02032XL 333-AC-13-A */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-13-A",
- .device_name = "DM02032XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
- /* Simplo DM02032XL 333-AC-13-A */
- [BATTERY_SIMPLO] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-13-A",
- .device_name = "DM02032XL",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_COSMX;
diff --git a/board/marzipan/board.c b/board/marzipan/board.c
deleted file mode 100644
index 915f96743d..0000000000
--- a/board/marzipan/board.c
+++ /dev/null
@@ -1,668 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Marzipan board-specific configuration */
-
-#include "adc_chip.h"
-#include "battery_fuel_gauge.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "pi3usb9201.h"
-#include "power.h"
-#include "power/qcom.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_config.h"
-#include "usbc_ocp.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#include "gpio_list.h"
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Use 80 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /*
- * Unmask 0x08 in [0] (KSO_00/KSI_03, the new location of Search key);
- * as it still uses the legacy location (KSO_01/KSI_00).
- */
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca
- },
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
-};
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Mutexes */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-static struct accelgyro_saved_data_t g_bma255_data;
-
-enum base_accelgyro_type {
- BASE_GYRO_NONE = 0,
- BASE_GYRO_BMI160 = 1,
- BASE_GYRO_ICM426XX = 2,
-};
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref_bmi160 = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref_icm426xx = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref_bma255 = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref_kx022 = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref_bma255,
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_bmi160,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_bmi160,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref_kx022,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref_icm426xx,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3_S5,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm426xx,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-static int base_accelgyro_config;
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_accelgyro_config) {
- case BASE_GYRO_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case BASE_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-static void board_detect_motionsensor(void)
-{
- int ret;
- int val;
-
- /* Check lid accel chip */
- ret = i2c_read8(I2C_PORT_SENSOR, BMA2x2_I2C_ADDR1_FLAGS,
- BMA2x2_CHIP_ID_ADDR, &val);
- if (ret)
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
-
- CPRINTS("Lid Accel: %s", ret ? "KX022" : "BMA255");
-
- /* Check base accelgyro chip */
- ret = icm_read8(&icm426xx_base_accel, ICM426XX_REG_WHO_AM_I, &val);
- if (val == ICM426XX_CHIP_ICM40608) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- }
-
- base_accelgyro_config = (val == ICM426XX_CHIP_ICM40608)
- ? BASE_GYRO_ICM426XX : BASE_GYRO_BMI160;
- CPRINTS("Base Accelgyro: %s", (val == ICM426XX_CHIP_ICM40608)
- ? "ICM40608" : "BMI160");
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-
- board_detect_motionsensor();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- int i;
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
diff --git a/board/marzipan/board.h b/board/marzipan/board.h
deleted file mode 100644
index 3ef8952ee5..0000000000
--- a/board/marzipan/board.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Marzipan board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-
-#define CONFIG_PWM_KBLIGHT
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_PS8755
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* ICM426XX Base accel/gyro */
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* KX022 lid accel */
-#define CONFIG_ACCEL_KX022
-
-/* BMA253 lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PMIC_RESIN_L GPIO_PM845_RESIN_L
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_DISPLIGHT,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_COSMX,
- BATTERY_SIMPLO,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-/* Motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/marzipan/build.mk b/board/marzipan/build.mk
deleted file mode 100644
index 09853a26d7..0000000000
--- a/board/marzipan/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y+=battery.o
-board-y+=board.o
-board-y+=led.o
-board-y+=switchcap.o
-board-y+=usbc_config.o
diff --git a/board/marzipan/ec.tasklist b/board/marzipan/ec.tasklist
deleted file mode 100644
index 5beeb38feb..0000000000
--- a/board/marzipan/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/marzipan/gpio.inc b/board/marzipan/gpio.inc
deleted file mode 100644
index 11fa6b5a53..0000000000
--- a/board/marzipan/gpio.inc
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-
-/* System interrupts */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-/* Sensor interrupts */
-GPIO_INT(TABLET_MODE_L, PIN(C, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, motion_interrupt) /* Accelerometer/gyro interrupt */
-
-/*
- * EC_RST_ODL used to be a wake source from PSL mode. However, we disabled
- * the PSL mode. This GPIO does nothing now. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PM845_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-GPIO(QSIP_ON, PIN(5, 0), GPIO_OUT_LOW) /* Not used, for non-switchcap testing */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap; will be configured in the board init */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Sensors */
-GPIO(LID_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT) /* Lid accel sensor interrupt */
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(7, 4), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_ODR_HIGH) /* Port-0 TCPC chip reset, actaully Open-Drain */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_ODR_HIGH) /* Port-1 TCPC chip reset, actually Open-Drain */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C1, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_B_C1, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(KB_BL_PWM, PIN(8, 0), GPIO_INPUT) /* PWM3 */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Switchcap */
-/*
- * GPIO0 is configured as PVC_PG. When the chip in power down mode, it outputs
- * high-Z. Set pull-down to avoid floating.
- */
-GPIO(DA9313_GPIO0, PIN(E, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* Switchcap GPIO0 */
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(0, 4))
-UNUSED(PIN(C, 0))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(3, 7))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(6, 2))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(6, 0))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(D, 3))
-UNUSED(PIN(8, 6))
-UNUSED(PIN(7, 5))
-UNUSED(PIN(D, 1))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-
-/* Keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* Keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO10 (GPIO07), KSO11 (GPIO06), KSO12 (GPIO05) */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO03 (GPIO16), KSO04 (GPIO15), KSO05 (GPIO14), KSO06 (GPIO13), KSO07 (GPIO12), KSO08 (GPIO11), KSO09 (GPIO10) */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO00 (GPIO21), KSO01 (GPIO20) */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI2 (GPIO27), KSI3 (GPIO26), KSI4 (GPIO25), KSI5 (GPIO24), KSI6 (GPIO23), KSI7 (GPIO22) */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI0 (GPIO31), KSI1 (GPIO30) */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2) /* KSO02 (GPIO17) */
diff --git a/board/marzipan/led.c b/board/marzipan/led.c
deleted file mode 100644
index e4b34576c8..0000000000
--- a/board/marzipan/led.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_BLUE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_Y_C1,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_EC_CHG_LED_B_C1,
- (color == LED_BLUE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color(LED_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(LED_AMBER);
- else
- led_set_color(LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- int color = LED_OFF;
- int period = 0;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate amber on when charging. */
- color = LED_AMBER;
- break;
- case PWR_STATE_DISCHARGE:
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Discharging in S3: Amber 1 sec, off 3 sec */
- period = (1 + 3) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_AMBER;
- else
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- /* Discharging in S5: off */
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ON)) {
- /* Discharging in S0: Blue on */
- color = LED_BLUE;
- }
- break;
- case PWR_STATE_ERROR:
- /* Battery error: Amber 1 sec, off 1 sec */
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_AMBER;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- /* Full Charged: Blue on */
- color = LED_BLUE;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode: Blue 2 sec, Amber 2 sec */
- period = (2 + 2) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2 * LED_ONE_SEC)
- color = LED_BLUE;
- else
- color = LED_AMBER;
- } else
- color = LED_BLUE;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_BLUE : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color(color);
-}
diff --git a/board/marzipan/switchcap.c b/board/marzipan/switchcap.c
deleted file mode 100644
index 26009d55d8..0000000000
--- a/board/marzipan/switchcap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "config.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "power/qcom.h"
-#include "system.h"
-
-#define CPRINTS(format, args...) cprints(CC_I2C, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_I2C, format, ## args)
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_ON);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return gpio_get_level(GPIO_DA9313_GPIO0);
-}
diff --git a/board/marzipan/usbc_config.c b/board/marzipan/usbc_config.c
deleted file mode 100644
index 3704a94197..0000000000
--- a/board/marzipan/usbc_config.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Marzipan board-specific USB-C configuration */
-
-#include "usb_pd.h"
-#include "usbc_config.h"
-
-/* GPIO Interrupt Handlers */
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
diff --git a/board/marzipan/usbc_config.h b/board/marzipan/usbc_config.h
deleted file mode 100644
index 7f72b01700..0000000000
--- a/board/marzipan/usbc_config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Marzipan board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#include "gpio.h"
-
-void tcpc_alert_event(enum gpio_signal signal);
-void usb0_evt(enum gpio_signal signal);
-void usb1_evt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-void board_connect_c0_sbu(enum gpio_signal s);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/marzipan/vif_override.xml b/board/marzipan/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/marzipan/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/masterball b/board/masterball
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/masterball
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/max32660-eval/board.c b/board/max32660-eval/board.c
deleted file mode 100644
index 15a856ab4e..0000000000
--- a/board/max32660-eval/board.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* MAX32660 EvalKit Board Specific Configuration */
-
-#include "i2c.h"
-#include "board.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "timer.h"
-#include "registers.h"
-#include "util.h"
-#include "gpio_list.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/max32660-eval/board.h b/board/max32660-eval/board.h
deleted file mode 100644
index bcca57f18a..0000000000
--- a/board/max32660-eval/board.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* MAX32660 board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_FPU
-
-/* Modules we want to exclude */
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_PECI
-#undef CONFIG_SWITCH
-#define CONFIG_CMD_HOSTCMD
-
-#undef CONFIG_HOSTCMD_EVENTS
-#define CONFIG_I2C
-
-#define CONFIG_I2C_PERIPHERAL
-#define CONFIG_HOSTCMD_I2C_ADDR_FLAGS (0x51) /* 7 bit right-aligned */
-
-/* Slave I2C port configuration */
-#define I2C_PORT_SLAVE 1
-#define I2C_PORT_EC I2C_PORT_SLAVE
-
-/* Write protect is active high */
-#define CONFIG_WP_ACTIVE_HIGH
-
-#undef CONFIG_WATCHDOG_PERIOD_MS
-#define CONFIG_WATCHDOG_PERIOD_MS 2240
-
-#ifndef __ASSEMBLER__
-
-/* Second UART port */
-#define CONFIG_UART_HOST 1
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/max32660-eval/build.mk b/board/max32660-eval/build.mk
deleted file mode 100644
index a613922cd2..0000000000
--- a/board/max32660-eval/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-# MAX32660 Device
-CHIP:=max32660
-
-board-y=board.o
diff --git a/board/max32660-eval/ec.tasklist b/board/max32660-eval/ec.tasklist
deleted file mode 100644
index 5e58b9dea8..0000000000
--- a/board/max32660-eval/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/**
- * List of enabled tasks in the priority order
- *
- * The first one has the lowest priority.
- *
- * For each task, use the macro TASK_ALWAYS(n, r, d, s) for base tasks and
- * TASK_NOTEST(n, r, d, s) for tasks that can be excluded in test binaries,
- * where :
- * 'n' in the name of the task
- * 'r' in the main routine of the task
- * 'd' in an opaque parameter passed to the routine at startup
- * 's' is the stack size in bytes; must be a multiple of 8
- * TASK_NOTEST(LIGHTBAR, lightbar_task, NULL, TASK_STACK_SIZE) \
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/max32660-eval/gpio.inc b/board/max32660-eval/gpio.inc
deleted file mode 100644
index 3ced37a77f..0000000000
--- a/board/max32660-eval/gpio.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/*
- * Signals which aren't implemented on Board but we'll emulate anyway, to
- * make it more convenient to debug other code.
- */
-UNIMPLEMENTED(WP) /* Write protect input */
-UNIMPLEMENTED(ENTERING_RW) /* EC entering RW code */
-
-ALTERNATE(PIN_MASK(0, 0x0C00), 2, MODULE_UART, 0) /* Alt 2, P0.10 (UART1_TX), P0.11 (UART1_RX) */
-ALTERNATE(PIN_MASK(0, 0x000C), 1, MODULE_I2C, 0) /* Alt 1, P0.2 (I2C1_SCL), P0.3 (I2C1_SDA) */
diff --git a/board/mchpevb1/battery.c b/board/mchpevb1/battery.c
deleted file mode 100644
index fcc09994bf..0000000000
--- a/board/mchpevb1/battery.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* Copyright 2015 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "i2c.h"
-#include "util.h"
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define PARAM_CUT_OFF_LOW 0x10
-#define PARAM_CUT_OFF_HIGH 0x00
-
-/* Battery info for BQ40Z55 */
-static const struct battery_info info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
- uint8_t buf[3];
-
- /* Ship mode command must be sent twice to take effect */
- buf[0] = SB_MANUFACTURER_ACCESS & 0xff;
- buf[1] = PARAM_CUT_OFF_LOW;
- buf[2] = PARAM_CUT_OFF_HIGH;
-
- i2c_lock(I2C_PORT_BATTERY, 1);
- rv = i2c_xfer_unlocked(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS,
- buf, 3, NULL, 0, I2C_XFER_SINGLE);
- rv |= i2c_xfer_unlocked(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS,
- buf, 3, NULL, 0, I2C_XFER_SINGLE);
- i2c_lock(I2C_PORT_BATTERY, 0);
-
- return rv;
-}
-
-#ifdef CONFIG_CHARGER_PROFILE_OVERRIDE
-
-static int fast_charging_allowed = 1;
-
-/*
- * This can override the smart battery's charging profile. To make a change,
- * modify one or more of requested_voltage, requested_current, or state.
- * Leave everything else unchanged.
- *
- * Return the next poll period in usec, or zero to use the default (which is
- * state dependent).
- */
-int charger_profile_override(struct charge_state_data *curr)
-{
- /* temp in 0.1 deg C */
- int temp_c = curr->batt.temperature - 2731;
- /* keep track of last temperature range for hysteresis */
- static enum {
- TEMP_RANGE_1,
- TEMP_RANGE_2,
- TEMP_RANGE_3,
- TEMP_RANGE_4,
- TEMP_RANGE_5,
- } temp_range = TEMP_RANGE_3;
- /* keep track of last voltage range for hysteresis */
- static enum {
- VOLTAGE_RANGE_LOW,
- VOLTAGE_RANGE_HIGH,
- } voltage_range = VOLTAGE_RANGE_LOW;
-
- /* Current and previous battery voltage */
- int batt_voltage;
- static int prev_batt_voltage;
-
- /*
- * Determine temperature range. The five ranges are:
- * < 10C
- * 10-15C
- * 15-23C
- * 23-45C
- * > 45C
- *
- * Add 0.2 degrees of hysteresis.
- * If temp reading was bad, use last range.
- */
- if (!(curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE)) {
- if (temp_c < 99)
- temp_range = TEMP_RANGE_1;
- else if (temp_c > 101 && temp_c < 149)
- temp_range = TEMP_RANGE_2;
- else if (temp_c > 151 && temp_c < 229)
- temp_range = TEMP_RANGE_3;
- else if (temp_c > 231 && temp_c < 449)
- temp_range = TEMP_RANGE_4;
- else if (temp_c > 451)
- temp_range = TEMP_RANGE_5;
- }
-
- /*
- * If battery voltage reading is bad, use the last reading. Otherwise,
- * determine voltage range with hysteresis.
- */
- if (curr->batt.flags & BATT_FLAG_BAD_VOLTAGE) {
- batt_voltage = prev_batt_voltage;
- } else {
- batt_voltage = prev_batt_voltage = curr->batt.voltage;
- if (batt_voltage < 8200)
- voltage_range = VOLTAGE_RANGE_LOW;
- else if (batt_voltage > 8300)
- voltage_range = VOLTAGE_RANGE_HIGH;
- }
-
- /*
- * If we are not charging or we aren't using fast charging profiles,
- * then do not override desired current and voltage.
- */
- if (curr->state != ST_CHARGE || !fast_charging_allowed)
- return 0;
-
- /*
- * Okay, impose our custom will:
- * When battery is 0-10C:
- * CC at 486mA @ 8.7V
- * CV at 8.7V
- *
- * When battery is <15C:
- * CC at 1458mA @ 8.7V
- * CV at 8.7V
- *
- * When battery is <23C:
- * CC at 3402mA until 8.3V @ 8.7V
- * CC at 2430mA @ 8.7V
- * CV at 8.7V
- *
- * When battery is <45C:
- * CC at 4860mA until 8.3V @ 8.7V
- * CC at 2430mA @ 8.7V
- * CV at 8.7V until current drops to 450mA
- *
- * When battery is >45C:
- * CC at 2430mA @ 8.3V
- * CV at 8.3V (when battery is hot we don't go to fully charged)
- */
- switch (temp_range) {
- case TEMP_RANGE_1:
- curr->requested_current = 486;
- curr->requested_voltage = 8700;
- break;
- case TEMP_RANGE_2:
- curr->requested_current = 1458;
- curr->requested_voltage = 8700;
- break;
- case TEMP_RANGE_3:
- curr->requested_voltage = 8700;
- if (voltage_range == VOLTAGE_RANGE_HIGH)
- curr->requested_current = 2430;
- else
- curr->requested_current = 3402;
- break;
- case TEMP_RANGE_4:
- curr->requested_voltage = 8700;
- if (voltage_range == VOLTAGE_RANGE_HIGH)
- curr->requested_current = 2430;
- else
- curr->requested_current = 4860;
- break;
- case TEMP_RANGE_5:
- curr->requested_current = 2430;
- curr->requested_voltage = 8300;
- break;
- }
-
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- if (param == PARAM_FASTCHARGE) {
- *value = fast_charging_allowed;
- return EC_RES_SUCCESS;
- }
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- if (param == PARAM_FASTCHARGE) {
- fast_charging_allowed = value;
- return EC_RES_SUCCESS;
- }
- return EC_RES_INVALID_PARAM;
-}
-
-static int command_fastcharge(int argc, char **argv)
-{
- if (argc > 1 && !parse_bool(argv[1], &fast_charging_allowed))
- return EC_ERROR_PARAM1;
-
- ccprintf("fastcharge %s\n", fast_charging_allowed ? "on" : "off");
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(fastcharge, command_fastcharge,
- "[on|off]",
- "Get or set fast charging profile");
-
-#endif /* CONFIG_CHARGER_PROFILE_OVERRIDE */
diff --git a/board/mchpevb1/board.c b/board/mchpevb1/board.c
deleted file mode 100644
index 73cec110bb..0000000000
--- a/board/mchpevb1/board.c
+++ /dev/null
@@ -1,984 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * Microchip Evaluation Board(EVB) with
- * MEC1701H 144-pin processor card.
- * EVB connected to Intel SKL RVP3 configured
- * for eSPI with Kabylake silicon.
- */
-
-#include "adc.h"
-#include "als.h"
-#include "bd99992gw.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/als_opt3001.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/tcpm/tcpci.h"
-#include "extpower.h"
-#include "gpio_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "espi.h"
-#include "lpc_chip.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_sense.h"
-#include "motion_lid.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "spi.h"
-#include "spi_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-#include "espi.h"
-#include "battery_smart.h"
-
-/* Console output macros */
-#define CPUTS(outstr) cputs(CC_LPC, outstr)
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-
-/* NOTE: MEC17xx EVB + SKL RVP3 does not use BD99992 PMIC.
- * RVP3 PMIC controlled by RVP3 logic.
- */
-#define I2C_ADDR_BD99992_FLAGS 0x30
-
-/*
- * Maxim DS1624 I2C temperature sensor used for testing I2C.
- * DS1624 contains one internal temperature sensor
- * and EEPROM. It has no external temperature inputs.
- */
-#define DS1624_I2C_ADDR_FLAGS (0x48 | I2C_FLAG_BIG_ENDIAN)
-#define DS1624_IDX_LOCAL 0
-#define DS1624_READ_TEMP16 0xAA /* read 16-bit temperature */
-#define DS1624_ACCESS_CFG 0xAC /* read/write 8-bit config */
-#define DS1624_CMD_START 0xEE
-#define DS1624_CMD_STOP 0x22
-
-/*
- * static global and routine to return smart battery
- * temperature when we do not build with charger task.
- */
-static int smart_batt_temp;
-static int ds1624_temp;
-static int sb_temp(int idx, int *temp_ptr);
-static int ds1624_get_val(int idx, int *temp_ptr);
-static void board_spi_enable(void);
-static void board_spi_disable(void);
-
-#ifdef CONFIG_BOARD_PRE_INIT
-/*
- * Used to enable JTAG debug during development.
- * NOTE: If ARM Serial Wire Viewer not used then SWV pin can be
- * be disabled and used for another purpose. Change mode to
- * MCHP_JTAG_MODE_SWD.
- * For low power idle testing enable GPIO060 as function 2(48MHZ_OUT)
- * to check PLL is turning off in heavy sleep. Note, do not put GPIO060
- * in gpio.inc
- * GPIO060 is port 1 bit[16].
- */
-void board_config_pre_init(void)
-{
- smart_batt_temp = 0;
- ds1624_temp = 0;
-
-#ifdef CONFIG_CHIPSET_DEBUG
- MCHP_EC_JTAG_EN = MCHP_JTAG_ENABLE + MCHP_JTAG_MODE_SWD_SWV;
-#endif
-
-#if defined(CONFIG_LOW_POWER_IDLE) && defined(CONFIG_MCHP_48MHZ_OUT)
- gpio_set_alternate_function(1, 0x10000, 2);
-#endif
-}
-#endif /* #ifdef CONFIG_BOARD_PRE_INIT */
-
-
-/*
- * Use EC to handle ALL_SYS_PWRGD signal.
- * MEC17xx connected to SKL/KBL RVP3 reference board
- * is required to monitor ALL_SYS_PWRGD and drive SYS_RESET_L
- * after a 10 to 100 ms delay.
- */
-#ifdef CONFIG_BOARD_EC_HANDLES_ALL_SYS_PWRGD
-
-static void board_all_sys_pwrgd(void)
-{
- int allsys_in = gpio_get_level(GPIO_ALL_SYS_PWRGD);
- int allsys_out = gpio_get_level(GPIO_SYS_RESET_L);
-
- if (allsys_in == allsys_out)
- return;
-
- CPRINTS("ALL_SYS_PWRGD=%d SYS_RESET_L=%d", allsys_in, allsys_out);
-
- trace2(0, BRD, 0, "ALL_SYS_PWRGD=%d SYS_RESET_L=%d",
- allsys_in, allsys_out);
-
- /*
- * Wait at least 10 ms between power signals going high
- */
- if (allsys_in)
- msleep(100);
-
- if (!allsys_out) {
- /* CPRINTS("Set SYS_RESET_L = %d", allsys_in); */
- trace1(0, BRD, 0, "Set SYS_RESET_L=%d", allsys_in);
- gpio_set_level(GPIO_SYS_RESET_L, allsys_in);
- /* Force fan on for kabylake RVP */
- gpio_set_level(GPIO_EC_FAN1_PWM, 1);
- }
-}
-DECLARE_DEFERRED(board_all_sys_pwrgd);
-
-void all_sys_pwrgd_interrupt(enum gpio_signal signal)
-{
- trace0(0, ISR, 0, "ALL_SYS_PWRGD Edge");
- hook_call_deferred(&board_all_sys_pwrgd_data, 0);
-}
-#endif /* #ifdef CONFIG_BOARD_HAS_ALL_SYS_PWRGD */
-
-
-#ifdef HAS_TASK_PDCMD
-/* Exchange status with PD MCU. */
-static void pd_mcu_interrupt(enum gpio_signal signal)
-{
- /* Exchange status with PD MCU to determine interrupt cause */
- host_command_pd_send_status(0);
-
-}
-#endif
-
-#ifdef CONFIG_USB_POWER_DELIVERY
-void vbus0_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(0, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C0);
-}
-
-void vbus1_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(1, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C1);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-#endif
-
-/*
- * enable_input_devices() is called by the tablet_mode ISR, but changes the
- * state of GPIOs, so its definition must reside after including gpio_list.
- */
-static void enable_input_devices(void);
-DECLARE_DEFERRED(enable_input_devices);
-
-void tablet_mode_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels
- * name, factor multiplier, factor divider, shift, channel
- */
-const struct adc_t adc_channels[] = {
- /* Vbus sensing. Converted to mV, full ADC is equivalent to 30V. */
- [ADC_VBUS] = {"VBUS", 30000, 1024, 0, 1},
- /* Adapter current output or battery discharging current */
- [ADC_AMON_BMON] = {"AMON_BMON", 25000, 3072, 0, 3},
- /* System current consumption */
- [ADC_PSYS] = {"PSYS", 1, 1, 0, 4},
- [ADC_CASE] = {"CASE", 1, 1, 0, 7},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/*
- * MCHP EVB connected to KBL RVP3
- */
-const struct i2c_port_t i2c_ports[] = {
- {"sensors", MCHP_I2C_PORT4, 100, GPIO_SMB04_SCL, GPIO_SMB04_SDA},
- {"batt", MCHP_I2C_PORT5, 100, GPIO_SMB05_SCL, GPIO_SMB05_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/*
- * Map ports to controller.
- * Ports may map to the same controller.
- */
-const uint16_t i2c_port_to_ctrl[I2C_PORT_COUNT] = {
- (MCHP_I2C_CTRL0 << 8) + MCHP_I2C_PORT4,
- (MCHP_I2C_CTRL1 << 8) + MCHP_I2C_PORT5
-};
-
-/*
- * default to I2C0 because callers may not check
- * return value if we returned an error code.
- */
-int board_i2c_p2c(int port)
-{
- int i;
-
- for (i = 0; i < I2C_PORT_COUNT; i++)
- if ((i2c_port_to_ctrl[i] & 0xFF) == port)
- return (int)(i2c_port_to_ctrl[i] >> 8);
-
- return -1;
-}
-
-#ifdef CONFIG_USB_POWER_DELIVERY
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {I2C_PORT_TCPC,
- CONFIG_TCPC_I2C_BASE_ADDR_FLAGS,
- &tcpci_tcpm_drv},
-
- {I2C_PORT_TCPC,
- CONFIG_TCPC_I2C_BASE_ADDR_FLAGS + 1,
- &tcpci_tcpm_drv},
-};
-#endif
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { QMSPI0_PORT, 4, GPIO_QMSPI_CS0},
-#if defined(CONFIG_SPI_ACCEL_PORT)
- { GPSPI0_PORT, 2, GPIO_SPI0_CS0 },
-#endif
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-
-/*
- * Deep sleep support, called by chip level.
- */
-#if defined(CONFIG_LOW_POWER_IDLE) && defined(CONFIG_BOARD_DEEP_SLEEP)
-
-/*
- * Perform any board level prepare for sleep actions.
- * For example, disabling pin/pads to further reduce
- * current during sleep.
- */
-void board_prepare_for_deep_sleep(void)
-{
-#if defined(CONFIG_GPIO_POWER_DOWN) && \
- defined(CONFIG_MCHP_DEEP_SLP_GPIO_PWR_DOWN)
- gpio_power_down_module(MODULE_SPI_FLASH);
- gpio_power_down_module(MODULE_SPI_CONTROLLER);
- gpio_power_down_module(MODULE_I2C);
- /* powering down keyscan is causing an issue with keyscan task
- * probably due to spurious interrupts on keyscan pins.
- * gpio_config_module(MODULE_KEYBOARD_SCAN, 0);
- */
-
-#ifndef CONFIG_POWER_S0IX
- gpio_power_down_module(MODULE_LPC);
-#endif
-#endif
-}
-
-/*
- * Perform any board level resume from sleep actions.
- * For example, re-enabling pins powered off in
- * board_prepare_for_deep_sleep().
- */
-void board_resume_from_deep_sleep(void)
-{
-#if defined(CONFIG_GPIO_POWER_DOWN) && \
- defined(CONFIG_MCHP_DEEP_SLP_GPIO_PWR_DOWN)
-#ifndef CONFIG_POWER_S0IX
- gpio_config_module(MODULE_LPC, 1);
-#endif
- /* gpio_config_module(MODULE_KEYBOARD_SCAN, 1); */
- gpio_config_module(MODULE_SPI_FLASH, 1);
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
- gpio_config_module(MODULE_I2C, 1);
-#endif
-}
-#endif
-
-#ifdef CONFIG_USB_MUX_PI3USB30532
-struct pi3usb9281_config pi3usb9281_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_CHARGER_1,
- .mux_lock = NULL,
- },
- {
- .i2c_port = I2C_PORT_USB_CHARGER_2,
- .mux_lock = NULL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
- CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT);
-
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = 0x10,
- .driver = &ps8740_usb_mux_driver,
- }
-};
-#endif
-
-/**
- * Reset PD MCU
- */
-void board_reset_pd_mcu(void)
-{
- gpio_set_level(GPIO_PD_RST_L, 0);
- usleep(100);
- gpio_set_level(GPIO_PD_RST_L, 1);
-}
-
-/*
- *
- */
-static int therm_get_val(int idx, int *temp_ptr)
-{
- if (temp_ptr != NULL) {
- *temp_ptr = adc_read_channel(idx);
- return EC_SUCCESS;
- }
-
- return EC_ERROR_PARAM2;
-}
-
-#ifdef CONFIG_TEMP_SENSOR
-#if 0 /* Chromebook design uses ADC in BD99992GW PMIC */
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0, 4},
-
- /* These BD99992GW temp sensors are only readable in S0 */
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM0, 4},
- {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM1, 4},
- {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM2, 4},
- {"Wifi", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM3, 4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-#else /* mec1701_evb test I2C and EC ADC */
-/*
- * battery charge_get_battery_temp requires charger task running.
- * OR can we call into driver/battery/smart.c
- * int sb_read(int cmd, int *param)
- * sb_read(SB_TEMPERATURE, &batt_new.temperature)
- * Issue is functions in this table return a value from a memory array.
- * There's a task or hook that is actually reading the temperature.
- * We could implement a one second hook to call sb_read() and fill in
- * a static global in this module.
- */
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, sb_temp, 0},
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, ds1624_get_val, 0},
- {"Case", TEMP_SENSOR_TYPE_CASE, therm_get_val, (int)ADC_CASE},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-#endif
-#endif
-
-#ifdef CONFIG_ALS
-/* ALS instances. Must be in same order as enum als_id. */
-struct als_t als[] = {
- {"TI", opt3001_init, opt3001_read_lux, 5},
-};
-BUILD_ASSERT(ARRAY_SIZE(als) == ALS_COUNT);
-#endif
-
-const struct button_config buttons[CONFIG_BUTTON_COUNT] = {
- {"Volume Down", KEYBOARD_BUTTON_VOLUME_DOWN, GPIO_VOLUME_DOWN_L,
- 30 * MSEC, 0},
- {"Volume Up", KEYBOARD_BUTTON_VOLUME_UP, GPIO_VOLUME_UP_L,
- 30 * MSEC, 0},
-};
-
-/* MCHP mec1701_evb connected to Intel SKL RVP3 with Kabylake
- * processor we do not control the PMIC on SKL.
- */
-static void board_pmic_init(void)
-{
- int rv, cfg;
-
- /* No need to re-init PMIC since settings are sticky across sysjump */
- if (system_jumped_late())
- return;
-
-#if 0 /* BD99992GW PMIC on a real Chromebook */
- /* Set CSDECAYEN / VCCIO decays to 0V at assertion of SLP_S0# */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992, 0x30, 0x4a);
-
- /*
- * Set V100ACNT / V1.00A Control Register:
- * Nominal output = 1.0V.
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992, 0x37, 0x1a);
-
- /*
- * Set V085ACNT / V0.85A Control Register:
- * Lower power mode = 0.7V.
- * Nominal output = 1.0V.
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992, 0x38, 0x7a);
-
- /* VRMODECTRL - enable low-power mode for VCCIO and V0.85A */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992, 0x3b, 0x18);
-#else
- CPRINTS("HOOK_INIT - called board_pmic_init");
- trace0(0, HOOK, 0, "HOOK_INIT - call board_pmic_init");
-
- /* Config DS1624 temperature sensor for continuous conversion */
- cfg = 0x66;
- rv = i2c_read8(I2C_PORT_THERMAL, DS1624_I2C_ADDR_FLAGS,
- DS1624_ACCESS_CFG, &cfg);
- trace2(0, BRD, 0, "Read DS1624 Config rv = %d cfg = 0x%02X",
- rv, cfg);
-
- if ((rv == EC_SUCCESS) && (cfg & (1u << 0))) {
- /* one-shot mode switch to continuous */
- rv = i2c_write8(I2C_PORT_THERMAL, DS1624_I2C_ADDR_FLAGS,
- DS1624_ACCESS_CFG, 0);
- trace1(0, BRD, 0, "Write DS1624 Config to 0, rv = %d", rv);
- /* writes to config require 10ms until next I2C command */
- if (rv == EC_SUCCESS)
- udelay(10000);
- }
-
- /* Send start command */
- rv = i2c_write8(I2C_PORT_THERMAL, DS1624_I2C_ADDR_FLAGS,
- DS1624_CMD_START, 1);
- trace1(0, BRD, 0, "Send Start command to DS1624 rv = %d", rv);
-
- return;
-#endif
-}
-DECLARE_HOOK(HOOK_INIT, board_pmic_init, HOOK_PRIO_DEFAULT);
-
-/* Initialize board. */
-static void board_init(void)
-{
- CPRINTS("MEC1701 HOOK_INIT - called board_init");
- trace0(0, HOOK, 0, "HOOK_INIT - call board_init");
-
-#ifdef CONFIG_USB_POWER_DELIVERY
- /* Enable PD MCU interrupt */
- gpio_enable_interrupt(GPIO_PD_MCU_INT);
- /* Enable VBUS interrupt */
- gpio_enable_interrupt(GPIO_USB_C0_VBUS_WAKE_L);
- gpio_enable_interrupt(GPIO_USB_C1_VBUS_WAKE_L);
-
- /* Enable pericom BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-#endif
- /* Enable tablet mode interrupt for input device enable */
- gpio_enable_interrupt(GPIO_TABLET_MODE_L);
-
- /* Provide AC status to the PCH */
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-
- if (system_jumped_late() &&
- chipset_in_state(CHIPSET_STATE_ON)) {
- trace0(0, BRD, 0, "board_init: S0 call board_spi_enable");
- board_spi_enable();
- }
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-
-/**
- * Buffer the AC present GPIO to the PCH.
- */
-static void board_extpower(void)
-{
- CPRINTS("MEC1701 HOOK_AC_CHANGE - called board_extpower");
- trace0(0, HOOK, 0, "HOOK_AC_CHANGET - call board_extpower");
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_CHARGER
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a realy physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are source vbus on that port */
- int source = gpio_get_level(charge_port == 0 ? GPIO_USB_C0_5V_EN :
- GPIO_USB_C1_5V_EN);
-
- if (is_real_port && source) {
- CPRINTS("MEC1701 Skip enable p%d", charge_port);
- trace1(0, BOARD, 0, "Skip enable charge port %d",
- charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTS("MEC1701 New chg p%d", charge_port);
- trace1(0, BOARD, 0, "New charge port %d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable both ports */
- gpio_set_level(GPIO_USB_C0_CHARGE_EN_L, 1);
- gpio_set_level(GPIO_USB_C1_CHARGE_EN_L, 1);
- } else {
- /* Make sure non-charging port is disabled */
- gpio_set_level(charge_port ? GPIO_USB_C0_CHARGE_EN_L :
- GPIO_USB_C1_CHARGE_EN_L, 1);
- /* Enable charging port */
- gpio_set_level(charge_port ? GPIO_USB_C1_CHARGE_EN_L :
- GPIO_USB_C0_CHARGE_EN_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-#else
-/*
- * TODO HACK providing functions from common/charge_state_v2.c
- * which is not compiled in when no charger
- */
-int charge_prevent_power_on(int power_button_pressed)
-{
- return 0;
-}
-
-
-#endif
-
-/*
- * Enable or disable input devices,
- * based upon chipset state and tablet mode
- */
-static void enable_input_devices(void)
-{
- int kb_enable = 1;
- int tp_enable = 1;
-
- /* Disable both TP and KB in tablet mode */
- if (!gpio_get_level(GPIO_TABLET_MODE_L))
- kb_enable = tp_enable = 0;
- /* Disable TP if chipset is off */
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- tp_enable = 0;
-
- keyboard_scan_enable(kb_enable, KB_SCAN_DISABLE_LID_ANGLE);
- gpio_set_level(GPIO_ENABLE_TOUCHPAD, tp_enable);
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- CPRINTS("MEC1701 HOOK_CHIPSET_STARTUP - called board_chipset_startup");
- trace0(0, HOOK, 0, "HOOK_CHIPSET_STARTUP - board_chipset_startup");
- gpio_set_level(GPIO_USB1_ENABLE, 1);
- gpio_set_level(GPIO_USB2_ENABLE, 1);
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_chipset_startup,
- HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- CPRINTS("MEC1701 HOOK_CHIPSET_SHUTDOWN board_chipset_shutdown");
- trace0(0, HOOK, 0,
- "HOOK_CHIPSET_SHUTDOWN board_chipset_shutdown");
- gpio_set_level(GPIO_USB1_ENABLE, 0);
- gpio_set_level(GPIO_USB2_ENABLE, 0);
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_chipset_shutdown,
- HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- CPRINTS("MEC1701_EVG HOOK_CHIPSET_RESUME");
- trace0(0, HOOK, 0, "HOOK_CHIPSET_RESUME - board_chipset_resume");
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
-#if 0 /* TODO not implemented in gpio.inc */
- gpio_set_level(GPIO_PP1800_DX_AUDIO_EN, 1);
- gpio_set_level(GPIO_PP1800_DX_SENSOR_EN, 1);
-#endif
-
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume,
- MOTION_SENSE_HOOK_PRIO-1);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- CPRINTS("MEC1701 HOOK_CHIPSET_SUSPEND - called board_chipset_resume");
- trace0(0, HOOK, 0, "HOOK_CHIPSET_SUSPEND - board_chipset_suspend");
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
-#if 0 /* TODO not implemented in gpio.inc */
- gpio_set_level(GPIO_PP1800_DX_AUDIO_EN, 0);
- gpio_set_level(GPIO_PP1800_DX_SENSOR_EN, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND,
- board_chipset_suspend,
- HOOK_PRIO_DEFAULT);
-
-void board_hibernate_late(void)
-{
- /* put host chipset into reset */
- gpio_set_level(GPIO_SYS_RESET_L, 0);
-
- /* Turn off LEDs in hibernate */
- gpio_set_level(GPIO_CHARGE_LED_1, 0);
- gpio_set_level(GPIO_CHARGE_LED_2, 0);
-
- /*
- * Set PD wake low so that it toggles high to generate a wake
- * event once we leave hibernate.
- */
- gpio_set_level(GPIO_USB_PD_WAKE, 0);
-
-#ifdef CONFIG_USB_PD_PORT_MAX_COUNT
- /*
- * Leave USB-C charging enabled in hibernate, in order to
- * allow wake-on-plug. 5V enable must be pulled low.
- */
-#if CONFIG_USB_PD_PORT_MAX_COUNT > 0
- gpio_set_flags(GPIO_USB_C0_5V_EN, GPIO_PULL_DOWN | GPIO_INPUT);
- gpio_set_level(GPIO_USB_C0_CHARGE_EN_L, 0);
-#endif
-#if CONFIG_USB_PD_PORT_MAX_COUNT > 1
- gpio_set_flags(GPIO_USB_C1_5V_EN, GPIO_PULL_DOWN | GPIO_INPUT);
- gpio_set_level(GPIO_USB_C1_CHARGE_EN_L, 0);
-#endif
-#endif /* CONFIG_USB_PD_PORT_MAX_COUNT */
-}
-
-/* Any glados boards post version 2 should have ROP_LDO_EN stuffed. */
-#define BOARD_MIN_ID_LOD_EN 2
-/* Make the pmic re-sequence the power rails under these conditions. */
-#define PMIC_RESET_FLAGS \
- (EC_RESET_FLAG_WATCHDOG | EC_RESET_FLAG_SOFT | EC_RESET_FLAG_HARD)
-static void board_handle_reboot(void)
-{
-#if 0 /* MEC17xx EVB + SKL-RVP3 does not use chromebook PMIC design */
- int flags;
-#endif
- CPRINTS("MEC HOOK_INIT - called board_handle_reboot");
- trace0(0, HOOK, 0, "HOOK_INIT - board_handle_reboot");
-
- if (system_jumped_late())
- return;
-
- if (system_get_board_version() < BOARD_MIN_ID_LOD_EN)
- return;
-
-#if 0 /* TODO MCHP KBL hack not PMIC system */
- /* Interrogate current reset flags from previous reboot. */
- flags = system_get_reset_flags();
-
- if (!(flags & PMIC_RESET_FLAGS))
- return;
-
- /* Preserve AP off request. */
- if (flags & EC_RESET_FLAG_AP_OFF)
- chip_save_reset_flags(EC_RESET_FLAG_AP_OFF);
-
- ccprintf("Restarting system with PMIC.\n");
- /* Flush console */
- cflush();
-
- /* Bring down all rails but RTC rail (including EC power). */
- gpio_set_flags(GPIO_BATLOW_L_PMIC_LDO_EN, GPIO_OUT_HIGH);
- while (1)
- ; /* wait here */
-#else
- return;
-#endif
-}
-DECLARE_HOOK(HOOK_INIT, board_handle_reboot, HOOK_PRIO_FIRST);
-
-
-static int sb_temp(int idx, int *temp_ptr)
-{
- if (idx != 0)
- return EC_ERROR_PARAM1;
-
- if (temp_ptr == NULL)
- return EC_ERROR_PARAM2;
-
- *temp_ptr = smart_batt_temp;
-
- return EC_SUCCESS;
-}
-
-static int ds1624_get_val(int idx, int *temp_ptr)
-{
- if (idx != 0)
- return EC_ERROR_PARAM1;
-
- if (temp_ptr == NULL)
- return EC_ERROR_PARAM2;
-
- *temp_ptr = ds1624_temp;
-
- return EC_SUCCESS;
-}
-
-/* call smart battery code to get its temperature
- * output is in tenth degrees C
- */
-static void sb_update(void)
-{
- int rv __attribute__((unused));
-
- rv = sb_read(SB_TEMPERATURE, &smart_batt_temp);
- smart_batt_temp = smart_batt_temp / 10;
-
- trace12(0, BRD, 0, "sb_read temperature rv=%d temp=%d K",
- rv, smart_batt_temp);
-}
-
-/*
- * Read temperature from Maxim DS1624 sensor. It only has internal sensor
- * and is configured for continuous reading mode by default.
- * DS1624 does not implement temperature limits or other features of
- * sensors like the TMP411.
- * Output format is 16-bit MSB first signed celcius temperature in units
- * of 0.0625 degree Celsius.
- * b[15]=sign bit
- * b[14]=2^6, b[13]=2^5, ..., b[8]=2^0
- * b[7]=1/2, b[6]=1/4, b[5]=1/8, b[4]=1/16
- * b[3:0]=0000b
- *
- */
-static void ds1624_update(void)
-{
- uint32_t d;
- int temp;
- int rv __attribute__((unused));
-
- rv = i2c_read16(I2C_PORT_THERMAL, DS1624_I2C_ADDR_FLAGS,
- DS1624_READ_TEMP16, &temp);
-
- d = (temp & 0x7FFF) >> 8;
- if ((uint32_t)temp & BIT(7))
- d++;
-
- if ((uint32_t)temp & BIT(15))
- d |= (1u << 31);
-
- ds1624_temp = (int32_t)d;
-
- trace3(0, BRD, 0, "ds1624_update: rv=%d raw temp = 0x%04X tempC = %d",
- rv, temp, ds1624_temp);
-}
-
-/* Indicate scheduler is alive by blinking an LED.
- * Test I2C by reading a smart battery and temperature sensor.
- * Smart battery 16 bit temperature is in units of 1/10 degree C.
- */
-static void board_one_sec(void)
-{
- trace0(0, BRD, 0, "HOOK_SECOND");
-
- if (gpio_get_level(GPIO_CHARGE_LED_2))
- gpio_set_level(GPIO_CHARGE_LED_2, 0);
- else
- gpio_set_level(GPIO_CHARGE_LED_2, 1);
-
- sb_update();
- ds1624_update();
-}
-DECLARE_HOOK(HOOK_SECOND, board_one_sec, HOOK_PRIO_DEFAULT);
-
-/* Motion sensors */
-
-static struct mutex g_base_mutex;
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-#ifdef CONFIG_ACCEL_KX022
-static struct mutex g_lid_mutex;
-/* KX022 private data */
-static struct kionix_accel_data g_kx022_data;
-#endif
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(
- CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(
- CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = NULL, /* Identity Matrix. */
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-#ifdef CONFIG_ACCEL_KX022
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-#endif /* #ifdef CONFIG_ACCEL_KX022 */
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_spi_enable(void)
-{
- trace0(0, BRD, 0, "HOOK_CHIPSET_STARTUP - board_spi_enable");
-
- spi_enable(&spi_devices[1], 1);
-
- /* Toggle SPI chip select to switch BMI160 from I2C mode
- * to SPI mode
- */
- gpio_set_level(GPIO_SPI0_CS0, 0);
- udelay(10);
- gpio_set_level(GPIO_SPI0_CS0, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- trace0(0, BRD, 0, "HOOK_CHIPSET_SHUTDOWN - board_spi_disable");
- spi_enable(&spi_devices[1], 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-
-#ifdef MEC1701_EVB_TACH_TEST /* PWM/TACH test */
-void tach0_isr(void)
-{
- MCHP_INT_DISABLE(MCHP_TACH_GIRQ) = MCHP_TACH_GIRQ_BIT(0);
- MCHP_INT_SOURCE(MCHP_TACH_GIRQ) = MCHP_TACH_GIRQ_BIT(0);
-}
-DECLARE_IRQ(MCHP_IRQ_TACH_0, tach0_isr, 1);
-#endif
diff --git a/board/mchpevb1/board.h b/board/mchpevb1/board.h
deleted file mode 100644
index 98ab333b67..0000000000
--- a/board/mchpevb1/board.h
+++ /dev/null
@@ -1,487 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * Microchip Evaluation Board (EVB) with
- * MEC1701H 144-pin processor card.
- * EVB connected to Intel SKL RVP3 configured
- * for eSPI with Kabylake silicon.
- */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Initial board bringup and prevent power button task from
- * generating event to exit G3 state.
- *
- * #define CONFIG_BRINGUP
- */
-
-/*
- * Debug on EVB with CONFIG_CHIPSET_DEBUG
- * Keep WDG disabled and JTAG enabled.
- * CONFIG_BOARD_PRE_INIT enables JTAG early
- */
-/* #define CONFIG_CHIPSET_DEBUG */
-
-#ifdef CONFIG_CHIPSET_DEBUG
-#ifndef CONFIG_BOARD_PRE_INIT
-#define CONFIG_BOARD_PRE_INIT
-#endif
-#endif
-
-/*
- * DEBUG: Add CRC32 in last 4 bytes of EC_RO/RW binaries
- * in SPI. LFW will use DMA CRC32 HW to check data integrity.
- * #define CONFIG_MCHP_LFW_DEBUG
- */
-
-/*
- * EC UART console on UART 0 or 1
- */
-#define CONFIG_UART_CONSOLE 0
-
-/*
- * Override Boot-ROM JTAG mode
- * 0x01 = 4-pin standard JTAG
- * 0x03 = ARM 2-pin SWD + 1-pin SWV
- * 0x05 = ARM 2-pin SWD no SWV
- */
-#define CONFIG_MCHP_JTAG_MODE 0x03
-
-/*
- * Enable Trace FIFO Debug port
- * When this is undefined all TRACEn() and tracen()
- * macros are defined as blank.
- * Uncomment this define to enable these messages.
- * Only enable if GPIO's 0171 & 0171 are available therefore
- * define this at the board level.
- */
-/* #define CONFIG_MCHP_TFDP */
-
-/*
- * Enable MCHP specific GPIO EC UART commands
- * for debug.
- */
-/* #define CONFIG_MEC_GPIO_EC_CMDS */
-
-/*
- * Enable CPRINT in chip eSPI module
- * and EC UART test command.
- */
-/* #define CONFIG_MCHP_ESPI_DEBUG */
-
-/*
- * Enable board specific ISR on ALL_SYS_PWRGD signal.
- * Requires for handling Kabylake/Skylake RVP3 board's
- * ALL_SYS_PWRGD signal.
- */
-#define CONFIG_BOARD_EC_HANDLES_ALL_SYS_PWRGD
-
-/*
- * EVB eSPI test mode (no eSPI master connected)
- */
-/*
- * #define EVB_NO_ESPI_TEST_MODE
- */
-
-
-/*
- * DEBUG
- * Disable ARM Cortex-M4 write buffer so
- * exceptions become synchronous.
- *
- * #define CONFIG_DEBUG_DISABLE_WRITE_BUFFER
- */
-
-/* New eSPI configuration items */
-
-/*
- * Maximum clock frequence eSPI EC advertises
- * Values in MHz are 20, 25, 33, 50, and 66
- */
-/* KBL + EVB fly-wire hook up only supports 20MHz */
-#define CONFIG_HOSTCMD_ESPI_EC_MAX_FREQ MCHP_ESPI_CAP1_MAX_FREQ_20M
-
-/*
- * EC eSPI advertises IO lanes
- * 0 = Single
- * 1 = Single and Dual
- * 2 = Single and Quad
- * 3 = Single, Dual, and Quad
- */
-/* KBL + EVB fly-wire hook up only support Single mode */
-#define CONFIG_HOSTCMD_ESPI_EC_MODE MCHP_ESPI_CAP1_SINGLE_MODE
-
-/*
- * Bit map of eSPI channels EC advertises
- * bit[0] = 1 Peripheral channel
- * bit[1] = 1 Virtual Wire channel
- * bit[2] = 1 OOB channel
- * bit[3] = 1 Flash channel
- */
-#define CONFIG_HOSTCMD_ESPI_EC_CHAN_BITMAP MCHP_ESPI_CAP0_ALL_CHAN_SUPP
-
-#define CONFIG_MCHP_ESPI_VW_SAVE_ON_SLEEP
-
-/*
- * Allow dangerous commands.
- * TODO(shawnn): Remove this config before production.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* Optional features */
-#define CONFIG_ACCELGYRO_BMI160
-/* #define CONFIG_ACCEL_KX022 */
-/* #define CONFIG_ALS */
-/* #define CONFIG_ALS_OPT3001 */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_PRESENT_L
-#define CONFIG_BATTERY_SMART
-#define CONFIG_BOARD_VERSION_GPIO
-#define CONFIG_BUTTON_COUNT 2
-/* #define CONFIG_CHARGE_MANAGER */
-/* #define CONFIG_CHARGE_RAMP_SW */
-
-
-/* #define CONFIG_CHARGER */
-
-/* #define CONFIG_CHARGER_DISCHARGE_ON_AC */
-/* #define CONFIG_CHARGER_ISL9237 */
-/* #define CONFIG_CHARGER_ILIM_PIN_DISABLED */
-/* #define CONFIG_CHARGER_INPUT_CURRENT 512 */
-
-/* #define CONFIG_CHARGER_NARROW_VDC */
-/* #define CONFIG_CHARGER_PROFILE_OVERRIDE */
-/* #define CONFIG_CHARGER_SENSE_RESISTOR 10 */
-/* #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 */
-/* #define CONFIG_CMD_CHARGER_ADC_AMON_BMON */
-
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_RESET_HOOK
-
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-#define CONFIG_CLOCK_CRYSTAL
-#define CONFIG_EXTPOWER_GPIO
-/* #define CONFIG_HOSTCMD_PD */
-/* #define CONFIG_HOSTCMD_PD_PANIC */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-
-#ifdef CONFIG_ACCEL_KX022
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#endif /* CONFIG_ACCEL_KX022 */
-
-#define CONFIG_LID_SWITCH
-/*
- * Enable MCHP Low Power Idle support
- * and API to power down pins
- * #define CONFIG_LOW_POWER_IDLE
- */
-
-
-/* #define CONFIG_GPIO_POWER_DOWN */
-
-/*
- * Turn off pin modules during deep sleep.
- * Requires CONFIG_GPIO_POWER_DOWN
- */
-/* #define CONFIG_MCHP_DEEP_SLP_GPIO_PWR_DOWN */
-
-/*
- * DEBUG: Configure MEC17xx GPIO060 as 48MHZ_OUT to
- * verify & debug clock is shutdown in heavy sleep.
- */
-#define CONFIG_MCHP_48MHZ_OUT
-
-/*
- * DEBUG: Save and print out PCR sleep enables,
- * clock required, and interrupt aggregator result
- * registers.
- */
-#define CONFIG_MCHP_DEEP_SLP_DEBUG
-
-/*
- * MCHP debug EC code turn off GCC link-time-optimization
- * #define CONFIG_LTO
- */
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-
-/*
- * MEC1701H SCI is virtual wire on eSPI
- *#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L
- */
-
-#if 0 /* MCHP EVB + KBL/SKL RVP3 no USB charging hardware */
-#define CONFIG_USB_CHARGER
-#define CONFIG_USB_MUX_PI3USB30532
-#define CONFIG_USB_MUX_PS8740
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DP_HPD_GPIO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_TCPCI
-#endif
-/*
- * #define CONFIG_USB_PD_TCPC
- * #define CONFIG_USB_PD_TCPM_STUB
- */
-#if 0
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_BC12_DETECT_PI3USB9281
-#define CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT 2
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-#endif
-
-#define CONFIG_VBOOT_HASH
-
-/*
- * MEC1701H loads firmware using QMSPI controller
- * CONFIG_SPI_FLASH_PORT is the index into
- * spi_devices[] in board.c
- */
-#define CONFIG_SPI_FLASH_PORT 0
-#define CONFIG_SPI_FLASH
-/*
- * Google uses smaller flashes on chromebook boards
- * MCHP SPI test dongle for EVB uses 16MB W25Q128F
- * Configure for smaller flash is OK for testing except
- * for SPI flash lock bit.
- */
- #define CONFIG_FLASH_SIZE_BYTES 524288
- #define CONFIG_SPI_FLASH_W25X40
-/*
- * #define CONFIG_FLASH_SIZE_BYTES 0x1000000
- * #define CONFIG_SPI_FLASH_W25Q128
- */
-
-/*
- * Enable extra SPI flash and generic SPI
- * commands via EC UART
- */
-#define CONFIG_CMD_SPI_FLASH
-#define CONFIG_CMD_SPI_XFER
-
-/* common software SHA256 required by vboot and rollback */
-#define CONFIG_SHA256
-
-/*
- * Enable MCHP SHA256 hardware accelerator module.
- * API is same as software SHA256 but prefixed with "chip_"
- * #define CONFIG_SHA256_HW
- */
-
-/* enable console command to test HW Hash engine
- * #define CONFIG_CMD_SHA256_TEST
- */
-
-/*
- * MEC17xx EVB + SKL/KBL RVP3 does not have
- * BD99992GW PMIC with NCP15WB thermistor.
- * We have connected a Maxim DS1624 I2C temperature
- * sensor. The sensor board has a thermistor on it
- * we connect to an EC ADC channel.
- */
-#if 0
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_BD99992GW
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_DPTF
-#else
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_DPTF
-#endif
-
-/* Enable GPSPI0 controller and port for
- * SPI Accelerometer.
- * bit[0] == 1 GPSPI0
- * bit[1] == 0 board does not use GPSPI1
- * Make sure to not include GPSPI in little-firmware(LFW)
- */
-#ifndef LFW
-#define CONFIG_MCHP_GPSPI 0x01
-#endif
-
-/* SPI Accelerometer
- * CONFIG_SPI_FLASH_PORT is the index into
- * spi_devices[] in board.c
- */
-#define CONFIG_SPI_ACCEL_PORT 1
-
-/*
- * Enable EC UART commands to read/write
- * motion sensor.
- */
-#define CONFIG_CMD_ACCELS
-
-/*
- * Enable 1 slot of secure temporary storage to support
- * suspend/resume with read/write memory training.
- */
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-#define CONFIG_WATCHDOG_HELP
-
-#if 0 /* TODO - No wireless on EVB */
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-
-/* Wireless signals */
-#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
-#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_WLAN_EN
-#endif
-
-/* LED signals */
-#define GPIO_BAT_LED_RED GPIO_CHARGE_LED_1
-#define GPIO_BAT_LED_GREEN GPIO_CHARGE_LED_2
-
-/* I2C ports */
-#define I2C_CONTROLLER_COUNT 2
-#define I2C_PORT_COUNT 2
-
-
-/*
- * Map I2C Ports to Controllers for this board.
- *
- * I2C Controller 0 ---- Port 0 -> PMIC, USB Charger 2
- * |-- Port 2 -> USB Charger 1, USB Mux
- *
- * I2C Controller 1 ---- Port 3 -> PD MCU, TCPC
- * I2C Controller 2 ---- Port 4 -> ALS, Accel
- * I2C Controller 3 ---- Port 5 -> Battery, Charger
- *
- * All other ports set to 0xff (not used)
- */
-
-#define I2C_PORT_PMIC MCHP_I2C_PORT10
-#define I2C_PORT_USB_CHARGER_1 MCHP_I2C_PORT2
-#define I2C_PORT_USB_MUX MCHP_I2C_PORT2
-#define I2C_PORT_USB_CHARGER_2 MCHP_I2C_PORT2
-#define I2C_PORT_PD_MCU MCHP_I2C_PORT3
-#define I2C_PORT_TCPC MCHP_I2C_PORT3
-#define I2C_PORT_ALS MCHP_I2C_PORT4
-#define I2C_PORT_ACCEL MCHP_I2C_PORT4
-#define I2C_PORT_BATTERY MCHP_I2C_PORT5
-#define I2C_PORT_CHARGER MCHP_I2C_PORT5
-
-/* Thermal sensors read through PMIC ADC interface */
-#if 0
-#define I2C_PORT_THERMAL I2C_PORT_PMIC
-#else
-#define I2C_PORT_THERMAL MCHP_I2C_PORT4
-#endif
-
-/* Ambient Light Sensor address */
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* Modules we want to exclude */
-#undef CONFIG_CMD_HASH
-#undef CONFIG_CMD_TEMP_SENSOR
-#undef CONFIG_CMD_TIMERINFO
-/* #undef CONFIG_CONSOLE_CMDHELP */
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CASE,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
-
- /* These temp sensors are only readable in S0 */
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CASE,
-/* TEMP_SENSOR_CHARGER, */
-/* TEMP_SENSOR_DRAM, */
-/* TEMP_SENSOR_WIFI, */
-
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- BASE_ACCEL,
- BASE_GYRO,
-#ifdef CONFIG_ACCEL_KX022
- LID_ACCEL,
-#endif
- SENSOR_COUNT,
-};
-
-/* Light sensors */
-enum als_id {
- ALS_OPT3001 = 0,
-
- ALS_COUNT
-};
-
-/* TODO: determine the following board specific type-C power constants */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-
-/* Try to negotiate to 20V since i2c noise problems should be fixed. */
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * include TFDP macros from mchp chip level
- */
-#include "tfdp_chip.h"
-
-
-/* Map I2C port to controller */
-int board_i2c_p2c(int port);
-
-/* Reset PD MCU */
-void board_reset_pd_mcu(void);
-
-#ifdef CONFIG_LOW_POWER_IDLE
-void board_prepare_for_deep_sleep(void);
-void board_resume_from_deep_sleep(void);
-#endif
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/mchpevb1/build.mk b/board/mchpevb1/build.mk
deleted file mode 100644
index 412b04d46b..0000000000
--- a/board/mchpevb1/build.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-# the IC is Microchip MEC1701
-# external SPI is 512KB
-# external clock is crystal
-CHIP:=mchp
-CHIP_FAMILY:=mec170x
-CHIP_VARIANT:=mec1701
-CHIP_SPI_SIZE_KB:=512
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/mchpevb1/ec.tasklist b/board/mchpevb1/ec.tasklist
deleted file mode 100644
index 6fcd5faa98..0000000000
--- a/board/mchpevb1/ec.tasklist
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
-
diff --git a/board/mchpevb1/gpio.inc b/board/mchpevb1/gpio.inc
deleted file mode 100644
index 8be1099fbd..0000000000
--- a/board/mchpevb1/gpio.inc
+++ /dev/null
@@ -1,450 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/*
- * mec1701h_evb board GPIO pins
- * !!!!!!!!!!!!!!!!!!!!!!! IMPORTANT !!!!!!!!!!!!!!!!!!!!!!!!!!!!
- * MEC1701 and MEC1322 data sheets GPIO numbers are OCTAL.
- * Original glados MEC1322 used these octal numbers as base 10.
- * mec1701 and its boards will use OCTAL therefore make sure all
- * numbers used below are written as C OCTAL with a leading 0.
- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- *
- */
-/* NOTE: We use JTAG on MEC1701H on EVB.
- * GPIO_0145 is JTAG_TDI
- * GPIO_0146 is JTAG_TDO
- * GPIO_0147 is JTAG_CLK
- * GPIO_0150 is JTAG_TMS
- */
-
-/* include common gpio.inc under chip/mchp/lfw/... */
-#include "chip/mchp/lfw/gpio.inc"
-
-#define GPIO_BOTH_EDGES_PU (GPIO_INT_BOTH | GPIO_PULL_UP)
-
-/* Only needed if CONFIG_HOSTCMD_ESPI is not set, using LPC interface to PCH */
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO_INT(PCH_PLTRST_L, PIN(064), GPIO_BOTH_EDGES_PU, lpcrst_interrupt)
-#endif
-
-/* MEC1701H GPIO_0015/PWM7 OK */
-GPIO_INT(LID_OPEN, PIN(015), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-/* MEC1701H GPIO_0014/PWM6/GPTP-IN6 OK */
-GPIO_INT(AC_PRESENT, PIN(014), GPIO_INT_BOTH, extpower_interrupt)
-
-/* MEC1701H GPIO_0036/RC_ID2 OK */
-/* Kabylake bringup move to gpio input */
-/* GPIO_INT(WP_L, PIN(036), GPIO_INT_BOTH, switch_interrupt) */
-
-/* Buffered power button input from PMIC / ROP_EC_PWR_BTN_L_R */
-/* MEC1701H GPIO_0023/GPTP-IN1/MVP_VR_ON OK */
-GPIO_INT(POWER_BUTTON_L, PIN(023), GPIO_INT_BOTH, power_button_interrupt)
-
-/* RSMRST from PMIC */
-/* MEC1701H GPIO_0057/VCC_PWRGD OK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(0126), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Remove. SLP_S3,S4 are eSPI virtual wires
-GPIO_INT(PCH_SLP_S4_L, PIN(0200), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(0206), GPIO_INT_BOTH, power_signal_interrupt)
-*/
-
-/* MEC1701H GPIO_0175/KSO17 OK */
-GPIO_INT(PCH_SLP_SUS_L, PIN(0175), GPIO_INT_BOTH, power_signal_interrupt)
-
-/*
- * Handle ALL_SYS_PWRGD from SKL RVP3 board
- */
-GPIO_INT(ALL_SYS_PWRGD, PIN(057), GPIO_INT_BOTH, all_sys_pwrgd_interrupt)
-
-/* Kabylake bring up move to ordinary GPIO input */
-/* MEC1701H GPIO_0034/RC_ID1/SPI0_CLK */
-/*
- *GPIO_INT(VOLUME_UP_L, PIN(034), \
- *GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
- */
-/* MEC1701H GPIO_035/PWM8/CTOUT1 OK */
-/*
- *GPIO_INT(VOLUME_DOWN_L, PIN(035), GPIO_INT_BOTH | GPIO_PULL_UP, \
- * button_interrupt)
- */
-
-/* MEC1701H GPIO_0161/VCI_IN2# OK */
-GPIO_INT(PMIC_INT_L, PIN(0161), GPIO_INT_FALLING, power_signal_interrupt)
-
- /* MEC1701H GPIO_0162/VCI_IN1# OK */
-/* GPIO_INT(PD_MCU_INT, PIN(0162), \
- GPIO_INT_FALLING | GPIO_PULL_UP, pd_mcu_interrupt) */
-/* MEC1701H GPIO_0242/ISPI_CLK OK */
-/* GPIO_INT(USB_C0_VBUS_WAKE_L,PIN(0242), GPIO_INT_BOTH, vbus0_evt) */
-/* MEC1701H GPIO_0243/ISPI_IO0 OK */
-/* GPIO_INT(USB_C1_VBUS_WAKE_L,PIN(0243), GPIO_INT_BOTH, vbus1_evt) */
-/* MEC1701H GPIO_0240/INT_IO3 OK */
-/* GPIO_INT(USB_C0_BC12_INT_L, PIN(0240), GPIO_INT_FALLING, usb0_evt) */
-/* MEC1701H GPIO_0241/ISPI_CS# OK */
-/* GPIO_INT(USB_C1_BC12_INT_L, PIN(0241), GPIO_INT_FALLING, usb1_evt) */
-/* MEC1701H GPIO_0100/nEC_SCI OK */
-GPIO_INT(TABLET_MODE_L, PIN(0100), GPIO_INT_BOTH | GPIO_PULL_UP, \
- tablet_mode_interrupt)
-/* Delayed PWR_OK from PMIC */
-/* MEC1701H GPIO_0151/ICT4/KSO15 OK */
-GPIO_INT(PMIC_DPWROK, PIN(0151), GPIO_INT_BOTH, power_signal_interrupt)
-/* UART input */
-/* MEC1701H GPIO_0105/UART0_RX OK */
-GPIO_INT(UART0_RX, PIN(0105), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP, \
- uart_deepsleep_interrupt)
-
-
-/* GPIO Pins not interrupt enabled */
-
-/* Kabylake bring up move to ordinary GPIO input */
-GPIO(VOLUME_UP_L, PIN(034), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(VOLUME_DOWN_L, PIN(035), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(WP_L, PIN(036), GPIO_INPUT)
-/*
- * TODO GP-SPI0 for testing SPI accelerometer
- * GPIO_0003 Func 2 = SPI0_CS#, func 1 = smbus00_sda
- * GPIO_0034 Func 2 = SPI0_CLK
- * GPIO_0004 Func 2 = SPI0_MOSI, func 1 = smbus00_scl
- * GPIO_0036 Func 2 = SPI0_MISO
- */
-
-
-
-/* PCH and CPU pins */
-
-/* Kabylake bringup using MECC board */
-/*
- *GPIO(ALL_SYS_PWRGD, PIN(057), GPIO_INPUT)
- */
-
-/*
- * This pulldown should be removed and SLP_S0 should be enabled as a power
- * signal interrupt in future hardware followers. The signal is pulled up
- * in the SoC when the primary rails are on and/or ramping.
- * In order to not get interrupt storms there should be external logic
- * which makes this a true binary signal into the EC.
- */
-/* MEC1701H GPIO_0222 Func1 SER_IRQ OK */
-GPIO(PCH_SLP_S0_L, PIN(0222), GPIO_INPUT | GPIO_PULL_DOWN)
-/* MEC170H GPIO_0043 Func1 SB-TSI_CLK OK */
-GPIO(PCH_PWRBTN_L, PIN(043), GPIO_OUTPUT)
-/*
- *CONFLICT with KSI3. SCI becomes eSPI Virtual Wire, remove
- *GPIO(PCH_SCI_L, PIN(026), GPIO_ODR_HIGH)
- */
-/* When asserted, ME does not lock security descriptor */
-/* MEC1701H GPIO_0022/GPTP-IN0 OK */
-GPIO(PCH_SEC_DISABLE_L, PIN(022), GPIO_OUT_HIGH)
-/* MEC1701H GPIO_0016/GPTP-IN7/SHD_IO3 OK */
-GPIO(PCH_WAKE_L, PIN(016), GPIO_ODR_HIGH)
-/* MEC1701H GPIO_0110/PS2_CLK2 OK */
-GPIO(PCH_ACOK, PIN(0110), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0012/SMB07_DATA OK */
-GPIO(PCH_RSMRST_L, PIN(012), GPIO_OUT_LOW)
-/*
- * !!! Don't use GPIO_0024 if testing on MEC51xx parts because
- * it is connected in the package to nRESET_IN# and will reset
- * the part when driven low.
- * !!!
- *GPIO(PCH_RTCRST, PIN(024), GPIO_OUT_LOW)
- */
-GPIO(PCH_RTCRST, PIN(052), GPIO_OUT_LOW)
-
-/*
- * MEC1322 Func1=nSMI, is code switching pin to Func1?
- * Conflicts with KSO04 on MEC1701H
- * eSPI replaces this signal with eSPI Virtual Wire.
- * GPIO(PCH_SMI_L, PIN(044), GPIO_ODR_HIGH)
- */
-
-/*
- * RCIN# line to PCH for 8042 emulation. Becomes VWire on eSPI
- * GPIO(PCH_RCIN_L, PIN(0135), GPIO_ODR_HIGH)
- */
-
-/* MEC1701H GPIO_0111/PS2_DAT2 OK */
-GPIO(CPU_PROCHOT, PIN(0111), GPIO_OUT_LOW)
-
-/* MEC1701H GPIO_0025/TIN0/nEM_INT/UART_CLK OK
- * Kabylake with MECC board change to GPIO_OUT_LOW
- * GPIO(SYS_RESET_L, PIN(025), GPIO_ODR_HIGH)
- */
-GPIO(SYS_RESET_L, PIN(025), GPIO_OUT_LOW)
-
-/* PMIC pins */
-/* GPIO_0033/RC_ID0 OK */
-GPIO(PMIC_SLP_SUS_L, PIN(033), GPIO_OUT_LOW)
-
-/*
- * BATLOW_L and ROP_LDO_EN are stuffing options. Set as input to
- * dynamically handle the stuffing option based on board id.
- * As both signals have external pulls setting this pin as input
- * won't harm anything.
- */
-/* MEC1701H GPIO_0163/VCI_IN0# OK */
-GPIO(BATLOW_L_PMIC_LDO_EN, PIN(0163), GPIO_INPUT)
-
-
-/* I2C pins - these will be reconfigured for alternate function below */
-/* MEC1701H */
-/* Using these pins as function 2 (GP-SPI0)
- * GPIO(SMB00_SCL, PIN(004), GPIO_INPUT)
- * GPIO(SMB00_SDA, PIN(003), GPIO_INPUT)
- */
-GPIO(SMB02_SCL, PIN(0155), GPIO_INPUT)
-GPIO(SMB02_SDA, PIN(0154), GPIO_INPUT)
-GPIO(SMB03_SCL, PIN(010), GPIO_INPUT)
-GPIO(SMB03_SDA, PIN(007), GPIO_INPUT)
-GPIO(SMB04_SCL, PIN(0144), GPIO_INPUT)
-GPIO(SMB04_SDA, PIN(0143), GPIO_INPUT)
-GPIO(SMB05_SCL, PIN(0142), GPIO_INPUT)
-GPIO(SMB05_SDA, PIN(0141), GPIO_INPUT)
-GPIO(SMB10_SCL, PIN(0131), GPIO_INPUT)
-GPIO(SMB10_SDA, PIN(0130), GPIO_INPUT)
-
-/* USB and USB-PD related pins */
-/* MEC1701H GPIO_0153/LED2 OK */
-GPIO(PD_RST_L, PIN(0153), GPIO_ODR_HIGH)
-/* MEC1701H GPIO_0013/SMB07_CLK/TOUT2 OK */
-GPIO(USB2_OTG_ID, PIN(013), GPIO_ODR_LOW)
-/* MEC1701H GPIO_0042/PECI_DAT/SB-TSI_DAT */
-GPIO(USB1_ENABLE, PIN(042), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0067/CLKRUN# OK */
-GPIO(USB2_ENABLE, PIN(067), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0101/BGP01 OK */
-GPIO(USB_C0_DP_HPD, PIN(0101), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0102/BGP02 OK */
-GPIO(USB_C1_DP_HPD, PIN(0102), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0202/ADC02 OK */
-GPIO(USB_PD_WAKE, PIN(0202), GPIO_OUT_HIGH)
-/* MEC1701H GPIO_0140/SMB06_CLK OK */
-GPIO(USB2_OTG_VBUSSENSE, PIN(0140), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0205/ADC05 OK */
-GPIO(USB_C0_5V_EN, PIN(0205), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0205/ADC06 OK */
-GPIO(USB_C1_5V_EN, PIN(0206), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0165/32KHZ_IN/CTOUT0/TRACECLK OK */
-GPIO(USB_C0_CHARGE_EN_L, PIN(0165), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0152/GPTP-OUT/KSO16 OK */
-GPIO(USB_C1_CHARGE_EN_L, PIN(0152), GPIO_OUT_LOW)
-
-/* Fan PWM output and TACH input. PROCHOT input */
-/* MEC1701H GPIO_0050/FAN_TACH0 OK */
-GPIO(EC_FAN1_TTACH, PIN(050), GPIO_INPUT | GPIO_PULL_UP)
-/* Fan PWM output - NC / testing only */
-/* MEC1701H GPIO_0053/PWM0 OK */
-GPIO(EC_FAN1_PWM, PIN(053), GPIO_OUT_LOW)
-/* prochot input from devices */
-/* MEC1701H GPIO_0051/FAN_TACH1 OK */
-GPIO(PLATFORM_EC_PROCHOT, PIN(051), GPIO_INPUT | GPIO_PULL_UP)
-
-
-/* Miscellaneous */
-/* KB BL PWM, only connected to TP */
-/* MEC1701H GPIO_0002/PWM5 OK */
-GPIO(PWM_KBLIGHT, PIN(02), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0041/SYS_SHDN# OK */
-GPIO(ENTERING_RW, PIN(041), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0115/PS2_DATA0A OK */
-GPIO(ENABLE_TOUCHPAD, PIN(0115), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0200/ADC00 OK */
-GPIO(BAT_PRESENT_L, PIN(0200), GPIO_INPUT)
-/* MEC1701H GPIO_0164/VCI_OVRD_IN OK */
-GPIO(WLAN_OFF_L, PIN(0164), GPIO_OUT_LOW)
-
-/* From lid sensor */
-/* MEC1701H GPIO_0000/VCI_IN3# OK */
-GPIO(ENABLE_BACKLIGHT, PIN(00), GPIO_OUT_LOW)
-
-/* Interrupts from accelerometer / gyro -- not yet implemented */
-/*
- * GPIO(ACCEL1_INT, PIN(0161), GPIO_INPUT)
- * GPIO(ACCEL2_INT, PIN(0127), GPIO_INPUT)
- * MEC1701H must move. GPIO_0147 is JTAG_CLK
- * GPIO(ACCEL3_INT, PIN(0147), GPIO_INPUT)
- * GPIO(ACCEL4_INT, PIN(0126), GPIO_INPUT)
- */
-
-/* MEC1701H GPIO_0011/nSMI OK */
-/* Move to board ver GPIO(PP1800_DX_SENSOR_EN, PIN(011), GPIO_OUT_LOW) */
- /* MEC1701H GPIO_0207/ADC07 OK */
-/* Move to board ver GPIO(PP3300_WLAN_EN, PIN(0207), GPIO_OUT_LOW)*/
-/* MEC1701H GPIO_0114/PS2_CLK0A/nEC_SCI OK */
-/* Move to board version
- * GPIO(PP1800_DX_AUDIO_EN, PIN(0114), GPIO_OUT_LOW)
- */
-
-
-/* Board Version */
-/*
- * MEC1701H
- * GPIO_0130/SMB10_DATA
- * GPIO_0131/SMB10_CLK
- * GPIO_0132/SMB06_DATA
- */
-/*
- * GPIO(BOARD_VERSION1, PIN(0130), GPIO_INPUT)
- * GPIO(BOARD_VERSION2, PIN(0131), GPIO_INPUT)
- * GPIO(BOARD_VERSION3, PIN(0132), GPIO_INPUT)
- */
-GPIO(BOARD_VERSION1, PIN(0114), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(0207), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(0011), GPIO_INPUT)
-
-/*
- * MEC1701H GP-SPI0 chip select is GPIO_0003
- * It is used as GPIO output. GPSPI chip level
- * code drives chip select.
- */
-GPIO(SPI0_CS0, PIN(03), GPIO_ODR_HIGH)
-
-
-/*
- * TODO(crosbug.com/p/40848): These LEDs should be under control of the
- * mec1701 LED control unit. Remove these GPIO definitions once the LED
- * control unit is functional.
- */
-/* MEC1701H GPIO_0156/LED0 OK */
-GPIO(CHARGE_LED_1, PIN(0156), GPIO_OUT_LOW)
-/* MEC1701H GPIO_0157/LED1 OK */
-GPIO(CHARGE_LED_2, PIN(0157), GPIO_OUT_LOW)
-
-/*
- * MCHP TFDP
- */
-GPIO(TFDP_CLOCK, PIN(0170), GPIO_INPUT)
-GPIO(TFDP_DATA, PIN(0171), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-
-/* KB pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-
-/* KB pins */
-/*
- * MEC1704H (144 pin package)
- * KSO00 = GPIO_0040 Func3 bank 1 bit 0
- * KSO01 = GPIO_0045 Func3 bank 1 bit 5
- * KSO02 = GPIO_0046 Func3 bank 1 bit 6
- * KSO03 = GPIO_0047 Func3 bank 1 bit 7
- * KSO04 = GPIO_0107 Func3 bank 2 bit 7
- * KSO05 = GPIO_0112 Func3 bank 2 bit 10
- * KSO06 = GPIO_0113 Func3 bank 2 bit 11
- * KSO07 = GPIO_0120 Func3 bank 2 bit 16
- * KSO08 = GPIO_0121 Func3 bank 2 bit 17
- * KSO09 = GPIO_0122 Func3 bank 2 bit 18
- * KSO10 = GPIO_0123 Func3 bank 2 bit 19
- * KSO11 = GPIO_0124 Func3 bank 2 bit 20
- * KSO12 = GPIO_0125 Func3 bank 2 bit 21
- * For 8x16 test keyboard add KSO13 - KSO15
- * KSO13 = GPIO_0126 Func3 bank 2 bit 22
- * KSO14 = GPIO_0132 Func3 bank 2 bit 26
- * KSO15 = GPIO_0151 Func3 bank 3 bit 9
- *
- * KSI0 = GPIO_0017 Func3 bank 0 bit 15
- * KSI1 = GPIO_0020 Func3 bank 0 bit 16
- * KSI2 = GPIO_0021 Func3 bank 0 bit 17
- * KSI3 = GPIO_0026 Func3 bank 0 bit 22
- * KSI4 = GPIO_0027 Func3 bank 0 bit 23
- * KSI5 = GPIO_0030 Func3 bank 0 bit 24
- * KSI6 = GPIO_0031 Func3 bank 0 bit 25
- * KSI7 = GPIO_0032 Func3 bank 0 bit 26
- */
-/* KSI 0-7, Bank 0, Func3, bits 15-17, 22-26 */
-ALTERNATE(PIN_MASK(0, 0x07C38000), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-
-/* KSO 0-3 Bank 1, Func3, bits 0, 5-7 */
-ALTERNATE(PIN_MASK(1, 0xE1), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-/* KSO 4-12, Bank 2, Func3, bits 7, 10-11, 16-21 */
-ALTERNATE(PIN_MASK(2, 0x003F0C80), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-
-/* Add KSO13-15 for 8x16 test matrix */
-/* KSO 13-14, Bank 2, Func3, bits 22, 26 */
-/*ALTERNATE(PIN_MASK(2, 0x04400000), 3, MODULE_KEYBOARD_SCAN, \
- * GPIO_KB_OUTPUT)
- */
-/* KSO 15, Bank 3, Func3, bit 9 */
-/*ALTERNATE(PIN_MASK(3, 0x00000200), 3, MODULE_KEYBOARD_SCAN, \
- * GPIO_KB_OUTPUT)
- */
-
-/* eSPI pins */
-/* ESPI_RESET# - GPIO_0061 Function 2, Bank 1 bit[17] */
-ALTERNATE(PIN_MASK(1, 0x20000), 2, MODULE_LPC, 0)
-/* ESPI_ALERT# - GPIO_0063 Function 2, Bank 1 bit[19] */
-ALTERNATE(PIN_MASK(1, 0x80000), 2, MODULE_LPC, 0)
-/* ESPI_CS# - GPIO_0066 Function 2, Bank 1 bit[22] */
-ALTERNATE(PIN_MASK(1, 0x400000), 2, MODULE_LPC, 0)
-/* ESPI_CLK - GPIO_0065 Function 2, Bank 1 bit[21] */
-ALTERNATE(PIN_MASK(1, 0x200000), 2, MODULE_LPC, 0)
-/* ESPI_IO{0,1,2,3} - GPIO_0070-GPIO_0073 Function 2, Bank 1 bits[24:27] */
-ALTERNATE(PIN_MASK(1, 0xf000000), 2, MODULE_LPC, 0)
-
-/* LPC LRESET# GPIO_0064/LRESET#
- * Function 1, Bank 1 bit[20] */
-ALTERNATE(PIN_MASK(1, 0x100000), 1, MODULE_LPC, GPIO_PULL_UP)
-
-/*
- * MEC1701H GP-SPI0 Master
- * SPI0_CS# = GPIO_0003 Func 0(GPIO) Bank 0, bit 3
- * SPI0_CLK = GPIO_0034 Func 2 Bank 0, bit 28
- * SPI0_MISO = GPIO_0036 Func 2 Bank 0, bit 30
- * SPI0_MOSI = GPIO_0004 Func 2 Bank 0, bit 4
- */
-ALTERNATE(PIN_MASK(0, 0x00000008), 0, MODULE_SPI_CONTROLLER, GPIO_ODR_HIGH)
-ALTERNATE(PIN_MASK(0, 0x50000010), 2, MODULE_SPI_CONTROLLER, 0)
-
-/* I2C pins */
-/* Using SMB00 as function 2 GP-SPI0
- * SMB00_DAT - GPIO_0003 Func1, SMB00_CLK - GPIO_0004 Func1
- * SMB03_DAT - GPIO_0007 Func1, SMB03_CLK - GPIO_0010 Func1
- * Bank 0 bits[3:4,7:8]
-*/
-/* ALTERNATE(PIN_MASK(0, 0x0198), 1, MODULE_I2C, GPIO_ODR_HIGH) */
-ALTERNATE(PIN_MASK(0, 0x0180), 1, MODULE_I2C, GPIO_ODR_HIGH)
-
-/*
- * SMB05_DAT - GPIO_0141 Func1, SMB05_CLK - GPIO_0142 Func1
- * SMB04_DAT - GPIO_0143 Func1, SMB04_CLK - GPIO_0144 Func1
- * SMB02_DAT - GPIO_0154 Func1, SMB02_CLK - GPIO_0155 Func1
- * Bank 3 bits[1:4,12:13]
-*/
-ALTERNATE(PIN_MASK(3, 0x301e), 1, MODULE_I2C, GPIO_ODR_HIGH)
-
-/* ADC pins */
-/* ADC01 - GPIO_0201 / PPVAR_BOOSTIN_SENSE. Func1 Bank 4 bit[1]
- * ADC03 - GPIO_0203 / IADP_ACMON_BMON. Func1 Bank 4 bit[3]
- * ADC04 - GPIO_0204 / PMON_PSYS. Func1 Bank 4 bit[4]
- * ADC07 - GPIO_0207 / Thermistor call it ADC_CASE
- */
-ALTERNATE(PIN_MASK(4, 0x009a), 1, MODULE_ADC, GPIO_ANALOG)
-
-/* LED0 - GPIO_0156 Func1 Bank 3 bit[14]
- * LED1 - GPIO_0157 Func1 Bank 3 bit[15]
- */
-ALTERNATE(PIN_MASK(3, 0xc000), 1, MODULE_POWER_LED, 0)
-
-/*
- * nRESET_OUT functionality is PWROK signal from MEC1701H
- * nRESET_OUT - GPIO121 Bank 2 bit[17]
- * MEC1701H nRESET_OUT is GPIO_0106/PWROK func1
- * Bank 2 bit[6]
- */
-/*
- * Not using nRESET_OUT on Kabylake RVP3 plus MEC170x EVB
- * ALTERNATE(PIN_MASK(2, 0x40), 1, MODULE_PMU, 0)
- */
-
-/*
- * MCHP TFDP alternate function configuration
- * GPIO 0170 = clock, 0171 = data both function 1
- * Port = 3 bits[24:25]
- */
-ALTERNATE(PIN_MASK(3, 0x03000000), 1, MODULE_TFDP, 0)
diff --git a/board/mchpevb1/led.c b/board/mchpevb1/led.c
deleted file mode 100644
index 7b9f7646cb..0000000000
--- a/board/mchpevb1/led.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power and battery LED control for MEC1701 EVB.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "util.h"
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-#define CRITICAL_LOW_BATTERY_PERCENTAGE 3
-#define LOW_BATTERY_PERCENTAGE 10
-
-#define LED_TOTAL_4SECS_TICKS 4
-#define LED_TOTAL_2SECS_TICKS 2
-#define LED_ON_1SEC_TICKS 1
-#define LED_ON_2SECS_TICKS 2
-
-/*
- * NOTE: GPIO_BAT_LED_xxx defined in board.h
- */
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_AMBER,
- LED_GREEN,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int bat_led_set_color(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_OFF);
- break;
- case LED_RED:
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_ON);
- break;
- case LED_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id,
- uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
-}
-
-static int board_led_set_color_battery(enum led_color color)
-{
- return bat_led_set_color(color);
-}
-
-static int board_led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- led_auto_control(led_id, 0);
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = board_led_set_color_battery(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED] != 0 &&
- brightness[EC_LED_COLOR_GREEN] != 0)
- board_led_set_color(led_id, LED_AMBER);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- board_led_set_color(led_id, LED_RED);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- board_led_set_color(led_id, LED_GREEN);
- else
- board_led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
-#ifdef CONFIG_CHARGER
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /* BAT LED behavior:
- * Same as the chromeos spec
- * Green/Amber for CHARGE_FLAG_FORCE_IDLE
- */
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- board_led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- /* Less than 3%, blink one second every two second */
- if (!chipset_in_state(CHIPSET_STATE_ANY_OFF) &&
- charge_get_percent() < CRITICAL_LOW_BATTERY_PERCENTAGE)
- board_led_set_color_battery(
- (battery_ticks % LED_TOTAL_2SECS_TICKS <
- LED_ON_1SEC_TICKS) ? LED_AMBER : LED_OFF);
- /* Less than 10%, blink one second every four seconds */
- else if (!chipset_in_state(CHIPSET_STATE_ANY_OFF) &&
- charge_get_percent() < LOW_BATTERY_PERCENTAGE)
- board_led_set_color_battery(
- (battery_ticks % LED_TOTAL_4SECS_TICKS <
- LED_ON_1SEC_TICKS) ? LED_AMBER : LED_OFF);
- else
- board_led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- board_led_set_color_battery(
- (battery_ticks % LED_TOTAL_2SECS_TICKS <
- LED_ON_1SEC_TICKS) ? LED_RED : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- board_led_set_color_battery(LED_GREEN);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- board_led_set_color_battery(
- (battery_ticks % LED_TOTAL_4SECS_TICKS <
- LED_ON_2SECS_TICKS) ? LED_GREEN : LED_AMBER);
- else
- board_led_set_color_battery(LED_GREEN);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-#endif
-}
-
-
-static void led_second(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
diff --git a/board/mchpevb1/lfw/vif_override.xml b/board/mchpevb1/lfw/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/mchpevb1/lfw/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/mchpevb1/usb_pd_policy.c b/board/mchpevb1/usb_pd_policy.c
deleted file mode 100644
index 690f8b8a3c..0000000000
--- a/board/mchpevb1/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "atomic.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(port ? GPIO_USB_C1_CHARGE_EN_L :
- GPIO_USB_C0_CHARGE_EN_L, 1);
- /* Provide VBUS */
- gpio_set_level(port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- gpio_set_level(port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return !gpio_get_level(port ? GPIO_USB_C1_VBUS_WAKE_L :
- GPIO_USB_C0_VBUS_WAKE_L);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_PMIC_SLP_SUS_L);
-}
diff --git a/board/meep/battery.c b/board/meep/battery.c
deleted file mode 100644
index ca9fc531b3..0000000000
--- a/board/meep/battery.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all meep battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack Coslight Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack ATL Battery Information */
- [BATTERY_DYNAPACK_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-27-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* DynaPack SDI Battery Information */
- [BATTERY_DYNAPACK_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-24-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Samsung SDI Battery Information */
- [BATTERY_SAMSUNG_SDI] = {
- .fuel_gauge = {
- .manuf_name = "333-54-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo Coslight Battery Information */
- [BATTERY_SIMPLO_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-1C-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo ATL Battery Information */
- [BATTERY_SIMPLO_ATL] = {
- .fuel_gauge = {
- .manuf_name = "333-17-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo HIGHPOWER Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-DA-A",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-
- /* CosMX B00C4473A9D0002 Battery Information */
- [BATTERY_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-DA-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/meep/board.c b/board/meep/board.c
deleted file mode 100644
index daac19a89a..0000000000
--- a/board/meep/board.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Meep/Mimrock board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "button.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-#ifdef CONFIG_KEYBOARD_KEYPAD
-#error "KSO_14 was repurposed to PPC_ID pin so CONFIG_KEYBOARD_KEYPAD \
-should not be defined."
-#endif
-
-static uint8_t sku_id;
-static int c0_port_ppc;
-static int c1_port_ppc;
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- if (c0_port_ppc == PPC_SYV682X)
- syv682x_interrupt(0);
- else
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- if (c1_port_ppc == PPC_SYV682X)
- syv682x_interrupt(1);
- else
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus C0 sensing (10x voltage divider). PPVAR_USB_C0_VBUS */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- /* Vbus C1 sensing (10x voltage divider). PPVAR_USB_C1_VBUS */
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t lid_standrd_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data kx022_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standrd_ref,
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/*
- * Returns 1 for boards that are convertible into tablet mode, and
- * zero for clamshells.
- */
-int board_is_convertible(void)
-{
- /*
- * Meep: 1, 2, 3, 4
- * Vortininja: 49, 50, 51, 52
- * Unprovisioned: 255
- */
- return sku_id == 1 || sku_id == 2 || sku_id == 3 ||
- sku_id == 4 || sku_id == 49 || sku_id == 50 ||
- sku_id == 51 || sku_id == 52 || sku_id == 255;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static int get_ppc_port_config(uint32_t board_version, int port)
-{
- switch (port) {
- /*
- * Meep C0 port PPC was configrated by PPC ID pin only.
- */
- case USB_PD_PORT_TCPC_0:
- if ((board_version >= 6) && gpio_get_level(GPIO_PPC_ID))
- return PPC_SYV682X;
- else
- return PPC_NX20P348X;
- /*
- * Meep C1 port PPC was configrated by PPC ID pin or SSFC,
- * The first of all we should check SSFC with priority one,
- * then check PPC ID if board is unalbe to get SSFC.
- */
- case USB_PD_PORT_TCPC_1:
- switch (get_cbi_ssfc_ppc_p1()) {
- case SSFC_PPC_P1_DEFAULT:
- if ((board_version >= 6) && gpio_get_level(GPIO_PPC_ID))
- return PPC_SYV682X;
- else
- return PPC_NX20P348X;
- case SSFC_PPC_P1_SYV682X:
- return PPC_SYV682X;
- case SSFC_PPC_P1_NX20P348X:
- default:
- return PPC_NX20P348X;
- }
- default:
- return PPC_NX20P348X;
- }
-}
-
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- ccprints("SKU: 0x%04x", sku_id);
-
- board_update_sensor_config_from_sku();
-
- if (cbi_get_board_version(&val) == EC_SUCCESS)
- ccprints("Board Version: %d", val);
-
- c0_port_ppc = get_ppc_port_config(val, USB_PD_PORT_TCPC_0);
- c1_port_ppc = get_ppc_port_config(val, USB_PD_PORT_TCPC_1);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_hibernate_late(void)
-{
- int i;
-
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs before going to hibernate */
- {GPIO_BAT_LED_WHITE_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_AMBER_L, GPIO_INPUT | GPIO_PULL_UP},
- };
-
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {1, 4}, {1, 3}, {1, 6}, {1, 7},
- {3, 1}, {2, 0}, {1, 5}, {2, 6}, {2, 7},
- {2, 1}, {2, 4}, {2, 5}, {1, 2}, {2, 3},
- {2, 2}, {3, 0}, {-1, -1}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- /*
- * We always compile in backlight support for Meep/Dorp, but only some
- * SKUs come with the hardware. Therefore, check if the current
- * device is one of them and return the default value - with backlight
- * here.
- */
- if (sku_id == 34 || sku_id == 36)
- return flags0;
-
- /* Report that there is no keyboard backlight */
- return (flags0 &= ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
-}
-
-__override uint16_t board_get_ps8xxx_product_id(int port)
-{
- /* Meep variant doesn't have ps8xxx product in the port 0 */
- if (port == 0)
- return 0;
-
- switch (get_cbi_ssfc_tcpc_p1()) {
- case SSFC_TCPC_P1_PS8755:
- return PS8755_PRODUCT_ID;
- case SSFC_TCPC_P1_DEFAULT:
- case SSFC_TCPC_P1_PS8751:
- default:
- return PS8751_PRODUCT_ID;
- }
-}
-
-static const struct ppc_config_t ppc_syv682x_port0 = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-static const struct ppc_config_t ppc_syv682x_port1 = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-static void board_setup_ppc(void)
-{
- if (c0_port_ppc == PPC_SYV682X) {
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_0],
- &ppc_syv682x_port0,
- sizeof(struct ppc_config_t));
-
- gpio_set_flags(GPIO_USB_PD_C0_INT_ODL, GPIO_INT_BOTH);
- }
-
- if (c1_port_ppc == PPC_SYV682X) {
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_1],
- &ppc_syv682x_port1,
- sizeof(struct ppc_config_t));
-
- gpio_set_flags(GPIO_USB_PD_C1_INT_ODL, GPIO_INT_BOTH);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_setup_ppc, HOOK_PRIO_INIT_I2C + 2);
-
-int ppc_get_alert_status(int port)
-{
- if (port == 0)
- return gpio_get_level(GPIO_USB_PD_C0_INT_ODL) == 0;
-
- return gpio_get_level(GPIO_USB_PD_C1_INT_ODL) == 0;
-}
diff --git a/board/meep/board.h b/board/meep/board.h
deleted file mode 100644
index 013237e2d7..0000000000
--- a/board/meep/board.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Meep/Mimrock board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LED_COMMON
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Additional PPC second source */
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_DEDICATED_INT
-#undef CONFIG_SYV682X_HV_ILIM
-#define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_5_50
-/* SYV682 isn't connected to CC, so TCPC must provide VCONN */
-#define CONFIG_USBC_PPC_SYV682X_NO_CC
-
-/* Additional TCPC second source in Port 1 */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8755
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_DYNAPACK_ATL,
- BATTERY_DYNAPACK_SDI,
- BATTERY_SAMSUNG_SDI,
- BATTERY_SIMPLO_COS,
- BATTERY_SIMPLO_ATL,
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COS,
- BATTERY_TYPE_COUNT,
-};
-
-enum ppc_type {
- PPC_NX20P348X,
- PPC_SYV682X,
- PPC_TYPE_COUNT,
-};
-
-int board_is_convertible(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/meep/build.mk b/board/meep/build.mk
deleted file mode 100644
index 3d04b75731..0000000000
--- a/board/meep/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/meep/ec.tasklist b/board/meep/ec.tasklist
deleted file mode 100644
index d98db145e7..0000000000
--- a/board/meep/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/meep/gpio.inc b/board/meep/gpio.inc
deleted file mode 100644
index ebb69bdf53..0000000000
--- a/board/meep/gpio.inc
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-/*
- * High-to-low transition on POWER_BUTTON_L is treated as a wake event from
- * hibernate. Absence of GPIO_HIB_WAKE_HIGH flag is treated as wake on
- * high-to-low edge.
- */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH) /* EN_PP3300_TRACKPAD_ODL */
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_AMBER_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_WHITE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(PWR_LED_WHITE_L, PIN(D, 7), GPIO_OUT_HIGH) /* LED_3_L */
-
-/* Keyboard Backlight */
-GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_OUT_LOW)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP) /* GPO66_ARM_L_X86 */
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP) /* EC_GP_SEL_ODL */
-
-/* Misc */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT)
-GPIO(EC_GPIO_03, PIN(0, 3), GPIO_INPUT) /* TP only */
-GPIO(PPC_ID, PIN(8, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* PPC ID pin */
-
-/* Unused pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_WOV_DMIC_DATA, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* EC_KSO_02_INV */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* 1.8V I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/meep/led.c b/board/meep/led.c
deleted file mode 100644
index 5494f11361..0000000000
--- a/board/meep/led.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Meep/Mimrock
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "hooks.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Meep: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- /* STATE_DISCHARGE_S3 will changed if sku is clamshells */
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_WHITE, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-static void s3_led_init(void)
-{
- if (!board_is_convertible()) {
- led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_0].color =
- EC_LED_COLOR_WHITE;
- led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_0].time =
- 1 * LED_ONE_SEC;
-
- led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_1].color =
- LED_OFF;
- led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_1].time =
- 1 * LED_ONE_SEC;
- }
-}
-DECLARE_HOOK(HOOK_INIT, s3_led_init, HOOK_PRIO_DEFAULT);
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_WHITE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/meep/vif_override.xml b/board/meep/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/meep/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/metaknight/battery.c b/board/metaknight/battery.c
deleted file mode 100644
index 943771ffa4..0000000000
--- a/board/metaknight/battery.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all metaknight battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo PC-VP-BP44 Battery Information */
- [BATTERY_SMP_PCVPBP144] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "PC-VP-BP144",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x10,
- .disconnect_val = 0x00,
- .cfet_mask = 0x08,
- .cfet_off_val = 0x00,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 128, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP_PCVPBP144;
diff --git a/board/metaknight/board.c b/board/metaknight/board.c
deleted file mode 100644
index 8f54536d7f..0000000000
--- a/board/metaknight/board.c
+++ /dev/null
@@ -1,906 +0,0 @@
-/* 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.
- */
-
-/* metaknight board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/nb7v904m.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-#define ADC_VOL_UP_MASK BIT(0)
-#define ADC_VOL_DOWN_MASK BIT(1)
-
-static uint8_t new_adc_key_state;
-
-/* USB-A Configuration */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
- GPIO_EN_USB_A1_VBUS,
-};
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-static void sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- int hdmi_hpd_odl = gpio_get_level(GPIO_HDMI_HPD_SUB_ODL);
-
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, !hdmi_hpd_odl);
-
- cprints(CC_SYSTEM, "HDMI plug-%s", !hdmi_hpd_odl ? "in" : "out");
-}
-
-/**
- * Handle debounced pen input changing state.
- */
-static void pen_input_deferred(void)
-{
- int pen_charge_enable = !gpio_get_level(GPIO_PEN_DET_ODL) &&
- !chipset_in_state(CHIPSET_STATE_ANY_OFF);
-
- if (pen_charge_enable)
- gpio_set_level(GPIO_EN_PP3300_PEN, 1);
- else
- gpio_set_level(GPIO_EN_PP3300_PEN, 0);
-
- CPRINTS("Pen charge %sable", pen_charge_enable ? "en" : "dis");
-}
-DECLARE_DEFERRED(pen_input_deferred);
-
-void pen_input_interrupt(enum gpio_signal signal)
-{
- /* pen input debounce time */
- hook_call_deferred(&pen_input_deferred_data, (100 * MSEC));
-}
-
-static void pen_charge_check(void)
-{
- hook_call_deferred(&pen_input_deferred_data, (100 * MSEC));
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, pen_charge_check, HOOK_PRIO_LAST);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, pen_charge_check, HOOK_PRIO_LAST);
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
-
- [TEMP_SENSOR_MEMORY] = {
- .name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_memory = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_thermal(void)
-{
- thermal_params[TEMP_SENSOR_MEMORY] = thermal_memory;
- thermal_params[TEMP_SENSOR_CPU] = thermal_cpu;
-}
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-#ifdef BOARD_WADDLEDOO
-static void reconfigure_5v_gpio(void)
-{
- /*
- * b/147257497: On early waddledoo boards, GPIO_EN_PP5000 was swapped
- * with GPIO_VOLUP_BTN_ODL. Therefore, we'll actually need to set that
- * GPIO instead for those boards. Note that this breaks the volume up
- * button functionality.
- */
- if (system_get_board_version() < 0) {
- CPRINTS("old board - remapping 5V en");
- gpio_set_flags(GPIO_VOLUP_BTN_ODL, GPIO_OUT_LOW);
- }
-}
-DECLARE_HOOK(HOOK_INIT, reconfigure_5v_gpio, HOOK_PRIO_INIT_I2C+1);
-#endif /* BOARD_WADDLEDOO */
-
-static void set_5v_gpio(int level)
-{
- int version;
- enum gpio_signal gpio = GPIO_EN_PP5000;
-
- /*
- * b/147257497: On early waddledoo boards, GPIO_EN_PP5000 was swapped
- * with GPIO_VOLUP_BTN_ODL. Therefore, we'll actually need to set that
- * GPIO instead for those boards. Note that this breaks the volume up
- * button functionality.
- */
- if (IS_ENABLED(BOARD_WADDLEDOO)) {
- version = system_get_board_version();
-
- /*
- * If the CBI EEPROM wasn't formatted, assume it's a very early
- * board.
- */
- gpio = version < 0 ? GPIO_VOLUP_BTN_ODL : GPIO_EN_PP5000;
- }
-
- gpio_set_level(gpio, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC, or send enable signal to HDMI
- * DB.
- */
- set_5v_gpio(!!enable);
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI ||
- get_cbi_fw_config_db() == DB_LTE_HDMI) {
- gpio_set_level(GPIO_SUB_C1_INT_EN_RAILS_ODL, !enable);
- }
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- return CHARGER_NUM;
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_lsm6dsm_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct kionix_accel_data g_kx022_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-static struct icm_drv_data_t g_icm426xx_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t lsm6dsm_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DS3,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_lsm6dsm_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t lsm6dsm_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DS3,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_lsm6dsm_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
-};
-
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, enough for laptop */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-static int base_gyro_config;
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI ||
- get_cbi_fw_config_db() == DB_LTE_HDMI) {
- /* Disable i2c on HDMI pins */
- gpio_config_pin(MODULE_I2C, GPIO_HDMI_HPD_SUB_ODL, 0);
- gpio_config_pin(MODULE_I2C, GPIO_GPIO92_NC, 0);
-
- gpio_set_flags(GPIO_SUB_C1_INT_EN_RAILS_ODL, GPIO_ODR_HIGH);
-
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
-
- /* Enable interrupt for passing through HPD */
- gpio_enable_interrupt(GPIO_HDMI_HPD_SUB_ODL);
- } else {
- /* Set SDA as an input */
- gpio_set_flags(GPIO_HDMI_HPD_SUB_ODL,
- GPIO_INPUT);
- }
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Enable gpio interrupt for pen detect */
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* Initialize g-sensor */
- base_gyro_config = get_cbi_ssfc_base_sensor();
-
- if (base_gyro_config == SSFC_SENSOR_LSM6DSM) {
- motion_sensors[BASE_ACCEL] = lsm6dsm_base_accel;
- motion_sensors[BASE_GYRO] = lsm6dsm_base_gyro;
- cprints(CC_SYSTEM, "SSFC: BASE GYRO is LSM6DSM");
- } else if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- cprints(CC_SYSTEM, "SSFC: BASE GYRO is ICM426XX");
- } else
- cprints(CC_SYSTEM, "SSFC: BASE GYRO is BMI160");
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- cprints(CC_SYSTEM, "SSFC: LID ACCEL is KX022");
- } else
- cprints(CC_SYSTEM, "SSFC: LID ACCEL is BMA253");
-
- /* Initial thermal */
- setup_thermal();
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (board_get_usb_pd_port_count() > 1 &&
- !gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-int adc_to_physical_value(enum gpio_signal gpio)
-{
- if (gpio == GPIO_VOLUME_UP_L)
- return !!(new_adc_key_state & ADC_VOL_UP_MASK);
- else if (gpio == GPIO_VOLUME_DOWN_L)
- return !!(new_adc_key_state & ADC_VOL_DOWN_MASK);
-
- CPRINTS("Not a volume up or down key");
- return 0;
-}
-
-int button_is_adc_detected(enum gpio_signal gpio)
-{
- return (gpio == GPIO_VOLUME_DOWN_L) || (gpio == GPIO_VOLUME_UP_L);
-}
-
-static void adc_vol_key_press_check(void)
-{
- int volt = adc_read_channel(ADC_SUB_ANALOG);
- static uint8_t old_adc_key_state;
- uint8_t adc_key_state_change;
-
- if (volt > 2400 && volt < 2540) {
- /* volume-up is pressed */
- new_adc_key_state = ADC_VOL_UP_MASK;
- } else if (volt > 2600 && volt < 2740) {
- /* volume-down is pressed */
- new_adc_key_state = ADC_VOL_DOWN_MASK;
- } else if (volt < 2300) {
- /* both volumn-up and volume-down are pressed */
- new_adc_key_state = ADC_VOL_UP_MASK | ADC_VOL_DOWN_MASK;
- } else if (volt > 2780) {
- /* both volumn-up and volume-down are released */
- new_adc_key_state = 0;
- }
- if (new_adc_key_state != old_adc_key_state) {
- adc_key_state_change = old_adc_key_state ^ new_adc_key_state;
- if (adc_key_state_change && ADC_VOL_UP_MASK)
- button_interrupt(GPIO_VOLUME_UP_L);
- if (adc_key_state_change && ADC_VOL_DOWN_MASK)
- button_interrupt(GPIO_VOLUME_DOWN_L);
-
- old_adc_key_state = new_adc_key_state;
- }
-}
-DECLARE_HOOK(HOOK_TICK, adc_vol_key_press_check, HOOK_PRIO_DEFAULT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-#ifndef TEST_BUILD
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_gyro_config) {
- case SSFC_SENSOR_LSM6DSM:
- lsm6dsm_interrupt(signal);
- break;
- case SSFC_SENSOR_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case SSFC_SENSOR_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-const struct i2c_port_t i2c_ports[] = {
- {
- "eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA
- },
-
- {
- "battery", I2C_PORT_BATTERY, 100, GPIO_EC_I2C_BATTERY_SCL,
- GPIO_EC_I2C_BATTERY_SDA
- },
-
- {
- "sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA
- },
-
- {
- "usbc0", I2C_PORT_USB_C0, 1000, GPIO_EC_I2C_USB_C0_SCL,
- GPIO_EC_I2C_USB_C0_SDA
- },
-#if CONFIG_USB_PD_PORT_MAX_COUNT > 1
- {
- "sub_usbc1", I2C_PORT_SUB_USB_C1, 1000,
- GPIO_EC_I2C_SUB_USB_C1_SCL, GPIO_EC_I2C_SUB_USB_C1_SDA
- },
-#endif
-};
-
-#endif
diff --git a/board/metaknight/board.h b/board/metaknight/board.h
deleted file mode 100644
index c8c6b6e0e6..0000000000
--- a/board/metaknight/board.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* 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.
- */
-
-/* metaknight board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_DEDEDE_EC_NPCX796FC
-#include "baseboard.h"
-
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/*
- * GPIO for C1 interrupts, for baseboard use
- *
- * Note this line might already have its pull up disabled for HDMI DBs, but
- * it should be fine to set again before z-state.
- */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_C1_INT_EN_RAILS_ODL
-
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* PWM */
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* Temp sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_NB7V904M
-
-/* Common USB-A defines */
-#define USB_PORT_COUNT 2
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_INVERTED
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL GPIO_USB_A1_CHARGE_EN_L
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/*
- * I2C pin names for baseboard
- *
- * Note: these lines will be set as i2c on start-up, but this should be
- * okay since they're ODL.
- */
-#define GPIO_EC_I2C_SUB_USB_C1_SCL GPIO_GPIO92_NC
-#define GPIO_EC_I2C_SUB_USB_C1_SDA GPIO_HDMI_HPD_SUB_ODL
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel second source */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel second source */
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source */
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Volume Button feature */
-#define CONFIG_ADC_BUTTONS
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-
-#ifdef BOARD_METAKNIGHT_LEGACY
-/* this change saves 1656 bytes of RW flash space */
-#define CONFIG_CHIP_INIT_ROM_REGION
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#else
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-#endif
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_NUM,
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_MEMORY,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_COUNT,
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP_PCVPBP144,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/metaknight/build.mk b/board/metaknight/build.mk
deleted file mode 100644
index cd002a20e7..0000000000
--- a/board/metaknight/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=dedede
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/metaknight/cbi_ssfc.c b/board/metaknight/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/metaknight/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/metaknight/cbi_ssfc.h b/board/metaknight/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/metaknight/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/metaknight/ec.tasklist b/board/metaknight/ec.tasklist
deleted file mode 100644
index dc4065cf98..0000000000
--- a/board/metaknight/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/metaknight/gpio.inc b/board/metaknight/gpio.inc
deleted file mode 100644
index dee2e2dadf..0000000000
--- a/board/metaknight/gpio.inc
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-
-
-/* Button interrupts */
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(PEN_DET_ODL, PIN(5, 0), GPIO_INT_BOTH, pen_input_interrupt)
-GPIO_INT(HDMI_HPD_SUB_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* HDMI_HPD */
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-
-/* Extra Sub-board I/O pins */
-GPIO(EC_SUB_IO_2, PIN(3, 4), GPIO_OUT_LOW)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(6, 3), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(SUB_C1_INT_EN_RAILS_ODL, PIN(F, 5), GPIO_ODR_LOW)/* 5V power en */
-
-/* LED */
-GPIO(LED_W_ODL, PIN(C, 3), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN) /* LED White */
-GPIO(LED_Y_ODL, PIN(C, 4), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN) /* LED Amber */
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-
-/* USB pins */
-GPIO(USB_C0_RST_ODL, PIN(9, 7), GPIO_OUT_HIGH) /* currently unused */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(USB_A0_CHARGE_EN_L, PIN(3, 7), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(F, 3), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_A1_VBUS, PIN(F, 2), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-
-/*
- * metaknight doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-UNIMPLEMENTED(VOLDN_BTN_ODL)
-UNIMPLEMENTED(VOLUP_BTN_ODL)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO00_NC, PIN(0, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO40_NC, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO60_NC, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO73_NC, PIN(7, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO80_NC, PIN(8, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO92_NC, PIN(9, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC2_NC, PIN(C, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/metaknight/led.c b/board/metaknight/led.c
deleted file mode 100644
index 10edf9068e..0000000000
--- a/board/metaknight/led.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Metaknight
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_W_ODL, LED_ON_LVL);
- gpio_set_level(GPIO_LED_Y_ODL, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_W_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_Y_ODL, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_W_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_Y_ODL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
-
-
diff --git a/board/metaknight/usb_pd_policy.c b/board/metaknight/usb_pd_policy.c
deleted file mode 100644
index 3190595596..0000000000
--- a/board/metaknight/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/metaknight/vif_override.xml b/board/metaknight/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/metaknight/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/minimuffin b/board/minimuffin
deleted file mode 120000
index caf3ff6e0a..0000000000
--- a/board/minimuffin
+++ /dev/null
@@ -1 +0,0 @@
-zinger/ \ No newline at end of file
diff --git a/board/moonball b/board/moonball
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/moonball
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/moonbuggy/board.c b/board/moonbuggy/board.c
deleted file mode 100644
index 8322f2ef82..0000000000
--- a/board/moonbuggy/board.c
+++ /dev/null
@@ -1,480 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Puff board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "chipset.h"
-#include "common.h"
-#include "core/cortex-m/cpu.h"
-#include "cros_board_info.h"
-#include "driver/ina3221.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/cometlake-discrete.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_common.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-static void power_monitor(void);
-DECLARE_DEFERRED(power_monitor);
-
-static uint8_t usbc_overcurrent;
-static int32_t base_5v_power;
-
-/*
- * Power usage for each port as measured or estimated.
- * Units are milliwatts (5v x ma current)
- */
-#define PWR_BASE_LOAD (5*1335)
-#define PWR_FRONT_HIGH (5*1500)
-#define PWR_FRONT_LOW (5*900)
-#define PWR_REAR (5*1500)
-#define PWR_HDMI (5*562)
-#define PWR_C_HIGH (5*3740)
-#define PWR_C_LOW (5*2090)
-#define PWR_MAX (5*10000)
-
-/*
- * Update the 5V power usage, assuming no throttling,
- * and invoke the power monitoring.
- */
-static void update_5v_usage(void)
-{
- int front_ports = 0;
- /*
- * Recalculate the 5V load, assuming no throttling.
- */
- base_5v_power = PWR_BASE_LOAD;
- if (!gpio_get_level(GPIO_USB_A2_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- if (!gpio_get_level(GPIO_USB_A3_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- /*
- * Only 1 front port can run higher power at a time.
- */
- if (front_ports > 0)
- base_5v_power += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!gpio_get_level(GPIO_USB_A1_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_HDMI_CONN0_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (!gpio_get_level(GPIO_HDMI_CONN1_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (usbc_overcurrent)
- base_5v_power += PWR_C_HIGH;
- /*
- * Invoke the power handler immediately.
- */
- hook_call_deferred(&power_monitor_data, 0);
-}
-DECLARE_DEFERRED(update_5v_usage);
-/*
- * Start power monitoring after ADCs have been initialised.
- */
-DECLARE_HOOK(HOOK_INIT, update_5v_usage, HOOK_PRIO_INIT_ADC + 1);
-
-static void port_ocp_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&update_5v_usage_data, 0);
-}
-
-/******************************************************************************/
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_LED_RED] = { .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
- [PWM_CH_LED_WHITE] = { .channel = 2,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
-};
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {"ina", I2C_PORT_INA, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"ppc0", I2C_PORT_PPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"pse", I2C_PORT_PSE, 400, GPIO_I2C4_SCL, GPIO_I2C4_SDA},
- {"power", I2C_PORT_POWER, 400, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct adc_t adc_channels[] = {
- [ADC_SNS_PP3300] = {
- /*
- * 4700/5631 voltage divider: can take the value out of range
- * for 32-bit signed integers, so truncate to 470/563 yielding
- * <0.1% error and a maximum intermediate value of 1623457792,
- * which comfortably fits in int32.
- */
- .name = "SNS_PP3300",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT * 563,
- .factor_div = (ADC_READ_MAX + 1) * 470,
- },
- [ADC_SNS_PP1050] = {
- .name = "SNS_PP1050",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_VBUS] = { /* 5/39 voltage divider */
- .name = "VBUS",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT * 39,
- .factor_div = (ADC_READ_MAX + 1) * 5,
- },
- [ADC_PPVAR_IMON] = { /* 500 mV/A */
- .name = "PPVAR_IMON",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT * 2, /* Milliamps */
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR_1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CORE] = {
- .name = "Core",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* Wake up pins */
-const enum gpio_signal hibernate_wake_pins[] = {
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2500,
- .rpm_start = 2500,
- .rpm_max = 5300,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* Thermal control; drive fan based on temperature sensors. */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(89),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_CORE] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Power sensors */
-const struct ina3221_t ina3221[] = {
- { I2C_PORT_INA, 0x40, { "PP3300_G", "PP5000_A", "PP3300_WLAN" } },
- { I2C_PORT_INA, 0x42, { "PP3300_A", "PP3300_SSD", "PP3300_LAN" } },
- { I2C_PORT_INA, 0x43, { NULL, "PP1200_U", "PP2500_DRAM" } }
-};
-const unsigned int ina3221_count = ARRAY_SIZE(ina3221);
-
-static uint16_t board_version;
-static uint32_t sku_id;
-static uint32_t fw_config;
-
-static void cbi_init(void)
-{
- /*
- * Load board info from CBI to control per-device configuration.
- *
- * If unset it's safe to treat the board as a proto, just C10 gating
- * won't be enabled.
- */
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- if (cbi_get_fw_config(&val) == EC_SUCCESS)
- fw_config = val;
- CPRINTS("Board Version: %d, SKU ID: 0x%08x, F/W config: 0x%08x",
- board_version, sku_id, fw_config);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_init(void)
-{
- uint8_t *memmap_batt_flags;
-
- /* Override some GPIO interrupt priorities.
- *
- * These interrupts are timing-critical for AP power sequencing, so we
- * increase their NVIC priority from the default of 3. This affects
- * whole MIWU groups of 8 GPIOs since they share an IRQ.
- *
- * Latency at the default priority level can be hundreds of
- * microseconds while other equal-priority IRQs are serviced, so GPIOs
- * requiring faster response must be higher priority.
- */
- /* CPU_C10_GATE_L on GPIO6.7: must be ~instant for ~60us response. */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTH_1, 1);
- /*
- * slp_s3_interrupt (GPIOA.5 on WKINTC_0) must respond within 200us
- * (tPLT18); less critical than the C10 gate.
- */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTC_0, 2);
-
- /* Always claim AC is online, because we don't have a battery. */
- memmap_batt_flags = host_get_memmap(EC_MEMMAP_BATT_FLAG);
- *memmap_batt_flags |= EC_BATT_FLAG_AC_PRESENT;
- /*
- * For board version < 2, the directly connected recovery
- * button is not available.
- */
- if (board_version < 2)
- button_disable_gpio(GPIO_EC_RECOVERY_BTN_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* USB-A port control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USB_VBUS,
-};
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-int extpower_is_present(void)
-{
- /* genesis: If the EC is running, then there is external power */
- return 1;
-}
-
-int board_is_c10_gate_enabled(void)
-{
- return 0;
-}
-
-void board_enable_s0_rails(int enable)
-{
-}
-
-/*
- * Power monitoring and management.
- *
- * The overall goal is to gracefully manage the power demand so that
- * the power budgets are met without letting the system fall into
- * power deficit (perhaps causing a brownout).
- *
- * There are 2 power budgets that need to be managed:
- * - overall system power as measured on the main power supply rail.
- * - 5V power delivered to the USB and HDMI ports.
- *
- * The actual system power demand is calculated from the VBUS voltage and
- * the input current (read from a shunt), averaged over 5 readings.
- * The power budget limit is from the charge manager.
- *
- * The 5V power cannot be read directly. Instead, we rely on overcurrent
- * inputs from the USB and HDMI ports to indicate that the port is in use
- * (and drawing maximum power).
- *
- * There are 3 throttles that can be applied (in priority order):
- *
- * - Type A BC1.2 front port restriction (3W)
- * - Type C PD (throttle to 1.5A if sourcing)
- * - Turn on PROCHOT, which immediately throttles the CPU.
- *
- * The first 2 throttles affect both the system power and the 5V rails.
- * The third is a last resort to force an immediate CPU throttle to
- * reduce the overall power use.
- *
- * The strategy is to determine what the state of the throttles should be,
- * and to then turn throttles off or on as needed to match this.
- *
- * This function runs on demand, or every 2 ms when the CPU is up,
- * and continually monitors the power usage, applying the
- * throttles when necessary.
- *
- * All measurements are in milliwatts.
- */
-#define THROT_TYPE_A BIT(0)
-#define THROT_TYPE_C BIT(1)
-#define THROT_PROCHOT BIT(2)
-
-/*
- * Power gain if front USB A ports are limited.
- */
-#define POWER_GAIN_TYPE_A 3200
-/*
- * Power gain if Type C port is limited.
- */
-#define POWER_GAIN_TYPE_C 8800
-/*
- * Power is averaged over 10 ms, with a reading every 2 ms.
- */
-#define POWER_DELAY_MS 2
-#define POWER_READINGS (10/POWER_DELAY_MS)
-
-static void power_monitor(void)
-{
- static uint32_t current_state;
- int32_t delay;
- uint32_t new_state = 0, diff;
- int32_t headroom_5v = PWR_MAX - base_5v_power;
-
- /*
- * If CPU is off or suspended, no need to throttle
- * or restrict power.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
- CHIPSET_STATE_SUSPEND)) {
- /*
- * Slow down monitoring, assume no throttling required.
- */
- delay = 20 * MSEC;
- } else {
- delay = POWER_DELAY_MS * MSEC;
- }
- /*
- * Check the 5v power usage and if necessary,
- * adjust the throttles in priority order.
- *
- * Either throttle may have already been activated by
- * the overall power control.
- *
- * We rely on the overcurrent detection to inform us
- * if the port is in use.
- *
- * - If type C not already throttled:
- * * If not overcurrent, prefer to limit type C [1].
- * * If in overcurrentuse:
- * - limit type A first [2]
- * - If necessary, limit type C [3].
- * - If type A not throttled, if necessary limit it [2].
- */
- if (headroom_5v < 0) {
- /*
- * Check whether type C is not throttled,
- * and is not overcurrent.
- */
- if (!((new_state & THROT_TYPE_C) || usbc_overcurrent)) {
- /*
- * [1] Type C not in overcurrent, throttle it.
- */
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- new_state |= THROT_TYPE_C;
- }
- /*
- * [2] If type A not already throttled, and power still
- * needed, limit type A.
- */
- if (!(new_state & THROT_TYPE_A) && headroom_5v < 0) {
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- new_state |= THROT_TYPE_A;
- }
- /*
- * [3] If still under-budget, limit type C.
- * No need to check if it is already throttled or not.
- */
- if (headroom_5v < 0)
- new_state |= THROT_TYPE_C;
- }
- /*
- * Turn the throttles on or off if they have changed.
- */
- diff = new_state ^ current_state;
- current_state = new_state;
- if (diff & THROT_PROCHOT) {
- int prochot = (new_state & THROT_PROCHOT) ? 0 : 1;
-
- gpio_set_level(GPIO_EC_PROCHOT_ODL, prochot);
- }
- if (diff & THROT_TYPE_A) {
- int typea_bc = (new_state & THROT_TYPE_A) ? 1 : 0;
-
- gpio_set_level(GPIO_USB_A3_LOW_PWR_OD, typea_bc);
- }
- hook_call_deferred(&power_monitor_data, delay);
-}
diff --git a/board/moonbuggy/board.h b/board/moonbuggy/board.h
deleted file mode 100644
index 23ad02dc4d..0000000000
--- a/board/moonbuggy/board.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Puff board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* NPCX7 config */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-#define NPCX_UART_MODULE2 1 /* GPIO64/65 are used as UART pins. */
-
-/* Internal SPI flash on NPCX796FC is 512 kB */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-/* EC Defines */
-#define CONFIG_ADC
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_DEDICATED_RECOVERY_BUTTON_2
-#define CONFIG_BUTTONS_RUNTIME_CONFIG
-#define CONFIG_BOARD_RESET_AFTER_POWER_ON
-/* TODO: (b/143496253) re-enable CEC */
-/* #define CONFIG_CEC */
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_KEYBOARD_BOOT_KEYS
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#undef CONFIG_KEYBOARD_RUNTIME_KEYS
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_LED_COMMON
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LTO
-#define CONFIG_PWM
-#define CONFIG_VBOOT_EFS2
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_SHA256
-
-/* EC Commands */
-#define CONFIG_CMD_BUTTON
-/* Include CLI command needed to support CCD testing. */
-#define CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_KEYBOARD
-#define CONFIG_HOSTCMD_PD_CONTROL
-#undef CONFIG_CMD_PWR_AVG
-#define CONFIG_CMD_PPC_DUMP
-#define CONFIG_CMD_TCPC_DUMP
-#ifdef SECTION_IS_RO
-/* Reduce RO size by removing less-relevant commands. */
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_HCDEBUG
-#undef CONFIG_CMD_MMAPINFO
-#endif
-
-#undef CONFIG_CONSOLE_CMDHELP
-
-/* Don't generate host command debug by default */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Enable AP Reset command for TPM with old firmware version to detect it. */
-#define CONFIG_CMD_AP_RESET_LOG
-#define CONFIG_HOSTCMD_AP_RESET
-
-/* Chipset config */
-#define CONFIG_CHIPSET_COMETLAKE_DISCRETE
-/* check */
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_BUTTON_X86
-/* Check: */
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-#define CONFIG_POWER_PP5000_CONTROL
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_S0IX_FAILURE_DETECTION
-#define CONFIG_POWER_SLEEP_FAILURE_DETECTION
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_INA3221
-
-/* Fan and temp. */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 0
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_ROA_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-#define CONFIG_THROTTLE_AP
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 0
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_DUMB
-/* There are five ports, but power enable is ganged across all of them. */
-#define USB_PORT_COUNT 1
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_INA NPCX_I2C_PORT0_0
-#define I2C_PORT_PPC0 NPCX_I2C_PORT1_0
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT3_0
-#define I2C_PORT_PSE NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define PP5000_PGOOD_POWER_SIGNAL_MASK POWER_SIGNAL_MASK(PP5000_A_PGOOD)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_SNS_PP3300, /* ADC2 */
- ADC_SNS_PP1050, /* ADC7 */
- ADC_VBUS, /* ADC4 */
- ADC_PPVAR_IMON, /* ADC9 */
- ADC_TEMP_SENSOR_1, /* ADC0 */
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_LED_RED,
- PWM_CH_LED_WHITE,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CORE,
- TEMP_SENSOR_COUNT
-};
-
-
-/* Board specific handlers */
-void led_alert(int enable);
-void show_critical_error(void);
-
-/*
- * firmware config fields
- */
-/*
- * Barrel-jack power (4 bits).
- */
-#define EC_CFG_BJ_POWER_L 0
-#define EC_CFG_BJ_POWER_H 3
-#define EC_CFG_BJ_POWER_MASK GENMASK(EC_CFG_BJ_POWER_H, EC_CFG_BJ_POWER_L)
-/*
- * USB Connector 4 not present (1 bit).
- */
-#define EC_CFG_NO_USB4_L 4
-#define EC_CFG_NO_USB4_H 4
-#define EC_CFG_NO_USB4_MASK GENMASK(EC_CFG_NO_USB4_H, EC_CFG_NO_USB4_L)
-/*
- * Thermal solution config (3 bits).
- */
-#define EC_CFG_THERMAL_L 5
-#define EC_CFG_THERMAL_H 7
-#define EC_CFG_THERMAL_MASK GENMASK(EC_CFG_THERMAL_H, EC_CFG_THERMAL_L)
-
-unsigned int ec_config_get_thermal_solution(void);
-
-#endif /* !__ASSEMBLER__ */
-
-/* Pin renaming */
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PP5000_A_PG_OD GPIO_PG_PP5000_A_OD
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_RECOVERY_L GPIO_EC_RECOVERY_BTN_ODL
-#define GPIO_RECOVERY_L_2 GPIO_H1_EC_RECOVERY_BTN_ODL
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_AC_PRESENT GPIO_BJ_ADP_PRESENT_L
-
-/*
- * There is no RSMRST input, so alias it to the output. This short-circuits
- * common_intel_x86_handle_rsmrst.
- */
-#define GPIO_RSMRST_L_PGOOD GPIO_PCH_RSMRST_L
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/moonbuggy/build.mk b/board/moonbuggy/build.mk
deleted file mode 100644
index 0acd315b39..0000000000
--- a/board/moonbuggy/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-
-board-y=board.o
-board-y+=led.o
-board-y+=pse.o
diff --git a/board/moonbuggy/ec.tasklist b/board/moonbuggy/ec.tasklist
deleted file mode 100644
index 3828142c55..0000000000
--- a/board/moonbuggy/ec.tasklist
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/moonbuggy/gpio.inc b/board/moonbuggy/gpio.inc
deleted file mode 100644
index 6a905fdf04..0000000000
--- a/board/moonbuggy/gpio.inc
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Pin names follow the schematic, and are aliased to other names if necessary.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Latency on this interrupt is extremely critical, so it comes first to ensure
- * it gets placed first in gpio_wui_table so gpio_interrupt() needs to do
- * minimal scanning. */
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, c10_gate_interrupt)
-
-/* Wake Source interrupts */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_PP5000_A_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1800_A_OD, PIN(3, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VPRIM_CORE_A_OD, PIN(2, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1050_A_OD, PIN(2, 2), GPIO_INT_BOTH, power_signal_interrupt)
-/* EC output, but also interrupt so this can be polled as a power signal */
-GPIO_INT(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUTPUT | GPIO_INT_F_RISING | GPIO_INT_F_FALLING, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_PP2500_DRAM_U_OD, PIN(2, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1200_U_OD, PIN(2, 1), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, slp_s3_interrupt)
-#endif
-GPIO_INT(PG_PP950_VCCIO_OD, PIN(1, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(IMVP8_VRRDY_OD, PIN(1, 6), GPIO_INT_BOTH, power_signal_interrupt)
-
-/*
- * Directly connected recovery button (not available on some boards).
- */
-GPIO_INT(EC_RECOVERY_BTN_ODL, PIN(F, 1), GPIO_INT_BOTH, button_interrupt)
-/*
- * Recovery button input from H1.
- */
-GPIO_INT(H1_EC_RECOVERY_BTN_ODL, PIN(2, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO(BJ_ADP_PRESENT_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP)
-
-/* Port power control interrupts */
-GPIO_INT(HDMI_CONN0_OC_ODL, PIN(0, 7), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(HDMI_CONN1_OC_ODL, PIN(0, 6), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A1_OC_ODL, PIN(A, 2), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A2_OC_ODL, PIN(F, 5), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A3_OC_ODL, PIN(0, 3), GPIO_INT_BOTH, port_ocp_interrupt)
-
-/* PCH/CPU signals */
-GPIO(EC_PCH_PWROK, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_ODR_HIGH)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Power control outputs */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_INA_H1_EC_ODL, PIN(5, 7), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_A, PIN(1, 5), GPIO_OUT_LOW)
-GPIO(VCCST_PG_OD, PIN(1, 4), GPIO_ODR_LOW)
-GPIO(EN_S0_RAILS, PIN(1, 1), GPIO_OUT_LOW)
-GPIO(EN_ROA_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP950_VCCIO, PIN(1, 0), GPIO_OUT_LOW)
-GPIO(EC_IMVP8_PE, PIN(A, 7), GPIO_OUT_LOW)
-GPIO(EN_IMVP8_VR, PIN(F, 4), GPIO_OUT_LOW)
-
-/* Barreljack */
-GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 4), GPIO_OUT_LOW)
-
-/* USB type A */
-GPIO(EN_PP5000_USB_VBUS, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(USB_A3_LOW_PWR_OD, PIN(5, 0), GPIO_ODR_LOW)
-GPIO(USB_A1_STATUS_L, PIN(6, 1), GPIO_INPUT)
-GPIO(USB_A2_STATUS_L, PIN(C, 7), GPIO_INPUT)
-GPIO(USB_A3_STATUS_L, PIN(D, 2), GPIO_INPUT)
-
-/* USB type C */
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_POL_L, PIN(0, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* USB-C Polarity */
-
-/* TPU */
-GPIO(PP3300_TPU_EN, PIN(E, 4), GPIO_OUT_HIGH)
-
-/* PSE controller */
-GPIO(EC_PSE_PWM_INT, PIN(B, 0), GPIO_INPUT) /* PSE controller interrupt */
-GPIO(EC_RST_LTC4291_L, PIN(9, 6), GPIO_OUT_HIGH) /* PSE controller reset */
-
-/* Misc. */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-GPIO(PACKET_MODE_EN, PIN(7, 5), GPIO_OUT_LOW)
-
-/* HDMI/CEC */
-GPIO(HDMI_CONN0_CEC_OUT, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN0_CEC_IN, PIN(4, 0), GPIO_INPUT)
-GPIO(HDMI_CONN1_CEC_OUT, PIN(9, 5), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN1_CEC_IN, PIN(D, 3), GPIO_INPUT)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_INA_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_INA_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_LTC_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_LTC_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_IMVP8_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_IMVP8_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x08), 0, MODULE_PWM, 0) /* PWM0 - Red Led */
-ALTERNATE(PIN_MASK(C, 0x10), 0, MODULE_PWM, 0) /* PWM2 - White Led */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - Fan 1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x2A), 0, MODULE_ADC, 0) /* ADC0, ADC2, ADC4 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* ADC7 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Unused pins */
-UNUSED(PIN(1, 3)) /* EC_GP_SEL1_ODL */
-UNUSED(PIN(C, 0)) /* FAN_PWM_2 */
-UNUSED(PIN(8, 0)) /* LED_BLUE_L */
-UNUSED(PIN(4, 4)) /* ADC1/TEMP_SENSOR_2 */
-UNUSED(PIN(4, 2)) /* ADC3/TEMP_SENSOR_3 */
-UNUSED(PIN(C, 2)) /* A12 NC */
-UNUSED(PIN(9, 2)) /* K8 NC */
-UNUSED(PIN(9, 1)) /* L8 NC */
-UNUSED(PIN(1, 2)) /* C6 NC */
-UNUSED(PIN(6, 6)) /* H4 NC */
-UNUSED(PIN(8, 1)) /* L6 NC */
-UNUSED(PIN(C, 6)) /* B11 NC */
-UNUSED(PIN(E, 2)) /* B8 NC */
-UNUSED(PIN(8, 5)) /* L7 NC */
-UNUSED(PIN(3, 2)) /* E5 NC */
-UNUSED(PIN(D, 6)) /* F6 NC */
-UNUSED(PIN(3, 5)) /* F5 NC */
-UNUSED(PIN(5, 6)) /* M2 NC */
-UNUSED(PIN(8, 6)) /* J8 NC */
-UNUSED(PIN(9, 3)) /* M11 NC */
-UNUSED(PIN(7, 2)) /* H6 NC */
diff --git a/board/moonbuggy/led.c b/board/moonbuggy/led.c
deleted file mode 100644
index a9f70d2d40..0000000000
--- a/board/moonbuggy/led.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power LED control for Puff.
- * Solid green - active power
- * Green flashing - suspended
- * Red flashing - alert
- * Solid red - critical
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
-
-/*
- * Due to the CSME-Lite processing, upon startup the CPU transitions through
- * S0->S3->S5->S3->S0, causing the LED to turn on/off/on, so
- * delay turning off the LED during suspend/shutdown.
- */
-#define LED_CPU_DELAY_MS (2000 * MSEC)
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_WHITE,
- LED_AMBER,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int white = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_WHITE:
- white = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- case LED_AMBER:
- red = 1;
- white = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (white)
- pwm_set_duty(PWM_CH_LED_WHITE, duty);
- else
- pwm_set_duty(PWM_CH_LED_WHITE, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec.
- */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIG_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIG_TICK(LED_PULSE_TICK_US, LED_WHITE);
- led_tick();
-}
-DECLARE_DEFERRED(led_suspend);
-
-static void led_shutdown(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_DEFERRED(led_shutdown);
-
-static void led_shutdown_hook(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown_hook, HOOK_PRIO_DEFAULT);
-
-static void led_suspend_hook(void)
-{
- hook_call_deferred(&led_shutdown_data, -1);
- hook_call_deferred(&led_suspend_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend_hook, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task.
- */
- hook_call_deferred(&led_tick_data, -1);
- /*
- * Avoid invoking the suspend/shutdown delayed hooks.
- */
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_WHITE, 1);
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_suspend();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown();
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_INIT_PWM + 1);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend_hook();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown_hook();
- }
-}
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "white")) {
- set_color(id, LED_WHITE, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|white|amber|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_WHITE])
- return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]);
- else if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/moonbuggy/pse.c b/board/moonbuggy/pse.c
deleted file mode 100644
index 1c1b6bb41b..0000000000
--- a/board/moonbuggy/pse.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * The LTC4291 is a power over ethernet (PoE) power sourcing equipment (PSE)
- * controller.
- */
-
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "string.h"
-#include "timer.h"
-#include "util.h"
-
-#define LTC4291_I2C_ADDR 0x2C
-
-#define LTC4291_REG_SUPEVN_COR 0x0B
-#define LTC4291_REG_STATPWR 0x10
-#define LTC4291_REG_STATPIN 0x11
-#define LTC4291_REG_OPMD 0x12
-#define LTC4291_REG_DISENA 0x13
-#define LTC4291_REG_DETENA 0x14
-#define LTC4291_REG_DETPB 0x18
-#define LTC4291_REG_PWRPB 0x19
-#define LTC4291_REG_RSTPB 0x1A
-#define LTC4291_REG_ID 0x1B
-#define LTC4291_REG_DEVID 0x43
-#define LTC4291_REG_HPMD1 0x46
-#define LTC4291_REG_HPMD2 0x4B
-#define LTC4291_REG_HPMD3 0x50
-#define LTC4291_REG_HPMD4 0x55
-#define LTC4291_REG_LPWRPB 0x6E
-
-#define LTC4291_FLD_STATPIN_AUTO BIT(0)
-#define LTC4291_FLD_RSTPB_RSTALL BIT(4)
-
-#define LTC4291_STATPWR_ON_PORT(port) (0x01 << (port))
-#define LTC4291_DETENA_EN_PORT(port) (0x11 << (port))
-#define LTC4291_DETPB_EN_PORT(port) (0x11 << (port))
-#define LTC4291_PWRPB_OFF_PORT(port) (0x10 << (port))
-
-#define LTC4291_OPMD_AUTO 0xFF
-#define LTC4291_DISENA_ALL 0x0F
-#define LTC4291_DETENA_ALL 0xFF
-#define LTC4291_ID 0x64
-#define LTC4291_DEVID 0x38
-#define LTC4291_HPMD_MIN 0x00
-#define LTC4291_HPMD_MAX 0xA8
-
-#define LTC4291_PORT_MAX 4
-
-#define LTC4291_RESET_DELAY_US (20 * MSEC)
-
-#define I2C_PSE_READ(reg, data) \
- i2c_read8(I2C_PORT_PSE, LTC4291_I2C_ADDR, LTC4291_REG_##reg, (data))
-
-#define I2C_PSE_WRITE(reg, data) \
- i2c_write8(I2C_PORT_PSE, LTC4291_I2C_ADDR, LTC4291_REG_##reg, (data))
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-static int pse_write_hpmd(int port, int val)
-{
- switch (port) {
- case 0:
- return I2C_PSE_WRITE(HPMD1, val);
- case 1:
- return I2C_PSE_WRITE(HPMD2, val);
- case 2:
- return I2C_PSE_WRITE(HPMD3, val);
- case 3:
- return I2C_PSE_WRITE(HPMD4, val);
- default:
- return EC_ERROR_INVAL;
- }
-}
-
-/*
- * Port 1: 100W
- * Port 2-4: 15W
- */
-static int pse_port_hpmd[4] = {
- LTC4291_HPMD_MAX,
- LTC4291_HPMD_MIN,
- LTC4291_HPMD_MIN,
- LTC4291_HPMD_MIN,
-};
-
-static int pse_port_enable(int port)
-{
- /* Enable detection and classification */
- return I2C_PSE_WRITE(DETPB, LTC4291_DETPB_EN_PORT(port));
-}
-
-static int pse_port_disable(int port)
-{
- /* Request power off (this also disables detection/classification) */
- return I2C_PSE_WRITE(PWRPB, LTC4291_PWRPB_OFF_PORT(port));
-}
-
-static int pse_init_worker(void)
-{
- timestamp_t deadline;
- int err, id, devid, statpin, port;
-
- /* Ignore errors -- may already be resetting */
- I2C_PSE_WRITE(RSTPB, LTC4291_FLD_RSTPB_RSTALL);
-
- deadline.val = get_time().val + LTC4291_RESET_DELAY_US;
- while ((err = I2C_PSE_READ(ID, &id)) != 0) {
- if (timestamp_expired(deadline, NULL))
- return err;
- }
-
- err = I2C_PSE_READ(DEVID, &devid);
- if (err != 0)
- return err;
-
- if (id != LTC4291_ID || devid != LTC4291_DEVID)
- return EC_ERROR_INVAL;
-
- err = I2C_PSE_READ(STATPIN, &statpin);
- if (err != 0)
- return err;
-
- /*
- * We don't want to supply power until we've had a chance to set the
- * limits.
- */
- if (statpin & LTC4291_FLD_STATPIN_AUTO)
- CPRINTS("WARN: PSE reset in AUTO mode");
-
- err = I2C_PSE_WRITE(OPMD, LTC4291_OPMD_AUTO);
- if (err != 0)
- return err;
-
- /* Set maximum power each port is allowed to allocate. */
- for (port = 0; port < LTC4291_PORT_MAX; port++) {
- err = pse_write_hpmd(port, pse_port_hpmd[port]);
- if (err != 0)
- return err;
- }
-
- err = I2C_PSE_WRITE(DISENA, LTC4291_DISENA_ALL);
- if (err != 0)
- return err;
-
- err = I2C_PSE_WRITE(DETENA, LTC4291_DETENA_ALL);
- if (err != 0)
- return err;
-
- return 0;
-}
-
-static void pse_init(void)
-{
- int err;
-
- err = pse_init_worker();
- if (err != 0)
- CPRINTS("PSE init failed: %d", err);
- else
- CPRINTS("PSE init done");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, pse_init, HOOK_PRIO_DEFAULT);
-
-/* Also reset the PSE on a reboot to toggle the power. */
-DECLARE_HOOK(HOOK_CHIPSET_RESET, pse_init, HOOK_PRIO_DEFAULT);
-
-static int command_pse(int argc, char **argv)
-{
- int port;
-
- /*
- * TODO(b/156399232): endeavour: PSE controller reset by PLTRST
- *
- * Initialization does not reliably work after reset because the device
- * is held in reset by the AP. Running this command after boot finishes
- * always succeeds. Remove once the reset signal changes.
- */
- if (!strncmp(argv[1], "init", 4))
- return pse_init_worker();
-
- if (argc != 3)
- return EC_ERROR_PARAM_COUNT;
-
- port = atoi(argv[1]);
- if (port < 0 || port >= LTC4291_PORT_MAX)
- return EC_ERROR_PARAM1;
-
- if (!strncmp(argv[2], "off", 3))
- return pse_port_disable(port);
- else if (!strncmp(argv[2], "on", 2))
- return pse_port_enable(port);
- else if (!strncmp(argv[2], "min", 3))
- return pse_write_hpmd(port, LTC4291_HPMD_MIN);
- else if (!strncmp(argv[2], "max", 3))
- return pse_write_hpmd(port, LTC4291_HPMD_MAX);
- else
- return EC_ERROR_PARAM2;
-}
-DECLARE_CONSOLE_COMMAND(pse, command_pse,
- "<port# 0-3> <off | on | min | max>",
- "Set PSE port power");
-
-static int ec_command_pse_status(int port, uint8_t *status)
-{
- int detena, statpwr;
- int err;
-
- err = I2C_PSE_READ(DETENA, &detena);
- if (err != 0)
- return err;
-
- err = I2C_PSE_READ(STATPWR, &statpwr);
- if (err != 0)
- return err;
-
- if ((detena & LTC4291_DETENA_EN_PORT(port)) == 0)
- *status = EC_PSE_STATUS_DISABLED;
- else if ((statpwr & LTC4291_STATPWR_ON_PORT(port)) == 0)
- *status = EC_PSE_STATUS_ENABLED;
- else
- *status = EC_PSE_STATUS_POWERED;
-
- return 0;
-}
-
-static enum ec_status ec_command_pse(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pse *p = args->params;
- int err = 0;
-
- if (p->port >= LTC4291_PORT_MAX)
- return EC_RES_INVALID_PARAM;
-
- switch (p->cmd) {
- case EC_PSE_STATUS: {
- struct ec_response_pse_status *r = args->response;
-
- args->response_size = sizeof(*r);
- err = ec_command_pse_status(p->port, &r->status);
- break;
- }
- case EC_PSE_ENABLE:
- err = pse_port_enable(p->port);
- break;
- case EC_PSE_DISABLE:
- err = pse_port_disable(p->port);
- break;
- default:
- return EC_RES_INVALID_PARAM;
- }
-
- if (err)
- return EC_RES_ERROR;
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PSE, ec_command_pse, EC_VER_MASK(0));
diff --git a/board/morphius/analyzestack.yaml b/board/morphius/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/morphius/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/morphius/battery.c b/board/morphius/battery.c
deleted file mode 100644
index 6d8a8190b2..0000000000
--- a/board/morphius/battery.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Morphius battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP SB10x63140 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 332, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* Sunwoda L18D3PG1 */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 333, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* LG L19L4PG2 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-};
-
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
diff --git a/board/morphius/board.c b/board/morphius/board.c
deleted file mode 100644
index 48712ffb0c..0000000000
--- a/board/morphius/board.c
+++ /dev/null
@@ -1,890 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Morphius board configuration */
-
-#include "adc.h"
-#include "battery_smart.h"
-#include "button.h"
-#include "cbi_ssfc.h"
-#include "charger.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/ppc/aoz1380.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/retimer/pi3dpx1207.h"
-#include "driver/retimer/pi3hdx1204.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "hooks.h"
-#include "keyboard_8042.h"
-#include "lid_switch.h"
-#include "mkbp_event.h"
-#include "power.h"
-#include "power_button.h"
-#include "ps2_chip.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_mux.h"
-#include "usb_charge.h"
-#include "usbc_ppc.h"
-
-static void hdmi_hpd_interrupt_v2(enum ioex_signal signal);
-static void hdmi_hpd_interrupt_v3(enum gpio_signal signal);
-static void board_gmr_tablet_switch_isr(enum gpio_signal signal);
-
-#include "gpio_list.h"
-
-static bool support_aoz_ppc;
-static bool ignore_c1_dp;
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-const mat33_fp_t base_standard_ref_1 = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = (const mat33_fp_t *)&lid_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = (const mat33_fp_t *)&base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = (const mat33_fp_t *)&base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref_1,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_1,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
- [PWM_CH_FAN] = {
- .channel = 2,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000,
- },
- [PWM_CH_POWER_LED] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-const int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB,
-};
-
-const struct pi3hdx1204_tuning pi3hdx1204_tuning = {
- .eq_ch0_ch1_offset = PI3HDX1204_EQ_DB710,
- .eq_ch2_ch3_offset = PI3HDX1204_EQ_DB710,
- .vod_offset = PI3HDX1204_VOD_130_ALL_CHANNELS,
- .de_offset = PI3HDX1204_DE_DB_MINUS7,
-};
-
-/*****************************************************************************
- * Base Gyro Sensor dynamic configuration
- */
-static enum ec_cfg_base_gyro_sensor_type base_gyro_config;
-
-enum ec_cfg_base_gyro_sensor_type get_base_gyro_sensor(void)
-{
- switch (get_cbi_ssfc_base_sensor()) {
- case SSFC_BASE_GYRO_NONE:
- return ec_config_has_base_gyro_sensor();
- default:
- return get_cbi_ssfc_base_sensor();
- }
-}
-
-static void setup_base_gyro_config(void)
-{
- base_gyro_config = get_base_gyro_sensor();
-
- switch (base_gyro_config) {
- case BASE_GYRO_BMI160:
- ccprints("BASE GYRO is BMI160");
- break;
- case BASE_GYRO_ICM426XX:
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- break;
- default:
- break;
- }
-}
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (base_gyro_config) {
- case BASE_GYRO_BMI160:
- bmi160_interrupt(signal);
- break;
- case BASE_GYRO_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- default:
- break;
- }
-}
-
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration
- */
-static void setup_mux(void)
-{
- if (ec_config_has_usbc1_retimer_ps8802()) {
- ccprints("C1 PS8802 detected");
-
- /*
- * Main MUX is PS8802, secondary MUX is modified FP5
- *
- * Replace usb_muxes[USBC_PORT_C1] with the PS8802
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_ps8802,
- sizeof(struct usb_mux));
-
- /* Set the AMD FP5 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_amd_fp5_usb_mux;
-
- /* Don't have the AMD FP5 flip */
- usbc1_amd_fp5_usb_mux.flags = USB_MUX_FLAG_SET_WITHOUT_FLIP;
-
- } else if (ec_config_has_usbc1_retimer_ps8818()) {
- ccprints("C1 PS8818 detected");
-
- /*
- * Main MUX is FP5, secondary MUX is PS8818
- *
- * Replace usb_muxes[USBC_PORT_C1] with the AMD FP5
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_amd_fp5_usb_mux,
- sizeof(struct usb_mux));
-
- /* Set the PS8818 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_ps8818;
- }
-}
-
-const struct pi3dpx1207_usb_control pi3dpx1207_controls[] = {
- [USBC_PORT_C0] = {
- .enable_gpio = IOEX_USB_C0_DATA_EN,
- .dp_enable_gpio = GPIO_USB_C0_IN_HPD,
- },
- [USBC_PORT_C1] = {
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3dpx1207_controls) == USBC_PORT_COUNT);
-
-const struct usb_mux usbc0_pi3dpx1207_usb_retimer = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3DPX1207_I2C_ADDR_FLAGS,
- .driver = &pi3dpx1207_usb_retimer,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_pi3dpx1207_usb_retimer,
- },
- [USBC_PORT_C1] = {
- /* Filled in dynamically at startup */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/*****************************************************************************
- * Use FW_CONFIG to set correct configuration.
- */
-static uint32_t board_ver;
-enum gpio_signal gpio_ec_ps2_reset = GPIO_EC_PS2_RESET_V1;
-int board_usbc1_retimer_inhpd = GPIO_USB_C1_HPD_IN_DB_V1;
-
-static void setup_v0_charger(void)
-{
- cbi_get_board_version(&board_ver);
-
- if (board_ver <= 2)
- chg_chips[0].i2c_port = I2C_PORT_CHARGER_V0;
-}
-/*
- * Use HOOK_PRIO_INIT_I2C so we re-map before charger_chips_init()
- * talks to the charger.
- */
-DECLARE_HOOK(HOOK_INIT, setup_v0_charger, HOOK_PRIO_INIT_I2C);
-
-enum gpio_signal board_usbc_port_to_hpd_gpio(int port)
-{
- /* USB-C0 always uses USB_C0_HPD (= DP3_HPD). */
- if (port == 0)
- return GPIO_USB_C0_HPD;
-
- /*
- * USB-C1 OPT3 DB
- * version_2 uses EC_DP1_HPD
- * version_3 uses DP1_HPD via RTD2141B MST hub to drive AP
- * HPD, EC drives MST hub HPD input from USB-PD messages.
- *
- * This would have been ec_config_has_usbc1_retimer_ps8802
- * on version_2 hardware but the result is the same and
- * this will be removed when version_2 hardware is retired.
- */
- else if (ec_config_has_mst_hub_rtd2141b())
- return (board_ver >= 4)
- ? GPIO_USB_C1_HPD_IN_DB_V1
- : (board_ver == 3)
- ? IOEX_USB_C1_HPD_IN_DB
- : GPIO_EC_DP1_HPD;
-
- /* USB-C1 OPT1 DB uses DP2_HPD. */
- return GPIO_DP2_HPD;
-}
-
-static void board_remap_gpio(void)
-{
- int ppc_id = 0;
-
- if (board_ver >= 3) {
- int rv;
-
- gpio_ec_ps2_reset = GPIO_EC_PS2_RESET_V1;
- ccprintf("GPIO_EC_PS2_RESET_V1\n");
-
- /*
- * TODO(dbrockus@): remove code when older version_2
- * hardware is retired and no longer needed
- */
- rv = ioex_set_flags(IOEX_HDMI_POWER_EN_DB, GPIO_OUT_LOW);
- rv |= ioex_set_flags(IOEX_USB_C1_PPC_ILIM_3A_EN, GPIO_OUT_LOW);
- if (rv)
- ccprintf("IOEX Board>=3 Remap FAILED\n");
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204())
- gpio_enable_interrupt(GPIO_DP1_HPD_EC_IN);
- } else {
- gpio_ec_ps2_reset = GPIO_EC_PS2_RESET_V0;
- ccprintf("GPIO_EC_PS2_RESET_V0\n");
-
- /*
- * TODO(dbrockus@): remove code when older version_2
- * hardware is retired and no longer needed
- */
- if (ec_config_has_mst_hub_rtd2141b())
- ioex_enable_interrupt(IOEX_MST_HPD_OUT);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204())
- ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB);
- }
-
- if (board_ver >= 4)
- board_usbc1_retimer_inhpd = GPIO_USB_C1_HPD_IN_DB_V1;
- else
- board_usbc1_retimer_inhpd = IOEX_USB_C1_HPD_IN_DB;
-
- ioex_get_level(IOEX_PPC_ID, &ppc_id);
-
- support_aoz_ppc = (board_ver == 3) || ((board_ver >= 4) && !ppc_id);
- if (support_aoz_ppc) {
- ccprintf("DB USBC PPC aoz1380\n");
- ppc_chips[USBC_PORT_C1].drv = &aoz1380_drv;
- }
-}
-
-static void setup_fw_config(void)
-{
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
-
- /* Enable PS2 power interrupts */
- gpio_enable_interrupt(GPIO_EN_PWR_TOUCHPAD_PS2);
-
- ps2_enable_channel(NPCX_PS2_CH0, 1, send_aux_data_to_host_interrupt);
-
- setup_mux();
-
- board_remap_gpio();
-
- setup_base_gyro_config();
-}
-/* Use HOOK_PRIO_INIT_I2C + 2 to be after ioex_init(). */
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-/*****************************************************************************
- * Fan
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1800,
- .rpm_start = 3000,
- .rpm_max = 5200,
-};
-const struct fan_t fans[] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-int board_get_temp(int idx, int *temp_k)
-{
- int mv;
- int temp_c;
- enum adc_channel channel;
-
- /* idx is the sensor index set in board temp_sensors[] */
- switch (idx) {
- case TEMP_SENSOR_CHARGER:
- channel = ADC_TEMP_SENSOR_CHARGER;
- break;
-
- case TEMP_SENSOR_5V_REGULATOR:
- /* thermistor is not powered in G3 */
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- channel = ADC_TEMP_SENSOR_5V_REGULATOR;
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- mv = adc_read_channel(channel);
- if (mv < 0)
- return EC_ERROR_INVAL;
-
- temp_c = thermistor_linear_interpolate(mv, &thermistor_info);
- *temp_k = C_TO_K(temp_c);
- return EC_SUCCESS;
-}
-
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_5V_REGULATOR] = {
- .name = "5V_REGULATOR",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_5V_REGULATOR] = {
- .name = "5V_REGULATOR",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_5V_REGULATOR,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
- [TEMP_SENSOR_SSD] = {
- .name = "SSD",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = tmp432_get_val,
- .idx = TMP432_IDX_LOCAL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = C_TO_K(98),
- .temp_fan_max = C_TO_K(99),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_CPU] = thermal_cpu;
-}
-DECLARE_HOOK(HOOK_INIT, setup_fans, HOOK_PRIO_DEFAULT);
-
-/* Battery functions */
-#define SB_OPTIONALMFG_FUNCTION2 0x26
-#define SMART_CHARGE_SUPPORT 0x01
-#define SMART_CHARGE_ENABLE 0x02
-#define SB_SMART_CHARGE_ENABLE 1
-#define SB_SMART_CHARGE_DISABLE 0
-
-static void sb_smart_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_OPTIONALMFG_FUNCTION2, &val);
- if (rv)
- return;
- if (val & SMART_CHARGE_SUPPORT) {
- if (enable)
- val |= SMART_CHARGE_ENABLE;
- else
- val &= ~SMART_CHARGE_ENABLE;
- sb_write(SB_OPTIONALMFG_FUNCTION2, val);
- }
-}
-
-__override void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_FAULT_ODL:
- aoz1380_interrupt(USBC_PORT_C0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- if (support_aoz_ppc)
- aoz1380_interrupt(USBC_PORT_C1);
- else
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
-
- default:
- break;
- }
-}
-
-/*
- * In the AOZ1380 PPC, there are no programmable features. We use
- * the attached NCT3807 to control a GPIO to indicate 1A5 or 3A0
- * current limits.
- */
-__override int board_aoz1380_set_vbus_source_current_limit(int port,
- enum tcpc_rp_value rp)
-{
- int rv;
-
- /* Use the TCPC to set the current limit */
- if (port == 0) {
- rv = ioex_set_level(IOEX_USB_C0_PPC_ILIM_3A_EN,
- (rp == TYPEC_RP_3A0) ? 1 : 0);
- } else if (board_ver >= 3) {
- rv = ioex_set_level(IOEX_USB_C1_PPC_ILIM_3A_EN,
- (rp == TYPEC_RP_3A0) ? 1 : 0);
- } else {
- rv = 1;
- }
-
- return rv;
-}
-
-static void trackpoint_reset_deferred(void)
-{
- gpio_set_level(gpio_ec_ps2_reset, 1);
- msleep(2);
- gpio_set_level(gpio_ec_ps2_reset, 0);
- msleep(10);
-}
-DECLARE_DEFERRED(trackpoint_reset_deferred);
-
-void send_aux_data_to_device(uint8_t data)
-{
- ps2_transmit_byte(NPCX_PS2_CH0, data);
-}
-
-void ps2_pwr_en_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&trackpoint_reset_deferred_data, MSEC);
-}
-
-static int check_hdmi_hpd_status(void)
-{
- int hpd = 0;
-
- if (board_ver < 3)
- ioex_get_level(IOEX_HDMI_CONN_HPD_3V3_DB, &hpd);
- else
- hpd = gpio_get_level(GPIO_DP1_HPD_EC_IN);
-
- return hpd;
-}
-
-/*****************************************************************************
- * Board suspend / resume
- */
-
-static void board_chipset_resume(void)
-{
- /* Normal charge current */
- sb_smart_charge_mode(SB_SMART_CHARGE_DISABLE);
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 1);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- if (board_ver >= 3) {
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 1);
- msleep(PI3HDX1204_POWER_ON_DELAY_MS);
- }
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- check_hdmi_hpd_status());
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_suspend_delay(void)
-{
- ignore_c1_dp = false;
-}
-DECLARE_DEFERRED(board_chipset_suspend_delay);
-
-static void board_chipset_suspend(void)
-{
- /* SMART charge current */
- sb_smart_charge_mode(SB_SMART_CHARGE_ENABLE);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 0);
- if (board_ver >= 3)
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 0);
- }
-
- /* Wait 500ms before allowing DP event to cause resume. */
- if (ec_config_has_mst_hub_rtd2141b()
- && (dp_flags[USBC_PORT_C1] & DP_FLAGS_DP_ON)) {
- ignore_c1_dp = true;
- hook_call_deferred(&board_chipset_suspend_delay_data,
- 500 * MSEC);
- }
-
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************
- * Power signals
- */
-
-const struct power_signal_info power_signal_list[] = {
- [X86_SLP_S3_N] = {
- .gpio = GPIO_PCH_SLP_S3_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S3_DEASSERTED",
- },
- [X86_SLP_S5_N] = {
- .gpio = GPIO_PCH_SLP_S5_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S5_DEASSERTED",
- },
- [X86_S0_PGOOD] = {
- .gpio = GPIO_S0_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S0_PGOOD",
- },
- [X86_S5_PGOOD] = {
- .gpio = GPIO_S5_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S5_PGOOD",
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-#ifdef CONFIG_KEYBOARD_FACTORY_TEST
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {3, 0}, {2, 2}, {2, 3}, {1, 2}, {2, 5},
- {2, 4}, {2, 1}, {2, 7}, {2, 6}, {1, 5},
- {2, 0}, {3, 1}, {1, 7}, {1, 6}, {-1, -1},
- {1, 3}, {1, 4}, {-1, -1}, {-1, -1}, {0, 7},
- {0, 6}, {1, 0}, {1, 1}, {0, 5},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-#endif
-
-/*****************************************************************************
- * MST hub
- *
- * TODO(dbrockus@): remove VERSION_2 code when older version of hardware is
- * retired and no longer needed
- */
-static void mst_hpd_handler(void)
-{
- int hpd = 0;
-
- /*
- * Ensure level on GPIO_EC_DP1_HPD matches IOEX_MST_HPD_OUT, in case
- * we got out of sync.
- */
- ioex_get_level(IOEX_MST_HPD_OUT, &hpd);
- gpio_set_level(GPIO_EC_DP1_HPD, hpd);
- ccprints("MST HPD %d", hpd);
-}
-DECLARE_DEFERRED(mst_hpd_handler);
-
-void mst_hpd_interrupt(enum ioex_signal signal)
-{
- /*
- * Goal is to pass HPD through from DB OPT3 MST hub to AP's DP1.
- * Immediately invert GPIO_EC_DP1_HPD, to pass through the edge on
- * IOEX_MST_HPD_OUT. Then check level after 2 msec debounce.
- */
- int hpd = !gpio_get_level(GPIO_EC_DP1_HPD);
-
- gpio_set_level(GPIO_EC_DP1_HPD, hpd);
- hook_call_deferred(&mst_hpd_handler_data, (2 * MSEC));
-}
-
-static void hdmi_hpd_handler(void)
-{
- /* Pass HPD through from DB OPT1 HDMI connector to AP's DP1. */
- int hpd = check_hdmi_hpd_status();
-
- gpio_set_level(GPIO_EC_DP1_HPD, hpd);
- ccprints("HDMI HPD %d", hpd);
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- chipset_in_or_transitioning_to_state(CHIPSET_STATE_ON)
- && hpd);
-}
-DECLARE_DEFERRED(hdmi_hpd_handler);
-
-static void hdmi_hpd_interrupt_v2(enum ioex_signal signal)
-{
- /* Debounce for 2 msec. */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
-
-static void hdmi_hpd_interrupt_v3(enum gpio_signal signal)
-{
- /* Debounce for 2 msec. */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
-
-static void board_gmr_tablet_switch_isr(enum gpio_signal signal)
-{
- /* Board version more than 3, DUT support GMR sensor */
- if (board_ver >= 3)
- gmr_tablet_switch_isr(signal);
-}
-
-int board_sensor_at_360(void)
-{
- /*
- * Board version >= 3 supports GMR sensor. For older boards return 0
- * indicating not in 360-degree mode and rely on lid angle for tablet
- * mode.
- */
- if (board_ver >= 3)
- return !gpio_get_level(GMR_TABLET_MODE_GPIO_L);
-
- return 0;
-}
-
-/*
- * b/167949458: Suppress setting the host event for 500ms after entering S3.
- * Otherwise turning off the MST hub in S3 (via IOEX_HDMI_DATA_EN_DB) causes
- * a VDM:Attention that immediately wakes us back up from S3.
- */
-__override void pd_notify_dp_alt_mode_entry(int port)
-{
- if (port == USBC_PORT_C1 && ignore_c1_dp)
- return;
- cprints(CC_USBPD, "Notifying AP of DP Alt Mode Entry...");
- mkbp_send_event(EC_MKBP_EVENT_DP_ALT_MODE_ENTERED);
-}
diff --git a/board/morphius/board.h b/board/morphius/board.h
deleted file mode 100644
index 603bcec69b..0000000000
--- a/board/morphius/board.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Morphius board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_TREMBYLE
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_USBC_RETIMER_PI3DPX1207
-#define CONFIG_8042_AUX
-#define CONFIG_PS2
-#define CONFIG_CMD_PS2
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_DEVICE_EVENT
-#define CONFIG_ASSERT_CCD_MODE_ON_DTS_CONNECT
-
-#undef CONFIG_LED_ONOFF_STATES
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 91
-
-#undef ZORK_PS8818_RX_INPUT_TERM
-#define ZORK_PS8818_RX_INPUT_TERM PS8818_RX_INPUT_TERM_85_OHM
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CUSTOM_FAN_CONTROL
-#define CONFIG_TABLET_MODE
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_TMP432
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_PWR_A
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_GMR_TABLET_MODE
-#define CONFIG_GMR_TABLET_MODE_CUSTOM
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE
-#define RPM_DEVIATION 1
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-/* I2C mapping from board specific function*/
-#define I2C_PORT_THERMAL I2C_PORT_AP_HDMI
-
-#ifndef __ASSEMBLER__
-
-
-void ps2_pwr_en_interrupt(enum gpio_signal signal);
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_5V_REGULATOR,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_SUNWODA,
- BATTERY_LGC,
- BATTERY_TYPE_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_FAN,
- PWM_CH_POWER_LED,
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_5V_REGULATOR,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_SSD,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * MORPHIUS_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: PI3DPX1207
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- MORPHIUS_MB_USBAC = 0,
-};
-
-/**
- * MORPHIUS_DB_T_OPT1_USBC_HDMI
- * USB-A1 none
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8818
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: PI3HDX1204
- * MST Hub: none
- *
- * MORPHIUS_DB_T_OPT3_USBC_HDMI_MSTHUB
- * USB-A1 none
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8802
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: none
- * MST Hub: RTD2141B
- */
-enum ec_cfg_usb_db_type {
- MORPHIUS_DB_T_OPT1_USBC_HDMI = 0,
- MORPHIUS_DB_T_OPT3_USBC_HDMI_MSTHUB = 1,
-};
-
-#include "cbi_ec_fw_config.h"
-
-#define HAS_USBC1_RETIMER_PS8802 \
- (BIT(MORPHIUS_DB_T_OPT3_USBC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_usbc1_retimer_ps8802(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8802);
-}
-
-#define HAS_USBC1_RETIMER_PS8818 \
- (BIT(MORPHIUS_DB_T_OPT1_USBC_HDMI))
-
-static inline bool ec_config_has_usbc1_retimer_ps8818(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8818);
-}
-
-#define HAS_HDMI_RETIMER_PI3HDX1204 \
- (BIT(MORPHIUS_DB_T_OPT1_USBC_HDMI))
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_RETIMER_PI3HDX1204);
-}
-
-#define HAS_MST_HUB_RTD2141B \
- (BIT(MORPHIUS_DB_T_OPT3_USBC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_mst_hub_rtd2141b(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_MST_HUB_RTD2141B);
-}
-
-void motion_interrupt(enum gpio_signal signal);
-enum gpio_signal board_usbc_port_to_hpd_gpio(int port);
-#define PORT_TO_HPD(port) board_usbc_port_to_hpd_gpio(port)
-
-extern const struct usb_mux usbc0_pi3dpx1207_usb_retimer;
-extern const struct usb_mux usbc1_ps8802;
-extern const struct usb_mux usbc1_ps8818;
-extern struct usb_mux usbc1_amd_fp5_usb_mux;
-
-#endif /* !__ASSEMBLER__ */
-
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/morphius/build.mk b/board/morphius/build.mk
deleted file mode 100644
index 4c2a6c5546..0000000000
--- a/board/morphius/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o thermal.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/morphius/ec.tasklist b/board/morphius/ec.tasklist
deleted file mode 100644
index 41b83cf4f3..0000000000
--- a/board/morphius/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/morphius/gpio.inc b/board/morphius/gpio.inc
deleted file mode 100644
index f14c56c66f..0000000000
--- a/board/morphius/gpio.inc
+++ /dev/null
@@ -1,175 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(TABLET_MODE, PIN(4, 4), GPIO_INT_BOTH, board_gmr_tablet_switch_isr)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, motion_interrupt)
-GPIO_INT(EN_PWR_TOUCHPAD_PS2, PIN(C, 2), GPIO_INT_RISING, ps2_pwr_en_interrupt)
-GPIO_INT(DP1_HPD_EC_IN, PIN(7, 5), GPIO_INT_BOTH, hdmi_hpd_interrupt_v3)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_ODR_HIGH) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 2), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(D, 3), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB_C0_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C0_IN_HPD, PIN(7, 3), GPIO_OUT_LOW) /* C0 IN Hotplug Detect */
-GPIO(EC_DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(DP2_HPD, PIN(C, 1), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_PS2_RESET_V0, PIN(3, 2), GPIO_OUT_LOW) /* Trackpoint reset pin V0*/
-GPIO(EC_PS2_RESET_V1, PIN(4, 5), GPIO_OUT_LOW) /* Trackpoint reset pin V1 */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(FAN_ID, PIN(8, 2), GPIO_INPUT | GPIO_PULL_UP) /* Fan ID*/
-GPIO(USB_C1_HPD_IN_DB_V1, PIN(B, 1), GPIO_OUT_LOW) /* C1 HPD V1 */
-
-UNIMPLEMENTED(NO_HPD)
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_LOW)
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(USBC_PORT_C1, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_A0_RETIMER_EN, EXPIN(USBC_PORT_C0, 0, 0), GPIO_OUT_LOW) /* A0 Retimer Enable */
-IOEX(USB_A0_RETIMER_RST, EXPIN(USBC_PORT_C0, 0, 1), GPIO_OUT_LOW) /* A0 Retimer Reset */
-IOEX(USB_C0_FAULT_ODL, EXPIN(USBC_PORT_C0, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C0, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(USBC_PORT_C0, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(USBC_PORT_C0, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(USB_C0_DATA_EN, EXPIN(USBC_PORT_C0, 1, 4), GPIO_OUT_LOW) /* C0 Data Enable */
-IOEX(EN_USB_A0_5V, EXPIN(USBC_PORT_C0, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(USBC_PORT_C0, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-
-IOEX(USB_A1_RETIMER_EN, EXPIN(USBC_PORT_C1, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(PPC_ID, EXPIN(USBC_PORT_C1, 0, 1), GPIO_INPUT) /* PPC ID */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(USBC_PORT_C1, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-
-/*
- * TODO(dbrockus@): remove code when older version_2 of hardware is
- * retired and no longer needed
- */
-#if 0
-IOEX(HDMI_POWER_EN_DB, EXPIN(USBC_PORT_C1, 0, 3), GPIO_OUT_LOW) /* HDMI retimer power enable */
-#else
-#define IOEX_HDMI_POWER_EN_DB IOEX_MST_HPD_OUT
-IOEX_INT(MST_HPD_OUT, EXPIN(USBC_PORT_C1, 0, 3), GPIO_INT_BOTH, mst_hpd_interrupt)
-#endif
-
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C1, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-
-/*
- * TODO(dbrockus@): remove code when older version_2 of hardware is
- * retired and no longer needed
- */
-#if 0
-IOEX(USB_C1_PPC_ILIM_3A_EN, EXPIN(USBC_PORT_C1, 1, 0), GPIO_OUT_LOW) /* C1 3A Current Limit Enable */
-#else
-#define IOEX_USB_C1_PPC_ILIM_3A_EN IOEX_HDMI_CONN_HPD_3V3_DB
-IOEX_INT(HDMI_CONN_HPD_3V3_DB, EXPIN(USBC_PORT_C1, 1, 0), GPIO_INT_BOTH, hdmi_hpd_interrupt_v2)
-#endif
-
-IOEX(USB_C1_MUX_RST_DB, EXPIN(USBC_PORT_C1, 1, 1), GPIO_OUT_LOW) /* C1 Mux Reset */
-IOEX(USB_C1_PPC_EN_L, EXPIN(USBC_PORT_C1, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(HDMI_DATA_EN_DB, EXPIN(USBC_PORT_C1, 1, 4), GPIO_OUT_LOW) /* HDMI Retimer Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(USBC_PORT_C1, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB, EXPIN(USBC_PORT_C1, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L, EXPIN(USBC_PORT_C1, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC_POWER_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID_POWER_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(FCH_I2C_AUDIO_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_AUDIO_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(C, BIT(3)), 0, MODULE_PWM, 0) /* PWM0 LED */
-ALTERNATE(PIN_MASK(C, BIT(4)), 0, MODULE_PWM, 0) /* PWM2 - EC_FAN_PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* TA1 - EC_FAN_SPEED */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
-
-/* PS/2 channel 0 for aux device */
-ALTERNATE(PIN_MASK(6, 0x80), 1, MODULE_PS2, 0) /* PS2_CLK0 GPIO67 */
-ALTERNATE(PIN_MASK(7, 0x01), 1, MODULE_PS2, 0) /* PS2_DAT0 GPIO70 */
diff --git a/board/morphius/led.c b/board/morphius/led.c
deleted file mode 100644
index fc57b46d6b..0000000000
--- a/board/morphius/led.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "cros_board_info.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define LED_BAT_OFF_LVL 0
-#define LED_BAT_ON_LVL 1
-#define LED_BAT_S3_OFF_TIME_MS 3000
-#define LED_BAT_S3_PWM_RESCALE 5
-#define LED_BAT_S3_TICK_MS 50
-
-#define LED_TOTAL_TICKS 2
-#define LED_ON_TICKS 1
-
-#define LED_PWR_TICKS_PER_CYCLE 7
-
-#define TICKS_STEP1_BRIGHTER 0
-#define TICKS_STEP2_DIMMER 20
-#define TICKS_STEP3_OFF 40
-
-static int ticks;
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_WHITE,
- LED_AMBER,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-/* PWM brightness vs. color, in the order of off, white */
-static const uint8_t color_brightness[2] = {
- [LED_OFF] = 0,
- [LED_WHITE] = 100,
-};
-
-void led_set_color_power(enum ec_led_colors color)
-{
- pwm_set_duty(PWM_CH_POWER_LED, color_brightness[color]);
-}
-
-void led_set_color_battery(enum ec_led_colors color)
-{
- uint32_t board_ver = 0;
- int led_batt_on_lvl, led_batt_off_lvl;
-
- cbi_get_board_version(&board_ver);
- if (board_ver >= 3) {
- led_batt_on_lvl = LED_BAT_ON_LVL;
- led_batt_off_lvl = LED_BAT_OFF_LVL;
- } else {
- led_batt_on_lvl = !LED_BAT_ON_LVL;
- led_batt_off_lvl = !LED_BAT_OFF_LVL;
- }
-
- switch (color) {
- case LED_AMBER:
- gpio_set_level(GPIO_LED_FULL_L, led_batt_off_lvl);
- gpio_set_level(GPIO_LED_CHRG_L, led_batt_on_lvl);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_LED_FULL_L, led_batt_on_lvl);
- gpio_set_level(GPIO_LED_CHRG_L, led_batt_off_lvl);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_FULL_L, led_batt_off_lvl);
- gpio_set_level(GPIO_LED_CHRG_L, led_batt_off_lvl);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LED_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LED_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- pwm_set_duty(PWM_CH_POWER_LED,
- color_brightness[LED_WHITE]);
- else
- pwm_set_duty(PWM_CH_POWER_LED,
- color_brightness[LED_OFF]);
- }
-
- return EC_SUCCESS;
-}
-
-static void suspend_led_update_deferred(void);
-DECLARE_DEFERRED(suspend_led_update_deferred);
-
-static void suspend_led_update_deferred(void)
-{
- int delay = LED_BAT_S3_TICK_MS * MSEC;
-
- ticks++;
-
- /* 1s gradual on, 1s gradual off, 3s off */
- if (ticks <= TICKS_STEP2_DIMMER) {
- pwm_set_duty(PWM_CH_POWER_LED, ticks * LED_BAT_S3_PWM_RESCALE);
- } else if (ticks <= TICKS_STEP3_OFF) {
- pwm_set_duty(PWM_CH_POWER_LED,
- (TICKS_STEP3_OFF - ticks) * LED_BAT_S3_PWM_RESCALE);
- } else {
- ticks = TICKS_STEP1_BRIGHTER;
- delay = LED_BAT_S3_OFF_TIME_MS * MSEC;
- }
-
- hook_call_deferred(&suspend_led_update_deferred_data, delay);
-}
-
-static void suspend_led_init(void)
-{
- ticks = TICKS_STEP2_DIMMER;
-
- hook_call_deferred(&suspend_led_update_deferred_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, suspend_led_init, HOOK_PRIO_DEFAULT);
-
-static void suspend_led_deinit(void)
-{
- hook_call_deferred(&suspend_led_update_deferred_data, -1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, suspend_led_deinit, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, suspend_led_deinit, HOOK_PRIO_DEFAULT);
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks & 0x4) ? LED_AMBER : LED_OFF);
- else
- led_set_color_battery(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static int power_ticks;
- static int previous_state_suspend;
- static int blink_ticks;
-
- power_ticks++;
-
- /* Blink 3 times (0.25s on/0.25s off, repeat 3 times) */
- if (extpower_is_present()) {
- blink_ticks++;
- if (!previous_state_suspend)
- power_ticks = 0;
-
- while (blink_ticks < LED_PWR_TICKS_PER_CYCLE) {
- led_set_color_power(
- (power_ticks % LED_TOTAL_TICKS) < LED_ON_TICKS ?
- LED_WHITE : LED_OFF);
-
- previous_state_suspend = 1;
- return;
- }
- }
- if (!extpower_is_present())
- blink_ticks = 0;
-
- previous_state_suspend = 0;
-
- if (chipset_in_state(CHIPSET_STATE_SOFT_OFF))
- led_set_color_power(LED_OFF);
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
-}
-
-static void pwr_led_init(void)
-{
- /* Configure GPIOs */
- gpio_config_module(MODULE_PWM, 1);
-
- /*
- * Enable PWMs and set to 0% duty cycle. If they're disabled,
- * seems to ground the pins instead of letting them float.
- */
- pwm_enable(PWM_CH_POWER_LED, 1);
- led_set_color_power(LED_OFF);
-}
-DECLARE_HOOK(HOOK_INIT, pwr_led_init, HOOK_PRIO_DEFAULT);
-
-/* Called by hook task every 200 ms */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/morphius/thermal.c b/board/morphius/thermal.c
deleted file mode 100644
index 449fd92d5d..0000000000
--- a/board/morphius/thermal.c
+++ /dev/null
@@ -1,522 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "extpower.h"
-#include "fan.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "motion_lid.h"
-#include "tablet_mode.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-/* Console output macros */
-#define CPUTS(outstr) cputs(CC_THERMAL, outstr)
-#define CPRINTS(format, args...) cprints(CC_THERMAL, format, ## args)
-
-struct fan_step {
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t on[TEMP_SENSOR_COUNT];
-
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t off[TEMP_SENSOR_COUNT];
-
- /* Fan 1~2 rpm */
- uint16_t rpm[FAN_CH_COUNT];
-};
-
-static const struct fan_step *fan_step_table;
-
-static const struct fan_step fan1_table_clamshell[] = {
- {
- /* level 0 */
- .on = {-1, -1, -1, -1},
- .off = {-1, -1, -1, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {-1, -1, 40, -1},
- .off = {-1, -1, 31, -1},
- .rpm = {1900},
- },
- {
- /* level 2 */
- .on = {-1, -1, 45, -1},
- .off = {-1, -1, 43, -1},
- .rpm = {2900},
- },
- {
- /* level 3 */
- .on = {-1, -1, 48, -1},
- .off = {-1, -1, 46, -1},
- .rpm = {3200},
- },
- {
- /* level 4 */
- .on = {-1, -1, 51, -1},
- .off = {-1, -1, 49, -1},
- .rpm = {3550},
- },
- {
- /* level 5 */
- .on = {-1, -1, 54, -1},
- .off = {-1, -1, 52, -1},
- .rpm = {3950},
- },
- {
- /* level 6 */
- .on = {-1, -1, 57, -1},
- .off = {-1, -1, 55, -1},
- .rpm = {4250},
- },
- {
- /* level 7 */
- .on = {-1, -1, 60, -1},
- .off = {-1, -1, 58, -1},
- .rpm = {4650},
- },
-};
-
-static const struct fan_step fan1_table_tablet[] = {
- {
- /* level 0 */
- .on = {-1, -1, -1, -1},
- .off = {-1, -1, -1, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {-1, -1, 41, -1},
- .off = {-1, -1, 31, -1},
- .rpm = {2100},
- },
- {
- /* level 2 */
- .on = {-1, -1, 50, -1},
- .off = {-1, -1, 48, -1},
- .rpm = {2600},
- },
- {
- /* level 3 */
- .on = {-1, -1, 54, -1},
- .off = {-1, -1, 52, -1},
- .rpm = {2800},
- },
- {
- /* level 4 */
- .on = {-1, -1, 57, -1},
- .off = {-1, -1, 55, -1},
- .rpm = {3300},
- },
- {
- /* level 5 */
- .on = {-1, -1, 60, -1},
- .off = {-1, -1, 58, -1},
- .rpm = {3800},
- },
- {
- /* level 6 */
- .on = {-1, -1, 72, -1},
- .off = {-1, -1, 69, -1},
- .rpm = {4000},
- },
- {
- /* level 7 */
- .on = {-1, -1, 74, -1},
- .off = {-1, -1, 73, -1},
- .rpm = {4300},
- },
-};
-
-static const struct fan_step fan1_table_stand[] = {
- {
- /* level 0 */
- .on = {-1, -1, -1, -1},
- .off = {-1, -1, -1, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {-1, -1, 34, -1},
- .off = {-1, -1, 31, -1},
- .rpm = {1850},
- },
- {
- /* level 2 */
- .on = {-1, -1, 42, -1},
- .off = {-1, -1, 39, -1},
- .rpm = {2550},
- },
- {
- /* level 3 */
- .on = {-1, -1, 49, -1},
- .off = {-1, -1, 48, -1},
- .rpm = {2900},
- },
- {
- /* level 4 */
- .on = {-1, -1, 51, -1},
- .off = {-1, -1, 50, -1},
- .rpm = {3350},
- },
- {
- /* level 5 */
- .on = {-1, -1, 53, -1},
- .off = {-1, -1, 52, -1},
- .rpm = {3700},
- },
- {
- /* level 6 */
- .on = {-1, -1, 55, -1},
- .off = {-1, -1, 54, -1},
- .rpm = {3900},
- },
- {
- /* level 7 */
- .on = {-1, -1, 57, -1},
- .off = {-1, -1, 56, -1},
- .rpm = {4250},
- },
-};
-
-static const struct fan_step fan0_table_clamshell[] = {
- {
- /* level 0 */
- .on = {-1, -1, -1, -1},
- .off = {-1, -1, -1, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {-1, -1, 41, -1},
- .off = {-1, -1, 31, -1},
- .rpm = {2350},
- },
- {
- /* level 2 */
- .on = {-1, -1, 44, -1},
- .off = {-1, -1, 42, -1},
- .rpm = {3300},
- },
- {
- /* level 3 */
- .on = {-1, -1, 47, -1},
- .off = {-1, -1, 45, -1},
- .rpm = {3600},
- },
- {
- /* level 4 */
- .on = {-1, -1, 50, -1},
- .off = {-1, -1, 48, -1},
- .rpm = {4050},
- },
- {
- /* level 5 */
- .on = {-1, -1, 53, -1},
- .off = {-1, -1, 51, -1},
- .rpm = {4450},
- },
- {
- /* level 6 */
- .on = {-1, -1, 56, -1},
- .off = {-1, -1, 54, -1},
- .rpm = {4750},
- },
- {
- /* level 7 */
- .on = {-1, -1, 59, -1},
- .off = {-1, -1, 57, -1},
- .rpm = {5150},
- },
-};
-
-static const struct fan_step fan0_table_tablet[] = {
- {
- /* level 0 */
- .on = {-1, -1, -1, -1},
- .off = {-1, -1, -1, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {-1, -1, 41, -1},
- .off = {-1, -1, 31, -1},
- .rpm = {2250},
- },
- {
- /* level 2 */
- .on = {-1, -1, 50, -1},
- .off = {-1, -1, 48, -1},
- .rpm = {2850},
- },
- {
- /* level 3 */
- .on = {-1, -1, 54, -1},
- .off = {-1, -1, 51, -1},
- .rpm = {3100},
- },
- {
- /* level 4 */
- .on = {-1, -1, 57, -1},
- .off = {-1, -1, 55, -1},
- .rpm = {3500},
- },
- {
- /* level 5 */
- .on = {-1, -1, 60, -1},
- .off = {-1, -1, 58, -1},
- .rpm = {3900},
- },
- {
- /* level 6 */
- .on = {-1, -1, 72, -1},
- .off = {-1, -1, 69, -1},
- .rpm = {4150},
- },
- {
- /* level 7 */
- .on = {-1, -1, 74, -1},
- .off = {-1, -1, 73, -1},
- .rpm = {4400},
- },
-};
-
-static const struct fan_step fan0_table_stand[] = {
- {
- /* level 0 */
- .on = {-1, -1, -1, -1},
- .off = {-1, -1, -1, -1},
- .rpm = {0},
- },
- {
- /* level 1 */
- .on = {-1, -1, 34, -1},
- .off = {-1, -1, 31, -1},
- .rpm = {2250},
- },
- {
- /* level 2 */
- .on = {-1, -1, 42, -1},
- .off = {-1, -1, 39, -1},
- .rpm = {2800},
- },
- {
- /* level 3 */
- .on = {-1, -1, 49, -1},
- .off = {-1, -1, 48, -1},
- .rpm = {3150},
- },
- {
- /* level 4 */
- .on = {-1, -1, 51, -1},
- .off = {-1, -1, 50, -1},
- .rpm = {3550},
- },
- {
- /* level 5 */
- .on = {-1, -1, 53, -1},
- .off = {-1, -1, 52, -1},
- .rpm = {3900},
- },
- {
- /* level 6 */
- .on = {-1, -1, 55, -1},
- .off = {-1, -1, 54, -1},
- .rpm = {4150},
- },
- {
- /* level 7 */
- .on = {-1, -1, 57, -1},
- .off = {-1, -1, 56, -1},
- .rpm = {4400},
- },
-};
-
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan1_table_clamshell)
-
-#define lid_angle_tablet 340
-static int throttle_on;
-
-BUILD_ASSERT(ARRAY_SIZE(fan1_table_clamshell) ==
- ARRAY_SIZE(fan1_table_tablet));
-
-#define average_time 60
-int fan_table_to_rpm(int fan, int *temp)
-{
- static int current_level;
- static int avg_tmp[TEMP_SENSOR_COUNT];
- static int avg_calc_tmp[TEMP_SENSOR_COUNT][average_time];
- static int prev_tmp[TEMP_SENSOR_COUNT];
- static int new_rpm;
- int i, j, avg_sum = 0;
- int lid_angle = motion_lid_get_angle();
- static int fan_up_count, fan_down_count;
- static int temp_count;
-
- /*
- * Select different fan curve table
- * by mode: clamshell, tent/stand, tablet and fan id
- */
- if (tablet_get_mode()) {
- if (gpio_get_level(GPIO_FAN_ID))
- fan_step_table = fan1_table_stand;
- else
- fan_step_table = fan0_table_stand;
-
- if (lid_angle >= lid_angle_tablet) {
- if (gpio_get_level(GPIO_FAN_ID))
- fan_step_table = fan1_table_tablet;
- else
- fan_step_table = fan0_table_tablet;
- }
- } else {
- if (gpio_get_level(GPIO_FAN_ID))
- fan_step_table = fan1_table_clamshell;
- else
- fan_step_table = fan0_table_clamshell;
- }
-
- /*
- * Average temp 60 sec timing average
- */
- if (temp_count < average_time) {
- avg_calc_tmp[TEMP_SENSOR_CPU][temp_count] =
- temp[TEMP_SENSOR_CPU];
- temp_count++;
- } else
- temp_count = 0;
-
- for (j = 0; j < average_time; j++)
- avg_sum = avg_sum + avg_calc_tmp[TEMP_SENSOR_CPU][j];
-
- avg_tmp[TEMP_SENSOR_CPU] = avg_sum/average_time;
-
- /*
- * Compare the current and previous temperature, we have
- * the three paths :
- * 1. decreasing path. (check the release point)
- * 2. increasing path. (check the trigger point)
- * 3. invariant path. (return the current RPM)
- */
- if (avg_tmp[TEMP_SENSOR_CPU] < prev_tmp[TEMP_SENSOR_CPU]) {
- for (i = current_level; i >= 0; i--) {
- if (avg_tmp[TEMP_SENSOR_CPU] <
- fan_step_table[i].off[TEMP_SENSOR_CPU]) {
- /*
- * fan step down debounce
- */
- if (fan_down_count < 10) {
- fan_down_count++;
- fan_up_count = 0;
-
- return new_rpm;
- }
- fan_down_count = 0;
- fan_up_count = 0;
-
- current_level = i - 1;
- } else
- break;
- }
- } else if (avg_tmp[TEMP_SENSOR_CPU] > prev_tmp[TEMP_SENSOR_CPU]) {
- for (i = current_level+1; i < NUM_FAN_LEVELS; i++) {
- if ((avg_tmp[TEMP_SENSOR_CPU] >
- fan_step_table[i].on[TEMP_SENSOR_CPU])) {
- /*
- * fan step up debounce
- */
- if (fan_up_count < 10) {
- fan_up_count++;
- fan_down_count = 0;
-
- return new_rpm;
- }
- fan_down_count = 0;
- fan_up_count = 0;
-
- current_level = i;
- } else
- break;
- }
- } else {
- fan_down_count = 0;
- fan_up_count = 0;
- }
-
- if (current_level < 1)
- current_level = 1;
-
- if (current_level >= 7)
- current_level = 7;
-
- for (i = 0; i < TEMP_SENSOR_COUNT; ++i)
- prev_tmp[i] = avg_tmp[i];
-
- ASSERT(current_level < NUM_FAN_LEVELS);
-
- switch (fan) {
- case FAN_CH_0:
- new_rpm = fan_step_table[current_level].rpm[FAN_CH_0];
- break;
- default:
- break;
- }
-
- return new_rpm;
-}
-
-void board_override_fan_control(int fan, int *tmp)
-{
- if (chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND)) {
- int new_rpm = fan_table_to_rpm(fan, tmp);
-
- if (new_rpm != fan_get_rpm_target(FAN_CH(fan))) {
- cprints(CC_THERMAL, "Setting fan RPM to %d", new_rpm);
- board_print_temps();
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan), new_rpm);
- }
- }
-}
-
-void thermal_protect(void)
-{
- if ((!lid_is_open()) && (!extpower_is_present())) {
- int rv1, rv2;
- int thermal_sensor1, thermal_sensor2;
-
- rv1 = temp_sensor_read(TEMP_SENSOR_5V_REGULATOR,
- &thermal_sensor1);
- rv2 = temp_sensor_read(TEMP_SENSOR_CPU,
- &thermal_sensor2);
-
- if (rv2 == EC_SUCCESS) {
- if (thermal_sensor2 > C_TO_K(70)) {
- chipset_throttle_cpu(1);
- throttle_on = 1;
- } else if (thermal_sensor2 < C_TO_K(60) &&
- throttle_on) {
- chipset_throttle_cpu(0);
- throttle_on = 0;
- }
- }
- if (rv1 == EC_SUCCESS &&
- thermal_sensor1 > C_TO_K(51))
- chipset_force_shutdown(CHIPSET_SHUTDOWN_THERMAL);
- }
-}
-DECLARE_HOOK(HOOK_SECOND, thermal_protect, HOOK_PRIO_DEFAULT);
diff --git a/board/morphius/vif_override.xml b/board/morphius/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/morphius/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/mrbland/base_detect.c b/board/mrbland/base_detect.c
deleted file mode 100644
index 85bc04c4c2..0000000000
--- a/board/mrbland/base_detect.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Mrbland base detection code */
-
-#include "adc.h"
-#include "base_state.h"
-#include "board.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/* Make sure POGO VBUS starts later then PP3300_HUB when power on */
-#define BASE_DETECT_EN_LATER_US (600 * MSEC)
-
-/* Base detection and debouncing */
-#define BASE_DETECT_EN_DEBOUNCE_US (350 * MSEC)
-#define BASE_DETECT_DIS_DEBOUNCE_US (20 * MSEC)
-
-/*
- * If the base status is unclear (i.e. not within expected ranges, read
- * the ADC value again every 500ms.
- */
-#define BASE_DETECT_RETRY_US (500 * MSEC)
-
-/*
- * Lid has 604K pull-up, base has 30.1K pull-down, so the
- * ADC value should be around 30.1/(604+30.1)*3300 = 156
- *
- * We add a significant margin on the maximum value, due to noise on the line,
- * especially when PWM is active. See b/64193554 for details.
- */
-#define BASE_DETECT_MIN_MV 120
-#define BASE_DETECT_MAX_MV 300
-
-/* Minimum ADC value to indicate base is disconnected for sure */
-#define BASE_DETECT_DISCONNECT_MIN_MV 1500
-
-/*
- * Base EC pulses detection pin for 500 us to signal out of band USB wake (that
- * can be used to wake system from deep S3).
- */
-#define BASE_DETECT_PULSE_MIN_US 400
-#define BASE_DETECT_PULSE_MAX_US 650
-
-static uint64_t base_detect_debounce_time;
-
-static void base_detect_deferred(void);
-DECLARE_DEFERRED(base_detect_deferred);
-
-enum base_status {
- BASE_UNKNOWN = 0,
- BASE_DISCONNECTED = 1,
- BASE_CONNECTED = 2,
-};
-
-static enum base_status current_base_status;
-
-/*
- * This function is called whenever there is a change in the base detect
- * status. Actions taken include:
- * 1. Change in power to base
- * 2. Indicate mode change to host.
- * 3. Indicate tablet mode to host. Current assumption is that if base is
- * disconnected then the system is in tablet mode, else if the base is
- * connected, then the system is not in tablet mode.
- */
-static void base_detect_change(enum base_status status)
-{
- int connected = (status == BASE_CONNECTED);
-
- if (current_base_status == status)
- return;
-
- gpio_set_level(GPIO_EN_BASE, connected);
- tablet_set_mode(!connected, TABLET_TRIGGER_BASE);
- base_set_state(connected);
- current_base_status = status;
-}
-
-/* Measure detection pin pulse duration (used to wake AP from deep S3). */
-static uint64_t pulse_start;
-static uint32_t pulse_width;
-
-static void print_base_detect_value(int v, int tmp_pulse_width)
-{
- CPRINTS("%s = %d (pulse %d)", adc_channels[ADC_BASE_DET].name,
- v, tmp_pulse_width);
-}
-
-static void base_detect_deferred(void)
-{
- uint64_t time_now = get_time().val;
- int v;
- uint32_t tmp_pulse_width = pulse_width;
-
- if (base_detect_debounce_time > time_now) {
- hook_call_deferred(&base_detect_deferred_data,
- base_detect_debounce_time - time_now);
- return;
- }
-
- v = adc_read_channel(ADC_BASE_DET);
- if (v == ADC_READ_ERROR)
- return;
-
- print_base_detect_value(v, tmp_pulse_width);
-
- if (v >= BASE_DETECT_MIN_MV && v <= BASE_DETECT_MAX_MV) {
- if (current_base_status != BASE_CONNECTED) {
- base_detect_change(BASE_CONNECTED);
- } else if (tmp_pulse_width >= BASE_DETECT_PULSE_MIN_US &&
- tmp_pulse_width <= BASE_DETECT_PULSE_MAX_US) {
- CPRINTS("Sending event to AP");
- host_set_single_event(EC_HOST_EVENT_KEY_PRESSED);
- }
- return;
- }
-
- if (v >= BASE_DETECT_DISCONNECT_MIN_MV) {
- base_detect_change(BASE_DISCONNECTED);
- return;
- }
-
- /* Unclear base status, schedule again in a while. */
- hook_call_deferred(&base_detect_deferred_data, BASE_DETECT_RETRY_US);
-}
-
-static inline int detect_pin_connected(enum gpio_signal det_pin)
-{
- return gpio_get_level(det_pin) == 0;
-}
-
-void base_detect_interrupt(enum gpio_signal signal)
-{
- uint64_t time_now = get_time().val;
- int debounce_us;
-
- if (detect_pin_connected(signal))
- debounce_us = BASE_DETECT_EN_DEBOUNCE_US;
- else
- debounce_us = BASE_DETECT_DIS_DEBOUNCE_US;
-
- if (base_detect_debounce_time <= time_now) {
- /*
- * Detect and measure detection pin pulse, when base is
- * connected. Only a single pulse is measured over a debounce
- * period. If no pulse, or multiple pulses are detected,
- * pulse_width is set to 0.
- */
- if (current_base_status == BASE_CONNECTED &&
- !detect_pin_connected(signal)) {
- pulse_start = time_now;
- } else {
- pulse_start = 0;
- }
- pulse_width = 0;
-
- hook_call_deferred(&base_detect_deferred_data, debounce_us);
- } else {
- if (current_base_status == BASE_CONNECTED &&
- detect_pin_connected(signal) && !pulse_width &&
- pulse_start) {
- /* First pulse within period. */
- pulse_width = time_now - pulse_start;
- } else {
- pulse_start = 0;
- pulse_width = 0;
- }
- }
-
- base_detect_debounce_time = time_now + debounce_us;
-}
-
-static void base_enable(void)
-{
- /* Enable base detection interrupt. */
- base_detect_debounce_time = get_time().val;
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_EN_LATER_US);
- gpio_enable_interrupt(GPIO_BASE_DET_L);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, base_enable, HOOK_PRIO_DEFAULT);
-
-static void base_disable(void)
-{
- /*
- * Disable base detection interrupt and disable power to base.
- * Set the state UNKNOWN so the next startup will initialize a
- * correct state and notify AP.
- */
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_UNKNOWN);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, base_disable, HOOK_PRIO_DEFAULT);
-
-static void base_init(void)
-{
- /*
- * If we jumped to this image and chipset is already in S0, enable
- * base.
- */
- if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON))
- base_enable();
-}
-DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT+1);
-
-void base_force_state(enum ec_set_base_state_cmd state)
-{
- if (state == EC_SET_BASE_STATE_ATTACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_CONNECTED);
- CPRINTS("BD forced connected");
- } else if (state == EC_SET_BASE_STATE_DETACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_DISCONNECTED);
- CPRINTS("BD forced disconnected");
- } else {
- base_enable();
- CPRINTS("BD forced reset");
- }
-}
diff --git a/board/mrbland/battery.c b/board/mrbland/battery.c
deleted file mode 100644
index a99d71e7f4..0000000000
--- a/board/mrbland/battery.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all mrbland battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* Celxpert L21C2PG1 */
- [BATTERY_L21C2PG1] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "LNV-5B11F38374",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 384, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* Sunwoda L21D2PG1 */
- [BATTERY_L21D2PG1] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "LNV-5B11F38370",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 63,
- .discharging_min_c = -20,
- .discharging_max_c = 63,
- },
- },
- /* SMP L21M2PG1 */
- [BATTERY_L21M2PG1] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "LNV-5B11F38381",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7680, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 128, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_L21D2PG1;
diff --git a/board/mrbland/board.c b/board/mrbland/board.c
deleted file mode 100644
index fc48888a55..0000000000
--- a/board/mrbland/board.c
+++ /dev/null
@@ -1,650 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Mrbland board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm42607.h"
-#include "driver/ln9310.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_mkbp.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "peripheral_charger.h"
-#include "pi3usb9201.h"
-#include "power.h"
-#include "power/qcom.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "queue.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define KS_DEBOUNCE_US (30 * MSEC) /* Debounce time for kickstand switch */
-
-/* Forward declaration */
-static void tcpc_alert_event(enum gpio_signal signal);
-static void usb0_evt(enum gpio_signal signal);
-static void ppc_interrupt(enum gpio_signal signal);
-static void board_connect_c0_sbu(enum gpio_signal s);
-static void switchcap_interrupt(enum gpio_signal signal);
-
-#include "gpio_list.h"
-
-/* GPIO Interrupt Handlers */
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-static void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-static void switchcap_interrupt(enum gpio_signal signal)
-{
- ln9310_interrupt(signal);
-}
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
- /* Base detection */
- [ADC_BASE_DET] = {
- "BASE_DET",
- NPCX_ADC_CH5,
- ADC_MAX_VOLT,
- ADC_READ_MAX + 1,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* LN9310 switchcap */
-const struct ln9310_config_t ln9310_config = {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = LN9310_I2C_ADDR_0_FLAGS,
-};
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Mutexes */
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm42607_data;
-
-enum lid_accelgyro_type {
- LID_GYRO_NONE = 0,
- LID_GYRO_BMI160 = 1,
- LID_GYRO_ICM42607 = 2,
-};
-
-static enum lid_accelgyro_type lid_accelgyro_config;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t lid_standard_ref_icm42607 = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t icm42607_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = ICM42607_ACCEL_MIN_FREQ,
- .max_frequency = ICM42607_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm42607_lid_gyro = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .min_frequency = ICM42607_GYRO_MIN_FREQ,
- .max_frequency = ICM42607_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_detect_motionsensor(void)
-{
- int val = -1;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (lid_accelgyro_config != LID_GYRO_NONE)
- return;
-
- /* Check base accelgyro chip */
- icm_read8(&icm42607_lid_accel, ICM42607_REG_WHO_AM_I, &val);
- if (val == ICM42607_CHIP_ICM42607P) {
- motion_sensors[LID_ACCEL] = icm42607_lid_accel;
- motion_sensors[LID_GYRO] = icm42607_lid_gyro;
- lid_accelgyro_config = LID_GYRO_ICM42607;
- CPRINTS("LID Accelgyro: ICM42607");
- } else {
- lid_accelgyro_config = LID_GYRO_BMI160;
- CPRINTS("LID Accelgyro: BMI160");
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_DEFAULT + 1);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (lid_accelgyro_config) {
- case LID_GYRO_ICM42607:
- icm42607_interrupt(signal);
- break;
- case LID_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-enum battery_cell_type board_get_battery_cell_type(void)
-{
- return BATTERY_CELL_TYPE_2S;
-}
-
-static void board_switchcap_init(void)
-{
- CPRINTS("Use switchcap: LN9310");
-
- /* Configure and enable interrupt for LN9310 */
- gpio_set_flags(GPIO_SWITCHCAP_PG_INT_L, GPIO_INT_FALLING);
- gpio_enable_interrupt(GPIO_SWITCHCAP_PG_INT_L);
-
- /* Only configure the switchcap if not sysjump */
- if (!system_jumped_late())
- ln9310_init();
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-
- board_switchcap_init();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__overridable uint16_t board_get_ps8xxx_product_id(int port)
-{
- return PS8805_PRODUCT_ID;
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-void board_hibernate(void)
-{
- int i;
-
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- /*
- * Board rev 1+ has the hardware fix. Don't need the following
- * workaround.
- */
- if (system_get_board_version() >= 1)
- return;
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON_L, !enable);
- ln9310_software_enable(enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return !gpio_get_level(GPIO_SWITCHCAP_ON_L);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return ln9310_power_good();
-}
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_ma = charge_ma * 95 / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-int battery_get_vendor_param(uint32_t param, uint32_t *value)
-{
- int rv;
- uint8_t data[16] = {};
-
- /* only allow reading 0x70~0x7F, 16 byte data */
- if (param < 0x70 || param >= 0x80)
- return EC_ERROR_ACCESS_DENIED;
-
- rv = sb_read_string(0x70, data, sizeof(data));
- if (rv)
- return rv;
-
- *value = data[param - 0x70];
- return EC_SUCCESS;
-}
-
-int battery_set_vendor_param(uint32_t param, uint32_t value)
-{
- return EC_ERROR_UNIMPLEMENTED;
-}
diff --git a/board/mrbland/board.h b/board/mrbland/board.h
deleted file mode 100644
index f4cb398c50..0000000000
--- a/board/mrbland/board.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Mrbland board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* TODO(waihong): Remove the following bringup features */
-#define CONFIG_BRINGUP
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands. */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define CONFIG_CMD_GPIO_EXTENDED
-#define CONFIG_CMD_POWERINDEBUG
-#define CONFIG_I2C_DEBUG
-
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Switchcap */
-#define CONFIG_LN9310
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_VENDOR_PARAM
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* Enable PD3.0 */
-#define CONFIG_USB_PD_REV30
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8755
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-
-/* I2C */
-#undef I2C_PORT_TCPC0
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT2_0
-
-/* Lid accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-#define CONFIG_ACCELGYRO_ICM42607
-#define CONFIG_ACCELGYRO_ICM42607_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_FRONT_PROXIMITY_SWITCH
-
-#define CONFIG_DETACHABLE_BASE
-#define CONFIG_BASE_ATTACHED_SWITCH
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_CHG_ACOK_OD
-#define GPIO_WP_L GPIO_EC_FLASH_WP_ODL
-#define GPIO_PMIC_RESIN_L GPIO_PM845_RESIN_L
-#define GPIO_SWITCHCAP_PG_INT_L GPIO_LN9310_INT
-
-#define CONFIG_MKBP_INPUT_DEVICES
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_BASE_DET,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_DISPLIGHT = 0,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_L21C2PG1,
- BATTERY_L21D2PG1,
- BATTERY_L21M2PG1,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-/* Base detection */
-void base_detect_interrupt(enum gpio_signal signal);
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/mrbland/build.mk b/board/mrbland/build.mk
deleted file mode 100644
index 74b6b95e4d..0000000000
--- a/board/mrbland/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y=battery.o board.o led.o base_detect.o
diff --git a/board/mrbland/ec.tasklist b/board/mrbland/ec.tasklist
deleted file mode 100644
index 493c39dc6c..0000000000
--- a/board/mrbland/ec.tasklist
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/mrbland/gpio.inc b/board/mrbland/gpio.inc
deleted file mode 100644
index 6d09e87688..0000000000
--- a/board/mrbland/gpio.inc
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_FLASH_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-GPIO_INT(BASE_DET_L, PIN(3, 7), GPIO_INT_BOTH, base_detect_interrupt) /* Detachable base attached? */
-
-/* Sensor interrupts */
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, motion_interrupt) /* Accelerometer/gyro interrupt */
-
-/* Switchcap, for LN9310, it is the interrupt line of LN9310. */
-GPIO_INT(LN9310_INT, PIN(E, 2), GPIO_INT_FALLING, switchcap_interrupt)
-
-/*
- * EC_RST_ODL acts as a wake source from hibernate mode. However, it does not
- * need to be an interrupt for normal EC operations. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PM845_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-GPIO(QSIP_ON, PIN(5, 0), GPIO_OUT_LOW) /* Not used, for non-switchcap testing */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON_L, PIN(D, 5), GPIO_ODR_HIGH) /* Enable switch cap */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Base detection */
-GPIO(EN_BASE, PIN(0, 4), GPIO_OUT_LOW) /* Enable power to detachable base */
-
-/* POGO */
-GPIO(POGO_VBUS_PRESENT, PIN(6, 2), GPIO_INPUT) /* POGO PIN */
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(E, 4), GPIO_ODR_HIGH) /* Port-0 TCPC chip reset, actually Open-Drain */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_R_C0, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_G_C0, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(EC_PWRBTN_LED, PIN(7, 3), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-GPIO(WCAM_EC_VSYNC, PIN(C, 0), GPIO_INPUT) /* PWM6 */
-GPIO(FCAM_EC_VSYNC, PIN(6, 0), GPIO_INPUT) /* PWM7 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. Apply PU for power saving */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(3, 1))
-UNUSED(PIN(3, 0))
-UNUSED(PIN(2, 7))
-UNUSED(PIN(2, 6))
-UNUSED(PIN(2, 5))
-UNUSED(PIN(2, 4))
-UNUSED(PIN(2, 3))
-UNUSED(PIN(2, 2))
-UNUSED(PIN(2, 1))
-UNUSED(PIN(2, 0))
-UNUSED(PIN(1, 7))
-UNUSED(PIN(1, 6))
-UNUSED(PIN(1, 5))
-UNUSED(PIN(1, 4))
-UNUSED(PIN(1, 3))
-UNUSED(PIN(1, 2))
-UNUSED(PIN(1, 1))
-UNUSED(PIN(1, 0))
-UNUSED(PIN(0, 7))
-UNUSED(PIN(0, 6))
-UNUSED(PIN(0, 5))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(C, 6))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(5, 6))
-UNUSED(PIN(8, 0))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(D, 1))
-UNUSED(PIN(D, 3))
-UNUSED(PIN(7, 5))
-UNUSED(PIN(8, 6))
-UNUSED(PIN(7, 4))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(8, 5))
-UNUSED(PIN(E, 0))
-UNUSED(PIN(0, 3))
-UNUSED(PIN(6, 1))
-UNUSED(PIN(F, 1))
-UNUSED(PIN(9, 0))
-UNUSED(PIN(8, 7))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-/* TODO(Camera?) should have a poper config for this, PWM or not */
-ALTERNATE(PIN_MASK(C, 0x01), 1, MODULE_PWM, 0) /* PWM6 (GPIOC0) - WCAM_EC_VSYNC */
-ALTERNATE(PIN_MASK(6, 0x01), 1, MODULE_PWM, 0) /* PWM7 (GPIO60) - FCAM_EC_VSYNC */
-
-
diff --git a/board/mrbland/led.c b/board/mrbland/led.c
deleted file mode 100644
index a8d2fcda30..0000000000
--- a/board/mrbland/led.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-#include "extpower.h"
-
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-/* Battery LED blinks every per 400ms */
-#define LED_HALF_ONE_SEC (500 / HOOK_TICK_INTERVAL_MS)
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color_battery(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_R_C0,
- (color == LED_RED) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_EC_CHG_LED_G_C0,
- (color == LED_GREEN) ? BAT_LED_ON : BAT_LED_OFF);
- if (color == LED_AMBER) {
- gpio_set_level(GPIO_EC_CHG_LED_R_C0, BAT_LED_ON);
- gpio_set_level(GPIO_EC_CHG_LED_G_C0, BAT_LED_ON);
- }
-}
-
-static void led_set_color_power(enum led_color color)
-{
- gpio_set_level(GPIO_EC_PWRBTN_LED,
- (color == LED_WHITE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(LED_RED);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(LED_GREEN);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LED_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(LED_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- int color = LED_OFF;
- int period = 0;
- int percent = DIV_ROUND_NEAREST(charge_get_display_charge(), 10);
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- case PWR_STATE_CHARGE_NEAR_FULL:
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_ANY_OFF)) {
- if (percent <= BATTERY_LEVEL_CRITICAL) {
- /* battery capa <= 5%, Red */
- color = LED_RED;
- } else if (percent > BATTERY_LEVEL_CRITICAL &&
- percent < BATTERY_LEVEL_NEAR_FULL) {
- /* 5% < battery capa < 97%, Orange */
- color = LED_AMBER;
- } else {
- /* battery capa >= 97%, Green */
- color = LED_GREEN;
- }
- }
- break;
- case PWR_STATE_DISCHARGE:
- color = LED_OFF;
- break;
- case PWR_STATE_ERROR:
- /* Battery error, Red on 1sec off 1sec */
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode, Red 2 sec, green 2 sec */
- period = (2 + 2) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_GREEN;
- } else
- color = LED_RED;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color_battery(color);
-}
-
-static void board_led_set_power(void)
-{
- static int power_ticks;
- int color = LED_OFF;
- int period = 0;
-
- power_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- case PWR_STATE_CHARGE_NEAR_FULL:
- case PWR_STATE_DISCHARGE:
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- /* S0, White (soild on) */
- color = LED_WHITE;
- } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* S3, white (3s on 500ms off) */
- period = 1 * LED_HALF_ONE_SEC + 3 * LED_ONE_SEC;
- power_ticks = power_ticks % period;
- if (power_ticks < 3 * LED_ONE_SEC)
- color = LED_WHITE;
- else
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- /* S5, off */
- color = LED_OFF;
- }
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color_power(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- board_led_set_power();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_RED : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color_battery(color);
-}
diff --git a/board/mrbland/vif_override.xml b/board/mrbland/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/mrbland/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/munna/battery.c b/board/munna/battery.c
deleted file mode 100644
index 1b162e93c7..0000000000
--- a/board/munna/battery.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* LGC L20L3PG2, Gauge IC: RAJ240047A20DNP. */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L20L3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L20D3PG2, Gauge IC: BQ40Z697A. */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L20D3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SIMPLO L20M3PG2, Gauge IC: BQ40Z697A. */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- },
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -40,
- .discharging_max_c = 73,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/munna/board.c b/board/munna/board.c
deleted file mode 100644
index f31c7a7e39..0000000000
--- a/board/munna/board.c
+++ /dev/null
@@ -1,595 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "keyboard_backlight.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(5),
- STM32_RANK(1)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(15),
- STM32_RANK(2)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 2, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 3, 100, GPIO_I2C4_SCL, GPIO_I2C4_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 2,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-#ifdef CHIP_FAMILY_STM32L4
- /* Set I/O speed before AF configured */
- /* EMMC SPI SLAVE: PB13/14/15 */
- /* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xFF300000;
- STM32_GPIO_OSPEEDR(GPIO_C) |= 0x000000F0;
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR1 |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR1 |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR1 &= ~STM32_RCC_PB1_SPI2;
-#else
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-#endif
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
-#ifdef CHIP_FAMILY_STM32L4
- STM32_RCC_APB1ENR1 &= ~STM32_RCC_PB1_SPI2;
-#else
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_standard_ref = {
- {0, FLOAT_TO_FP(1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(-1) }
-};
-
-/* sensor private data */
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-const struct it8801_pwm_t it8801_pwm_channels[] = {
- [IT8801_PWM_CH_KBLIGHT] = {.index = 4},
-};
-
-void board_kblight_init(void)
-{
- kblight_register(&kblight_it8801);
-}
-
-bool board_has_kb_backlight(void)
-{
- /* Default enable keyboard backlight */
- return true;
-}
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Battery functions */
-#define SB_SMARTCHARGE 0x26
-/* Quick charge enable bit */
-#define SMART_QUICK_CHARGE 0x02
-/* Quick charge support bit */
-#define MODE_QUICK_CHARGE_SUPPORT 0x01
-
-static void sb_quick_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_SMARTCHARGE, &val);
- if (rv || !(val & MODE_QUICK_CHARGE_SUPPORT))
- return;
-
- if (enable)
- val |= SMART_QUICK_CHARGE;
- else
- val &= ~SMART_QUICK_CHARGE;
-
- sb_write(SB_SMARTCHARGE, val);
-}
-
-/* Called on AP S0iX -> S0 transition */
-static void board_chipset_resume(void)
-{
-#ifndef VARIANT_KUKUI_NO_SENSORS
- if (board_has_kb_backlight())
- ioex_set_level(IOEX_KB_BL_EN, 1);
-#endif
-
- /* Normal charge mode */
- sb_quick_charge_mode(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S0iX transition */
-static void board_chipset_suspend(void)
-{
-#ifndef VARIANT_KUKUI_NO_SENSORS
- if (board_has_kb_backlight())
- ioex_set_level(IOEX_KB_BL_EN, 0);
-#endif
-
- /* Quick charge mode */
- sb_quick_charge_mode(1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return I2C_PORT_CHARGER;
-}
-
-int board_get_battery_i2c(void)
-{
- return I2C_PORT_BATTERY;
-}
-
-#ifdef SECTION_IS_RW
-static int it8801_get_target_channel(enum pwm_channel *channel,
- int type, int index)
-{
- switch (type) {
- case EC_PWM_TYPE_GENERIC:
- *channel = index;
- break;
- default:
- return -1;
- }
-
- return *channel >= 1;
-}
-
-static enum ec_status
-host_command_pwm_set_duty(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pwm_set_duty *p = args->params;
- enum pwm_channel channel;
- uint16_t duty;
-
- if (it8801_get_target_channel(&channel, p->pwm_type, p->index))
- return EC_RES_INVALID_PARAM;
-
- duty = (uint32_t) p->duty * 255 / 65535;
- it8801_pwm_set_raw_duty(channel, duty);
- it8801_pwm_enable(channel, p->duty > 0);
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PWM_SET_DUTY,
- host_command_pwm_set_duty,
- EC_VER_MASK(0));
-
-static enum ec_status
-host_command_pwm_get_duty(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pwm_get_duty *p = args->params;
- struct ec_response_pwm_get_duty *r = args->response;
-
- enum pwm_channel channel;
-
- if (it8801_get_target_channel(&channel, p->pwm_type, p->index))
- return EC_RES_INVALID_PARAM;
-
- r->duty = (uint32_t) it8801_pwm_get_raw_duty(channel) * 65535 / 255;
- args->response_size = sizeof(*r);
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PWM_GET_DUTY,
- host_command_pwm_get_duty,
- EC_VER_MASK(0));
-#endif
diff --git a/board/munna/board.h b/board/munna/board.h
deleted file mode 100644
index baf68470e4..0000000000
--- a/board/munna/board.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Configuration for Munna */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32L431
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-#undef CONFIG_SYSTEM_UNLOCKED
-
-/* PLL configuration. Freq = STM32_HSE_CLOCK or HSI (16MHz) * n/m/r */
-#undef STM32_PLLM
-#undef STM32_PLLN
-#undef STM32_PLLR
-#define STM32_PLLM 1
-#ifdef STM32_HSE_CLOCK
-#define STM32_PLLN 12
-#else
-#define STM32_PLLN 10
-#endif
-#define STM32_PLLR 2
-
-#define STM32_USE_PLL
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#undef I2C_BITBANG_PORT_COUNT
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_POWER_LED
-
-#undef CONFIG_WATCHDOG_PERIOD_MS
-#define CONFIG_WATCHDOG_PERIOD_MS 4000
-
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ALS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#ifdef SECTION_IS_RW
-#define CONFIG_IO_EXPANDER_IT8801_PWM
-#define CONFIG_KEYBOARD_BACKLIGHT
-#endif
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_CHARGER 2
-#define I2C_PORT_SENSORS 2
-#define IT8801_KEYBOARD_PWM_I2C_PORT 2
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_BATTERY 3
-#define I2C_PORT_TCPC0 0
-
-#undef I2C_CONTROLLER_COUNT
-#undef I2C_PORT_COUNT
-#define I2C_CONTROLLER_COUNT 3
-#define I2C_PORT_COUNT 3
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-/* Define the MKBP events which are allowed to wakeup AP in S3. */
-#define CONFIG_MKBP_HOST_EVENT_WAKEUP_MASK \
- (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
-
-#undef CONFIG_GMR_TABLET_MODE
-#undef GMR_TABLET_MODE_GPIO_L
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_TABLET_MODE_SWITCH
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_SMP,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- IT8801_PWM_CH_KBLIGHT = 0,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger/battery */
-int board_get_charger_i2c(void);
-int board_get_battery_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/munna/build.mk b/board/munna/build.mk
deleted file mode 100644
index 594bac4de9..0000000000
--- a/board/munna/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32L431RCI
-CHIP:=stm32
-CHIP_FAMILY:=stm32l4
-CHIP_VARIANT:=stm32l431x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/munna/ec.tasklist b/board/munna/ec.tasklist
deleted file mode 100644
index 6b29595620..0000000000
--- a/board/munna/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/munna/gpio.inc b/board/munna/gpio.inc
deleted file mode 100644
index 50e5ee3a47..0000000000
--- a/board/munna/gpio.inc
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 11), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- bmi160_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-GPIO(TABLET_MODE_L, PIN(B, 11), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(H, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(C, 0), GPIO_INPUT)
-GPIO(I2C3_SDA, PIN(C, 1), GPIO_INPUT)
-GPIO(I2C4_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C4_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(A, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(H, 3), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(H, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(A, 12), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-IOEX(BAT_LED_GREEN_FULL_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
-IOEX(BAT_LED_RED_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-IOEX(KB_BL_EN, EXPIN(0, 0, 7), GPIO_OUT_LOW)
-
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 7, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 4, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PC0/C1 */
-ALTERNATE(PIN_MASK(C, 0x0003), 4, MODULE_I2C, GPIO_ODR_HIGH )
-
-
-/* SPI1 */
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 5, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 5, MODULE_SPI, 0)
-
-/* SPI2 */
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 5, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 5, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/munna/led.c b/board/munna/led.c
deleted file mode 100644
index fa4f46b6ab..0000000000
--- a/board/munna/led.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Munna
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
-led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_GREEN:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_RED:
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_BAT_LED_GREEN_FULL_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_RED_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_ON_LVL);
- break;
- default:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/munna/vif_override.xml b/board/munna/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/munna/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/mushu/battery.c b/board/mushu/battery.c
deleted file mode 100644
index 7e48dfdc19..0000000000
--- a/board/mushu/battery.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-/*
- * Battery info for all Mushu battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* POW-TECH Battery Information */
- [BATTERY_POWER_TECH] = {
- .fuel_gauge = {
- .manuf_name = "POW-TECH",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP SDI Dell FMXMT Battery Information */
- [BATTERY_SMP_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI-3727",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_POWER_TECH;
diff --git a/board/mushu/board.c b/board/mushu/board.c
deleted file mode 100644
index 353875e9f5..0000000000
--- a/board/mushu/board.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Mushu board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/amd_r19me4070.h"
-#include "driver/temp_sensor/f75303.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- baseboard_mst_enable_control(MST_HDMI, gpio_get_level(signal));
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_FAN2] = {.channel = 6, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/*
- * TODO(b/124337208): P0 boards don't have this sensor mounted so the rotation
- * matrix can't be tested properly. This needs to be revisited after EVT to make
- * sure the rotation matrix for the lid sensor is correct.
- */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-const struct fan_conf fan_conf_1 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_1, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2000,
- .rpm_start = 2000,
- .rpm_max = 4100,
-};
-
-const struct fan_rpm fan_rpm_1 = {
- .rpm_min = 2000,
- .rpm_start = 2000,
- .rpm_max = 4100,
-};
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
- [FAN_CH_1] = { .conf = &fan_conf_1, .rpm = &fan_rpm_1, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
- [MFT_CH_1] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN2},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_5V", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_CHARGER] = {
- .name = "CHARGER",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1
- },
- [TEMP_5V] = {
- .name = "5V",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2
- },
- [TEMP_GPU] = {
- .name = "GPU",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_R19ME4070,
- .idx = R19ME4070_LOCAL
- },
- [TEMP_F75303_LOCAL] = {
- .name = "F75303_Local",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = f75303_get_val,
- .idx = F75303_IDX_LOCAL
- },
- [TEMP_F75303_GPU] = {
- .name = "F75303_GPU",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = f75303_get_val,
- .idx = F75303_IDX_REMOTE1
- },
- [TEMP_F75303_GPU_POWER] = {
- .name = "F75303_GPU_Power",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = f75303_get_val,
- .idx = F75303_IDX_REMOTE2
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-/* Hatch Temperature sensors */
-/*
- * TODO(b/124316213): These setting need to be reviewed and set appropriately
- * for Hatch. They matter when the EC is controlling the fan as opposed to DPTF
- * control.
- */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(0),
- .temp_fan_max = C_TO_K(70),
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(0),
- .temp_fan_max = C_TO_K(70),
-};
-
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_CHARGER] = thermal_a;
- thermal_params[TEMP_5V] = thermal_a;
- thermal_params[TEMP_GPU] = thermal_b;
-}
-
-/* Sets the gpio flags correct taking into account warm resets */
-static void reset_gpio_flags(enum gpio_signal signal, int flags)
-{
- /*
- * If the system was already on, we cannot set the value otherwise we
- * may change the value from the previous image which could cause a
- * brownout.
- */
- if (system_is_reboot_warm() || system_jumped_late())
- flags &= ~(GPIO_LOW | GPIO_HIGH);
-
- gpio_set_flags(signal, flags);
-}
-
-/* Runtime GPIO defaults */
-enum gpio_signal gpio_en_pp5000_a = GPIO_EN_PP5000_A_V1;
-
-static void board_gpio_set_pp5000(void)
-{
- uint32_t board_id = 0;
-
- /* Errors will count as board_id 0 */
- cbi_get_board_version(&board_id);
-
- if (board_id == 0) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V0, GPIO_OUT_LOW);
- /* Change runtime default for V0 */
- gpio_en_pp5000_a = GPIO_EN_PP5000_A_V0;
- } else if (board_id >= 1) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V1, GPIO_OUT_LOW);
- }
-
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_TCS3400_INT_ODL);
- /* Enable HDMI HPD interrupt. */
- gpio_enable_interrupt(GPIO_HDMI_CONN_HPD);
- /* Select correct gpio signal for PP5000_A control */
- board_gpio_set_pp5000();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255);
-}
diff --git a/board/mushu/board.h b/board/mushu/board.h
deleted file mode 100644
index 1bd58abbba..0000000000
--- a/board/mushu/board.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Mushu board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Reduce flash usage */
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_CHARGER_DUMP
-#undef CONFIG_CMD_PPC_DUMP
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-#undef CONFIG_CMD_MFALLOW
-
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-/* TC3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-#define I2C_PORT_ALS I2C_PORT_SENSOR
-#define CONFIG_TEMP_SENSOR
-/* AMD SMBUS Temp sensors */
-#define CONFIG_TEMP_SENSOR_AMD_R19ME4070
-/* F75303 on I2C bus */
-#define CONFIG_TEMP_SENSOR_F75303
-/* Temp sensor is on port 4 on baseboard but on port 0 on Mushu */
-#undef I2C_PORT_THERMAL
-#define I2C_PORT_THERMAL I2C_PORT_SENSOR
-
-/* GPU features */
-#define I2C_PORT_GPU NPCX_I2C_PORT4_1
-
-/* USB Type C and USB PD defines */
-#undef CONFIG_USB_PD_TCPMV1
-/*
- * Enable TCPMv2. Use default PD 2.0 operation because we have a
- * parade PS8751 TCPC
- */
-#define CONFIG_USB_PD_TCPMV2
-#undef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT
-#define CONFIG_USB_PID 0x5047
-#define CONFIG_USB_PD_DECODE_SOP
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A_LOW_PWR_OD
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set based on the battery's discharge current limit and what was tested to
- * prevent the AP rebooting with low charge level batteries.
- *
- * TODO(b/133447140): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 2
-#define CONFIG_CUSTOM_FAN_CONTROL
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* MST */
-/*
- * TDOD (b/124068003): This inherently assumes the MST chip is connected to only
- * one Type C port. This will need to be chagned to support 2 Type C ports
- * connected to the same MST chip.
- */
-#define USB_PD_PORT_TCPC_MST USB_PD_PORT_TCPC_1
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* GPIO signals updated base on board version. */
-#define GPIO_EN_PP5000_A gpio_en_pp5000_a
-extern enum gpio_signal gpio_en_pp5000_a;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_FAN2,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_1,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_1,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_CHARGER,
- TEMP_5V,
- TEMP_GPU,
- TEMP_F75303_LOCAL,
- TEMP_F75303_GPU,
- TEMP_F75303_GPU_POWER,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_POWER_TECH,
- BATTERY_SMP_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-
-#undef PD_OPERATING_POWER_MW
-#define PD_OPERATING_POWER_MW 15000
-#undef PD_MAX_POWER_MW
-#define PD_MAX_POWER_MW 100000
-#undef PD_MAX_CURRENT_MA
-#define PD_MAX_CURRENT_MA 5000
-#undef PD_MAX_VOLTAGE_MV
-#define PD_MAX_VOLTAGE_MV 20000
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/mushu/build.mk b/board/mushu/build.mk
deleted file mode 100644
index 2d6118ea70..0000000000
--- a/board/mushu/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o thermal.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/mushu/ec.tasklist b/board/mushu/ec.tasklist
deleted file mode 100644
index 4a1024a091..0000000000
--- a/board/mushu/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/mushu/gpio.inc b/board/mushu/gpio.inc
deleted file mode 100644
index cc8c7a0154..0000000000
--- a/board/mushu/gpio.inc
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, bmi160_interrupt)
-GPIO_INT(TCS3400_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcs3400_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-GPIO_INT(HDMI_CONN_HPD, PIN(7, 2), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A_V1, PIN(A, 4), GPIO_DEFAULT)
-GPIO(EN_PP5000_A_V0, PIN(0, 2), GPIO_DEFAULT)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_LOW)
-GPIO(EN_USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-GPIO(EN_MST, PIN(9, 6), GPIO_OUT_LOW)
-
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_GPU_TEMPERATURE_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_GPU_TEMPERATURE_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(C, 0x01), 0, MODULE_PWM, 0) /* PWM6 - FAN2 */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x03), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL */
diff --git a/board/mushu/led.c b/board/mushu/led.c
deleted file mode 100644
index 18600ee245..0000000000
--- a/board/mushu/led.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Mushu
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/mushu/thermal.c b/board/mushu/thermal.c
deleted file mode 100644
index b61f36ab8a..0000000000
--- a/board/mushu/thermal.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "fan.h"
-#include "host_command.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-static int fan_control[FAN_CH_COUNT];
-
-void fan_set_percent(int fan, int pct)
-{
- int actual_rpm;
- int new_rpm;
- const int min_rpm = fans[fan].rpm->rpm_min * 9 / 10;
-
- new_rpm = fan_percent_to_rpm(fan, pct);
- actual_rpm = fan_get_rpm_actual(FAN_CH(fan));
-
- if (new_rpm &&
- actual_rpm < min_rpm &&
- new_rpm < fans[fan].rpm->rpm_start)
- new_rpm = fans[fan].rpm->rpm_start;
-
- fan_set_rpm_target(FAN_CH(fan), new_rpm);
-}
-
-void board_override_fan_control(int fan, int *tmp)
-{
- int i, f;
- int fmax = 0;
- int temp_fan_configured = 0;
-
- for (i = 0; i < TEMP_SENSOR_COUNT; ++i) {
- tmp[i] = C_TO_K(tmp[i]);
-
- /* figure out the max fan needed */
- if (thermal_params[i].temp_fan_off &&
- thermal_params[i].temp_fan_max) {
- f = thermal_fan_percent(thermal_params[i].temp_fan_off,
- thermal_params[i].temp_fan_max,
- tmp[i]);
- if (i == TEMP_GPU)
- fan_control[FAN_CH_1] = f;
- else {
- if (f > fmax) {
- fan_control[FAN_CH_0] = f;
- fmax = f;
- } else
- fan_control[FAN_CH_0] = fmax;
- }
- temp_fan_configured = 1;
- }
- }
- /* transfer percent to rpm */
- if (temp_fan_configured)
- fan_set_percent(fan, fan_control[fan]);
-}
diff --git a/board/mushu/vif_override.xml b/board/mushu/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/mushu/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/nami/battery.c b/board/nami/battery.c
deleted file mode 100644
index 149272c8c1..0000000000
--- a/board/nami/battery.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/* Copyright 2017 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.
- *
- * Placeholder values for temporary battery pack.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "board.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/* Default, Nami, Vayne */
-static const struct battery_info info_0 = {
- .voltage_max = 8800,
- .voltage_normal = 7600,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
-};
-
-/* Sona */
-static const struct battery_info info_1 = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
-};
-
-/* Pantheon */
-static const struct battery_info info_2 = {
- .voltage_max = 8700,
- .voltage_normal = 7500,
- .voltage_min = 6000,
- .precharge_current = 200,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
-};
-
-/* Panasonic AP15O5L (Akali) */
-static const struct battery_info info_3 = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-/* Panasonic AP18F4M (Bard/Ekko) */
-static const struct battery_info info_4 = {
- .voltage_max = 8700,
- .voltage_normal = 7600,
- .voltage_min = 5500,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
-};
-
-enum battery_type {
- BATTERY_TYPE_AP15 = 0,
- BATTERY_TYPE_AP18,
- BATTERY_TYPE_COUNT,
-};
-
-enum gauge_type {
- GAUGE_TYPE_UNKNOWN = 0,
- GAUGE_TYPE_TI_BQ40Z50,
- GAUGE_TYPE_RENESAS_RAJ240,
- GAUGE_TYPE_AKALI,
-};
-
-static const struct battery_info *info = &info_0;
-static int sb_ship_mode_reg = SB_MANUFACTURER_ACCESS;
-static int sb_shutdown_data = 0x0010;
-static enum gauge_type fuel_gauge;
-
-const struct battery_info *battery_get_info(void)
-{
- return info;
-}
-
-/*
- * Read a value from the Manufacturer Access System (MAC).
- */
-static int sb_get_mac(uint16_t cmd, uint8_t *data, int len)
-{
- int rv;
-
- rv = sb_write(SB_MANUFACTURER_ACCESS, cmd);
- if (rv)
- return rv;
-
- return sb_read_string(SB_MANUFACTURER_DATA, data, len);
-}
-
-static enum gauge_type get_gauge_ic(void)
-{
- uint8_t data[11];
-
- if (oem == PROJECT_AKALI)
- return GAUGE_TYPE_AKALI;
-
- /* 0x0002 is for 'Firmware Version' (p91 in BQ40Z50-R2 TRM).
- * We can't use sb_read_mfgacc because the command won't be included
- * in the returned block. */
- if (sb_get_mac(0x0002, data, sizeof(data)))
- return GAUGE_TYPE_UNKNOWN;
-
- /* BQ40Z50 returns something while Renesus gauge returns all zeros. */
- if (data[2] == 0 && data[3] == 0)
- return GAUGE_TYPE_RENESAS_RAJ240;
- else
- return GAUGE_TYPE_TI_BQ40Z50;
-}
-
-static enum battery_type get_akali_battery_type(void)
-{
- return CBI_SKU_CUSTOM_FIELD(sku);
-}
-
-void board_battery_init(void)
-{
- /* Only static config because gauge may not be initialized yet */
- switch (oem) {
- case PROJECT_AKALI:
- if (get_akali_battery_type() == BATTERY_TYPE_AP15)
- info = &info_3;
- else if (get_akali_battery_type() == BATTERY_TYPE_AP18)
- info = &info_4;
- sb_ship_mode_reg = 0x3A;
- sb_shutdown_data = 0xC574;
- break;
- case PROJECT_SONA:
- info = &info_1;
- break;
- case PROJECT_PANTHEON:
- info = &info_2;
- break;
- default:
- break;
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_battery_init, HOOK_PRIO_DEFAULT);
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(sb_ship_mode_reg, sb_shutdown_data);
-
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(sb_ship_mode_reg, sb_shutdown_data);
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- const struct battery_info *batt_info;
- int bat_temp_c;
-
- batt_info = battery_get_info();
-
- if ((curr->batt.flags & BATT_FLAG_BAD_ANY) == BATT_FLAG_BAD_ANY) {
- curr->requested_current = batt_info->precharge_current;
- curr->requested_voltage = batt_info->voltage_max;
- return 1000;
- }
-
- /* battery temp in 0.1 deg C */
- bat_temp_c = curr->batt.temperature - 2731;
-
- /* Don't charge if outside of allowable temperature range */
- if (bat_temp_c >= batt_info->charging_max_c * 10 ||
- bat_temp_c < batt_info->charging_min_c * 10) {
- curr->requested_current = 0;
- curr->requested_voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- curr->state = ST_IDLE;
- }
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_BATTERY_PRESENT_L) ? BP_NO : BP_YES;
-}
-
-static int battery_init(void)
-{
- static int batt_status;
-
- if (batt_status & STATUS_INITIALIZED)
- return 1;
-
- return battery_status(&batt_status) ? 0 :
- !!(batt_status & STATUS_INITIALIZED);
-}
-
-enum battery_disconnect_grace_period {
- BATTERY_DISCONNECT_GRACE_PERIOD_OFF,
- BATTERY_DISCONNECT_GRACE_PERIOD_ON,
- BATTERY_DISCONNECT_GRACE_PERIOD_OVER,
-};
-static enum battery_disconnect_grace_period disconnect_grace_period;
-
-static void battery_disconnect_timer(void)
-{
- disconnect_grace_period = BATTERY_DISCONNECT_GRACE_PERIOD_OVER;
-}
-DECLARE_DEFERRED(battery_disconnect_timer);
-
-/*
- * Check for case where both XCHG and XDSG bits are set indicating that even
- * though the FG can be read from the battery, the battery is not able to be
- * charged or discharged. This situation will happen if a battery disconnect was
- * initiated via H1 setting the DISCONN signal to the battery. This will put the
- * battery pack into a sleep state and when power is reconnected, the FG can be
- * read, but the battery is still not able to provide power to the system. The
- * calling function returns batt_pres = BP_NO, which instructs the charging
- * state machine to prevent powering up the AP on battery alone which could lead
- * to a brownout event when the battery isn't able yet to provide power to the
- * system. .
- */
-static int battery_check_disconnect_ti_bq40z50(void)
-{
- int rv;
- uint8_t data[6];
-
- /* Check if battery charging + discharging is disabled. */
- rv = sb_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
-
- if ((data[3] & (BATTERY_DISCHARGING_DISABLED |
- BATTERY_CHARGING_DISABLED)) ==
- (BATTERY_DISCHARGING_DISABLED | BATTERY_CHARGING_DISABLED)) {
- if (oem != PROJECT_SONA)
- return BATTERY_DISCONNECTED;
- /*
- * For Sona, we need a workaround to wake up a battery from
- * cutoff. We return DISCONNECT_ERROR for the 5 seconds after
- * the first call BP_NOT_SURE is reported to chgstv2. It will
- * supply precharge current and wakes up the battery from
- * cutoff. If the battery is good, we won't come back here.
- * If not, after 5 seconds, we will return DISCONNECTED to
- * stop charging and avoid damaging the battery.
- */
- if (disconnect_grace_period ==
- BATTERY_DISCONNECT_GRACE_PERIOD_OVER)
- return BATTERY_DISCONNECTED;
- if (disconnect_grace_period ==
- BATTERY_DISCONNECT_GRACE_PERIOD_OFF)
- hook_call_deferred(&battery_disconnect_timer_data,
- 5 * SECOND);
- ccprintf("Battery disconnect grace period\n");
- disconnect_grace_period = BATTERY_DISCONNECT_GRACE_PERIOD_ON;
- return BATTERY_DISCONNECT_ERROR;
- }
-
- return BATTERY_NOT_DISCONNECTED;
-}
-
-static int battery_check_disconnect_renesas_raj240(void)
-{
- int data;
- int rv;
-
- rv = sb_read(0x41, &data);
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
-
- if (data != 0x1E /* 1E: Power down */)
- return BATTERY_NOT_DISCONNECTED;
-
- return BATTERY_DISCONNECTED;
-}
-
-static int battery_check_disconnect_1(void)
-{
- int batt_discharge_fet;
-
- if (sb_read(SB_MANUFACTURER_ACCESS, &batt_discharge_fet))
- return BATTERY_DISCONNECT_ERROR;
-
- if (get_akali_battery_type() == BATTERY_TYPE_AP15) {
- /* Bit 15: Discharge FET status (1: On, 0: Off) */
- if (batt_discharge_fet & 0x4000)
- return BATTERY_NOT_DISCONNECTED;
- } else if (get_akali_battery_type() == BATTERY_TYPE_AP18) {
- /* Bit 13: Discharge FET status (1: Off, 0: On) */
- if (!(batt_discharge_fet & 0x2000))
- return BATTERY_NOT_DISCONNECTED;
- }
-
- return BATTERY_DISCONNECTED;
-}
-
-static int battery_check_disconnect(void)
-{
- if (!battery_init())
- return BATTERY_DISCONNECT_ERROR;
-
- if (fuel_gauge == GAUGE_TYPE_UNKNOWN) {
- fuel_gauge = get_gauge_ic();
- CPRINTS("fuel_gauge=%d", fuel_gauge);
- }
-
- switch (fuel_gauge) {
- case GAUGE_TYPE_AKALI:
- return battery_check_disconnect_1();
- case GAUGE_TYPE_TI_BQ40Z50:
- return battery_check_disconnect_ti_bq40z50();
- case GAUGE_TYPE_RENESAS_RAJ240:
- return battery_check_disconnect_renesas_raj240();
- default:
- return BATTERY_DISCONNECT_ERROR;
- }
-}
-
-static enum battery_present batt_pres_prev; /* Default BP_NO (=0) */
-
-static enum battery_present battery_check_present_status(void)
-{
- enum battery_present batt_pres;
- int batt_disconnect_status;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * If the battery is not physically connected, then no need to perform
- * any more checks.
- */
- if (batt_pres != BP_YES)
- return batt_pres;
-
- /*
- * If the battery is present now and was present last time we checked,
- * return early.
- */
- if (batt_pres == batt_pres_prev)
- return batt_pres;
-
- /*
- * Check battery disconnect status. If we are unable to read battery
- * disconnect status, then return BP_NOT_SURE. Battery could be in ship
- * mode and might require pre-charge current to wake it up. BP_NO is not
- * returned here because charger state machine will not provide
- * pre-charge current assuming that battery is not present.
- */
- batt_disconnect_status = battery_check_disconnect();
- if (batt_disconnect_status == BATTERY_DISCONNECT_ERROR)
- return BP_NOT_SURE;
-
- /*
- * Ensure that battery is:
- * 1. Not in cutoff
- * 2. Not disconnected
- * 3. Initialized
- */
- if (battery_is_cut_off() != BATTERY_CUTOFF_STATE_NORMAL ||
- batt_disconnect_status != BATTERY_NOT_DISCONNECTED)
- return BP_NO;
-
- return BP_YES;
-}
-
-enum battery_present battery_is_present(void)
-{
- batt_pres_prev = battery_check_present_status();
- return batt_pres_prev;
-}
diff --git a/board/nami/board.c b/board/nami/board.c
deleted file mode 100644
index c45d11bd25..0000000000
--- a/board/nami/board.c
+++ /dev/null
@@ -1,1133 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Poppy board-specific configuration */
-
-#include "adc.h"
-#include "anx7447.h"
-#include "battery.h"
-#include "board_config.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/pmic_tps650x30.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/baro_bmp280.h"
-#include "driver/charger/isl923x.h"
-#include "driver/led/lm3509.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "driver/temp_sensor/f75303.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "isl923x.h"
-#include "keyboard_8042_sharedlib.h"
-#include "keyboard_backlight.h"
-#include "keyboard_config.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_lid.h"
-#include "motion_sense.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-#include "espi.h"
-#include "fan.h"
-#include "fan_chip.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_PS8751 0
-#define USB_PD_PORT_ANX7447 1
-
-uint16_t board_version;
-uint8_t oem = PROJECT_NAMI;
-uint32_t sku;
-uint8_t model;
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},
- {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-/* Set PD discharge whenever VBUS detection is high (i.e. below threshold). */
-static void vbus_discharge_handler(void)
-{
- pd_set_vbus_discharge(0, gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L));
- pd_set_vbus_discharge(1, gpio_get_level(GPIO_USB_C1_VBUS_WAKE_L));
-}
-DECLARE_DEFERRED(vbus_discharge_handler);
-
-void vbus0_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(0, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C0);
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void vbus1_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(1, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C1);
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Vbus sensing (10x voltage divider). PPVAR_BOOSTIN_SENSE */
- [ADC_VBUS] = {"VBUS", NPCX_ADC_CH2, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {"AMON_BMON", NPCX_ADC_CH1, ADC_MAX_VOLT*1000/18,
- ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-/* Default, Nami, Vayne */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-/* Sona */
-const struct fan_rpm fan_rpm_1 = {
- .rpm_min = 2700,
- .rpm_start = 2700,
- .rpm_max = 6000,
-};
-
-/* Pantheon */
-const struct fan_rpm fan_rpm_2 = {
- .rpm_min = 2100,
- .rpm_start = 2300,
- .rpm_max = 5100,
-};
-
-/* Akali */
-const struct fan_rpm fan_rpm_3 = {
- .rpm_min = 2700,
- .rpm_start = 2700,
- .rpm_max = 5500,
-};
-
-const struct fan_rpm fan_rpm_4 = {
- .rpm_min = 2400,
- .rpm_start = 2400,
- .rpm_max = 4500,
-};
-
-struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc0", NPCX_I2C_PORT0_0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
- {"tcpc1", NPCX_I2C_PORT0_1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
- {"battery", NPCX_I2C_PORT1, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"charger", NPCX_I2C_PORT2, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"pmic", NPCX_I2C_PORT2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"accelgyro", NPCX_I2C_PORT3, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_PS8751] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
- [USB_PD_PORT_ANX7447] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_1,
- .addr_flags = AN7447_TCPC3_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
-};
-
-static int ps8751_tune_mux(const struct usb_mux *me)
-{
- /* 0x98 sets lower EQ of DP port (3.6db) */
- mux_write(me, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
- return EC_SUCCESS;
-}
-
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_PS8751] = {
- .usb_port = USB_PD_PORT_PS8751,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_ANX7447] = {
- .usb_port = USB_PD_PORT_ANX7447,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- }
-};
-
-struct pi3usb9281_config pi3usb9281_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_CHARGER_0,
- .mux_lock = NULL,
- },
- {
- .i2c_port = I2C_PORT_USB_CHARGER_1,
- .mux_lock = NULL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
- CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT);
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-void board_reset_pd_mcu(void)
-{
- if (oem == PROJECT_AKALI && board_version < 0x0200) {
- if (anx7447_flash_erase(USB_PD_PORT_ANX7447))
- CPRINTS("Failed to erase OCM flash");
-
- }
-
- /* Assert reset */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST, 1);
- msleep(1);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST, 0);
- /* After TEST_R release, anx7447/3447 needs 2ms to finish eFuse
- * loading. */
- msleep(2);
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- if (oem == PROJECT_SONA && model != MODEL_SYNDRA)
- usb_muxes[USB_PD_PORT_PS8751].board_init = ps8751_tune_mux;
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 2);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (!gpio_get_level(GPIO_USB_C1_PD_RST))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-/*
- * F75303_Remote1 is near CPU, and F75303_Remote2 is near 5V power IC.
- */
-const struct temp_sensor_t temp_sensors[TEMP_SENSOR_COUNT] = {
- {"F75303_Local", TEMP_SENSOR_TYPE_BOARD, f75303_get_val,
- F75303_IDX_LOCAL},
- {"F75303_Remote1", TEMP_SENSOR_TYPE_CPU, f75303_get_val,
- F75303_IDX_REMOTE1},
- {"F75303_Remote2", TEMP_SENSOR_TYPE_BOARD, f75303_get_val,
- F75303_IDX_REMOTE2},
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-/* Nami/Vayne Remote 1, 2 */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(39),
- .temp_fan_max = C_TO_K(50),
-};
-
-/* Sona Remote 1 */
-const static struct ec_thermal_config thermal_b1 = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(82),
- [EC_TEMP_THRESH_HALT] = C_TO_K(89),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(72),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(38),
- .temp_fan_max = C_TO_K(58),
-};
-
-/* Sona Remote 2 */
-const static struct ec_thermal_config thermal_b2 = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(84),
- [EC_TEMP_THRESH_HALT] = C_TO_K(91),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(74),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(60),
-};
-
-/* Pantheon Remote 1 */
-const static struct ec_thermal_config thermal_c1 = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(66),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(56),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(38),
- .temp_fan_max = C_TO_K(61),
-};
-
-/* Pantheon Remote 2 */
-const static struct ec_thermal_config thermal_c2 = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(74),
- [EC_TEMP_THRESH_HALT] = C_TO_K(82),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(64),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(38),
- .temp_fan_max = C_TO_K(61),
-};
-
-/* Akali Local */
-const static struct ec_thermal_config thermal_d0 = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = C_TO_K(79),
- [EC_TEMP_THRESH_HIGH] = 0,
- [EC_TEMP_THRESH_HALT] = C_TO_K(81),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = C_TO_K(80),
- [EC_TEMP_THRESH_HIGH] = 0,
- [EC_TEMP_THRESH_HALT] = C_TO_K(82),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(70),
-};
-
-/* Akali Remote 1 */
-const static struct ec_thermal_config thermal_d1 = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = C_TO_K(59),
- [EC_TEMP_THRESH_HIGH] = 0,
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = C_TO_K(60),
- [EC_TEMP_THRESH_HIGH] = 0,
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
-};
-
-/* Akali Remote 2 */
-const static struct ec_thermal_config thermal_d2 = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = C_TO_K(59),
- [EC_TEMP_THRESH_HIGH] = 0,
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = C_TO_K(60),
- [EC_TEMP_THRESH_HIGH] = 0,
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
-};
-
-#define I2C_PMIC_READ(reg, data) \
- i2c_read8(I2C_PORT_PMIC, TPS650X30_I2C_ADDR1_FLAGS,\
- (reg), (data))
-#define I2C_PMIC_WRITE(reg, data) \
- i2c_write8(I2C_PORT_PMIC, TPS650X30_I2C_ADDR1_FLAGS,\
- (reg), (data))
-
-static void board_pmic_init(void)
-{
- int err;
- int error_count = 0;
- static uint8_t pmic_initialized = 0;
-
- if (pmic_initialized)
- return;
-
- /* Read vendor ID */
- while (1) {
- int data;
- err = I2C_PMIC_READ(TPS650X30_REG_VENDORID, &data);
- if (!err && data == TPS650X30_VENDOR_ID)
- break;
- else if (error_count > 5)
- goto pmic_error;
- error_count++;
- }
-
- /*
- * VCCIOCNT register setting
- * [6] : CSDECAYEN
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_VCCIOCNT, 0x4A);
- if (err)
- goto pmic_error;
-
- /*
- * VRMODECTRL:
- * [4] : VCCIOLPM clear
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_VRMODECTRL, 0x2F);
- if (err)
- goto pmic_error;
-
- /*
- * PGMASK1 : Exclude VCCIO from Power Good Tree
- * [7] : MVCCIOPG clear
- * otherbits: default
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PGMASK1, 0x80);
- if (err)
- goto pmic_error;
-
- /*
- * PWFAULT_MASK1 Register settings
- * [7] : 1b V4 Power Fault Masked
- * [4] : 1b V7 Power Fault Masked
- * [2] : 1b V9 Power Fault Masked
- * [0] : 1b V13 Power Fault Masked
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PWFAULT_MASK1, 0x95);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 4 register configuration
- * [7:6] : 00b Reserved
- * [5:4] : 01b V3.3S discharge resistance (V6S), 100 Ohm
- * [3:2] : 01b V18S discharge resistance (V8S), 100 Ohm
- * [1:0] : 01b V100S discharge resistance (V11S), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT4, 0x15);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 3 register configuration
- * [7:6] : 01b V1.8U_2.5U discharge resistance (V9), 100 Ohm
- * [5:4] : 01b V1.2U discharge resistance (V10), 100 Ohm
- * [3:2] : 01b V100A discharge resistance (V11), 100 Ohm
- * [1:0] : 01b V085A discharge resistance (V12), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT3, 0x55);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 2 register configuration
- * [7:6] : 01b V5ADS3 discharge resistance (V5), 100 Ohm
- * [5:4] : 01b V33A_DSW discharge resistance (V6), 100 Ohm
- * [3:2] : 01b V33PCH discharge resistance (V7), 100 Ohm
- * [1:0] : 01b V18A discharge resistance (V8), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT2, 0x55);
- if (err)
- goto pmic_error;
-
- /*
- * Discharge control 1 register configuration
- * [7:2] : 00b Reserved
- * [1:0] : 01b VCCIO discharge resistance (V4), 100 Ohm
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_DISCHCNT1, 0x01);
- if (err)
- goto pmic_error;
-
- /*
- * Increase Voltage
- * [7:0] : 0x2a default
- * [5:4] : 10b default
- * [5:4] : 01b 5.1V (0x1a)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_V5ADS3CNT, 0x1a);
- if (err)
- goto pmic_error;
-
- /*
- * PBCONFIG Register configuration
- * [7] : 1b Power button debounce, 0ms (no debounce)
- * [6] : 0b Power button reset timer logic, no action (default)
- * [5:0] : 011111b Force an Emergency reset time, 31s (default)
- */
- err = I2C_PMIC_WRITE(TPS650X30_REG_PBCONFIG, 0x9F);
- if (err)
- goto pmic_error;
-
- CPRINTS("PMIC init done");
- pmic_initialized = 1;
- return;
-
-pmic_error:
- CPRINTS("PMIC init failed: %d", err);
-}
-
-void chipset_pre_init_callback(void)
-{
- board_pmic_init();
-}
-
-/**
- * Buffer the AC present GPIO to the PCH.
- */
-static void board_extpower(void)
-{
- gpio_set_level(GPIO_PCH_ACPRESENT, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/* Set active charge port -- only one port can be active at a time. */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are sourcing VBUS on the port */
- /* dnojiri: revisit */
- int is_source = gpio_get_level(charge_port == 0 ?
- GPIO_USB_C0_5V_EN : GPIO_USB_C1_5V_EN);
-
- if (is_real_port && is_source) {
- CPRINTF("No charging on source port p%d is ", charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTF("New chg p%d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable both ports */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
- gpio_set_level(GPIO_USB_C1_CHARGE_L, 1);
- } else {
- /* Make sure non-charging port is disabled */
- /* dnojiri: revisit. there is always this assumption that
- * battery is present. If not, this may cause brownout. */
- gpio_set_level(charge_port ? GPIO_USB_C0_CHARGE_L :
- GPIO_USB_C1_CHARGE_L, 1);
- /* Enable charging port */
- gpio_set_level(charge_port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Limit the input current to 96% negotiated limit,
- * to account for the charger chip margin.
- */
- int factor = 96;
-
- if (oem == PROJECT_AKALI &&
- (model == MODEL_EKKO || model == MODEL_BARD))
- factor = 95;
- charge_ma = charge_ma * factor / 100;
- charge_set_input_current_limit(
- MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-void board_hibernate(void)
-{
- CPRINTS("Triggering PMIC shutdown.");
- uart_flush_output();
- gpio_set_level(GPIO_EC_HIBERNATE, 1);
- while (1)
- ;
-}
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1] = { 3, PWM_CONFIG_DSLEEP, 1200 },
- [PWM_CH_LED2] = { 5, PWM_CONFIG_DSLEEP, 1200 },
- [PWM_CH_FAN] = {4, PWM_CONFIG_OPEN_DRAIN, 25000},
- /*
- * 1.2kHz is a multiple of both 50 and 60. So a video recorder
- * (generally designed to ignore either 50 or 60 Hz flicker) will not
- * alias with refresh rate.
- */
- [PWM_CH_KBLIGHT] = { 2, 0, 1200 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Lid Sensor mutex */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Lid accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-static struct kionix_accel_data g_kx022_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t rotation_x180_z90 = {
- { 0, FLOAT_TO_FP(-1), 0 },
- { FLOAT_TO_FP(-1), 0, 0 },
- { 0, 0, FLOAT_TO_FP(-1) }
-};
-
-const struct motion_sensor_t lid_accel_1 = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &rotation_x180_z90,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Enable or disable input devices, based on chipset state and tablet mode */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /* If the lid is in 360 position, ignore the lid angle,
- * which might be faulty. Disable keyboard.
- */
- if (tablet_get_mode() || chipset_in_state(CHIPSET_STATE_ANY_OFF))
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT_L, 0);
- gpio_set_level(GPIO_USB3_POWER_DOWN_L, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT_L, 1);
- gpio_set_level(GPIO_USB3_POWER_DOWN_L, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-static void setup_motion_sensors(void)
-{
- switch (oem) {
- case PROJECT_AKALI:
- if (sku & SKU_ID_MASK_CONVERTIBLE) {
- /* Rotate axis for Akali 360 */
- motion_sensors[LID_ACCEL] = lid_accel_1;
- motion_sensors[BASE_ACCEL].rot_standard_ref = NULL;
- motion_sensors[BASE_GYRO].rot_standard_ref = NULL;
- } else {
- /* Clamshell Akali has no accel/gyro */
- motion_sensor_count = ARRAY_SIZE(motion_sensors) - 2;
- }
- break;
- default:
- break;
- }
-}
-
-static void setup_fans(void)
-{
- switch (oem) {
- case PROJECT_SONA:
- if (model == MODEL_SYNDRA)
- fans[FAN_CH_0].rpm = &fan_rpm_4;
- else
- fans[FAN_CH_0].rpm = &fan_rpm_1;
- thermal_params[TEMP_SENSOR_REMOTE1] = thermal_b1;
- thermal_params[TEMP_SENSOR_REMOTE2] = thermal_b2;
- break;
- case PROJECT_PANTHEON:
- fans[FAN_CH_0].rpm = &fan_rpm_2;
- thermal_params[TEMP_SENSOR_REMOTE1] = thermal_c1;
- thermal_params[TEMP_SENSOR_REMOTE2] = thermal_c2;
- break;
- case PROJECT_AKALI:
- fans[FAN_CH_0].rpm = &fan_rpm_3;
- thermal_params[TEMP_SENSOR_LOCAL] = thermal_d0;
- thermal_params[TEMP_SENSOR_REMOTE1] = thermal_d1;
- thermal_params[TEMP_SENSOR_REMOTE2] = thermal_d2;
- break;
- case PROJECT_NAMI:
- case PROJECT_VAYNE:
- default:
- thermal_params[TEMP_SENSOR_REMOTE1] = thermal_a;
- thermal_params[TEMP_SENSOR_REMOTE2] = thermal_a;
- }
-}
-
-/*
- * Read CBI from i2c eeprom and initialize variables for board variants
- */
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- CPRINTS("Board Version: 0x%04x", board_version);
-
- if (cbi_get_oem_id(&val) == EC_SUCCESS && val < PROJECT_COUNT)
- oem = val;
- CPRINTS("OEM: %d", oem);
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku = val;
- CPRINTS("SKU: 0x%08x", sku);
-
- if (cbi_get_model_id(&val) == EC_SUCCESS)
- model = val;
- CPRINTS("MODEL: 0x%08x", model);
-
- if (board_version < 0x300)
- /* Previous boards have GPIO42 connected to TP_INT_CONN */
- gpio_set_flags(GPIO_USB2_ID, GPIO_INPUT);
-
- setup_motion_sensors();
-
- setup_fans();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff, 0xff, /* full set */
- },
-};
-
-static void anx7447_set_aux_switch(void)
-{
- const int port = USB_PD_PORT_ANX7447;
-
- /* Debounce */
- if (gpio_get_level(GPIO_CCD_MODE_ODL))
- return;
-
- CPRINTS("C%d: AUX_SW_SEL=0x%x", port, 0xc);
- if (tcpc_write(port, ANX7447_REG_TCPC_AUX_SWITCH, 0xc))
- CPRINTS("C%d: Setting AUX_SW_SEL failed", port);
-}
-DECLARE_DEFERRED(anx7447_set_aux_switch);
-
-void ccd_mode_isr(enum gpio_signal signal)
-{
- /* Wait 2 seconds until all mux setting is done by PD task */
- hook_call_deferred(&anx7447_set_aux_switch_data, 2 * SECOND);
-}
-
-static void board_init(void)
-{
- int reg;
-
- /*
- * This enables pull-down on F_DIO1 (SPI MISO), and F_DIO0 (SPI MOSI),
- * whenever the EC is not doing SPI flash transactions. This avoids
- * floating SPI buffer input (MISO), which causes power leakage (see
- * b/64797021).
- */
- NPCX_PUPD_EN1 |= BIT(NPCX_DEVPU1_F_SPI_PUD_EN);
-
- /* Provide AC status to the PCH */
- gpio_set_level(GPIO_PCH_ACPRESENT, extpower_is_present());
-
- /* Reduce Buck-boost mode switching frequency to reduce heat */
- if (i2c_read16(I2C_PORT_CHARGER, I2C_ADDR_CHARGER_FLAGS,
- ISL9238_REG_CONTROL3, &reg) == EC_SUCCESS) {
- reg |= ISL9238_C3_BB_SWITCHING_PERIOD;
- if (i2c_write16(I2C_PORT_CHARGER, I2C_ADDR_CHARGER_FLAGS,
- ISL9238_REG_CONTROL3, reg))
- CPRINTF("Failed to set isl9238\n");
- }
-
- /* Enable VBUS interrupt */
- gpio_enable_interrupt(GPIO_USB_C0_VBUS_WAKE_L);
- gpio_enable_interrupt(GPIO_USB_C1_VBUS_WAKE_L);
-
- /* Enable pericom BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Trigger once to set mux in case CCD cable is already connected. */
- ccd_mode_isr(GPIO_CCD_MODE_ODL);
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Enable Accel/Gyro interrupt for convertibles. */
- if (sku & SKU_ID_MASK_CONVERTIBLE)
- gpio_enable_interrupt(GPIO_ACCELGYRO3_INT_L);
-
-#ifndef TEST_BUILD
- /* Disable scanning KSO13 & 14 if keypad isn't present. */
- if (!(sku & SKU_ID_MASK_KEYPAD)) {
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
- keyscan_config.actual_key_mask[11] = 0xfa;
- keyscan_config.actual_key_mask[12] = 0xca;
- }
- if (oem == PROJECT_AKALI && model == MODEL_BARD) {
- /* Search key is moved to col=0,row=3 */
- keyscan_config.actual_key_mask[0] = 0x1c;
- keyscan_config.actual_key_mask[1] = 0xfe;
- /* No need to swap scancode_set2[0][3] and [1][0] because both
- * are mapped to search key. */
- }
- if (sku & SKU_ID_MASK_UK2) {
- /*
- * Observed on Shyvana with UK keyboard,
- * \|: 0x0061->0x61->0x56
- * r-ctrl: 0xe014->0x14->0x1d
- */
- uint16_t tmp = get_scancode_set2(4, 0);
- set_scancode_set2(4, 0, get_scancode_set2(2, 7));
- set_scancode_set2(2, 7, tmp);
- }
-#endif
-
- isl923x_set_ac_prochot(CHARGER_SOLO, 3328 /* mA */);
-
- switch (oem) {
- case PROJECT_VAYNE:
- isl923x_set_dc_prochot(CHARGER_SOLO, 11008 /* mA */);
- break;
- case PROJECT_PANTHEON:
- isl923x_set_dc_prochot(CHARGER_SOLO, 9984 /* mA */);
- break;
- case PROJECT_SONA:
- isl923x_set_dc_prochot(CHARGER_SOLO, 5888 /* mA */);
- break;
- case PROJECT_NAMI:
- case PROJECT_AKALI:
- /* default 4096mA 0x1000 */
- default:
- break;
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int board_is_lid_angle_tablet_mode(void)
-{
- /* Boards with no GMR sensor use lid angles to detect tablet mode. */
- return oem != PROJECT_AKALI;
-}
-
-void board_kblight_init(void)
-{
- if (!(sku & SKU_ID_MASK_KBLIGHT))
- return;
-
- switch (oem) {
- default:
- case PROJECT_NAMI:
- case PROJECT_AKALI:
- case PROJECT_VAYNE:
- case PROJECT_PANTHEON:
- kblight_register(&kblight_lm3509);
- break;
- case PROJECT_SONA:
- kblight_register(&kblight_pwm);
- break;
- }
-}
-
-enum critical_shutdown board_critical_shutdown_check(
- struct charge_state_data *curr)
-{
- if (oem == PROJECT_VAYNE)
- return CRITICAL_SHUTDOWN_CUTOFF;
- else
- return CRITICAL_SHUTDOWN_HIBERNATE;
-
-}
-
-uint8_t board_set_battery_level_shutdown(void)
-{
- if (oem == PROJECT_VAYNE)
- /* We match the shutdown threshold with Powerd's.
- * 4 + 1 = 5% because Powerd uses '<=' while EC uses '<'. */
- return CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE + 1;
- else
- return BATTERY_LEVEL_SHUTDOWN;
-}
diff --git a/board/nami/board.h b/board/nami/board.h
deleted file mode 100644
index 6d340af1df..0000000000
--- a/board/nami/board.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Eve board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * By default, enable all console messages except ACPI and host event because
- * the sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_BACKLIGHT_LID_ACTIVE_LOW
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_BOARD_FORCE_RESET_PIN
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_CASE_CLOSED_DEBUG_EXTERNAL
-#define CONFIG_DPTF
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_KEYPAD
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_PWM
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25X40
-#define CONFIG_VBOOT_HASH
-#define CONFIG_SHA256_UNROLLED
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_DX_WLAN
-#undef CONFIG_SUPPORT_CHIP_HIBERNATION
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_FAN_DYNAMIC
-#define CONFIG_THROTTLE_AP
-#define CONFIG_PWM_KBLIGHT
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BUTTON
-
-/* Port80 */
-#undef CONFIG_PORT80_HISTORY_LEN
-#define CONFIG_PORT80_HISTORY_LEN 256
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_HAS_PRE_INIT_CALLBACK
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-#define CONFIG_HOSTCMD_FLASH_SPI_INFO
-
-/* Battery */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-#define CONFIG_PWR_STATE_DISCHARGE_FULL
-#define CONFIG_BATTERY_REQUESTS_NIL_WHEN_DEAD
-#undef CONFIG_BATT_HOST_FULL_FACTOR
-#define CONFIG_BATT_HOST_FULL_FACTOR 100
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_HW /* This, or just RAMP? */
-#define CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_ISL9238
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 27000
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT 15000
-/* AP's thresholds. */
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 3
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 27000
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_PSYS
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 6
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* Sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_F75303
-
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_KX022
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-/* KB backlight driver */
-#define CONFIG_LED_DRIVER_LM3509
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* USB */
-#define CONFIG_USB_CHARGER
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_MAX_TOTAL_SOURCE_CURRENT 4500
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_OCM_ERASE_COMMAND
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-
-/* BC 1.2 charger */
-#define CONFIG_BC12_DETECT_PI3USB9281
-#define CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT 2
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 1 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT0_0
-#define I2C_PORT_TCPC1 NPCX_I2C_PORT0_1
-#define I2C_PORT_USB_CHARGER_0 NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_CHARGER_1 NPCX_I2C_PORT0_1
-#define I2C_PORT_EEPROM NPCX_I2C_PORT0_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT1
-#define I2C_PORT_CHARGER NPCX_I2C_PORT1
-#define I2C_PORT_PMIC NPCX_I2C_PORT2
-#define I2C_PORT_KBLIGHT NPCX_I2C_PORT2
-#define I2C_PORT_GYRO NPCX_I2C_PORT3
-#define I2C_PORT_ACCEL NPCX_I2C_PORT3
-#define I2C_PORT_THERMAL NPCX_I2C_PORT3
-#define I2C_PORT_ALS NPCX_I2C_PORT3
-
-/* I2C addresses */
-#define I2C_ADDR_MP2949_FLAGS 0x20
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#ifndef __ASSEMBLER__
-
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum temp_sensor_id {
- TEMP_SENSOR_LOCAL = 0,
- TEMP_SENSOR_REMOTE1,
- TEMP_SENSOR_REMOTE2,
- TEMP_SENSOR_COUNT,
-};
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- LID_ALS,
- SENSOR_COUNT,
-};
-
-enum adc_channel {
- ADC_BASE_DET,
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1,
- PWM_CH_LED2,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- /* Number of PWM channels */
- PWM_CH_COUNT,
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum oem_id {
- PROJECT_AKALI = 1,
- PROJECT_VAYNE = 3,
- PROJECT_SONA,
- PROJECT_PANTHEON,
- PROJECT_NAMI,
- PROJECT_COUNT,
-};
-
-enum model_id {
- /* Sona variants */
- MODEL_SYNDRA = 1,
- /* Akali variants */
- MODEL_EKKO = 1,
- MODEL_BARD = 2,
-};
-
-#define SKU_ID_MASK_KBLIGHT BIT(0)
-#define SKU_ID_MASK_CONVERTIBLE BIT(9)
-#define SKU_ID_MASK_KEYPAD BIT(15)
-#define SKU_ID_MASK_UK2 BIT(18)
-
-/* TODO(crosbug.com/p/61098): Verify the numbers below. */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 70000
-#define PD_MAX_CURRENT_MA 3500
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Board specific handlers */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL) | BIT(LID_ALS))
-
-/* These should be referenced only after HOOK_INIT:HOOK_PRIO_INIT_I2C+1. */
-extern uint16_t board_version;
-extern uint8_t oem;
-extern uint32_t sku;
-extern uint8_t model;
-
-/* SKU_ID[24:31] are dedicated to OEM customization */
-#define CBI_SKU_CUSTOM_FIELD(val) ((val) >> 24)
-
-void ccd_mode_isr(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nami/build.mk b/board/nami/build.mk
deleted file mode 100644
index f4bf21113d..0000000000
--- a/board/nami/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_LED_COMMON)+=led.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/nami/ec.tasklist b/board/nami/ec.tasklist
deleted file mode 100644
index 93fcda9f91..0000000000
--- a/board/nami/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/nami/gpio.inc b/board/nami/gpio.inc
deleted file mode 100644
index f4119c96a6..0000000000
--- a/board/nami/gpio.inc
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/*
- * ADCs are not configured in this file but listed below for reference.
- *
- * PIN(4, 4) ADC1: IADP_AMON_BMON
- * PIN(4, 3) ADC2: PPVAR_BOOSTIN_SENSE
- */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(7, 1), GPIO_INT_FALLING, tcpc_alert_event)
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PCH_SLP_SUS_L, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PMIC_DPWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 3), GPIO_INT_BOTH | GPIO_PULL_UP,power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(8, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(7, 3), GPIO_INT_BOTH | GPIO_PULL_UP,button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(8, 6), GPIO_INT_BOTH | GPIO_PULL_UP,button_interrupt)
-GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(USB_C0_VBUS_WAKE_L, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP,vbus0_evt)
-GPIO_INT(USB_C1_VBUS_WAKE_L, PIN(C, 5), GPIO_INT_BOTH | GPIO_PULL_UP,vbus1_evt)
-GPIO_INT(USB_C0_BC12_INT_L, PIN(D, 2), GPIO_INT_FALLING, usb0_evt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(D, 3), GPIO_INT_FALLING, usb1_evt)
-GPIO_INT(ACCELGYRO3_INT_L, PIN(3, 6), GPIO_INT_FALLING | GPIO_PULL_UP, bmi160_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(7, 2), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(CCD_MODE_ODL, PIN(6, 3), GPIO_INT_FALLING, ccd_mode_isr)
-
-GPIO(ENABLE_BACKLIGHT_L, PIN(6, 7), GPIO_OUT_LOW) /* LCD backlight */
-GPIO(PP3300_DX_WLAN, PIN(B, 1), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(CPU_PROCHOT, PIN(8, 1), GPIO_OUT_HIGH) /* PROCHOT# to SOC */
-GPIO(PCH_ACPRESENT, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(7, 4), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(EC_PLATFORM_RST, PIN(4, 5), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(PMIC_SLP_SUS_L, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(BATTERY_PRESENT_L, PIN(3, 4), GPIO_INPUT) /* Battery Present */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(PMIC_INT_L, PIN(6, 0), GPIO_INPUT) /* PMIC interrupt */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(7, 5), GPIO_INPUT)
-#endif
-GPIO(CR50_RESET_ODL, PIN(0, 2), GPIO_ODR_HIGH) /* Cr50 Reset. dnojiri: unused. */
-GPIO(GPP_B14, PIN(C, 2), GPIO_INPUT) /* Used for Intel's experimental uCode/P-unit update */
-/* Will be used to shut down EC on board_hibernate. */
-GPIO(EC_HIBERNATE, PIN(0, 1), GPIO_OUT_LOW)
-/* GPIO(PCH_RTCRST, PIN(E, 7), GPIO_INPUT) dnojiri: Revisit */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C0_1_USBC_3V3_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C0_1_USBC_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C1_3V3_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C1_3V3_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SDA */
-
-/* rev0: 5V enables: INPUT=1.5A, OUT_LOW=OFF, OUT_HIGH=3A */
-GPIO(USB_C0_5V_EN, PIN(4, 0), GPIO_OUT_LOW) /* C0 5V Enable */
-GPIO(USB_C0_3A_EN, PIN(3, 5), GPIO_OUT_LOW) /* C0 Enable 3A */
-GPIO(USB_C0_CHARGE_L, PIN(C, 0), GPIO_OUT_LOW) /* C0 Charge enable. Active low. */
-GPIO(USB_C1_5V_EN, PIN(3, 3), GPIO_OUT_LOW) /* C1 5V Enable */
-GPIO(USB_C1_3A_EN, PIN(6, 6), GPIO_OUT_LOW) /* C1 3A Enable */
-GPIO(USB_C1_CHARGE_L, PIN(C, 3), GPIO_OUT_LOW) /* C1 Charge enable. Active low. */
-GPIO(USB_C0_PD_RST_L, PIN(C, 6), GPIO_ODR_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST, PIN(0, 0), GPIO_OUT_LOW) /* C1 PD Reset */
-GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(A, 5), GPIO_INPUT) /* C1 DP Hotplug Detect */
-GPIO(USB_PP3300_USB_PD, PIN(8, 4), GPIO_INPUT) /* Reserved. Currently, has no effect. */
-GPIO(USB2_ID, PIN(4, 2), GPIO_OUT_HIGH) /* USB OTG ID */
-GPIO(USB3_POWER_DOWN_L, PIN(3, 2), GPIO_OUT_LOW) /* USB3 Redriver Power control. Only used by Sona. */
-
-/* Sensors */
-
-/* Trackpad */
-GPIO(TP_INT_EN, PIN(A, 1), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED1, PIN(A, 7), GPIO_OUT_LOW)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 UART from EC to Servo */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 EC_I2C1_3V3_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 EC_I2C1_3V3_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 EC_I2C2_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 EC_I2C0_0_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 EC_I2C0_1_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 EC_I2C3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0) /* GPIOB6 PWM1 Fan control */
-ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0) /* GPIO80 PWM3 LED White */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* GPIOB7 PWM5 LED Yellow */
-ALTERNATE(PIN_MASK(A, 0x40), 1, MODULE_PWM, 0) /* GPIOA6 TA2 */
-ALTERNATE(PIN_MASK(C, 0x10), 1, MODULE_PWM, 0) /* GPIOC4 PWM2 */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW)
diff --git a/board/nami/led.c b/board/nami/led.c
deleted file mode 100644
index 17af4d5f82..0000000000
--- a/board/nami/led.c
+++ /dev/null
@@ -1,613 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power and battery LED control for Nami and its variants
- *
- * This is an event-driven LED control library. It does not use tasks or
- * periodical hooks (HOOK_TICK, HOOK_SECOND), thus, it's more resource
- * efficient.
- *
- * The library defines LED states and assigns an LED behavior to each state.
- * The state space consists of tuple of (charge state, power state).
- * In each LED state, a color and a pulse interval can be defined.
- *
- * Charging states are queried each time there is a state transition, thus, not
- * stored. We hook power state transitions (e.g. s0->s3) and save the
- * destination states (e.g. s3) in power_state.
- *
- * When system is suspending and AC is unplugged, there will be race condition
- * between a power state hook and a charge state hook but whichever is called
- * first or last the result will be the same.
- *
- * Currently, it supports two LEDs, called 'battery LED' and 'power LED'.
- * It assumes the battery LED is connected to a PWM pin and the power LED is
- * connected to a regular GPIO pin.
- */
-
-#include "cros_board_info.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "power.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED, EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_AMBER,
- LED_WHITE,
- LED_WARM_WHITE,
- LED_FACTORY,
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-/* Charging states of LED's interests */
-enum led_charge_state {
- LED_STATE_DISCHARGE = 0,
- LED_STATE_CHARGE,
- LED_STATE_FULL,
- LED_CHARGE_STATE_COUNT,
-};
-
-/* Power states of LED's interests */
-enum led_power_state {
- LED_STATE_S0 = 0,
- LED_STATE_S3,
- LED_STATE_S5,
- LED_POWER_STATE_COUNT,
-};
-
-/* Defines a LED pattern for a single state */
-struct led_pattern {
- uint8_t color;
- /* Bit 0-5: Interval in 100 msec. 0=solid. Max is 3.2 sec.
- * Bit 6: 1=alternate (on-off-off-off), 0=regular (on-off-on-off)
- * Bit 7: 1=pulse, 0=blink */
- uint8_t pulse;
-};
-
-#define PULSE_NO 0
-#define PULSE(interval) (BIT(7) | (interval))
-#define BLINK(interval) (interval)
-#define ALTERNATE(interval) (BIT(6) | (interval))
-#define IS_PULSING(pulse) ((pulse) & 0x80)
-#define IS_ALTERNATE(pulse) ((pulse) & 0x40)
-#define PULSE_INTERVAL(pulse) (((pulse) & 0x3f) * 100 * MSEC)
-
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-typedef struct led_pattern led_patterns[LED_CHARGE_STATE_COUNT]
- [LED_POWER_STATE_COUNT];
-
-/*
- * Nami/Vayne - One dual color LED:
- * Charging Amber on (S0/S3/S5)
- * Charging (full) White on (S0/S3/S5)
- * Discharge in S0 White on
- * Discharge in S3/S0ix Pulsing (rising for 2 sec , falling for 2 sec)
- * Discharge in S5 Off
- * Battery Error Amber on 1sec off 1sec
- * Factory mode White on 2sec, Amber on 2sec
- */
-const static led_patterns battery_pattern_0 = {
- /* discharging: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE(10)}, {LED_OFF, PULSE_NO}},
- /* charging: s0, s3, s5 */
- {{LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}},
- /* full: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}},
-};
-
-/*
- * Sona - Battery LED (dual color)
- */
-const static led_patterns battery_pattern_1 = {
- /* discharging: s0, s3, s5 */
- {{LED_OFF, PULSE_NO}, {LED_OFF, PULSE_NO}, {LED_OFF, PULSE_NO}},
- /* charging: s0, s3, s5 */
- {{LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}},
- /* full: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}},
-};
-
-/*
- * Pantheon - AC In/Battery LED(dual color):
- * Connected to AC power / Charged (100%) White (solid on)
- * Connected to AC power / Charging(1% -99%) Amber (solid on)
- * Not connected to AC power Off
- */
-const static led_patterns battery_pattern_2 = {
- /* discharging: s0, s3, s5 */
- {{LED_OFF, PULSE_NO}, {LED_OFF, PULSE_NO}, {LED_OFF, PULSE_NO}},
- /* charging: s0, s3, s5 */
- {{LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}},
- /* full: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}},
-};
-
-/*
- * Sona - Power LED (single color)
- */
-const static led_patterns power_pattern_1 = {
- /* discharging: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, BLINK(10)}, {LED_OFF, PULSE_NO}},
- /* charging: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, BLINK(10)}, {LED_OFF, PULSE_NO}},
- /* full: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, BLINK(10)}, {LED_OFF, PULSE_NO}},
-};
-
-/*
- * Pantheon - Power LED
- * S0: White on
- * S3/S0ix: White 1 second on, 3 second off
- * S5: Off
- */
-const static led_patterns power_pattern_2 = {
- /* discharging: s0, s3, s5 */
- {{LED_WHITE, 0}, {LED_WHITE, ALTERNATE(BLINK(10))}, {LED_OFF, 0}},
- /* charging: s0, s3, s5 */
- {{LED_WHITE, 0}, {LED_WHITE, ALTERNATE(BLINK(10))}, {LED_OFF, 0}},
- /* full: s0, s3, s5 */
- {{LED_WHITE, 0}, {LED_WHITE, ALTERNATE(BLINK(10))}, {LED_OFF, 0}},
-};
-
-/*
- * Akali - battery LED
- * Charge: Amber on (s0/s3/s5)
- * Full: Blue on (s0/s3/s5)
- * Discharge in S0: Blue on
- * Discharge in S3: Amber on 1 sec off 3 sec
- * Discharge in S5: Off
- * Battery Error: Amber on 1sec off 1sec
- * Factory mode : Blue on 2sec, Amber on 2sec
- */
-const static led_patterns battery_pattern_3 = {
- /* discharging: s0, s3, s5 */
- {{LED_WHITE, 0}, {LED_AMBER, ALTERNATE(BLINK(10))}, {LED_OFF, 0}},
- /* charging: s0, s3, s5 */
- {{LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}},
- /* full: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}},
-};
-
-const static led_patterns battery_pattern_4 = {
- /* discharging: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, BLINK(10)}, {LED_OFF, PULSE_NO}},
- /* charging: s0, s3, s5 */
- {{LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}, {LED_AMBER, PULSE_NO}},
- /* full: s0, s3, s5 */
- {{LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}, {LED_WHITE, PULSE_NO}},
-};
-
-/* Patterns for battery LED and power LED. Initialized at run-time. */
-static led_patterns const *patterns[2];
-/* Pattern for battery error. Only blinking battery LED is supported. */
-static struct led_pattern battery_error = {LED_AMBER, BLINK(10)};
-/* Pattern for low state of charge. Only battery LED is supported. */
-static struct led_pattern low_battery = {LED_WHITE, BLINK(10)};
-/* Pattern for factory mode. Blinking 2-color battery LED. */
-static struct led_pattern battery_factory = {LED_FACTORY, BLINK(20)};
-static int low_battery_soc;
-static void led_charge_hook(void);
-static enum led_power_state power_state;
-
-static void led_init(void)
-{
- switch (oem) {
- case PROJECT_NAMI:
- case PROJECT_VAYNE:
- patterns[0] = &battery_pattern_0;
- break;
- case PROJECT_SONA:
- if (model == MODEL_SYNDRA) {
- /* Syndra doesn't have power LED */
- patterns[0] = &battery_pattern_4;
- } else {
- patterns[0] = &battery_pattern_1;
- patterns[1] = &power_pattern_1;
- }
- battery_error.pulse = BLINK(5);
- low_battery_soc = 100; /* 10.0% */
- break;
- case PROJECT_PANTHEON:
- patterns[0] = &battery_pattern_2;
- patterns[1] = &power_pattern_2;
- battery_error.color = LED_OFF;
- battery_error.pulse = 0;
- break;
- case PROJECT_AKALI:
- patterns[0] = &battery_pattern_3;
- break;
- default:
- break;
- }
-
- pwm_enable(PWM_CH_LED1, 1);
- pwm_enable(PWM_CH_LED2, 1);
-
- /* After sysjump, power_state is cleared. Thus, we need to actively
- * retrieve it. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- power_state = LED_STATE_S5;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- power_state = LED_STATE_S3;
- else
- power_state = LED_STATE_S0;
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_DEFAULT);
-
-static int set_color_battery(enum led_color color, int duty)
-{
- int led1 = 0;
- int led2 = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_AMBER:
- led2 = 1;
- break;
- case LED_WHITE:
- led1 = 1;
- break;
- case LED_WARM_WHITE:
- led1 = 1;
- led2 = 1;
- break;
- case LED_FACTORY:
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (color != LED_FACTORY) {
- pwm_set_duty(PWM_CH_LED1, led1 ? duty : 0);
- pwm_set_duty(PWM_CH_LED2, led2 ? duty : 0);
- } else {
- pwm_set_duty(PWM_CH_LED1, duty ? 100 : 0);
- pwm_set_duty(PWM_CH_LED2, duty ? 0 : 100);
- }
-
- return EC_SUCCESS;
-}
-
-static int set_color_power(enum led_color color, int duty)
-{
- if (color == LED_OFF)
- duty = 0;
- gpio_set_level(GPIO_LED1, !duty /* Reversed logic */);
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_BATTERY_LED:
- return set_color_battery(color, duty);
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
- int alternate;
- uint8_t pulse;
-} tick[2];
-
-static void tick_battery(void);
-DECLARE_DEFERRED(tick_battery);
-static void tick_power(void);
-DECLARE_DEFERRED(tick_power);
-static void cancel_tick(enum ec_led_id id)
-{
- if (id == EC_LED_ID_BATTERY_LED)
- hook_call_deferred(&tick_battery_data, -1);
- else
- hook_call_deferred(&tick_power_data, -1);
-}
-
-static int config_tick(enum ec_led_id id, const struct led_pattern *pattern)
-{
- static const struct led_pattern *patterns[2];
- uint32_t stride;
-
- if (pattern == patterns[id])
- /* This pattern was already set */
- return -1;
-
- patterns[id] = pattern;
-
- if (!pattern->pulse) {
- /* This is a steady pattern. cancel the tick */
- cancel_tick(id);
- set_color(id, pattern->color, 100);
- return 1;
- }
-
- stride = PULSE_INTERVAL(pattern->pulse);
- if (IS_PULSING(pattern->pulse)) {
- tick[id].interval = LED_PULSE_TICK_US;
- tick[id].duty_inc = 100 / (stride / LED_PULSE_TICK_US);
- } else {
- tick[id].interval = stride;
- tick[id].duty_inc = 100;
- }
- tick[id].color = pattern->color;
- tick[id].duty = 0;
- tick[id].alternate = 0;
- tick[id].pulse = pattern->pulse;
-
- return 0;
-}
-
-/*
- * When pulsing, brightness is incremented by <duty_inc> every <interval> usec
- * from 0 to 100%. Then it's decremented from 100% to 0.
- */
-static void pulse_led(enum ec_led_id id)
-{
- if (tick[id].duty + tick[id].duty_inc > 100) {
- tick[id].duty_inc = tick[id].duty_inc * -1;
- } else if (tick[id].duty + tick[id].duty_inc < 0) {
- if (IS_ALTERNATE(tick[id].pulse)) {
- /* Falling phase landing. Flip the alternate flag. */
- tick[id].alternate = !tick[id].alternate;
- if (tick[id].alternate)
- return;
- }
- tick[id].duty_inc = tick[id].duty_inc * -1;
- }
- tick[id].duty += tick[id].duty_inc;
- set_color(id, tick[id].color, tick[id].duty);
-}
-
-static uint32_t tick_led(enum ec_led_id id)
-{
- uint32_t elapsed;
- uint32_t start = get_time().le.lo;
- uint32_t next;
-
- if (led_auto_control_is_enabled(id))
- pulse_led(id);
- if (tick[id].alternate)
- /* Skip 2 phases (rising & falling) */
- next = PULSE_INTERVAL(tick[id].pulse) * 2;
- else
- next = tick[id].interval;
- elapsed = get_time().le.lo - start;
- return next > elapsed ? next - elapsed : 0;
-}
-
-static void tick_battery(void)
-{
- hook_call_deferred(&tick_battery_data, tick_led(EC_LED_ID_BATTERY_LED));
-}
-
-static void tick_power(void)
-{
- hook_call_deferred(&tick_power_data, tick_led(EC_LED_ID_POWER_LED));
-}
-
-static void start_tick(enum ec_led_id id, const struct led_pattern *pattern)
-{
- if (config_tick(id, pattern))
- /*
- * If this pattern is already active, ticking must have started
- * already. So, we don't re-start ticking to prevent LED from
- * blinking at every SOC change.
- *
- * If this pattern is static, we skip ticking as well.
- */
- return;
-
- if (id == EC_LED_ID_BATTERY_LED)
- tick_battery();
- else
- tick_power();
-}
-
-static void led_alert(int enable)
-{
- if (enable)
- start_tick(EC_LED_ID_BATTERY_LED, &battery_error);
- else
- led_charge_hook();
-}
-
-static void led_factory(int enable)
-{
- if (enable)
- start_tick(EC_LED_ID_BATTERY_LED, &battery_factory);
- else
- led_charge_hook();
-}
-
-void config_led(enum ec_led_id id, enum led_charge_state charge)
-{
- const led_patterns *pattern;
-
- pattern = patterns[id];
- if (!pattern)
- return; /* This LED isn't present */
-
- start_tick(id, &(*pattern)[charge][power_state]);
-}
-
-void config_leds(enum led_charge_state charge)
-{
- config_led(EC_LED_ID_BATTERY_LED, charge);
- config_led(EC_LED_ID_POWER_LED, charge);
-}
-
-static void call_handler(void)
-{
- int soc;
- enum charge_state cs;
-
- if (!led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- return;
-
- cs = charge_get_state();
- soc = charge_get_display_charge();
- if (soc < 0)
- cs = PWR_STATE_ERROR;
-
- switch (cs) {
- case PWR_STATE_DISCHARGE:
- case PWR_STATE_DISCHARGE_FULL:
- if (soc < low_battery_soc)
- start_tick(EC_LED_ID_BATTERY_LED, &low_battery);
- else
- config_led(EC_LED_ID_BATTERY_LED, LED_STATE_DISCHARGE);
- config_led(EC_LED_ID_POWER_LED, LED_STATE_DISCHARGE);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- case PWR_STATE_CHARGE:
- if (soc >= 1000)
- config_leds(LED_STATE_FULL);
- else
- config_leds(LED_STATE_CHARGE);
- break;
- case PWR_STATE_ERROR:
- /* It doesn't matter what 'charge' state we pass because power
- * LED (if it exists) is orthogonal to battery state. */
- config_led(EC_LED_ID_POWER_LED, 0);
- led_alert(1);
- break;
- case PWR_STATE_IDLE:
- /* External power connected in IDLE. This is also used to show
- * factory mode when 'ectool chargecontrol idle' is run during
- * factory process. */
- if (charge_get_flags() & CHARGE_FLAG_FORCE_IDLE)
- led_factory(1);
- break;
- default:
- ;
- }
-}
-
-/* LED state transition handlers */
-static void s0(void)
-{
- power_state = LED_STATE_S0;
- call_handler();
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, s0, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, s0, HOOK_PRIO_DEFAULT);
-
-static void s3(void)
-{
- power_state = LED_STATE_S3;
- call_handler();
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, s3, HOOK_PRIO_DEFAULT);
-
-static void s5(void)
-{
- power_state = LED_STATE_S5;
- call_handler();
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, s5, HOOK_PRIO_DEFAULT);
-
-static void led_charge_hook(void)
-{
- call_handler();
-}
-DECLARE_HOOK(HOOK_BATTERY_SOC_CHANGE, led_charge_hook, HOOK_PRIO_DEFAULT);
-
-static void print_config(enum ec_led_id id)
-{
- ccprintf("ID:%d\n", id);
- ccprintf(" Color:%d\n", tick[id].color);
- ccprintf(" Duty:%d\n", tick[id].duty);
- ccprintf(" Duty Increment:%d\n", tick[id].duty_inc);
- ccprintf(" Interval:%d\n", tick[id].interval);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_BATTERY_LED;
- static int alert = 0;
- static int factory;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "white")) {
- set_color(id, LED_WHITE, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- alert = !alert;
- led_alert(alert);
- } else if (!strcasecmp(argv[1], "s0")) {
- s0();
- } else if (!strcasecmp(argv[1], "s3")) {
- s3();
- } else if (!strcasecmp(argv[1], "s5")) {
- s5();
- } else if (!strcasecmp(argv[1], "conf")) {
- print_config(id);
- } else if (!strcasecmp(argv[1], "factory")) {
- factory = !factory;
- led_factory(factory);
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|green|amber|off|alert|s0|s3|s5|conf|factory]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- /*
- * We return amber=100, white=100 regardless of OEM ID or led_id. This
- * function is for ectool led command, which is used to test LED
- * functionality.
- */
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else if (brightness[EC_LED_COLOR_WHITE])
- return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/nami/usb_pd_policy.c b/board/nami/usb_pd_policy.c
deleted file mode 100644
index c1d5591d7c..0000000000
--- a/board/nami/usb_pd_policy.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- gpio_set_level(port ? GPIO_USB_C1_3A_EN : GPIO_USB_C0_3A_EN,
- vbus_rp[port] == TYPEC_RP_3A0 ? 1 : 0);
- gpio_set_level(port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN,
- vbus_en[port]);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 1);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- pd_set_vbus_discharge(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return !gpio_get_level(port ? GPIO_USB_C1_VBUS_WAKE_L :
- GPIO_USB_C0_VBUS_WAKE_L);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_PMIC_SLP_SUS_L);
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Only port 0 supports device mode. */
- if (port != 0)
- return;
-
- gpio_set_level(GPIO_USB2_ID, (data_role == PD_ROLE_UFP) ? 0 : 1);
-}
diff --git a/board/nami/vif_override.xml b/board/nami/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/nami/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/nami_fp b/board/nami_fp
deleted file mode 120000
index 1095b5f7b4..0000000000
--- a/board/nami_fp
+++ /dev/null
@@ -1 +0,0 @@
-./nocturne_fp/ \ No newline at end of file
diff --git a/board/nautilus/analyzestack.yaml b/board/nautilus/analyzestack.yaml
deleted file mode 100644
index c9004e6376..0000000000
--- a/board/nautilus/analyzestack.yaml
+++ /dev/null
@@ -1,211 +0,0 @@
-# Size of extra stack frame needed by exception context switch.
-# See core/cortex-m/switch.S
-exception_frame_size: 224
-# Add some missing calls.
-add:
- # TCPC stuff:
- tcpm_init.lto_priv.255[driver/tcpm/tcpm.h:77]:
- - tcpci_tcpm_init
- tcpm_release[driver/tcpm/tcpm.h:90]:
- - ps8xxx_tcpm_release
- tcpm_get_cc.lto_priv.246[driver/tcpm/tcpm.h:95]:
- - tcpci_tcpm_get_cc
- tcpm_select_rp_value[driver/tcpm/tcpm.h:105]:
- - tcpci_tcpm_select_rp_value
- tcpm_set_cc.lto_priv.239[driver/tcpm/tcpm.h:110]:
- - tcpci_tcpm_set_cc
- tcpm_set_polarity[driver/tcpm/tcpm.h:115]:
- - tcpci_tcpm_set_polarity
- tcpm_set_vconn.lto_priv.249[driver/tcpm/tcpm.h:120]:
- - tcpci_tcpm_set_vconn
- tcpm_set_msg_header[driver/tcpm/tcpm.h:125]:
- - tcpci_tcpm_set_msg_header
- tcpm_set_rx_enable.lto_priv.252[driver/tcpm/tcpm.h:131]:
- - tcpci_tcpm_set_rx_enable
- tcpm_get_message[driver/tcpm/tcpm.h:136]:
- - tcpci_tcpm_get_message
- tcpm_transmit[driver/tcpm/tcpm.h:142]:
- - ps8xxx_tcpm_transmit
- tcpc_alert[driver/tcpm/tcpm.h:147]:
- - tcpci_tcpc_alert
- tcpc_discharge_vbus[driver/tcpm/tcpm.h:152]:
- - tcpci_tcpc_discharge_vbus
- tcpm_set_drp_toggle[driver/tcpm/tcpm.h:163]:
- - tcpci_tcpc_drp_toggle
- tcpm_get_chip_info[driver/tcpm/tcpm.h:185]:
- - tcpci_get_chip_info
- board_tcpc_init[board/nautilus/board.c:233]:
- - ps8xxx_tcpc_update_hpd_status
- tcpci_tcpc_drp_toggle[driver/tcpm/tcpci.c:148]:
- - None
- # USB mux stuff
- usb_mux_init[driver/usb_mux.c:25]:
- - tcpci_tcpm_mux_init
- usb_mux_init[driver/usb_mux.c:31]:
- - None
- usb_mux_set[driver/usb_mux.c:52]:
- - tcpci_tcpm_mux_set
- usb_mux_get[driver/usb_mux.c:71]:
- - tcpci_tcpm_mux_get
- usb_mux_flip[driver/usb_mux.c:92]:
- - tcpci_tcpm_mux_get
- usb_mux_flip[driver/usb_mux.c:103]:
- - tcpci_tcpm_mux_set
- hc_usb_pd_mux_info[driver/usb_mux.c:169]:
- - tcpci_tcpm_mux_get
- svdm_dp_post_config.lto_priv.271[board/nautilus/usb_pd_policy.c:363]:
- - ps8xxx_tcpc_update_hpd_status
- svdm_dp_attention.lto_priv.272[board/nautilus/usb_pd_policy.c:378]:
- - ps8xxx_tcpc_update_hpd_status
- svdm_exit_dp_mode.lto_priv.273[board/nautilus/usb_pd_policy.c:389]:
- - ps8xxx_tcpc_update_hpd_status
- # pd_svdm
- pd_dfp_enter_mode[common/usb_pd_policy.c:459]:
- - svdm_enter_dp_mode
- dfp_consume_attention.lto_priv.259[common/usb_pd_policy.c:497]:
- - svdm_dp_attention
- pd_dfp_exit_mode[common/usb_pd_policy.c:563]:
- - svdm_exit_dp_mode
- pd_dfp_exit_mode[common/usb_pd_policy.c:580]:
- - svdm_exit_dp_mode
- pd_svdm[common/usb_pd_policy.c:767]:
- - svdm_dp_status
- pd_svdm[common/usb_pd_policy.c:778]:
- - svdm_dp_config
- pd_svdm[common/usb_pd_policy.c:784]:
- - svdm_dp_post_config
- # Motion sense
- queue_advance_head[common/queue.c:105]:
- - queue_action_null
- queue_advance_tail[common/queue.c:116]:
- - queue_action_null
- motion_sense_set_data_rate[common/motion_sense.c:270]:
- - set_data_rate[driver/accelgyro_bmi160.c]
- - set_data_rate[driver/accel_bma2x2.c]
- motion_sense_set_data_rate[common/motion_sense.c:289]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - get_data_rate[driver/accel_bma2x2.c]
- motion_sense_set_ec_rate_from_ap[common/motion_sense.c:308]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - get_data_rate[driver/accel_bma2x2.c]
- motion_sense_set_motion_intervals.lto_priv.303[common/motion_sense.c:414]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - get_data_rate[driver/accel_bma2x2.c]
- motion_sense_init[common/motion_sense.c:450]:
- - init[driver/accelgyro_bmi160.c]
- - init[driver/accel_bma2x2.c]
- sensor_init_done[common/motion_sense.c:471]:
- - set_range[driver/accelgyro_bmi160.c]
- - set_range[driver/accel_bma2x2.c]
- sensor_init_done[common/motion_sense.c:474]:
- - get_range[driver/accelgyro_bmi160.c]
- - get_range[driver/accel_bma2x2.c]
- motion_sense_process.isra.9[common/motion_sense.c:721]:
- - irq_handler[driver/accelgyro_bmi160.c]
- host_cmd_motion_sense[common/motion_sense.c:1251]:
- - set_range[driver/accelgyro_bmi160.c]
- - set_range[driver/accel_bma2x2.c]
- host_cmd_motion_sense[common/motion_sense.c:1259]:
- - get_range[driver/accelgyro_bmi160.c]
- - get_range[driver/accel_bma2x2.c]
- host_cmd_motion_sense[common/motion_sense.c:1274]:
- - set_offset[driver/accelgyro_bmi160.c]
- - set_offset[driver/accel_bma2x2.c]
- host_cmd_motion_sense[common/motion_sense.c:1297]:
- - perform_calib[driver/accelgyro_bmi160.c]
- host_cmd_motion_sense[common/motion_sense.c:1300]:
- - get_offset[driver/accelgyro_bmi160.c]
- - get_offset[driver/accel_bma2x2.c]
- command_accelrange[common/motion_sense.c:1515]:
- - set_range[driver/accelgyro_bmi160.c]
- - set_range[driver/accel_bma2x2.c]
- command_accelrange[common/motion_sense.c:1520]:
- - get_range[driver/accelgyro_bmi160.c]
- - get_range[driver/accel_bma2x2.c]
- host_cmd_motion_sense[common/motion_sense.c:1520]:
- - get_range[driver/accelgyro_bmi160.c]
- - get_range[driver/accel_bma2x2.c]
- command_accelresolution[common/motion_sense.c:1564]:
- - None
- command_accelresolution[common/motion_sense.c:1568]:
- - get_resolution[driver/accelgyro_bmi160.c]
- - get_resolution[driver/accel_bma2x2.c]
- command_accel_data_rate[common/motion_sense.c:1623]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - get_data_rate[driver/accel_bma2x2.c]
- command_accel_read_xyz[common/motion_sense.c:1659]:
- - read[driver/accelgyro_bmi160.c]
- - read[driver/accel_bma2x2.c]
- calculate_lid_angle[common/motion_lid.c:255]:
- - get_range[driver/accelgyro_bmi160.c]
- - get_range[driver/accel_bma2x2.c]
- calculate_lid_angle[common/motion_lid.c:256]:
- - get_range[driver/accelgyro_bmi160.c]
- - get_range[driver/accel_bma2x2.c]
- # Temp (see temp_sensors array in board file)
- temp_sensor_read[common/temp_sensor.c:26]:
- - charge_get_battery_temp
- - bd99992gw_get_val
- # Misc
- jump_to_image[common/system.c:568]:
- - None
- system_download_from_flash[chip/npcx/system-npcx5.c:257]:
- - None
- __hibernate_npcx_series[chip/npcx/system-npcx5.c:144]:
- - None
- handle_command[common/console.c:248]:
- - { name: __cmds, stride: 16, offset: 4 }
- hook_task[common/hooks.c:197]:
- - { name: __deferred_funcs, stride: 4, offset: 0 }
- - { name: __hooks_second, stride: 8, offset: 0 }
- - { name: __hooks_tick, stride: 8, offset: 0 }
- # Note: This assumes worse case, where all hook functions can be called from
- # any hook_notify call
- # Generate using `grep hooks_.*_end build/nautilus/R*/ec.R*.smap |
- # sed -e 's/.*\(__hooks.*\)_end/ - { name: \1, stride: 8, offset: 0 }/' |
- # sort -u`
- hook_notify[common/hooks.c:127]:
- - { name: __hooks_ac_change, stride: 8, offset: 0 }
- - { name: __hooks_battery_soc_change, stride: 8, offset: 0 }
- - { name: __hooks_chipset_pre_init, stride: 8, offset: 0 }
- - { name: __hooks_chipset_reset, stride: 8, offset: 0 }
- - { name: __hooks_chipset_resume, stride: 8, offset: 0 }
- - { name: __hooks_chipset_shutdown, stride: 8, offset: 0 }
- - { name: __hooks_chipset_startup, stride: 8, offset: 0 }
- - { name: __hooks_chipset_suspend, stride: 8, offset: 0 }
- - { name: __hooks_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_lid_change, stride: 8, offset: 0 }
- - { name: __hooks_pre_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_pwrbtn_change, stride: 8, offset: 0 }
- - { name: __hooks_sysjump, stride: 8, offset: 0 }
- - { name: __hooks_tablet_mode_change, stride: 8, offset: 0 }
- mkbp_get_next_event[common/mkbp_event.c:130]:
- - { name: __mkbp_evt_srcs, stride: 8, offset: 4 }
- host_send_response[common/host_command.c:153]:
- - lpc_send_response
- host_packet_respond[common/host_command.c:240]:
- - lpc_send_response
- host_command_process[common/host_command.c:704]:
- - { name: __hcmds, stride: 12, offset: 0 }
- # gpio_interrupt.lto_priv.407[chip/npcx/gpio.c:479]
- vfnprintf:
- # This covers all the addchar in vfnprintf, but stackanalyzer does not
- # realize that...
- - __tx_char
- i2c_command_passthru[common/i2c_master.c:597]:
- - None
-remove:
-# Remove all callsites pointing to panic_assert_fail.
-- panic_assert_fail
-# Remove hook paths that don't make sense
-- [ [ common_intel_x86_power_handle_state, power_button_change_deferred, hook_task, lpc_chipset_reset, espi_chipset_reset ], hook_notify, powerbtn_x86_lid_change ]
-- [ system_common_shutdown, hook_notify, system_run_image_copy ]
-- [ jump_to_image, hook_notify, [ powerbtn_x86_lid_change, system_common_shutdown, power_up_inhibited_cb, motion_sense_shutdown, motion_sense_resume ] ]
-- [ [ extpower_deferred, charger_task, motion_sense_switch_sensor_rate, lid_switch_open, lid_switch_close, motion_sense_task ], hook_notify, [ powerbtn_x86_lid_change, power_up_inhibited_cb, system_common_shutdown, motion_sense_shutdown, motion_sense_resume ] ]
-- [ common_intel_x86_power_handle_state, hook_notify, power_up_inhibited_cb ]
-# pd_request_power_swap calls set_state with either PD_STATE_SRC_SWAP_INIT or
-# PD_STATE_SNK_SWAP_INIT as parameters, which cannot call any of the
-# charge_manager functions.
-- [ [ pd_request_power_swap, pd_execute_hard_reset, pd_request_data_swap, pd_request_vconn_swap.lto_priv.237, pd_send_request_msg.lto_priv.250 ], set_state.lto_priv.236, [ typec_set_input_current_limit, charge_manager_update_charge, pd_power_supply_reset, pd_dfp_exit_mode, usb_mux_set ] ]
-# Debug prints that do not actually need a 64 uint division, of the time
-- [ [i2c_reset, i2c_abort_data, i2c_xfer], cprintf, vfnprintf, [uint64divmod.part.3.lto_priv.141, get_time] ]
diff --git a/board/nautilus/battery.c b/board/nautilus/battery.c
deleted file mode 100644
index 642497cdfe..0000000000
--- a/board/nautilus/battery.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Copyright 2017 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.
- *
- * Placeholder values for temporary battery pack.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "util.h"
-
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-
-/* Shutdown mode parameters to write to manufacturer access register */
-#define SB_SHIP_MODE_REG SB_MANUFACTURER_ACCESS
-#define SB_SHUTDOWN_DATA 0x0010
-
-/*
- * Unlike other smart batteries, Nautilus battery uses different bit fields
- * in manufacturer access register for the conditions of the CHG/DSG FETs.
- */
-#define BATFETS_SHIFT (14)
-#define BATFETS_MASK (0x3)
-#define BATFETS_DISABLED (0x2)
-
-#define CHARGING_VOLTAGE_MV_SAFE 8400
-#define CHARGING_CURRENT_MA_SAFE 1500
-
-static const struct battery_info info = {
- .voltage_max = 8700,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- /* Pre-charge values. */
- .precharge_current = 200, /* mA */
-
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
-};
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int current;
- int voltage;
- /* battery temp in 0.1 deg C */
- int bat_temp_c;
-
- /*
- * Keep track of battery temperature range:
- *
- * ZONE_0 ZONE_1 ZONE_2 ZONE_3
- * ---+------+--------+--------+------+--- Temperature (C)
- * 0 5 12 45 50
- */
- enum {
- TEMP_ZONE_0, /* 0 <= bat_temp_c <= 5 */
- TEMP_ZONE_1, /* 5 < bat_temp_c <= 12 */
- TEMP_ZONE_2, /* 12 < bat_temp_c <= 45 */
- TEMP_ZONE_3, /* 45 < bat_temp_c <= 50 */
- TEMP_ZONE_COUNT,
- TEMP_OUT_OF_RANGE = TEMP_ZONE_COUNT
- } temp_zone;
-
- current = curr->requested_current;
- voltage = curr->requested_voltage;
- bat_temp_c = curr->batt.temperature - 2731;
-
- /*
- * If the temperature reading is bad, assume the temperature
- * is out of allowable range.
- */
- if ((curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE) ||
- (bat_temp_c < 0) || (bat_temp_c > 500))
- temp_zone = TEMP_OUT_OF_RANGE;
- else if (bat_temp_c <= 50)
- temp_zone = TEMP_ZONE_0;
- else if (bat_temp_c <= 120)
- temp_zone = TEMP_ZONE_1;
- else if (bat_temp_c <= 450)
- temp_zone = TEMP_ZONE_2;
- else
- temp_zone = TEMP_ZONE_3;
-
- switch (temp_zone) {
- case TEMP_ZONE_0:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- current = CHARGING_CURRENT_MA_SAFE;
- break;
- case TEMP_ZONE_1:
- current = CHARGING_CURRENT_MA_SAFE;
- break;
- case TEMP_ZONE_2:
- break;
- case TEMP_ZONE_3:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- break;
- case TEMP_OUT_OF_RANGE:
- /* Don't charge if outside of allowable temperature range */
- current = 0;
- voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- curr->state = ST_IDLE;
- break;
- }
-
- curr->requested_voltage = MIN(curr->requested_voltage, voltage);
- curr->requested_current = MIN(curr->requested_current, current);
-
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_BATTERY_PRESENT_L) ? BP_NO : BP_YES;
-}
-
-static int battery_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- !!(batt_status & STATUS_INITIALIZED);
-}
-
-/*
- * Check for case where both XCHG and XDSG bits are set indicating that even
- * though the FG can be read from the battery, the battery is not able to be
- * charged or discharged. This situation might happen when power is reconnected
- * to a battery pack in sleep mode. In this transient siuation, the FG can be
- * read, but the battery is still not able to provide power to the system. The
- * calling function returns batt_pres = BP_NO, which instructs the charging
- * state machine to prevent powering up the AP on battery alone which could lead
- * to a brownout event when the battery isn't able yet to provide power to the
- * system.
- */
-static int battery_check_disconnect(void)
-{
- int rv;
- int batt_mfgacc;
-
- /* Check if battery charging + discharging is disabled. */
- rv = sb_read(SB_MANUFACTURER_ACCESS, &batt_mfgacc);
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
-
- if (((batt_mfgacc >> BATFETS_SHIFT) & BATFETS_MASK) ==
- BATFETS_DISABLED)
- return BATTERY_DISCONNECTED;
-
- return BATTERY_NOT_DISCONNECTED;
-}
-
-enum battery_present battery_is_present(void)
-{
- enum battery_present batt_pres;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * Make sure battery status is implemented, I2C transactions are
- * successful & the battery status is initialized to find out if it
- * is a working battery and it is not in the cut-off mode.
- *
- * If battery I2C fails but VBATT is high, battery is booting from
- * cut-off mode.
- *
- * FETs are turned off after Power Shutdown time.
- * The device will wake up when a voltage is applied to PACK.
- * Battery status will be inactive until it is initialized.
- */
- if (batt_pres == BP_YES && batt_pres_prev != batt_pres &&
- (battery_is_cut_off() != BATTERY_CUTOFF_STATE_NORMAL ||
- battery_check_disconnect() != BATTERY_NOT_DISCONNECTED ||
- battery_init() == 0)) {
- batt_pres = BP_NO;
- }
-
- batt_pres_prev = batt_pres;
- return batt_pres;
-}
-
diff --git a/board/nautilus/board.c b/board/nautilus/board.c
deleted file mode 100644
index bcdaf568e7..0000000000
--- a/board/nautilus/board.c
+++ /dev/null
@@ -1,781 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Poppy board-specific configuration */
-
-#include "adc.h"
-#include "bd99992gw.h"
-#include "board_config.h"
-#include "battery_smart.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/baro_bmp280.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "driver/temp_sensor/bd99992gw.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_lid.h"
-#include "motion_sense.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-#include "espi.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- if ((signal == GPIO_USB_C0_PD_INT_ODL) &&
- !gpio_get_level(GPIO_USB_C0_PD_RST_L))
- return;
- else if ((signal == GPIO_USB_C1_PD_INT_ODL) &&
- !gpio_get_level(GPIO_USB_C1_PD_RST_L))
- return;
-
-#ifdef HAS_TASK_PDCMD
- /* Exchange status with TCPCs */
- host_command_pd_send_status(PD_CHARGE_NO_CHANGE);
-#endif
-}
-
-/* Set PD discharge whenever VBUS detection is high (i.e. below threshold). */
-static void vbus_discharge_handler(void)
-{
- if (system_get_board_version() >= 2) {
- pd_set_vbus_discharge(0,
- gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L));
- pd_set_vbus_discharge(1,
- gpio_get_level(GPIO_USB_C1_VBUS_WAKE_L));
- }
-}
-DECLARE_DEFERRED(vbus_discharge_handler);
-
-void vbus0_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(0, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C0);
-
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void vbus1_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(1, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C1);
-
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-#include "gpio_list.h"
-
-/* Hibernate wake configuration */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Base detection */
- [ADC_BASE_DET] = {"BASE_DET", NPCX_ADC_CH0,
- ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (10x voltage divider). */
- [ADC_VBUS] = {"VBUS", NPCX_ADC_CH2, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {"AMON_BMON", NPCX_ADC_CH1, ADC_MAX_VOLT*1000/18,
- ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc0", NPCX_I2C_PORT0_0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
- {"tcpc1", NPCX_I2C_PORT0_1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
- {"charger", NPCX_I2C_PORT1, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"pmic", NPCX_I2C_PORT2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"accelgyro", NPCX_I2C_PORT3, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-struct pi3usb9281_config pi3usb9281_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_CHARGER_0,
- .mux_lock = NULL,
- },
- {
- .i2c_port = I2C_PORT_USB_CHARGER_1,
- .mux_lock = NULL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
- CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT);
-
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_USB1_ENABLE,
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-void board_reset_pd_mcu(void)
-{
- /* Assert reset */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(1);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
- }
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0},
-
- /* These BD99992GW temp sensors are only readable in S0 */
- {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM1},
- {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Check if PMIC fault registers indicate VR fault. If yes, print out fault
- * register info to console. Additionally, set panic reason so that the OS can
- * check for fault register info by looking at offset 0x14(PWRSTAT1) and
- * 0x15(PWRSTAT2) in cros ec panicinfo.
- */
-static void board_report_pmic_fault(const char *str)
-{
- int vrfault, pwrstat1 = 0, pwrstat2 = 0;
- uint32_t info;
-
- /* RESETIRQ1 -- Bit 4: VRFAULT */
- if (i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, &vrfault)
- != EC_SUCCESS)
- return;
-
- if (!(vrfault & BIT(4)))
- return;
-
- /* VRFAULT has occurred, print VRFAULT status bits. */
-
- /* PWRSTAT1 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, &pwrstat1);
-
- /* PWRSTAT2 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, &pwrstat2);
-
- CPRINTS("PMIC VRFAULT: %s", str);
- CPRINTS("PMIC VRFAULT: PWRSTAT1=0x%02x PWRSTAT2=0x%02x", pwrstat1,
- pwrstat2);
-
- /* Clear all faults -- Write 1 to clear. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, BIT(4));
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, pwrstat1);
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, pwrstat2);
-
- /*
- * Status of the fault registers can be checked in the OS by looking at
- * offset 0x14(PWRSTAT1) and 0x15(PWRSTAT2) in cros ec panicinfo.
- */
- info = ((pwrstat2 & 0xFF) << 8) | (pwrstat1 & 0xFF);
- panic_set_reason(PANIC_SW_PMIC_FAULT, info, 0);
-}
-
-static void board_pmic_disable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (0) - Disable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x3a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x2a);
-
- /*
- * V100ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (01) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x37, 0x1a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x3a);
-}
-
-static void board_pmic_enable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (1) - Enable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x7a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x6a);
-
- /*
- * V100ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (01) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x37, 0x5a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x7a);
-}
-
-__override void power_board_handle_host_sleep_event(
- enum host_sleep_event state)
-{
- if (state == HOST_SLEEP_EVENT_S0IX_SUSPEND)
- board_pmic_enable_slp_s0_vr_decay();
- else if (state == HOST_SLEEP_EVENT_S0IX_RESUME)
- board_pmic_disable_slp_s0_vr_decay();
-}
-
-static void board_pmic_init(void)
-{
- board_report_pmic_fault("SYSJUMP");
-
- if (system_jumped_late())
- return;
-
- /* DISCHGCNT3 - enable 100 ohm discharge on V1.00A */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3e, 0x04);
-
- board_pmic_disable_slp_s0_vr_decay();
-
- /* VRMODECTRL - disable low-power mode for all rails */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3b, 0x1f);
-}
-DECLARE_DEFERRED(board_pmic_init);
-
-/* Initialize board. */
-static void board_init(void)
-{
- /*
- * This enables pull-down on F_DIO1 (SPI MISO), and F_DIO0 (SPI MOSI),
- * whenever the EC is not doing SPI flash transactions. This avoids
- * floating SPI buffer input (MISO), which causes power leakage (see
- * b/64797021).
- */
- NPCX_PUPD_EN1 |= BIT(NPCX_DEVPU1_F_SPI_PUD_EN);
-
- /* Provide AC status to the PCH */
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-
- /* Enable VBUS interrupt */
- gpio_enable_interrupt(GPIO_USB_C0_VBUS_WAKE_L);
- gpio_enable_interrupt(GPIO_USB_C1_VBUS_WAKE_L);
-
- /* Enable pericom BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Level of sensor's I2C and interrupt are 3.3V on proto board */
- if(system_get_board_version() < 2) {
- /* ACCELGYRO3_INT_L */
- gpio_set_flags(GPIO_ACCELGYRO3_INT_L, GPIO_INT_FALLING);
- /* I2C3_SCL / I2C3_SDA */
- gpio_set_flags(GPIO_I2C3_SCL, GPIO_INPUT);
- gpio_set_flags(GPIO_I2C3_SDA, GPIO_INPUT);
- }
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_ACCELGYRO3_INT_L);
-
- /* Initialize PMIC */
- hook_call_deferred(&board_pmic_init_data, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/**
- * Buffer the AC present GPIO to the PCH.
- */
-static void board_extpower(void)
-{
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are source VBUS on the port */
- int source = gpio_get_level(charge_port == 0 ? GPIO_USB_C0_5V_EN :
- GPIO_USB_C1_5V_EN);
-
- if (is_real_port && source) {
- CPRINTF("Skip enable p%d", charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTF("New chg p%d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable both ports */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
- gpio_set_level(GPIO_USB_C1_CHARGE_L, 1);
- } else {
- /* Make sure non-charging port is disabled */
- gpio_set_level(charge_port ? GPIO_USB_C0_CHARGE_L :
- GPIO_USB_C1_CHARGE_L, 1);
- /* Enable charging port */
- gpio_set_level(charge_port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Limit the input current to 96% negotiated limit,
- * to account for the charger chip margin.
- */
- charge_ma = charge_ma * 96 / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-/**
- * Return the maximum allowed input current
- */
-int board_get_ramp_current_limit(int supplier, int sup_curr)
-{
- switch (supplier) {
- case CHARGE_SUPPLIER_BC12_DCP:
- return 2000;
- case CHARGE_SUPPLIER_BC12_SDP:
- return 1000;
- case CHARGE_SUPPLIER_BC12_CDP:
- case CHARGE_SUPPLIER_PROPRIETARY:
- return sup_curr;
- default:
- return 500;
- }
-}
-
-void board_hibernate(void)
-{
- CPRINTS("Triggering PMIC shutdown.");
- uart_flush_output();
-
- /* Trigger PMIC shutdown. */
- if (i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x49, 0x01)) {
- /*
- * If we can't tell the PMIC to shutdown, instead reset
- * and don't start the AP. Hopefully we'll be able to
- * communicate with the PMIC next time.
- */
- CPRINTS("PMIC i2c failed.");
- system_reset(SYSTEM_RESET_LEAVE_AP_OFF);
- }
-
- /* Await shutdown. */
- while (1)
- ;
-}
-
-int board_get_version(void)
-{
- static int ver = -1;
- uint8_t id3;
-
- if (ver != -1)
- return ver;
-
- ver = 0;
-
- /* First 2 strappings are binary. */
- if (gpio_get_level(GPIO_BOARD_VERSION1))
- ver |= 0x01;
- if (gpio_get_level(GPIO_BOARD_VERSION2))
- ver |= 0x02;
-
- /*
- * The 3rd strapping pin is tristate.
- * id3 = 2 if Hi-Z, id3 = 1 if high, and id3 = 0 if low.
- */
- id3 = gpio_get_ternary(GPIO_BOARD_VERSION3);
- ver |= id3 * 0x04;
-
- CPRINTS("Board ID = %d", ver);
-
- return ver;
-}
-
-/* Lid Sensor mutex */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0 },
- { 0, FLOAT_TO_FP(1), 0 },
- { 0, 0, FLOAT_TO_FP(-1) }
-};
-
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0 },
- { 0, FLOAT_TO_FP(1), 0 },
- { 0, 0, FLOAT_TO_FP(-1) }
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Enable or disable input devices, based on chipset state and tablet mode */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /* If the lid is in 360 position, ignore the lid angle,
- * which might be faulty. Disable keyboard.
- */
- if (tablet_get_mode() || chipset_in_state(CHIPSET_STATE_ANY_OFF))
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-static void board_chipset_reset(void)
-{
- board_report_pmic_fault("CHIPSET RESET");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESET, board_chipset_reset, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_startup(void)
-{
- /* Enable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 1);
-
- gpio_set_level(GPIO_ENABLE_TOUCHPAD, 1);
-
- gpio_set_level(GPIO_PP1800_DX_SENSOR, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_shutdown(void)
-{
- /* Disable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 0);
-
- gpio_set_level(GPIO_ENABLE_TOUCHPAD, 0);
-
- gpio_set_level(GPIO_PP1800_DX_SENSOR, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_has_working_reset_flags(void)
-{
- int version = system_get_board_version();
-
- /* Boards Rev1, Rev2 and Rev3 will lose reset flags on power cycle. */
- if ((version == 1) || (version == 2) || (version == 3))
- return 0;
-
- /* All other board versions should have working reset flags */
- return 1;
-}
-
-/*
- * I2C callbacks to ensure bus free time for battery I2C transactions is at
- * least 5ms.
- */
-#define BATTERY_FREE_MIN_DELTA_US (5 * MSEC)
-static timestamp_t battery_last_i2c_time;
-
-static int is_battery_i2c(const int port, const uint16_t slave_addr_flags)
-{
- return (port == I2C_PORT_BATTERY)
- && (slave_addr_flags == BATTERY_ADDR_FLAGS);
-}
-
-void i2c_start_xfer_notify(const int port, const uint16_t slave_addr_flags)
-{
- unsigned int time_delta_us;
-
- if (!is_battery_i2c(port, slave_addr_flags))
- return;
-
- time_delta_us = time_since32(battery_last_i2c_time);
- if (time_delta_us >= BATTERY_FREE_MIN_DELTA_US)
- return;
-
- usleep(BATTERY_FREE_MIN_DELTA_US - time_delta_us);
-}
-
-void i2c_end_xfer_notify(const int port, const uint16_t slave_addr_flags)
-{
- if (!is_battery_i2c(port, slave_addr_flags))
- return;
-
- battery_last_i2c_time = get_time();
-}
diff --git a/board/nautilus/board.h b/board/nautilus/board.h
deleted file mode 100644
index 88389956b9..0000000000
--- a/board/nautilus/board.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Eve board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands.
- * TODO: Remove this config before production.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_BOARD_FORCE_RESET_PIN
-#define CONFIG_CASE_CLOSED_DEBUG_EXTERNAL
-#define CONFIG_DPTF
-#define CONFIG_DPTF_MOTION_LID_NO_GMR_SENSOR
-#define CONFIG_DPTF_MULTI_PROFILE
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_I2C_XFER_BOARD_CALLBACK
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25X40
-#define CONFIG_VBOOT_HASH
-#define CONFIG_SHA256_UNROLLED
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
-#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_DX_WLAN
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BUTTON
-
-/* Port80 */
-#undef CONFIG_PORT80_HISTORY_LEN
-#define CONFIG_PORT80_HISTORY_LEN 256
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-/* Battery */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_SMART
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_HW /* This, or just RAMP? */
-
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_ISL9238
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_PSYS
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A_ILIM_SEL
-
-/* Sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_BD99992GW
-#define CONFIG_THERMISTOR_NCP15WB
-
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 2048
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-
-/* USB */
-#define CONFIG_USB_CHARGER
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* BC 1.2 charger */
-#define CONFIG_BC12_DETECT_PI3USB9281
-#define CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT 2
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT0_0
-#define I2C_PORT_TCPC1 NPCX_I2C_PORT0_1
-#define I2C_PORT_USB_CHARGER_1 NPCX_I2C_PORT0_1
-#define I2C_PORT_USB_CHARGER_0 NPCX_I2C_PORT1
-#define I2C_PORT_CHARGER NPCX_I2C_PORT1
-#define I2C_PORT_BATTERY NPCX_I2C_PORT1
-#define I2C_PORT_PMIC NPCX_I2C_PORT2
-#define I2C_PORT_MP2949 NPCX_I2C_PORT2
-#define I2C_PORT_GYRO NPCX_I2C_PORT3
-#define I2C_PORT_BARO NPCX_I2C_PORT3
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-#define I2C_PORT_THERMAL I2C_PORT_PMIC
-
-/* I2C addresses */
-#define I2C_ADDR_BD99992_FLAGS 0x30
-#define I2C_ADDR_MP2949_FLAGS 0x20
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* Nautilus doesn't have systherm0 and systherm3 */
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY, /* BD99956GW TSENSE */
- TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_COUNT
-};
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum adc_channel {
- ADC_BASE_DET,
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_CH_COUNT
-};
-
-/* TODO(crosbug.com/p/61098): Verify the numbers below. */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Board specific handlers */
-int board_get_version(void);
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nautilus/build.mk b/board/nautilus/build.mk
deleted file mode 100644
index f4bf21113d..0000000000
--- a/board/nautilus/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_LED_COMMON)+=led.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/nautilus/ec.tasklist b/board/nautilus/ec.tasklist
deleted file mode 100644
index 8257734572..0000000000
--- a/board/nautilus/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 800) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, 720) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, 720) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, 800) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, 768) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, 800) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, 600) \
- TASK_NOTEST(PDCMD, pd_command_task, NULL, 800) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 840) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, 880) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, 800) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, 600) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1000) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, 1000)
diff --git a/board/nautilus/gpio.inc b/board/nautilus/gpio.inc
deleted file mode 100644
index 9cfc1e0bfd..0000000000
--- a/board/nautilus/gpio.inc
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(C, 5), GPIO_INT_FALLING, tcpc_alert_event)
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-/* Use VW signals instead of GPIOs */
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(PCH_SLP_S3_L, PIN(7, 3), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PCH_SLP_SUS_L, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PMIC_DPWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(6, 7), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(8, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(WP_L, PIN(4, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(USB_C0_VBUS_WAKE_L, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, vbus0_evt)
-GPIO_INT(USB_C1_VBUS_WAKE_L, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, vbus1_evt)
-GPIO_INT(USB_C0_BC12_INT_L, PIN(D, 3), GPIO_INT_FALLING, usb0_evt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(3, 3), GPIO_INT_FALLING, usb1_evt)
-GPIO_INT(ACCELGYRO3_INT_L, PIN(3, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-
-GPIO(ENABLE_TOUCHPAD, PIN(4, 5), GPIO_OUT_LOW)
-GPIO(PCH_RTCRST, PIN(2, 7), GPIO_OUT_LOW) /* RTCRST# to SOC (>= rev4) */
-GPIO(ENABLE_BACKLIGHT, PIN(5, 6), GPIO_OUT_LOW) /* Enable Backlight */
-GPIO(WLAN_OFF_L, PIN(7, 2), GPIO_OUT_LOW) /* Disable WLAN */
-GPIO(PP3300_DX_WLAN, PIN(A, 7), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(CPU_PROCHOT, PIN(8, 1), GPIO_OUT_HIGH) /* PROCHOT# to SOC */
-GPIO(PCH_ACOK, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(4, 1), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(EC_PLATFORM_RST, PIN(A, 6), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(PMIC_SLP_SUS_L, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(BATTERY_PRESENT_L, PIN(3, 4), GPIO_INPUT) /* Battery Present */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(PMIC_INT_L, PIN(6, 0), GPIO_INPUT) /* PMIC interrupt */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(7, 5), GPIO_INPUT)
-#endif
-
-/* NC pins */
-GPIO(GPIO02_NC, PIN(0, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO71_NC, PIN(7, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO80_NC, PIN(8, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD2_NC, PIN(D, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Sensor Power */
-GPIO(PP1800_DX_SENSOR, PIN(E, 7), GPIO_OUT_LOW)
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C0_1_USBC_3V3_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C0_1_USBC_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C1_3V3_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C1_3V3_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SDA */
-
-/* rev0: 5V enables: INPUT=1.5A, OUT_LOW=OFF, OUT_HIGH=3A */
-GPIO(USB_C0_5V_EN, PIN(4, 2), GPIO_OUT_LOW) /* C0 5V Enable */
-GPIO(USB_C0_3A_EN, PIN(6, 6), GPIO_OUT_LOW) /* C0 Enable 3A */
-GPIO(USB_C0_CHARGE_L, PIN(C, 0), GPIO_OUT_LOW) /* C0 Charge enable */
-GPIO(USB_C1_5V_EN, PIN(B, 1), GPIO_OUT_LOW) /* C1 5V Enable */
-GPIO(USB_C1_3A_EN, PIN(3, 5), GPIO_OUT_LOW) /* C1 3A Enable */
-GPIO(USB_C1_CHARGE_L, PIN(C, 3), GPIO_OUT_LOW) /* C1 Charge enable */
-GPIO(USB_C0_PD_RST_L, PIN(0, 3), GPIO_ODR_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(7, 4), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(A, 5), GPIO_INPUT) /* C1 DP Hotplug Detect */
-GPIO(USB_C0_TCPC_PWR, PIN(8, 4), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(USB2_OTG_ID, PIN(A, 1), GPIO_ODR_LOW) /* OTG ID */
-GPIO(USB2_OTG_VBUSSENSE, PIN(9, 5), GPIO_OUT_LOW) /* OTG VBUS Sense */
-
-/* USB Type-A control */
-GPIO(USB_A_ILIM_SEL, PIN(0, 0), GPIO_OUT_LOW)
-GPIO(USB1_ENABLE, PIN(0, 1), GPIO_OUT_LOW)
-
-/* LEDs (2 colors on each port) */
-GPIO(LED_ACIN, PIN(B, 6), GPIO_OUT_HIGH) /* ACIN LED */
-GPIO(POWER_LED, PIN(B, 7), GPIO_OUT_HIGH) /* Power LED */
-GPIO(LED_CHARGE, PIN(C, 6), GPIO_OUT_HIGH) /* Charge LED */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(8, 6), GPIO_INPUT) /* Board ID bit0 */
-GPIO(BOARD_VERSION2, PIN(C, 2), GPIO_INPUT) /* Board ID bit1 */
-GPIO(BOARD_VERSION3, PIN(C, 4), GPIO_INPUT) /* Board ID bit2 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 */ /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 */ /* EC_I2C1_3V3_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 */ /* EC_I2C1_3V3_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 */ /* EC_I2C2_PMIC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 */ /* EC_I2C0_0_USBC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 */ /* EC_I2C0_1_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 */ /* EC_I2C3_SENSOR_1V8_SDA/SCL */
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(0, 0xe0), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KEYBOARD_SCAN, 0)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW)
diff --git a/board/nautilus/led.c b/board/nautilus/led.c
deleted file mode 100644
index 86567701f0..0000000000
--- a/board/nautilus/led.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-#define LED_TOTAL_TICKS 16
-#define LED_ON_TICKS 8
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_BLUE,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-/**
- * Set LED color
- *
- * @param color Enumerated color value
- */
-static void set_color(enum led_color color)
-{
- gpio_set_level(GPIO_POWER_LED, !(color == LED_BLUE));
- gpio_set_level(GPIO_LED_ACIN, !(color == LED_GREEN));
- gpio_set_level(GPIO_LED_CHARGE, !(color == LED_RED));
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- gpio_set_level(GPIO_POWER_LED, !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_LED_ACIN, !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_LED_CHARGE, !brightness[EC_LED_COLOR_RED]);
-
- return EC_SUCCESS;
-}
-
-
-static void nautilus_led_set_power_battery(void)
-{
- static unsigned int power_ticks;
- enum led_color cur_led_color = LED_RED;
- enum charge_state chg_state = charge_get_state();
- int charge_percent = charge_get_percent();
-
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- set_color(LED_BLUE);
- return;
- }
-
- /* Flash red on critical battery, which usually inhibits AP power-on. */
- if (battery_is_present() != BP_YES ||
- charge_percent < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- set_color(((power_ticks++ % LED_TOTAL_TICKS) < LED_ON_TICKS) ?
- LED_RED : LED_OFF);
- return;
- }
-
- /* CHIPSET_STATE_OFF */
- switch (chg_state) {
- case PWR_STATE_DISCHARGE:
- if ((charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER) &&
- charge_percent >= BATTERY_LEVEL_NEAR_FULL)
- cur_led_color = LED_GREEN;
- else
- cur_led_color = LED_OFF;
- break;
- case PWR_STATE_CHARGE:
- cur_led_color = LED_RED;
- break;
- case PWR_STATE_ERROR:
- cur_led_color = ((power_ticks++ % LED_TOTAL_TICKS)
- < LED_ON_TICKS) ? LED_RED : LED_GREEN;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- case PWR_STATE_IDLE:
- if(charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER)
- cur_led_color = LED_GREEN;
- else
- cur_led_color = LED_OFF;
- break;
- default:
- cur_led_color = LED_RED;
- break;
- }
-
- set_color(cur_led_color);
-
- if (chg_state != PWR_STATE_ERROR)
- power_ticks = 0;
-}
-
-/**
- * Called by hook task every 250 ms
- */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED) &&
- led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- nautilus_led_set_power_battery();
- }
-}
-
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/nautilus/usb_pd_policy.c b/board/nautilus/usb_pd_policy.c
deleted file mode 100644
index be4716b860..0000000000
--- a/board/nautilus/usb_pd_policy.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio_5v_en = port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN;
- enum gpio_signal gpio_3a_en = port ? GPIO_USB_C1_3A_EN :
- GPIO_USB_C0_3A_EN;
-
- if (system_get_board_version() >= 1) {
- /*
- * For rev1 and beyond, 1.5 vs 3.0 A limit is controlled by a
- * dedicated gpio where high = 3.0A and low = 1.5A. VBUS on/off
- * is controlled by GPIO_USB_C0/1_5V_EN. Both of these signals
- * can remain outputs.
- */
- gpio_set_level(gpio_3a_en, vbus_rp[port] == TYPEC_RP_3A0 ?
- 1 : 0);
- gpio_set_level(gpio_5v_en, vbus_en[port]);
- } else {
- /*
- * Driving USB_Cx_5V_EN high, actually put a 16.5k resistance
- * (2x 33k in parallel) on the NX5P3290 load switch ILIM pin,
- * setting a minimum OCP current of 3186 mA.
- * Putting an internal pull-up on USB_Cx_5V_EN, effectively put
- * a 33k resistor on ILIM, setting a minimum OCP current of
- * 1505 mA.
- */
- int flags = (vbus_rp[port] == TYPEC_RP_1A5 && vbus_en[port]) ?
- (GPIO_INPUT | GPIO_PULL_UP) :
- (GPIO_OUTPUT | GPIO_PULL_UP);
- gpio_set_level(gpio_5v_en, vbus_en[port]);
- gpio_set_flags(gpio_5v_en, flags);
- }
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 1);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- if (system_get_board_version() >= 2)
- pd_set_vbus_discharge(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (system_get_board_version() >= 2 && prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return !gpio_get_level(port ? GPIO_USB_C1_VBUS_WAKE_L :
- GPIO_USB_C0_VBUS_WAKE_L);
-}
-
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_PMIC_SLP_SUS_L);
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Only port 0 supports device mode. */
- if (port != 0)
- return;
-
- gpio_set_level(GPIO_USB2_OTG_ID,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
- gpio_set_level(GPIO_USB2_OTG_VBUSSENSE,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
-}
diff --git a/board/nautilus/vif_override.xml b/board/nautilus/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/nautilus/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/nightfury/battery.c b/board/nightfury/battery.c
deleted file mode 100644
index a3b251229b..0000000000
--- a/board/nightfury/battery.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-#include "system.h"
-#include "util.h"
-
-/*
- * Battery info for all Nightfury battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-/* charging current is limited to 0.45C */
-#define CHARGING_CURRENT_45C 2804
-
-const struct board_batt_params board_battery_info[] = {
- /* Dyna Battery Information */
- [BATTERY_DYNA] = {
- .fuel_gauge = {
- .manuf_name = "Dyna",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7600, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 150, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SDI",
- .device_name = "4404D57",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 55,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SDI;
-
-enum battery_present variant_battery_present(void)
-{
- /*
- * For board version 1, there is a known issue with battery present
- * signal. So, always return BP_YES indicating battery is
- * present. battery_status() later should fail to talk to the battery in
- * case the battery is not really present.
- */
- return BP_YES;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- if(chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return 0;
-
- if(curr->requested_current > CHARGING_CURRENT_45C)
- curr->requested_current = CHARGING_CURRENT_45C;
-
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/nightfury/board.c b/board/nightfury/board.c
deleted file mode 100644
index bed17b834c..0000000000
--- a/board/nightfury/board.c
+++ /dev/null
@@ -1,441 +0,0 @@
-/* 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.
- */
-
-/* Nightfury board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2ds.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_opt3001.h"
-#include "driver/als_tcs3400.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- .freq = 10000
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-/* BC 1.2 chip Configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* Base light sensor private data */
-static struct opt3001_drv_data_t g_opt3001_data = {
- .scale = 1,
- .uscale = 0,
- .offset = 0,
-};
-
-/* LIS2DS private data */
-static struct stprivate_data g_lis2ds_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/*
- * TODO(b/124337208): P0 boards don't have this sensor mounted so the rotation
- * matrix can't be tested properly. This needs to be revisited after EVT to make
- * sure the rotation matrix for the lid sensor is correct.
- */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DS,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2ds_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2ds_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LIS2DS_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = LIS2DS_ODR_MIN_VAL,
- .max_frequency = LIS2DS_ODR_MAX_VAL,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
- [BASE_ALS] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_OPT3001,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &opt3001_drv,
- .drv_data = &g_opt3001_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = OPT3001_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0xd0000, /* scale = 13; uscale = 0 */
- .min_frequency = OPT3001_LIGHT_MIN_FREQ,
- .max_frequency = OPT3001_LIGHT_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- .ec_rate = 0,
- },
- },
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[BASE_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 80,
- .debounce_down_us = 30 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1000,
- .rpm_start = 1000,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/**********************************************************************/
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_IA", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_3] = {
- "TEMP_GT", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "IA",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "GT",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Nightfury Temperature sensors */
-/*
- * TODO(b/138578073): These setting need to be reviewed and set appropriately
- * for Nightfury. They matter when the EC is controlling the fan as opposed to DPTF
- * control.
- */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(50),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1] = thermal_a,
- [TEMP_SENSOR_2] = thermal_a,
- [TEMP_SENSOR_3] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-enum gpio_signal gpio_en_pp5000_a = GPIO_EN_PP5000_A;
-
-static void board_init(void)
-{
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- /* Enable gpio interrupt for lid accel sensor */
- gpio_enable_interrupt(GPIO_LID_ACCEL_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-int board_tcpc_post_init(int port)
-{
- int rv = EC_SUCCESS;
-
- if (port == USB_PD_PORT_TCPC_0)
- /* Set MUX_DP_EQ to 3.6dB (0x98) */
- rv = tcpc_write(port, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
-
- return rv;
-}
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255) || (sku == 1) || (sku == 2);
-}
diff --git a/board/nightfury/board.h b/board/nightfury/board.h
deleted file mode 100644
index 31207b2a52..0000000000
--- a/board/nightfury/board.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/* 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.
- */
-
-/* Nightfury board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_DPTF_MOTION_LID_NO_GMR_SENSOR
-#define CONFIG_DPTF_MULTI_PROFILE
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* LIS2DS Lid accel */
-#define CONFIG_ACCEL_LIS2DS
-#define CONFIG_ACCEL_LIS2DS_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-/* BH1730 and TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define I2C_PORT_ALS I2C_PORT_SENSOR
-#define CONFIG_ALS_OPT3001
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(BASE_ALS))
-
-/* Parameter to calculate LUX on Nightfury */
-#define CONFIG_ALS_BH1730_LUXTH_PARAMS
-/*
- * Calculation formula depends on characteristic of optical window.
- * In case of Nightfury, we can select two different formula
- * as characteristic of optical window.
- * BH1730_LUXTH1_1K is charateristic of optical window.
- * 1. d1_1K/d0_1K * 1000 < BH1730_LUXTH1_1K
- * 2. d1_1K/d0_1K * 1000 >= BH1730_LUXTH1_1K
- * d0 and d1 are unsigned 16 bit. So, d1/d0 max is 65535
- * To meet 2nd condition, make BH1730_LUXTH2_1K to (max+1)*1000
- * Nightfury will not use both BH1730_LUXTH3_1K condition
- * and BH1730_LUXTH4_1K condition.
- */
-#define BH1730_LUXTH1_1K 270
-#define BH1730_LUXTH1_D0_1K 19200
-#define BH1730_LUXTH1_D1_1K 30528
-#define BH1730_LUXTH2_1K 655360000
-#define BH1730_LUXTH2_D0_1K 11008
-#define BH1730_LUXTH2_D1_1K 10752
-#define BH1730_LUXTH3_1K 1030
-#define BH1730_LUXTH3_D0_1K 11008
-#define BH1730_LUXTH3_D1_1K 10752
-#define BH1730_LUXTH4_1K 3670
-#define BH1730_LUXTH4_D0_1K 11008
-#define BH1730_LUXTH4_D1_1K 10752
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY 0
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C0_TCPC_RST GPIO_USB_C0_TCPC_RST_ODL
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-#define GPIO_BAT_LED_RED_L GPIO_LED_1_L
-#define GPIO_BAT_LED_GREEN_L GPIO_LED_3_L
-#define GPIO_PWR_LED_BLUE_L GPIO_LED_2_L
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set via experimentation by finding how high it can be set and still boot
- * the AP successfully, then backing off to provide margin.
- *
- * TODO(b/133444665): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 6144
-#define CONFIG_BATTERY_CHECK_CHARGE_TEMP_LIMITS
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Thermal features */
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* GPIO signals updated base on board version. */
-extern enum gpio_signal gpio_en_pp5000_a;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC3 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- BASE_ALS,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNA,
- BATTERY_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nightfury/build.mk b/board/nightfury/build.mk
deleted file mode 100644
index e91262fd43..0000000000
--- a/board/nightfury/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/nightfury/ec.tasklist b/board/nightfury/ec.tasklist
deleted file mode 100644
index 101713dc6e..0000000000
--- a/board/nightfury/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/nightfury/gpio.inc b/board/nightfury/gpio.inc
deleted file mode 100644
index 68d847fe92..0000000000
--- a/board/nightfury/gpio.inc
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, bmi160_interrupt)
-GPIO_INT(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lis2ds_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(9, 7), GPIO_ODR_HIGH)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(6, 0), GPIO_INPUT)
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(9, 6), GPIO_INPUT)
-GPIO(USB_C0_BC12_VBUS_ON, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_BC12_VBUS_ON, PIN(C, 6), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-
-/*
- * TODO: b/130822500
- * Configured as if it were NC for now
- */
-GPIO(M2_SD_PLN, PIN(A, 0), GPIO_INPUT | /* Provide SSD a shutdown warning */
- GPIO_PULL_UP)
-
-/*
- * TODO: b/130824532
- * Configured as if it were NC for now (but has external 1K pulldown)
- */
-GPIO(IMVP8_PE, PIN(A, 7), GPIO_INPUT) /* Pull high to flash MPS part */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* NC / TP */
-GPIO(TP58, PIN(0, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP73, PIN(8, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP18, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP54, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP57, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP55, PIN(7, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP59, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3C), 0, MODULE_ADC, 0) /* ADC0-3 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/nightfury/led.c b/board/nightfury/led.c
deleted file mode 100644
index dce39acfd6..0000000000
--- a/board/nightfury/led.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Nightfury
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Nightfury : There are 3 leds for AC, Battery and Power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- if (color == EC_LED_COLOR_BLUE)
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- }
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- /* Battery leds must be turn off when blue led is on
- * because Nightfury has 3-in-1 led.
- */
- if(!gpio_get_level(GPIO_PWR_LED_BLUE_L))
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- return;
- }
-
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_BAT_LED_RED_L, !brightness[EC_LED_COLOR_RED]);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/nightfury/vif_override.xml b/board/nightfury/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/nightfury/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/nipperkin/battery.c b/board/nipperkin/battery.c
deleted file mode 100644
index 5a3656c734..0000000000
--- a/board/nipperkin/battery.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-
-/*
- * Battery info for all Guybrush battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 996QA193H Battery Information */
- [BATTERY_SIMPLO_HIGHPOWER] = {
- .fuel_gauge = {
- .manuf_name = "333-1D-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-/* Cosmx CA407792G Battery Information */
- [BATTERY_COSMX] = {
- .fuel_gauge = {
- .manuf_name = "333-AC-11-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_HIGHPOWER;
diff --git a/board/nipperkin/board.c b/board/nipperkin/board.c
deleted file mode 100644
index 42df3c312b..0000000000
--- a/board/nipperkin/board.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Nipperkin board-specific configuration */
-
-#include "adc.h"
-#include "base_fw_config.h"
-#include "board_fw_config.h"
-#include "button.h"
-#include "chipset.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/retimer/ps8811.h"
-#include "driver/retimer/ps8818.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/temp_sensor/tmp112.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "temp_sensor/tmp112.h"
-#include "thermal.h"
-#include "usb_mux.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-__override enum ec_error_list
-board_a1_ps8811_retimer_init(const struct usb_mux *me)
-{
- return EC_SUCCESS;
-}
-
-/*
- * PS8818 set mux board tuning.
- * Adds in board specific gain and DP lane count configuration
- * TODO(b/179036200): Adjust PS8818 tuning for guybrush reference
- */
-__override int board_c1_ps8818_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- /* USB specific config */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* Boost the USB gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Set the RX input termination */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_RX_PHY,
- PS8818_RX_INPUT_TERM_MASK,
- PS8818_RX_INPUT_TERM_112_OHM);
- if (rv)
- return rv;
- }
-
- /* DP specific config */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* Boost the DP gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_DPEQ_LEVEL,
- PS8818_DPEQ_LEVEL_UP_MASK,
- PS8818_DPEQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Enable HPD on the DB */
- gpio_set_level(GPIO_USB_C1_HPD, 1);
- } else {
- /* Disable HPD on the DB */
- gpio_set_level(GPIO_USB_C1_HPD, 0);
- }
-
- return rv;
-}
-
-static void board_init(void)
-{
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_startup(void)
-{
- if (get_board_version() > 1)
- tmp112_init();
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
- HOOK_PRIO_DEFAULT);
-
-int board_get_soc_temp_k(int idx, int *temp_k)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- return tmp112_get_val_k(idx, temp_k);
-}
-
-int board_get_soc_temp_mk(int *temp_mk)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- return tmp112_get_val_mk(TMP112_SOC, temp_mk);
-}
-
-int board_get_ambient_temp_mk(int *temp_mk)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- return tmp112_get_val_mk(TMP112_AMB, temp_mk);
-}
-
-/* ADC Channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_MEMORY] = {
- .name = "MEMORY",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_5V_REGULATOR] = {
- .name = "5V_REGULATOR",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_CORE_IMON1] = {
- .name = "CORE_I",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SOC_IMON2] = {
- .name = "SOC_I",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Temp Sensors */
-static int board_get_temp(int, int *);
-
-const struct tmp112_sensor_t tmp112_sensors[] = {
- { I2C_PORT_SENSOR, TMP112_I2C_ADDR_FLAGS0 },
- { I2C_PORT_SENSOR, TMP112_I2C_ADDR_FLAGS1 },
-};
-BUILD_ASSERT(ARRAY_SIZE(tmp112_sensors) == TMP112_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_soc_temp_k,
- .idx = TMP112_SOC,
- },
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_MEMORY] = {
- .name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = ADC_TEMP_SENSOR_MEMORY,
- },
- [TEMP_SENSOR_5V_REGULATOR] = {
- .name = "5V_REGULATOR",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = ADC_TEMP_SENSOR_5V_REGULATOR,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
- [TEMP_SENSOR_AMBIENT] = {
- .name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = tmp112_get_val_k,
- .idx = TMP112_AMB,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT] = {
- [TEMP_SENSOR_SOC] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- /* TODO: Setting fan off to 0 so it's allways on */
- .temp_fan_off = C_TO_K(0),
- .temp_fan_max = C_TO_K(70),
- },
- [TEMP_SENSOR_CHARGER] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
- },
- [TEMP_SENSOR_MEMORY] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = 0,
- .temp_fan_max = 0,
- },
- [TEMP_SENSOR_CPU] = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(100),
- [EC_TEMP_THRESH_HALT] = C_TO_K(105),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- /*
- * CPU temp sensor fan thresholds are high because they are a
- * backup for the SOC temp sensor fan thresholds.
- */
- .temp_fan_off = C_TO_K(60),
- .temp_fan_max = C_TO_K(90),
- },
- /*
- * Note: Leave ambient entries at 0, both as it does not represent a
- * hotspot and as not all boards have this sensor
- */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-static int board_get_temp(int idx, int *temp_k)
-{
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
- return get_temp_3v3_30k9_47k_4050b(idx, temp_k);
-}
-
-/* Called on AP resume to S0 */
-static void board_chipset_resume(void)
-{
- ioex_set_level(IOEX_HDMI_DATA_EN, 1);
- ioex_set_level(IOEX_EN_PWR_HDMI, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP suspend */
-static void board_chipset_suspend(void)
-{
- ioex_set_level(IOEX_EN_PWR_HDMI, 0);
- ioex_set_level(IOEX_HDMI_DATA_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
diff --git a/board/nipperkin/board.h b/board/nipperkin/board.h
deleted file mode 100644
index df57cade06..0000000000
--- a/board/nipperkin/board.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Guybrush board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Motion sensing drivers */
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-
-/* EC console commands */
-#define CONFIG_CMD_BUTTON
-
-/* USB Type C and USB PD defines */
-
-/* USB Type A Features */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* LED features */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* Battery Types */
-enum battery_type {
- BATTERY_SIMPLO_HIGHPOWER,
- BATTERY_COSMX,
- BATTERY_TYPE_COUNT,
-};
-
-/* ADC Channels */
-enum adc_channel {
- ADC_TEMP_SENSOR_MEMORY = 0,
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_5V_REGULATOR,
- ADC_CORE_IMON1,
- ADC_SOC_IMON2,
- ADC_CH_COUNT
-};
-
-/* Temp Sensors */
-enum temp_sensor_id {
- TEMP_SENSOR_SOC = 0,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_MEMORY,
- TEMP_SENSOR_5V_REGULATOR,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nipperkin/board_fw_config.c b/board/nipperkin/board_fw_config.c
deleted file mode 100644
index c9fa01bc7a..0000000000
--- a/board/nipperkin/board_fw_config.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "base_fw_config.h"
-#include "board_fw_config.h"
-
-bool board_has_kblight(void)
-{
- return (get_fw_config_field(FW_CONFIG_KBLIGHT_OFFSET,
- FW_CONFIG_KBLIGHT_WIDTH) == FW_CONFIG_KBLIGHT_YES);
-}
-
-enum board_usb_c1_mux board_get_usb_c1_mux(void)
-{
- return USB_C1_MUX_PS8818;
-};
-
-enum board_usb_a1_retimer board_get_usb_a1_retimer(void)
-{
- return USB_A1_RETIMER_PS8811;
-};
-
-bool board_has_privacy_panel(void)
-{
- return (get_fw_config_field(FW_CONFIG_KEYBOARD_OFFSET,
- FW_CONFIG_KEYBOARD_WIDTH) ==
- FW_CONFIG_KEYBOARD_PRIVACY_YES);
-}
diff --git a/board/nipperkin/board_fw_config.h b/board/nipperkin/board_fw_config.h
deleted file mode 100644
index 77306ccb6f..0000000000
--- a/board/nipperkin/board_fw_config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _NIPPERKIN_BOARD_FW_CONFIG__H_
-#define _NIPPERKIN_BOARD_FW_CONFIG__H_
-
-/****************************************************************************
- * Nipperkin CBI FW Configuration
- */
-
-/*
- * Keyboard Backlight (1 bit)
- */
-#define FW_CONFIG_KBLIGHT_OFFSET 0
-#define FW_CONFIG_KBLIGHT_WIDTH 1
-#define FW_CONFIG_KBLIGHT_NO 0
-#define FW_CONFIG_KBLIGHT_YES 1
-
-/*
- * Bit 1 ~ 6 not related to EC function
- */
-
-/*
- * Keyboard (1 bit)
- */
-#define FW_CONFIG_KEYBOARD_OFFSET 7
-#define FW_CONFIG_KEYBOARD_WIDTH 1
-#define FW_CONFIG_KEYBOARD_PRIVACY_YES 0
-#define FW_CONFIG_KEYBOARD_PRIVACY_NO 1
-
-bool board_has_privacy_panel(void);
-
-#endif /* _NIPPERKIN_BOARD_FW_CONFIG__H_ */
diff --git a/board/nipperkin/build.mk b/board/nipperkin/build.mk
deleted file mode 100644
index e4fdcf4afd..0000000000
--- a/board/nipperkin/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-BASEBOARD:=guybrush
-
-board-y=board.o
-board-y+=board_fw_config.o led.o battery.o
diff --git a/board/nipperkin/ec.tasklist b/board/nipperkin/ec.tasklist
deleted file mode 100644
index ccdff9847c..0000000000
--- a/board/nipperkin/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/nipperkin/gpio.inc b/board/nipperkin/gpio.inc
deleted file mode 100644
index ec35ce6c2c..0000000000
--- a/board/nipperkin/gpio.inc
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the board GPIOs that we care about. */
-
-#include "base_gpio.inc"
-
-/* LED Signals */
-GPIO(C0_CHARGE_LED_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(C0_CHARGE_LED_WHITE_L, PIN(8, 0), GPIO_OUT_HIGH)
-GPIO(C1_CHARGE_LED_AMBER_L, PIN(6, 7), GPIO_OUT_HIGH)
-GPIO(C1_CHARGE_LED_WHITE_L, PIN(7, 0), GPIO_OUT_HIGH)
-
-/* HDMI */
-IOEX(EN_PWR_HDMI, EXPIN(USBC_PORT_C0, 0, 3), GPIO_OUT_LOW)
-IOEX(HDMI_DATA_EN, EXPIN(USBC_PORT_C0, 1, 4), GPIO_OUT_LOW)
-
-/* Test Points */
-GPIO(EC_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PS2_RST, PIN(6, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_GPIOB0, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_GPIO81, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_FLPRG2, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PSL_GPO, PIN(D, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_PWM7, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/nipperkin/led.c b/board/nipperkin/led.c
deleted file mode 100644
index 68a9d11b62..0000000000
--- a/board/nipperkin/led.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "hooks.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICKS_PER_CYCLE 10
-#define LED_TICKS_PER_CYCLE_S3 10
-#define LED_ON_TICKS 5
-#define POWER_LED_ON_S3_TICKS 5
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- LED_RIGHT_PORT = 0,
- LED_LEFT_PORT
-};
-
-static void led_set_color_battery(enum led_port port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == LED_RIGHT_PORT ? GPIO_C0_CHARGE_LED_AMBER_L :
- GPIO_C1_CHARGE_LED_AMBER_L);
- white_led = (port == LED_RIGHT_PORT ? GPIO_C0_CHARGE_LED_WHITE_L :
- GPIO_C1_CHARGE_LED_WHITE_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LED_LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LED_LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LED_LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LED_RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LED_RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(LED_RIGHT_PORT, LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(LED_RIGHT_PORT,
- (port == LED_RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LED_LEFT_PORT,
- (port == LED_LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int power_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- /*
- * Override battery LEDs for Nipperkin, Nipperkin is non-power LED
- * design, blinking both two side battery white LEDs to indicate
- * system suspend with non-charging state.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
-
- power_ticks++;
-
- led_set_color_battery(LED_RIGHT_PORT, power_ticks
- % LED_TICKS_PER_CYCLE_S3 < POWER_LED_ON_S3_TICKS
- ? LED_WHITE : LED_OFF);
- led_set_color_battery(LED_LEFT_PORT, power_ticks
- % LED_TICKS_PER_CYCLE_S3 < POWER_LED_ON_S3_TICKS
- ? LED_WHITE : LED_OFF);
- return;
- }
-
- power_ticks = 0;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(LED_RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(LED_RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LED_LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/nipperkin/vif_override.xml b/board/nipperkin/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/nipperkin/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/nocturne/base_detect.c b/board/nocturne/base_detect.c
deleted file mode 100644
index 48c7b1f9dd..0000000000
--- a/board/nocturne/base_detect.c
+++ /dev/null
@@ -1,393 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * Nocturne base detection code.
- *
- * Nocturne has two analog detection pins with which it monitors to determine
- * the base status: the attach, and detach pins.
- *
- * When the voltages cross a certain threshold, after some debouncing, the base
- * is deemed connected. Nocturne then applies the base power and monitors for
- * power faults from the eFuse as well as base disconnection. Similarly, once
- * the voltages cross a different threshold, after some debouncing, the base is
- * deemed disconnected. At this point, Nocturne disables the base power.
- */
-
-#include "adc.h"
-#include "base_state.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USB, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USB, format, ## args)
-
-#define DEFAULT_POLL_TIMEOUT_US (250 * MSEC)
-#define DEBOUNCE_TIMEOUT_US (20 * MSEC)
-#define RAPID_DEBOUNCE_TIMEOUT_US (4 * MSEC)
-#define POWER_FAULT_RETRY_INTERVAL_US (15 * MSEC)
-
-/*
- * Number of times to attempt re-applying power within 1s when a fault occurs.
- */
-#define POWER_FAULT_MAX_RETRIES 3
-
-/* Thresholds for attach pin reading when power is not applied. */
-#define ATTACH_MIN_MV 300
-#define ATTACH_MAX_MV 900
-
-/* Threshold for attach pin reading when power IS applied. */
-#define PWREN_ATTACH_MIN_MV 2300
-
-/* Threshold for detach pin reading. */
-#define DETACH_MIN_MV 10
-
-/*
- * For the base to be considered detached, the average detach pin readings must
- * be below this value. The reason that this is higher than DETACH_MIN_MV is
- * that due to leakage current, sometimes the readings bounce under and over
- * DETACH_MIN_MV.
- */
-#define DETACH_MIN_AVG_MV 20
-
-/*
- * The number of recent samples used to determine average detach pin readings.
- */
-#define WINDOW_SIZE 5
-
-
-enum base_detect_state {
- BASE_DETACHED = 0,
- BASE_ATTACHED_DEBOUNCE,
- BASE_ATTACHED,
- BASE_DETACHED_DEBOUNCE,
- // Default for |forced_state|. Should be set only on |forced_state|.
- BASE_NO_FORCED_STATE,
-};
-
-static int debug;
-static enum base_detect_state forced_state = BASE_NO_FORCED_STATE;
-static enum base_detect_state state;
-static int detach_avg[WINDOW_SIZE]; /* Rolling buffer of detach pin readings. */
-static uint8_t last_idx; /* last insertion index into the buffer. */
-static timestamp_t detached_decision_deadline;
-
-static void enable_base_interrupts(int enable)
-{
- int (*fn)(enum gpio_signal) = enable ? gpio_enable_interrupt :
- gpio_disable_interrupt;
-
- /* This pin is present on boards newer than rev 0. */
- if (board_get_version() > 0)
- fn(GPIO_BASE_USB_FAULT_ODL);
-
- fn(GPIO_BASE_PWR_FAULT_ODL);
-}
-
-static void base_power_enable(int enable)
-{
- /* Nothing to do if the state is the same. */
- if (gpio_get_level(GPIO_BASE_PWR_EN) == enable)
- return;
-
- if (enable) {
- /* Apply power to the base only if the AP is on or sleeping. */
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND)) {
- gpio_set_level(GPIO_BASE_PWR_EN, 1);
- /* Allow time for the fault line to rise. */
- msleep(1);
- /* Monitor for base power faults. */
- enable_base_interrupts(1);
- }
- } else {
- /*
- * Disable power fault interrupt. It will read low when base
- * power is removed.
- */
- enable_base_interrupts(0);
- /* Now, remove power to the base. */
- gpio_set_level(GPIO_BASE_PWR_EN, 0);
- }
-
- CPRINTS("BP: %d", enable);
-}
-
-static void base_detect_changed(void)
-{
- switch (state) {
- case BASE_DETACHED:
- base_set_state(0);
- base_power_enable(0);
- break;
-
- case BASE_ATTACHED:
- base_set_state(1);
- base_power_enable(1);
- break;
-
- default:
- return;
- };
-}
-
-static int base_seems_attached(int attach_pin_mv, int detach_pin_mv)
-{
- /* We can't tell if we don't have good readings. */
- if (attach_pin_mv == ADC_READ_ERROR ||
- detach_pin_mv == ADC_READ_ERROR)
- return 0;
-
- if (gpio_get_level(GPIO_BASE_PWR_EN))
- return (attach_pin_mv >= PWREN_ATTACH_MIN_MV) &&
- (detach_pin_mv >= DETACH_MIN_MV);
- else
- return (attach_pin_mv <= ATTACH_MAX_MV) &&
- (attach_pin_mv >= ATTACH_MIN_MV) &&
- (detach_pin_mv <= DETACH_MIN_MV);
-}
-
-static int base_seems_detached(int attach_pin_mv, int detach_pin_mv)
-{
- /* We can't tell if we don't have good readings. */
- if (attach_pin_mv == ADC_READ_ERROR ||
- detach_pin_mv == ADC_READ_ERROR)
- return 0;
-
- return (attach_pin_mv >= PWREN_ATTACH_MIN_MV) &&
- (detach_pin_mv <= DETACH_MIN_MV);
-}
-
-static void set_state(enum base_detect_state new_state)
-{
- if (new_state != state) {
- CPRINTS("BD: st%d", new_state);
- state = new_state;
- }
-}
-
-static int average_detach_mv(void)
-{
- int i;
- int sum = 0;
-
- for (i = 0; i < WINDOW_SIZE; i++)
- sum += detach_avg[i];
-
- return sum / WINDOW_SIZE;
-}
-
-static void base_detect_deferred(void);
-DECLARE_DEFERRED(base_detect_deferred);
-static void base_detect_deferred(void)
-{
- int attach_reading;
- int detach_reading;
- int timeout = DEFAULT_POLL_TIMEOUT_US;
-
- if (forced_state != BASE_NO_FORCED_STATE) {
- if (state != forced_state) {
- CPRINTS("BD forced %s",
- forced_state == BASE_ATTACHED ?
- "attached" : "detached");
- set_state(forced_state);
- base_detect_changed();
- }
- return;
- }
-
- attach_reading = adc_read_channel(ADC_BASE_ATTACH);
- detach_reading = adc_read_channel(ADC_BASE_DETACH);
-
- /* Update the detach_avg */
- detach_avg[last_idx] = detach_reading;
-
- if (debug) {
- int i;
-
- CPRINTS("BD st%d: att: %dmV det: %dmV", state,
- attach_reading,
- detach_reading);
- CPRINTF("det readings = [");
- for (i = 0; i < WINDOW_SIZE; i++)
- CPRINTF("%d%s ", detach_avg[i],
- i == last_idx ? "*" : " ");
- CPRINTF("]\n");
- }
- last_idx = (last_idx + 1) % WINDOW_SIZE;
-
- switch (state) {
- case BASE_DETACHED:
- /* Check to see if a base may be attached. */
- if (base_seems_attached(attach_reading, detach_reading)) {
- timeout = DEBOUNCE_TIMEOUT_US;
- set_state(BASE_ATTACHED_DEBOUNCE);
- }
- break;
-
- case BASE_ATTACHED_DEBOUNCE:
- /* Check to see if it's still attached. */
- if (base_seems_attached(attach_reading, detach_reading)) {
- CPRINTS("BD: att: %dmV det: %dmV", attach_reading,
- detach_reading);
- set_state(BASE_ATTACHED);
- base_detect_changed();
- } else if (base_seems_detached(attach_reading,
- detach_reading)) {
- set_state(BASE_DETACHED);
- }
- break;
-
- case BASE_ATTACHED:
- /* Check to see if a base may be detached. */
- if (base_seems_detached(attach_reading, detach_reading)) {
- /*
- * The base seems detached based off of one reading.
- * Let's pay closer attention to the pins and then
- * decide if it really is detached or not. It could
- * have been just a spurious low reading.
- */
- timeout = RAPID_DEBOUNCE_TIMEOUT_US;
-
- /*
- * Set a deadline to make a call about actually being
- * detached. In the meantime, we'll collect samples
- * and calculate an average.
- */
- detached_decision_deadline = get_time();
- detached_decision_deadline.val += DEBOUNCE_TIMEOUT_US;
- set_state(BASE_DETACHED_DEBOUNCE);
- }
- break;
-
- case BASE_DETACHED_DEBOUNCE:
- /* Check to see if a base is still detached.
- *
- * We look at rolling average of the detach readings to make
- * sure one or two consecutive low samples don't result in a
- * false detach.
- */
- CPRINTS("BD: det avg: %d", average_detach_mv());
- if (timestamp_expired(detached_decision_deadline, NULL)) {
- /* Alright, time's up, time to decide. */
- if (average_detach_mv() < DETACH_MIN_AVG_MV) {
- set_state(BASE_DETACHED);
- base_detect_changed();
- } else {
- set_state(BASE_ATTACHED);
- }
- }
-
- /*
- * Shorten the timeout to collect more samples before the
- * deadline.
- */
- timeout = RAPID_DEBOUNCE_TIMEOUT_US;
- break;
- /* TODO(b/74239259): do you want to add an interrupt? */
-
- default:
- break;
- };
-
- /* Check again in the appropriate time only if the AP is on. */
- if (chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND))
- hook_call_deferred(&base_detect_deferred_data, timeout);
-};
-DECLARE_HOOK(HOOK_INIT, base_detect_deferred, HOOK_PRIO_INIT_ADC + 1);
-
-static void restart_state_machine(void)
-{
- /*
- * Since we do not poll in anything lower than S3, the base may or may
- * not be connected, therefore intentionally set the state to detached
- * such that we can detect and power on the base if necessary.
- */
- set_state(BASE_DETACHED);
- hook_call_deferred(&base_detect_deferred_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, restart_state_machine, HOOK_PRIO_DEFAULT);
-
-static void power_off_base(void)
-{
- base_power_enable(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, power_off_base, HOOK_PRIO_DEFAULT);
-
-static uint8_t base_power_on_attempts;
-static void clear_base_power_on_attempts_deferred(void)
-{
- base_power_on_attempts = 0;
-}
-DECLARE_DEFERRED(clear_base_power_on_attempts_deferred);
-
-static void check_and_reapply_base_power_deferred(void)
-{
- if (state != BASE_ATTACHED)
- return;
-
- if (base_power_on_attempts < POWER_FAULT_MAX_RETRIES) {
- CPRINTS("Reapply base pwr");
- base_power_enable(1);
- base_power_on_attempts++;
-
- hook_call_deferred(&clear_base_power_on_attempts_deferred_data,
- SECOND);
- }
-
-}
-DECLARE_DEFERRED(check_and_reapply_base_power_deferred);
-
-void base_pwr_fault_interrupt(enum gpio_signal s)
-{
- /* Inverted because active low. */
- int pwr_fault_detected = !gpio_get_level(GPIO_BASE_PWR_FAULT_ODL);
- int usb_fault_detected = s == GPIO_BASE_USB_FAULT_ODL;
-
- if (pwr_fault_detected | usb_fault_detected) {
- /* Turn off base power. */
- CPRINTS("Base Pwr Flt! %s%s", pwr_fault_detected ? "p" : "-",
- usb_fault_detected ? "u" : "-");
- base_power_enable(0);
-
- /*
- * Try and apply power in a bit if maybe it was just a temporary
- * condition.
- */
- hook_call_deferred(&check_and_reapply_base_power_deferred_data,
- POWER_FAULT_RETRY_INTERVAL_US);
- }
-}
-
-static int command_basedetectdebug(int argc, char **argv)
-{
- if ((argc > 1) && !parse_bool(argv[1], &debug))
- return EC_ERROR_PARAM1;
-
- CPRINTS("BD: %sst%d", forced_state != BASE_NO_FORCED_STATE ?
- "forced " : "", state);
- return EC_SUCCESS;
-}
-
-DECLARE_CONSOLE_COMMAND(basedebug, command_basedetectdebug, "[ena|dis]",
- "En/Disable base detection debug");
-
-
-void base_force_state(enum ec_set_base_state_cmd state)
-{
- if (state == EC_SET_BASE_STATE_ATTACH)
- forced_state = BASE_ATTACHED;
- else if (state == EC_SET_BASE_STATE_DETACH)
- forced_state = BASE_DETACHED;
- else
- forced_state = BASE_NO_FORCED_STATE;
-
- hook_call_deferred(&base_detect_deferred_data, 0);
-}
diff --git a/board/nocturne/battery.c b/board/nocturne/battery.c
deleted file mode 100644
index ff3f16fa33..0000000000
--- a/board/nocturne/battery.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "charge_state_v2.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "temp_sensor.h"
-#include "usb_pd.h"
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define SB_SHUTDOWN_DATA 0x0010
-
-/*
- * We need to stop charging the battery when the DRAM temperature sensor gets
- * over 47 C (320 K), and resume charging once it cools back down.
- */
-#define DRAM_STOPCHARGE_TEMP_K 320
-
-/* Battery info */
-static const struct battery_info info = {
- .voltage_max = 8880,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 160,
- .start_charging_min_c = 10,
- .start_charging_max_c = 50,
- .charging_min_c = 10,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
-};
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA);
- if (rv != EC_SUCCESS)
- return EC_RES_ERROR;
-
- rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA);
- return rv ? EC_RES_ERROR : EC_RES_SUCCESS;
-}
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-enum battery_disconnect_state battery_get_disconnect_state(void)
-{
- uint8_t data[6];
- int rv;
-
- /*
- * Take note if we find that the battery isn't in disconnect state,
- * and always return NOT_DISCONNECTED without probing the battery.
- * This assumes the battery will not go to disconnect state during
- * runtime.
- */
- static int not_disconnected;
-
- if (not_disconnected)
- return BATTERY_NOT_DISCONNECTED;
-
- /* Check if battery discharge FET is disabled. */
- rv = sb_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
- if (~data[3] & (BATTERY_DISCHARGING_DISABLED)) {
- not_disconnected = 1;
- return BATTERY_NOT_DISCONNECTED;
- }
-
- /*
- * Battery discharge FET is disabled. Verify that we didn't enter this
- * state due to a safety fault.
- */
- rv = sb_read_mfgacc(PARAM_SAFETY_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv || data[2] || data[3] || data[4] || data[5])
- return BATTERY_DISCONNECT_ERROR;
-
- /* No safety fault, battery is disconnected */
- return BATTERY_DISCONNECTED;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-static int should_stopcharge(void)
-{
- int t_dram;
-
- /* We can only stop charging on AC, if AC is plugged in. */
- if (!gpio_get_level(GPIO_AC_PRESENT))
- return 0;
-
- /*
- * The DRAM temperature sensor is only available when the AP is on,
- * therefore only inhibit charging when we can actually read a
- * temperature.
- */
- if (chipset_in_state(CHIPSET_STATE_ON) &&
- !temp_sensor_read(TEMP_SENSOR_DRAM, &t_dram) &&
- (t_dram >= DRAM_STOPCHARGE_TEMP_K))
- return 1;
- else
- return 0;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- static uint8_t stopcharge_on_ac;
- int enable_stopcharge;
-
- enable_stopcharge = should_stopcharge();
- if (enable_stopcharge != stopcharge_on_ac) {
- stopcharge_on_ac = enable_stopcharge;
- if (enable_stopcharge) {
- chgstate_set_manual_current(0);
- } else {
- chgstate_set_manual_current(-1);
- }
- }
-
- return 0;
-}
diff --git a/board/nocturne/board.c b/board/nocturne/board.c
deleted file mode 100644
index 5987bae025..0000000000
--- a/board/nocturne/board.c
+++ /dev/null
@@ -1,810 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Nocturne board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charge_state_v2.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "compile_time_macros.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_opt3001.h"
-#include "driver/charger/isl923x.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/temp_sensor/bd99992gw.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "lpc.h"
-#include "mkbp_event.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "system.h"
-#include "system_chip.h"
-#include "switch.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal s)
-{
- int port = -1;
-
- switch (s) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-/*
- * Nocturne shares the TCPC Alert# line with the TI SN5S330's interrupt line.
- * Therefore, we need to also check on that part.
- */
-static void usb_c_interrupt(enum gpio_signal s)
-{
- int port = (s == GPIO_USB_C0_PD_INT_ODL) ? 0 : 1;
-
- tcpc_alert_event(s);
- sn5s330_interrupt(port);
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-static void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-#include "gpio_list.h"
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-const struct adc_t adc_channels[] = {
- [ADC_BASE_ATTACH] = {
- "BASE ATTACH", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
-
- [ADC_BASE_DETACH] = {
- "BASE DETACH", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_DB0_LED_RED] = { 3, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- 986 },
- [PWM_CH_DB0_LED_GREEN] = { 0, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- 986 },
- [PWM_CH_DB0_LED_BLUE] = { 2, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- 986 },
- [PWM_CH_DB1_LED_RED] = { 7, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- 986 },
- [PWM_CH_DB1_LED_GREEN] = { 5, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- 986 },
- [PWM_CH_DB1_LED_BLUE] = { 6, PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- 986 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {
- "battery", I2C_PORT_BATTERY, 100, GPIO_EC_I2C4_BATTERY_SCL,
- GPIO_EC_I2C4_BATTERY_SDA
- },
-
- {
- "power", I2C_PORT_POWER, 100, GPIO_EC_I2C0_POWER_SCL,
- GPIO_EC_I2C0_POWER_SDA
- },
-
- {
- "als_gyro", I2C_PORT_ALS_GYRO, 400, GPIO_EC_I2C5_ALS_GYRO_SCL,
- GPIO_EC_I2C5_ALS_GYRO_SDA
- },
-
- {
- "usbc0", I2C_PORT_USB_C0, 100, GPIO_USB_C0_SCL, GPIO_USB_C0_SDA
- },
-
- {
- "usbc1", I2C_PORT_USB_C1, 100, GPIO_USB_C1_SCL, GPIO_USB_C1_SDA
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-
-/*
- * Motion Sense
- */
-
-/* Lid Sensor mutex */
-static struct mutex g_lid_mutex;
-
-/* Sensor driver data */
-static struct bmi_drv_data_t g_bmi160_data;
-static struct opt3001_drv_data_t g_opt3001_data = {
- .scale = 1,
- .uscale = 0,
- .offset = 0,
-};
-
-/* Matrix to rotate accel/gyro into standard reference frame. */
-const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "BMI160 ACC",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ALS_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC setup accel for chrome usage */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [LID_GYRO] = {
- .name = "BMI160 GYRO",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ALS_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 1000, /* dps */
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
- [LID_ALS] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_OPT3001,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &opt3001_drv,
- .drv_data = &g_opt3001_data,
- .port = I2C_PORT_ALS_GYRO,
- .i2c_spi_addr_flags = OPT3001_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- /* scale = 43.4513 http://b/111528815#comment14 */
- .default_range = 0x2b11a1,
- .min_frequency = OPT3001_LIGHT_MIN_FREQ,
- .max_frequency = OPT3001_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [VSYNC] = {
- .name = "Camera VSYNC",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[LID_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void disable_sensor_irqs(void)
-{
- /*
- * In S5, sensors are unpowered, therefore disable their interrupts on
- * shutdown.
- */
- gpio_disable_interrupt(GPIO_ACCELGYRO3_INT_L);
- gpio_disable_interrupt(GPIO_RCAM_VSYNC);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, disable_sensor_irqs, HOOK_PRIO_DEFAULT);
-
-static void enable_sensor_irqs(void)
-{
- /*
- * Re-enable the sensor interrupts when entering S0.
- */
- gpio_enable_interrupt(GPIO_ACCELGYRO3_INT_L);
- gpio_enable_interrupt(GPIO_RCAM_VSYNC);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, enable_sensor_irqs, HOOK_PRIO_DEFAULT);
-
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-static void imvp8_tune_deferred(void)
-{
- /* For the IMVP8, reduce the steps during decay from 3 to 1. */
- if (i2c_write16(I2C_PORT_POWER, I2C_ADDR_MP2949_FLAGS,
- 0xFA, 0x0AC5))
- CPRINTS("Failed to change step decay!");
-}
-DECLARE_DEFERRED(imvp8_tune_deferred);
-
-void board_chipset_resume(void)
-{
- /* Write to the IMVP8 after 250ms. */
- hook_call_deferred(&imvp8_tune_deferred_data, 250 * MSEC);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_version(void)
-{
- static int board_version = -1;
-
- if (board_version == -1) {
- board_version = 0;
- /* BRD_ID0 is LSb. */
- if (gpio_get_level(GPIO_EC_BRD_ID0))
- board_version |= 0x1;
- if (gpio_get_level(GPIO_EC_BRD_ID1))
- board_version |= 0x2;
- if (gpio_get_level(GPIO_EC_BRD_ID2))
- board_version |= 0x4;
- if (gpio_get_level(GPIO_EC_BRD_ID3))
- board_version |= 0x8;
- }
-
- return board_version;
-}
-
-void board_hibernate(void)
-{
- int p;
-
- /* Configure PSL pins */
- for (p = 0; p < hibernate_wake_pins_used; p++)
- system_config_psl_mode(hibernate_wake_pins[p]);
-
- /*
- * Enter PSL mode. Note that on Nocturne, simply enabling PSL mode does
- * not cut the EC's power. Therefore, we'll need to cut off power via
- * the ROP PMIC afterwards.
- */
- system_enter_psl_mode();
-
- /* Cut off DSW power via the ROP PMIC. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x49, 0x1);
-
- /* Wait for power to be cut. */
- while (1)
- ;
-}
-
-static void board_init(void)
-{
- /* Enable USB Type-C interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /* Enable sensor IRQs if we're in S0. */
- if (chipset_in_state(CHIPSET_STATE_ON))
- enable_sensor_irqs();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-int board_is_i2c_port_powered(int port)
-{
- if (port != I2C_PORT_ALS_GYRO)
- return 1;
-
- /* The sensors are not powered in anything lower than S5. */
- return chipset_in_state(CHIPSET_STATE_ANY_OFF) ? 0 : 1;
-}
-
-static void board_lid_change(void)
-{
- /* This is done in hardware on old revisions. */
- if (board_get_version() <= 1)
- return;
-
- if (lid_is_open())
- gpio_set_level(GPIO_UHALL_PWR_EN, 1);
- else
- gpio_set_level(GPIO_UHALL_PWR_EN, 0);
-}
-DECLARE_HOOK(HOOK_LID_CHANGE, board_lid_change, HOOK_PRIO_DEFAULT);
-
-static void board_pmic_disable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (0) - Disable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x3a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x2a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage 0.85V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x2a);
-}
-
-static void board_pmic_enable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (1) - Enable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x7a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x6a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage 0.85V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x6a);
-}
-
-__override void power_board_handle_host_sleep_event(
- enum host_sleep_event state)
-{
- if (state == HOST_SLEEP_EVENT_S0IX_SUSPEND)
- board_pmic_enable_slp_s0_vr_decay();
- else if (state == HOST_SLEEP_EVENT_S0IX_RESUME)
- board_pmic_disable_slp_s0_vr_decay();
-}
-
-static void board_pmic_init(void)
-{
- int pgmask1;
-
- /* Mask V5A_DS3_PG from PMIC PGMASK1. */
- if (i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- 0x18, &pgmask1))
- return;
- pgmask1 |= BIT(2);
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x18, pgmask1);
-
- board_pmic_disable_slp_s0_vr_decay();
-
- /* Enable active discharge (100 ohms) on V33A_PCH and V1.8A. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3D, 0x5);
-
- /* Enable active discharge (500 ohms) on 1.8U and (100 ohms) 1.2U. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3E, 0xD0);
-}
-DECLARE_HOOK(HOOK_INIT, board_pmic_init, HOOK_PRIO_DEFAULT);
-
-static void board_quirks(void)
-{
- /*
- * Newer board revisions have external pull ups stuffed, so remove the
- * internal pulls.
- */
- if (board_get_version() > 0) {
- gpio_set_flags(GPIO_USB_C0_PD_INT_ODL, GPIO_INT_FALLING);
- gpio_set_flags(GPIO_USB_C1_PD_INT_ODL, GPIO_INT_FALLING);
- }
-
- /*
- * Older boards don't have the SBU bypass circuitry needed for CCD, so
- * enable the CCD_MODE_ODL interrupt such that we can help in making
- * sure the SBU FETs are connected.
- */
- if (board_get_version() < 2)
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_quirks, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- int lvl;
-
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the levels are inverted because the pin is active low. */
- lvl = is_overcurrented ? 0 : 1;
-
- switch (port) {
- case 0:
- gpio_set_level(GPIO_USB_C0_OC_ODL, lvl);
- break;
-
- case 1:
- gpio_set_level(GPIO_USB_C1_OC_ODL, lvl);
- break;
-
- default:
- return;
- };
-}
-
-static int read_gyro_sensor_temp(int idx, int *temp_ptr)
-{
- /*
- * The gyro is only powered in S0, so don't go and read it if the AP is
- * off.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- return bmi160_get_sensor_temp(idx, temp_ptr);
-}
-
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0},
-
- /* These BD99992GW temp sensors are only readable in S0 */
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM0},
- {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM1},
- {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM2},
- {"eMMC", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM3},
- /* The Gyro temperature sensor is only readable in S0. */
- {"Gyro", TEMP_SENSOR_TYPE_BOARD, read_gyro_sensor_temp, LID_GYRO}
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Thermal limits for each temp sensor. All temps are in degrees K. Must be in
- * same order as enum temp_sensor_id. To always ignore any temp, use 0.
- */
-struct ec_thermal_config thermal_params[] = {
- /* {Twarn, Thigh, Thalt}, fan_off, fan_max */
- {{0, 0, 0}, {0, 0, 0}, 0, 0}, /* Battery */
- {{0, 0, 0}, {0, 0, 0}, 0, 0}, /* Ambient */
- {{0, 0, 0}, {0, 0, 0}, 0, 0}, /* Charger */
- {{0, C_TO_K(52), 0}, {0, 0, 0}, 0, 0}, /* DRAM */
- {{0, 0, 0}, {0, 0, 0}, 0, 0}, /* eMMC */
- {{0, 0, 0}, {0, 0, 0}, 0, 0} /* Gyro */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-
-/*
- * Check if PMIC fault registers indicate VR fault. If yes, print out fault
- * register info to console. Additionally, set panic reason so that the OS can
- * check for fault register info by looking at offset 0x14(PWRSTAT1) and
- * 0x15(PWRSTAT2) in cros ec panicinfo.
- */
-static void board_report_pmic_fault(const char *str)
-{
- int vrfault, pwrstat1 = 0, pwrstat2 = 0;
- uint32_t info;
-
- /* RESETIRQ1 -- Bit 4: VRFAULT */
- if (i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, &vrfault)
- != EC_SUCCESS)
- return;
-
- if (!(vrfault & BIT(4)))
- return;
-
- /* VRFAULT has occurred, print VRFAULT status bits. */
-
- /* PWRSTAT1 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, &pwrstat1);
-
- /* PWRSTAT2 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, &pwrstat2);
-
- CPRINTS("PMIC VRFAULT: %s", str);
- CPRINTS("PMIC VRFAULT: PWRSTAT1=0x%02x PWRSTAT2=0x%02x", pwrstat1,
- pwrstat2);
-
- /* Clear all faults -- Write 1 to clear. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, BIT(4));
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, pwrstat1);
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, pwrstat2);
-
- /*
- * Status of the fault registers can be checked in the OS by looking at
- * offset 0x14(PWRSTAT1) and 0x15(PWRSTAT2) in cros ec panicinfo.
- */
- info = ((pwrstat2 & 0xFF) << 8) | (pwrstat1 & 0xFF);
- panic_set_reason(PANIC_SW_PMIC_FAULT, info, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
- /* GPIO_USB_PD_RST_L resets all the TCPCs. */
- gpio_set_level(GPIO_USB_PD_RST_L, 0);
- msleep(10); /* TODO(aaboagye): Verify min hold time. */
- gpio_set_level(GPIO_USB_PD_RST_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
- int rv;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- if (port == CHARGE_PORT_NONE) {
- /* Disable all ports. */
- for (i = 0; i < ppc_cnt; i++) {
- rv = ppc_vbus_sink_enable(i, 0);
- /*
- * Deliberately ignoring this error since it may cause
- * an assertion error.
- */
- if (rv)
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (ppc_is_sourcing_vbus(port)) {
- CPRINTF("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < ppc_cnt; i++) {
- if (i == port)
- continue;
-
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (ppc_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * Nocturne seems to overdraw its set input current limit by about 5%.
- * Request at most 95% of what's desired.
- */
- icl = icl * 95 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-static void board_chipset_reset(void)
-{
- board_report_pmic_fault("CHIPSET RESET");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESET, board_chipset_reset, HOOK_PRIO_DEFAULT);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and PPC. Therefore, go
- * out and actually read the alert registers to report the alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI spec says to ignore bits 14:12. */
- regval &= ~(BIT(14) | BIT(13) | BIT(12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec says to ignore bits 14:12. */
- regval &= ~(BIT(14) | BIT(13) | BIT(12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
diff --git a/board/nocturne/board.h b/board/nocturne/board.h
deleted file mode 100644
index 95f8d14403..0000000000
--- a/board/nocturne/board.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Nocturne board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* NPCX7 config */
-#define NPCX_UART_MODULE2 1 /* GPIO64/65 are used as UART pins. */
-#define NPCX_TACH_SEL2 0 /* No tach. */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-#define CONFIG_HIBERNATE_PSL
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* It's really 1MB. */
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-/* EC modules */
-#define CONFIG_ADC
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_I2C
-#define CONFIG_I2C_BUS_MAY_BE_UNPOWERED
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_PWM
-#define CONFIG_THROTTLE_AP
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-#define CONFIG_DETACHABLE_BASE
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BUTTON
-#define CONFIG_CMD_CHARGEN
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_CMD_PPC_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_SMART
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_PRESENT_L
-#define CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV 9000
-
-/* Buttons / Switches */
-#define CONFIG_BASE_ATTACHED_SWITCH
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-#define CONFIG_VOLUME_BUTTONS
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 128
-#define CONFIG_CHARGER_ISL9238
-#undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#define CONFIG_EXTPOWER_GPIO
-
-/* LEDs */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_PWM_ACTIVE_CHARGE_PORT_ONLY
-#define CONFIG_LED_PWM_COUNT 2
-#undef CONFIG_LED_PWM_NEAR_FULL_COLOR
-#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_WHITE
-
-/* MKBP */
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_EVENT_WAKEUP_MASK (1<<EC_MKBP_EVENT_SWITCH)
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_GPIO_AND_HOST_EVENT
-
-/* Sensors */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_OPT3001
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define CONFIG_SYNC
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_BD99992GW
-#define CONFIG_THERMISTOR_NCP15WB
-
-/* SoC */
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-#define CONFIG_DPTF
-#define CONFIG_DO_NOT_INCLUDE_RV32I_PANIC_DATA
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-#define CONFIG_USB_PID 0x5045
-
-/* USB PD */
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USB_PD_3A_PORTS 0
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_DECODE_SOP
-#define CONFIG_USB_PD_DISCHARGE_PPC
-#define CONFIG_USB_PD_DP_HPD_GPIO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_REV30
-#define CONFIG_USB_PD_TCPMV2
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
-#define CONFIG_USB_PE_SM
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PRL_SM
-#define CONFIG_USB_TYPEC_SM
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* Define typical operating power and max power. */
-#define PD_MAX_VOLTAGE_MV 20000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_POWER_MW 45000
-#define PD_OPERATING_POWER_MW 15000
-
-/* TODO(aaboagye): Verify these timings. */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* I2C config */
-#define I2C_PORT_CHARGER I2C_PORT_POWER
-#define I2C_PORT_PMIC I2C_PORT_POWER
-#define I2C_PORT_POWER NPCX_I2C_PORT0_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT4_1
-#define I2C_PORT_ALS_GYRO NPCX_I2C_PORT5_0
-#define I2C_PORT_ACCEL I2C_PORT_ALS_GYRO
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_THERMAL I2C_PORT_PMIC
-
-#define GPIO_USB_C0_SCL GPIO_EC_I2C1_USB_C0_SCL
-#define GPIO_USB_C0_SDA GPIO_EC_I2C1_USB_C0_SDA
-#define GPIO_USB_C1_SCL GPIO_EC_I2C2_USB_C1_SCL
-#define GPIO_USB_C1_SDA GPIO_EC_I2C2_USB_C1_SDA
-
-#define I2C_ADDR_MP2949_FLAGS 0x20
-#define I2C_ADDR_BD99992_FLAGS 0x30
-
-/*
- * Remapping of schematic GPIO names to common GPIO names expected (hardcoded)
- * in the EC code base.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_BL_DISABLE_ODL
-#define GPIO_BAT_PRESENT_L GPIO_EC_BATT_PRES_L
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_PCH_SLP_SUS_L GPIO_SLP_SUS_L_PCH
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_L
-#define GPIO_PMIC_DPWROK GPIO_ROP_DSW_PWROK_EC
-#define GPIO_PMIC_SLP_SUS_L GPIO_SLP_SUS_L_PMIC
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_IN_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_ROP_EC_RSMRST_L
-#define GPIO_VOLUME_UP_L GPIO_H1_EC_VOL_UP_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_H1_EC_VOL_DOWN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-
-#define PORT_TO_HPD(port) ((port) ? GPIO_USB_C1_DP_HPD : GPIO_USB_C0_DP_HPD)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_BASE_ATTACH,
- ADC_BASE_DETACH,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY, /* BD99956GW TSENSE */
- TEMP_SENSOR_AMBIENT, /* BD99992GW SYSTHERM0 */
- TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_EMMC, /* BD99992GW SYSTHERM3 */
- TEMP_SENSOR_GYRO, /* BMI160 */
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_DB0_LED_RED = 0,
- PWM_CH_DB0_LED_GREEN,
- PWM_CH_DB0_LED_BLUE,
- PWM_CH_DB1_LED_RED,
- PWM_CH_DB1_LED_GREEN,
- PWM_CH_DB1_LED_BLUE,
- PWM_CH_COUNT
-};
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel and gyro sensors must be next to each other.
- */
-enum sensor_id {
- LID_ACCEL,
- LID_GYRO,
- LID_ALS,
- VSYNC,
- SENSOR_COUNT,
-};
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ALS)
-
-void base_pwr_fault_interrupt(enum gpio_signal s);
-int board_get_version(void);
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nocturne/build.mk b/board/nocturne/build.mk
deleted file mode 100644
index 1c2e1e04f2..0000000000
--- a/board/nocturne/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6f
-
-board-y=base_detect.o battery.o board.o led.o usb_pd_policy.o
diff --git a/board/nocturne/ec.tasklist b/board/nocturne/ec.tasklist
deleted file mode 100644
index 4fb7a035a9..0000000000
--- a/board/nocturne/ec.tasklist
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/nocturne/gpio.inc b/board/nocturne/gpio.inc
deleted file mode 100644
index 75d2275424..0000000000
--- a/board/nocturne/gpio.inc
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c_interrupt)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c_interrupt)
-
-/* Power Sequencing interrupts */
-GPIO_INT(ROP_DSW_PWROK_EC, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ROP_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_IN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L_PCH, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(ROP_INT_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt)
-
-/* Misc. interrupts */
-GPIO_INT(H1_EC_VOL_DOWN_ODL, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(H1_EC_VOL_UP_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACCELGYRO3_INT_L, PIN(4, 1), GPIO_INT_FALLING, bmi160_interrupt)
-GPIO_INT(BASE_USB_FAULT_ODL, PIN(2, 3), GPIO_INT_FALLING, base_pwr_fault_interrupt)
-GPIO_INT(BASE_PWR_FAULT_ODL, PIN(2, 4), GPIO_INT_FALLING, base_pwr_fault_interrupt)
-GPIO_INT(RCAM_VSYNC, PIN(E, 4), GPIO_INT_RISING, sync_interrupt)
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu)
-
-/* SoC */
-GPIO(RSMRST_L, PIN(C, 2), GPIO_OUT_LOW)
-GPIO(EC_PCH_PWR_BTN_L, PIN(C, 1), GPIO_OUT_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(SLP_SUS_L_PMIC, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH | GPIO_PULL_UP)
-GPIO(EC_PROCHOT_ODL, PIN(3, 4), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(SYS_RESET_L, PIN(0, 2), GPIO_ODR_HIGH)
-GPIO(USB_C0_DP_HPD, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(USB_C1_DP_HPD, PIN(C, 6), GPIO_OUT_LOW)
-
-/* Power Sequencing */
-GPIO(EC_PCH_ACPRESENT, PIN(7, 3), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_OC_ODL, PIN(6, 7), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EN_5V, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_3A, PIN(6, 2), GPIO_OUT_LOW)
-GPIO(EN_USB_C1_3A, PIN(8, 3), GPIO_OUT_LOW)
-
-/* Misc */
-GPIO(EC_BRD_ID0, PIN(4, 0), GPIO_INPUT)
-GPIO(EC_BRD_ID1, PIN(9, 6), GPIO_INPUT)
-GPIO(EC_BRD_ID2, PIN(9, 3), GPIO_INPUT)
-GPIO(EC_BRD_ID3, PIN(F, 0), GPIO_INPUT)
-GPIO(EC_INT_L, PIN(9, 5), GPIO_OUT_HIGH)
-GPIO(UHALL_PWR_EN, PIN(E, 0), GPIO_OUT_HIGH)
-GPIO(USB2_VBUSSENSE, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(USB2_ID, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(USB_PD_RST_L, PIN(F, 1), GPIO_OUT_HIGH)
-GPIO(ALS_INT_L, PIN(5, 0), GPIO_INPUT)
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW)
-GPIO(EC_BL_DISABLE_ODL, PIN(D, 3), GPIO_ODR_HIGH)
-GPIO(EC_PLATFORM_RST, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(EC_GPIO31, PIN(3, 1), GPIO_OUT_LOW)
-GPIO(BASE_PWR_EN, PIN(2, 2), GPIO_OUT_LOW)
-GPIO(PP3300_NVME_EN, PIN(2, 1), GPIO_INPUT | GPIO_PULL_DOWN) /*NC*/
-GPIO(PP1800_NVME_EN, PIN(2, 0), GPIO_INPUT | GPIO_PULL_DOWN) /*NC*/
-GPIO(PPVAR_NVME_CORE_EN, PIN(1, 7), GPIO_INPUT | GPIO_PULL_DOWN) /*NC*/
-GPIO(EC_GPIO16, PIN(1, 6), GPIO_OUT_LOW)
-GPIO(EC_GPIO15, PIN(1, 5), GPIO_OUT_LOW)
-GPIO(EC_GPIO14, PIN(1, 4), GPIO_OUT_LOW)
-
-/* I2C pins */
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C5_ALS_GYRO_SCL, PIN(3, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C5_ALS_GYRO_SDA, PIN(3, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C0_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C4_BATTERY_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C4_BATTERY_SDA, PIN(F, 2), GPIO_INPUT)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Alternate mode configuration */
-/* UART pins */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-/* I2C ports */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL, I2C 2 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, GPIO_INPUT | GPIO_SEL_1P8V) /* 1.8V I2C5 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(6, 0x01), 0, MODULE_PWM, 0) /* PWM7 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 */
-ALTERNATE(PIN_MASK(C, 0x19), 0, MODULE_PWM, 0) /* PWM0,2, 6 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0,1 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x03), 0, MODULE_PMU, 0) /* GPIO00, GPIO01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 */
diff --git a/board/nocturne/led.c b/board/nocturne/led.c
deleted file mode 100644
index b214a8df84..0000000000
--- a/board/nocturne/led.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Nocturne specific PWM LED settings. */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-struct pwm_led_color_map led_color_map_v3[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 36, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 15, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- [EC_LED_COLOR_YELLOW] = { 36, 15, 0 },
- [EC_LED_COLOR_WHITE] = { 30, 9, 15 },
- [EC_LED_COLOR_AMBER] = { 30, 1, 0 },
-};
-
-/* Map for board rev 2 */
-struct pwm_led_color_map led_color_map_v2[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 62, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 31, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- [EC_LED_COLOR_YELLOW] = { 100, 54, 0 },
- [EC_LED_COLOR_WHITE] = { 70, 54, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 15, 0 },
-};
-
-/* Map for board rev 0 and 1 */
-struct pwm_led_color_map led_color_map_v0_1[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 1, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 1, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 1 },
- [EC_LED_COLOR_YELLOW] = { 1, 1, 0 },
- [EC_LED_COLOR_WHITE] = { 9, 15, 15 },
- [EC_LED_COLOR_AMBER] = { 15, 1, 0 },
-};
-
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = { { 0 } };
-
-/* Two tri-color LEDs with red, green, and blue channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_DB0_LED_RED,
- .ch1 = PWM_CH_DB0_LED_GREEN,
- .ch2 = PWM_CH_DB0_LED_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-
- {
- .ch0 = PWM_CH_DB1_LED_RED,
- .ch1 = PWM_CH_DB1_LED_GREEN,
- .ch2 = PWM_CH_DB1_LED_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
- brightness_range[EC_LED_COLOR_YELLOW] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_BLUE] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_LEFT_LED)
- pwm_id = PWM_LED0;
- else if (led_id == EC_LED_ID_RIGHT_LED)
- pwm_id = PWM_LED1;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
-
-static void fill_led_color_map(struct pwm_led_color_map map[])
-{
- memcpy(led_color_map, map,
- EC_LED_COLOR_COUNT * sizeof(struct pwm_led_color_map));
-}
-
-static void select_color_map(void)
-{
- switch (board_get_version()) {
- case 0:
- case 1:
- fill_led_color_map(led_color_map_v0_1);
- break;
-
- case 2:
- fill_led_color_map(led_color_map_v2);
- break;
-
- default:
- fill_led_color_map(led_color_map_v3);
- break;
- }
-}
-DECLARE_HOOK(HOOK_INIT, select_color_map, HOOK_PRIO_INIT_PWM-1);
diff --git a/board/nocturne/usb_pd_policy.c b/board/nocturne/usb_pd_policy.c
deleted file mode 100644
index 14329b61b3..0000000000
--- a/board/nocturne/usb_pd_policy.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "compile_time_macros.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "system.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Do not allow VCONN swap is 5V is off. */
- return gpio_get_level(GPIO_EN_5V);
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- int level;
-
- /* Only port 0 supports device mode. */
- if (port != 0)
- return;
-
- level = (data_role == PD_ROLE_UFP) ? 1 : 0;
-
- gpio_set_level(GPIO_USB2_ID, level);
- gpio_set_level(GPIO_USB2_VBUSSENSE, level);
-}
-
-void pd_power_supply_reset(int port)
-{
- /*
- * Disable VBUS and discharge to vSafe0V.
- *
- * The PPC will automatically disable the discharge circuitry once it
- * reaches vSafe0V.
- */
- ppc_vbus_source_enable(port, 0);
- ppc_discharge_vbus(port, 1);
-
-#ifdef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-#endif /* defined(CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT) */
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= ppc_cnt)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = ppc_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- /* The 5V rail used for sourcing is not powered when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = ppc_vbus_source_enable(port, 1);
- if (rv)
- return rv;
-
-#ifdef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-#endif /* defined(CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT) */
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-/* ----------------- Vendor Defined Messages ------------------ */
-__override void svdm_safe_dp_mode(int port)
-{
- /* make DP interface safe until configure */
- usb_mux_set(port, USB_PD_MUX_NONE,
- USB_SWITCH_CONNECT,
- polarity_rm_dts(pd_get_polarity(port)));
-
- /*
- * Isolate the SBU lines.
- *
- * Older boards don't have the SBU line bypass needed for CCD, so never
- * disable the SBU lines for port 0.
- */
- if ((board_get_version() < 2) && (port == 0))
- CPRINTS("Skip disable SBU lines for C0.");
- else
- ppc_set_sbu(port, 0);
-}
diff --git a/board/nocturne/vif_override.xml b/board/nocturne/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/nocturne/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/nocturne_fp/OWNERS b/board/nocturne_fp/OWNERS
deleted file mode 100644
index ba92c193e0..0000000000
--- a/board/nocturne_fp/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-include ../../common/fpsensor/OWNERS
diff --git a/board/nocturne_fp/board.h b/board/nocturne_fp/board.h
deleted file mode 100644
index 1f89c631eb..0000000000
--- a/board/nocturne_fp/board.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * STM32H743 + FPC 1145 Fingerprint MCU configuration
- *
- * Alternate names that share this same board file:
- * nocturne_fp
- * nami_fp
- * dartmonkey
- * dragontalon
- */
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-#undef CONFIG_SYSTEM_UNLOCKED
-
-/*
- * These allow console commands to be flagged as restricted.
- * Restricted commands will only be permitted to run when
- * console_is_restricted() returns false.
- * See console_is_restricted's definition in board.c.
- */
-#define CONFIG_CONSOLE_COMMAND_FLAGS
-#define CONFIG_RESTRICTED_CONSOLE_COMMANDS
-
-/*
- * Flash layout: we redefine the sections offsets and sizes as we want to
- * include a rollback region, and will use RO/RW regions of different sizes.
- */
-#undef _IMAGE_SIZE
-#undef CONFIG_ROLLBACK_OFF
-#undef CONFIG_ROLLBACK_SIZE
-#undef CONFIG_FLASH_PSTATE
-#undef CONFIG_FW_PSTATE_SIZE
-#undef CONFIG_FW_PSTATE_OFF
-#undef CONFIG_SHAREDLIB_SIZE
-#undef CONFIG_RO_MEM_OFF
-#undef CONFIG_RO_STORAGE_OFF
-#undef CONFIG_RO_SIZE
-#undef CONFIG_RW_MEM_OFF
-#undef CONFIG_RW_STORAGE_OFF
-#undef CONFIG_RW_SIZE
-#undef CONFIG_EC_PROTECTED_STORAGE_OFF
-#undef CONFIG_EC_PROTECTED_STORAGE_SIZE
-#undef CONFIG_EC_WRITABLE_STORAGE_OFF
-#undef CONFIG_EC_WRITABLE_STORAGE_SIZE
-#undef CONFIG_WP_STORAGE_OFF
-#undef CONFIG_WP_STORAGE_SIZE
-
-#define CONFIG_SHAREDLIB_SIZE 0
-
-#define CONFIG_RO_MEM_OFF 0
-#define CONFIG_RO_STORAGE_OFF 0
-#define CONFIG_RO_SIZE (768*1024)
-
-/* EC rollback protection block */
-#define CONFIG_ROLLBACK_OFF (CONFIG_RO_MEM_OFF + CONFIG_RO_SIZE)
-#define CONFIG_ROLLBACK_SIZE (CONFIG_FLASH_BANK_SIZE * 2)
-
-#define CONFIG_RW_MEM_OFF (CONFIG_ROLLBACK_OFF + CONFIG_ROLLBACK_SIZE)
-#define CONFIG_RW_STORAGE_OFF 0
-#define CONFIG_RW_SIZE (CONFIG_FLASH_SIZE_BYTES - \
- (CONFIG_RW_MEM_OFF - CONFIG_RO_MEM_OFF))
-
-#define CONFIG_EC_PROTECTED_STORAGE_OFF CONFIG_RO_MEM_OFF
-#define CONFIG_EC_PROTECTED_STORAGE_SIZE CONFIG_RO_SIZE
-#define CONFIG_EC_WRITABLE_STORAGE_OFF CONFIG_RW_MEM_OFF
-#define CONFIG_EC_WRITABLE_STORAGE_SIZE CONFIG_RW_SIZE
-
-#define CONFIG_WP_STORAGE_OFF CONFIG_EC_PROTECTED_STORAGE_OFF
-#define CONFIG_WP_STORAGE_SIZE CONFIG_EC_PROTECTED_STORAGE_SIZE
-
-/*
- * We want to prevent flash readout, and use it as indicator of protection
- * status.
- */
-#define CONFIG_FLASH_READOUT_PROTECTION_AS_PSTATE
-
-/* the UART console is on USART1 */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-#define CONFIG_UART_TX_DMA
-#define CONFIG_UART_TX_DMA_PH DMAMUX1_REQ_USART1_TX
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 2048
-
-/* Optional features */
-#undef CONFIG_ADC
-#define CONFIG_CMD_IDLE_STATS
-#define CONFIG_DMA
-#define CONFIG_FORCE_CONSOLE_RESUME
-#define CONFIG_FPU
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOST_COMMAND_STATUS
-#undef CONFIG_I2C
-#undef CONFIG_LID_SWITCH
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-#define CONFIG_PRINTF_LEGACY_LI_FORMAT
-#define CONFIG_SHA256
-#define CONFIG_SHA256_UNROLLED
-#define CONFIG_SPI
-#define CONFIG_STM_HWTIMER32
-#undef CONFIG_TASK_PROFILING
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WP_ACTIVE_HIGH
-#define CONFIG_PANIC_STRIP_GPR
-
-/* SPI configuration for the fingerprint sensor */
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_FP_PORT 2 /* SPI4: third master config */
-
-#define CONFIG_FINGERPRINT_MCU
-#ifdef SECTION_IS_RW
-#define CONFIG_FP_SENSOR_FPC1145
-#define CONFIG_CMD_FPSENSOR_DEBUG
-/*
- * Use the malloc code only in the RW section (for the private library),
- * we cannot enable it in RO since it is not compatible with the RW verification
- * (shared_mem_init done too late).
- */
-#define CONFIG_MALLOC
-/* Special memory regions to store large arrays */
-#define FP_FRAME_SECTION __SECTION(ahb4)
-#define FP_TEMPLATE_SECTION __SECTION(ahb)
-
-#else /* SECTION_IS_RO */
-/* RO verifies the RW partition signature */
-#define CONFIG_RSA
-#define CONFIG_RWSIG
-#endif
-
-#define CONFIG_RSA_KEY_SIZE 3072
-#define CONFIG_RSA_EXPONENT_3
-#define CONFIG_RWSIG_TYPE_RWSIG
-
-/* RW does slow compute, RO does slow flash erase. */
-#undef CONFIG_WATCHDOG_PERIOD_MS
-#define CONFIG_WATCHDOG_PERIOD_MS 10000
-
-/*
- * Add rollback protection
- */
-#define CONFIG_ROLLBACK
-#define CONFIG_ROLLBACK_SECRET_SIZE 32
-
-#define CONFIG_ROLLBACK_MPU_PROTECT
-
-/*
- * We do not use any "locally" generated entropy: this is normally used
- * to add local entropy when the main source of entropy is remote.
- */
-#undef CONFIG_ROLLBACK_SECRET_LOCAL_ENTROPY_SIZE
-#ifdef SECTION_IS_RW
-#undef CONFIG_ROLLBACK_UPDATE
-#endif
-
-#define CONFIG_AES
-#define CONFIG_AES_GCM
-
-#define CONFIG_RNG
-
-#define CONFIG_CMD_FLASH
-
-#ifdef SECTION_IS_RW
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_CMD_SPI_XFER
-#endif
-
-#ifdef SECTION_IS_RW
-/*
- * Mitigating the effects of b/146428434.
- */
-#define APPLY_RESET_LOOP_FIX
-#endif
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 16
-
-#include "gpio_signal.h"
-#include "board_rw.h"
-
-void slp_event(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __BOARD_H */
diff --git a/board/nocturne_fp/board_ro.c b/board/nocturne_fp/board_ro.c
deleted file mode 100644
index 7f20002435..0000000000
--- a/board/nocturne_fp/board_ro.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2017 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.
- */
-/* Meowth Fingerprint MCU configuration */
-
-#include "common.h"
-#include "hooks.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-
-#ifndef SECTION_IS_RO
-#error "This file should only be built for RO."
-#endif
-
-
-/**
- * Disable restricted commands when the system is locked.
- *
- * @see console.h system.c
- */
-int console_is_restricted(void)
-{
- return system_is_locked();
-}
-
-#include "gpio_list.h"
-
-static void ap_deferred(void)
-{
- /*
- * Behavior:
- * AP Active (ex. Intel S0): SLP_L is 1
- * AP Suspend (ex. Intel S0ix): SLP_L is 0
- * The alternative SLP_ALT_L should be pulled high at all the times.
- *
- * Legacy Intel behavior:
- * in S3: SLP_ALT_L is 0 and SLP_L is X.
- * in S0ix: SLP_ALT_L is X and SLP_L is 0.
- * in S0: SLP_ALT_L is 1 and SLP_L is 1.
- * in S5/G3, the FP MCU should not be running.
- */
- int running = gpio_get_level(GPIO_SLP_ALT_L) &&
- gpio_get_level(GPIO_SLP_L);
-
- if (running) { /* AP is S0 */
- disable_sleep(SLEEP_MASK_AP_RUN);
- hook_notify(HOOK_CHIPSET_RESUME);
- } else { /* AP is suspend/S0ix/S3 */
- hook_notify(HOOK_CHIPSET_SUSPEND);
- enable_sleep(SLEEP_MASK_AP_RUN);
- }
-}
-DECLARE_DEFERRED(ap_deferred);
-
-/* PCH power state changes */
-void slp_event(enum gpio_signal signal)
-{
- hook_call_deferred(&ap_deferred_data, 0);
-}
-
-void board_init(void)
-{
- /* Enable interrupt on PCH power signals */
- gpio_enable_interrupt(GPIO_SLP_ALT_L);
- gpio_enable_interrupt(GPIO_SLP_L);
-
- /*
- * Enable the SPI slave interface if the PCH is up.
- * Do not use hook_call_deferred(), because ap_deferred() will be
- * called after tasks with priority higher than HOOK task (very late).
- */
- ap_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/nocturne_fp/board_rw.c b/board/nocturne_fp/board_rw.c
deleted file mode 100644
index 0a7b38b97d..0000000000
--- a/board/nocturne_fp/board_rw.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "fpsensor_detect.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "util.h"
-#include "board_rw.h"
-
-#ifndef SECTION_IS_RW
-#error "This file should only be built for RW."
-#endif
-
-/**
- * Disable restricted commands when the system is locked.
- *
- * @see console.h system.c
- */
-int console_is_restricted(void)
-{
- return system_is_locked();
-}
-
-#include "gpio_list.h"
-
-/* SPI devices */
-struct spi_device_t spi_devices[] = {
- /* Fingerprint sensor (SCLK at 4Mhz) */
- { .port = CONFIG_SPI_FP_PORT, .div = 3, .gpio_cs = GPIO_SPI4_NSS }
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/* Allow changing the signal used for alt sleep depending on the board being
- * used: http://b/179946521.
- */
-static int gpio_slp_alt_l = GPIO_SLP_ALT_L;
-
-static void ap_deferred(void)
-{
- /*
- * Behavior:
- * AP Active (ex. Intel S0): SLP_L is 1
- * AP Suspend (ex. Intel S0ix): SLP_L is 0
- * The alternative SLP_ALT_L should be pulled high at all the times.
- *
- * Legacy Intel behavior:
- * in S3: SLP_ALT_L is 0 and SLP_L is X.
- * in S0ix: SLP_ALT_L is X and SLP_L is 0.
- * in S0: SLP_ALT_L is 1 and SLP_L is 1.
- * in S5/G3, the FP MCU should not be running.
- */
- int running = gpio_get_level(gpio_slp_alt_l) &&
- gpio_get_level(GPIO_SLP_L);
-
- if (running) { /* AP is S0 */
- disable_sleep(SLEEP_MASK_AP_RUN);
- hook_notify(HOOK_CHIPSET_RESUME);
- } else { /* AP is suspend/S0ix/S3 */
- hook_notify(HOOK_CHIPSET_SUSPEND);
- enable_sleep(SLEEP_MASK_AP_RUN);
- }
-}
-DECLARE_DEFERRED(ap_deferred);
-
-/* PCH power state changes */
-void slp_event(enum gpio_signal signal)
-{
- hook_call_deferred(&ap_deferred_data, 0);
-}
-
-static void spi_configure(enum fp_sensor_spi_select spi_select)
-{
- if (spi_select == FP_SENSOR_SPI_SELECT_DEVELOPMENT) {
- /* SPI4 master to sensor: PE12/13/14 (CLK/MISO/MOSI) */
- gpio_set_flags_by_mask(GPIO_E, 0x7000, 0);
- gpio_set_alternate_function(GPIO_E, 0x7000, GPIO_ALT_SPI);
- } else {
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
- }
-
- /* Set all SPI master signal pins to very high speed: pins E2/4/5/6 */
- STM32_GPIO_OSPEEDR(GPIO_E) |= 0x00003f30;
- /* Enable clocks to SPI4 module (master) */
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI4;
-
- if (spi_select == FP_SENSOR_SPI_SELECT_DEVELOPMENT)
- spi_devices[0].gpio_cs = GPIO_SPI4_ALT_NSS;
- spi_enable(&spi_devices[0], 1);
-}
-
-void board_init(void)
-{
- enum fp_sensor_spi_select spi_select = get_fp_sensor_spi_select();
-
- /*
- * FP_RST_ODL pin is defined in gpio_rw.inc (with GPIO_OUT_HIGH
- * flag) but not in gpio.inc, so RO leaves this pin set to 0 (reset
- * default), but RW doesn't initialize this pin to 1 because sysjump
- * to RW is a warm reset (see gpio_pre_init() in chip/stm32/gpio.c).
- * Explicitly reset FP_RST_ODL pin to default value.
- */
- gpio_reset(GPIO_FP_RST_ODL);
-
- ccprints("FP_SPI_SEL: %s", fp_sensor_spi_select_to_str(spi_select));
-
- spi_configure(spi_select);
-
- ccprints("TRANSPORT_SEL: %s",
- fp_transport_type_to_str(get_fp_transport_type()));
-
- /* Use SPI select as a proxy for running on the icetower dev board. */
- if (spi_select == FP_SENSOR_SPI_SELECT_DEVELOPMENT)
- gpio_slp_alt_l = GPIO_SLP_ALT_DEV_L;
-
- /* Enable interrupt on PCH power signals */
- gpio_enable_interrupt(gpio_slp_alt_l);
- gpio_enable_interrupt(GPIO_SLP_L);
-
- /*
- * Enable the SPI slave interface if the PCH is up.
- * Do not use hook_call_deferred(), because ap_deferred() will be
- * called after tasks with priority higher than HOOK task (very late).
- */
- ap_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/nocturne_fp/board_rw.h b/board/nocturne_fp/board_rw.h
deleted file mode 100644
index 6ef7cc29b4..0000000000
--- a/board/nocturne_fp/board_rw.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __CROS_EC_BOARD_NOCTURNE_FP_BOARD_RW_H
-#define __CROS_EC_BOARD_NOCTURNE_FP_BOARD_RW_H
-
-void fps_event(enum gpio_signal signal);
-
-/* Defined in ro_workarounds.c */
-void wp_event(enum gpio_signal signal);
-
-#endif /* __CROS_EC_BOARD_NOCTURNE_FP_BOARD_RW_H */
diff --git a/board/nocturne_fp/build.mk b/board/nocturne_fp/build.mk
deleted file mode 100644
index 2091acc101..0000000000
--- a/board/nocturne_fp/build.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2017 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32H743
-CHIP:=stm32
-CHIP_FAMILY:=stm32h7
-CHIP_VARIANT:=stm32h7x3
-
-# Don't forget that the board build.mk is included more than once to allow
-# conditional variables to be realized. This means that we need to redefine all
-# variable or the "+=" lines will compound.
-board-y=
-board-rw=ro_workarounds.o board_rw.o
-board-ro=board_ro.o
-# If we're mocking the sensor detection for testing (so we can test
-# sensor/transport permutations in the unit tests), don't build the real sensor
-# detection.
-ifeq ($(HAS_MOCK_FPSENSOR_DETECT),)
- board-rw+=fpsensor_detect_rw.o
- board-y+=fpsensor_detect.o
-endif
-
-# Do not build rsa test because this board uses RSA exponent 3 and the rsa test
-# will fail on device.
-test-list-y=\
- aes \
- cec \
- compile_time_macros \
- crc \
- flash_physical \
- flash_write_protect \
- fpsensor \
- fpsensor_hw \
- mpu \
- mutex \
- pingpong \
- printf \
- queue \
- rollback \
- rollback_entropy \
- rsa3 \
- rtc \
- scratchpad \
- sha256 \
- sha256_unrolled \
- static_if \
- timer_dos \
- utils \
- utils_str \
diff --git a/board/nocturne_fp/dev_key.pem b/board/nocturne_fp/dev_key.pem
deleted file mode 100644
index 35c0035b20..0000000000
--- a/board/nocturne_fp/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4wIBAAKCAYEAoxINZU5fQAiABFm4xT83HUQx/WvRlyZ3ZfRqTyMlMxw7U0cU
-DEw7fOY0oj20bkpmVJRfwkm4k7BwOuTt3nl5UuKgeztL4gW+h++ptIIzfT2/a4KL
-BnHsuNfgXZ+yzJ5RSKlJwVOibJr5CNfsmESX4Lwe3LudFc7iE/yfgsOyU/9Ha/jB
-mgLywyWObwpfAt+viOCIF4mYeEI5bLpDHqwk6EnEq0jWaNpcEsLA/twhDf2Qxc7I
-7Zds3f6C3iA1N/d0Zmva4UvdAGnFzQlq9mmgnCenIjwEb4jxqcFXaMgk88jkcheY
-q7MQANRt+iYOX2MiUNtigUoDoJTMBiV3bRs47sSiH+lS6hZHdOsmjMyF30bV5IJD
-k+x1Zoxsd2jYR1PXgxZ+pxLoKx/m9KIV8onbqgl0Jx4+JkABH5eYp/KAhObCenLS
-CySFi7OLbi915yydzFJ3C34pgWVN077GVCXGqglxDcNMacqXqHCwOUoNuAGXjxyF
-XH33G9a/TJDzQhZFAgEDAoIBgGy2s5je6iqwVVg70IN/ehOCy/5H4Q9u+kP4Rt9s
-w3doJ4zaDV2IJ6iZeGwpIvQxmY24P9bb0GJ1oCdDST77pjdBwFInh+wD1FqfxnhW
-zP4pKkesXK72ndCP6ukVId2+4NsbhoDibEhnULCP8xAtupXSvz3SaLk0lrf9v6yC
-duKqL51QgRFXTIIZCZ9cP1c/yltAWrpbuvrW0PMm12nIGJrb2HIwjvCRkrcsgKno
-FglTtdk0hfO6SJP/AelqziVPod5DxP4Gcws0JWnWjIKtYmNpIrI/sfVD29DNLYYS
-Pn1Vgxi5UcwfEbcxkwxMKoJOUb1WSPkvjpQTlQUPiBLX3sLpLvxaOVrEjNXy+V13
-Jl7bc2dGbDIsQMXkFiodTHsqwAq1diFOUL9oE6VeES2hmX63f7lHSXMb92phmvs4
-BylzoTK64ew8oUkufLTX/ys0LGiGvPXCrdfDxdsO2Rx90XB5YPcvvQKge0eCfDck
-kCX4C/6j7V3y/nS5GzpLCFshqwKBwQDVaKdjlpzAKKu+hfBRaujZsrgXd2i4LTuI
-r+sclHl4aII0HJbSolsiV8Pc+jcFtvzLDUnSh4Pjza/6qtYF0q3fxAXQCmBAq8Xc
-AF2sYmZJmMT4OajMS0LG7nhYgm5OpXpyvgc+ndBnDtqXVPQy/wpo8dBV8G1QtXbj
-OsvrTeQ8ZaFcUA4jOuyz+VNpONOUzvxx/jVwuEDVl7xB5/6TayNbCrecqd6CsSur
-S3Z21lelrCV/CjIJqkPZQlgwsKE31CUCgcEAw52MAKuTr3Lh78Gn4PqkLVc6/2UQ
-x3XsZ92oAxhNv2AdmOUHJuIaS7JNirmXljaq6cyrOPsp3qm8g+NVSwS86qLV1Vec
-oUOuV/5S1DdmB2Tj0V74fF7RdsfS37p3P+49AEhGNn+epPTu5UAH+xhrAwRkO0Li
-qOCXHMpkQ9CRilOvUgpxBY6m6fR89bKjkY9evYomKiHj6CfoyUCCFf3pJkin/lHS
-YyizEeF/b7zd2WFgEhxvRec1k36+RG/FgY+hAoHBAI5FxO0PEyrFx9RZSuDx8JEh
-0A+k8HrI0lsf8hMNplBFrCK9ueHBkhblLT38JK55/dyzhoxaV+0zyqccjq6Mc+qC
-roqxlYByg+gAPnLsRDEQg1AmcIgyLISe+uWsSYnDpvcpWim+iu9fPGTjTXdUsZtL
-4DlK84sjpJd8h/Iz7X2ZFj2KtBd8nc1Q4kYl4mM0qEv+zkslgI5lKCvv/wzyF5IH
-JRMb6ax2HRzc+aSO5RkdblSxdrEcLTuBkCB1wM/iwwKBwQCCaQgAcmJ090FKgRqV
-/G1zj3yqQ2CE+UhFPnACEDPU6r5l7gTElrwydt5ce7pkJHHxMxzQp3E/G9MCl44y
-AyicbI6OOmhrgnQ6qYyNekQE7e02P1BS6eD52oyVJvoqntNVhYQkVRRt+J9DgAVS
-EEdXWELSLJcbQGS93ELX4GEG4nThXEtZCcSb+FNOdxe2X5R+XBlxa+1Fb/CGKwFj
-/ptu2xqpi+GXcHdhQP+f0z6Q65VhaEoumiO3qdQtn9kBCmsCgcEA0/VwBz03FMcv
-2SM6zDbL2Kf4PnnLJuDHFzItWH8smrBNVfOOuJ5KGhuIHAAJxaQoWBxeYeaPPqme
-5rQRl58XEb5h3FswAKPx2U77NUROtObOVffV5Tid1E+iBQYhlUUkxtE5b+Said3u
-LqkP8K5n1ai2xuvHusuL6vcp/5T+WrSG5GDiGU+27c2Uf/NePbFYggLl3P9rmDM8
-/1xGGpxMGV2OrOhXtPk7LykEdJRuN+7YhNX5dW1LwWcicOLkFVOG
------END RSA PRIVATE KEY-----
diff --git a/board/nocturne_fp/ec.tasklist b/board/nocturne_fp/ec.tasklist
deleted file mode 100644
index ed1e6ed294..0000000000
--- a/board/nocturne_fp/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 1024) \
- TASK_ALWAYS_RW(FPSENSOR, fp_task, NULL, 4096) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 4096) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, CONSOLE_TASK_STACK_SIZE)
diff --git a/board/nocturne_fp/fpsensor_detect.c b/board/nocturne_fp/fpsensor_detect.c
deleted file mode 100644
index 5a4b95e64c..0000000000
--- a/board/nocturne_fp/fpsensor_detect.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* 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.
- */
-
-#include "fpsensor_detect.h"
-
-enum fp_transport_type get_fp_transport_type(void)
-{
- return FP_TRANSPORT_TYPE_SPI;
-}
diff --git a/board/nocturne_fp/fpsensor_detect_rw.c b/board/nocturne_fp/fpsensor_detect_rw.c
deleted file mode 100644
index e4a670e211..0000000000
--- a/board/nocturne_fp/fpsensor_detect_rw.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "fpsensor_detect.h"
-#include "gpio.h"
-#include "timer.h"
-
-enum fp_sensor_type get_fp_sensor_type(void)
-{
- return FP_SENSOR_TYPE_FPC;
-}
-
-enum fp_sensor_spi_select get_fp_sensor_spi_select(void)
-{
- enum fp_sensor_spi_select ret;
-
- gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 1);
- usleep(1);
- switch (gpio_get_level(GPIO_FP_SPI_SEL)) {
- case 0:
- ret = FP_SENSOR_SPI_SELECT_DEVELOPMENT;
- break;
- case 1:
- ret = FP_SENSOR_SPI_SELECT_PRODUCTION;
- break;
- default:
- ret = FP_SENSOR_SPI_SELECT_UNKNOWN;
- break;
- }
- gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 0);
- return ret;
-}
diff --git a/board/nocturne_fp/gpio.inc b/board/nocturne_fp/gpio.inc
deleted file mode 100644
index dc15ab0ef0..0000000000
--- a/board/nocturne_fp/gpio.inc
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2017 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.
- */
-
-/* Interrupts */
-GPIO_INT(SLP_L, PIN(D,13), GPIO_INT_BOTH, slp_event)
-GPIO_INT(SLP_ALT_L, PIN(A,11), GPIO_INT_BOTH, slp_event)
-GPIO_INT(SPI1_NSS, PIN(A, 4), GPIO_INPUT, spi_event)
-
-/* Inputs */
-#ifndef APPLY_RESET_LOOP_FIX
-GPIO(WP, PIN(B, 7), GPIO_INPUT)
-#endif
-
-/* Outputs */
-GPIO(EC_INT_L, PIN(A, 1), GPIO_OUT_HIGH)
-
-UNIMPLEMENTED(ENTERING_RW)
-
-/* USART1: PA9/PA10 (TX/RX) */
-ALTERNATE(PIN_MASK(A, 0x0600), GPIO_ALT_USART, MODULE_UART, GPIO_PULL_UP)
-/* SPI1 slave from the AP: PA4/5/6/7 (CS/CLK/MISO/MOSI) */
-ALTERNATE(PIN_MASK(A, 0x00f0), GPIO_ALT_SPI, MODULE_SPI, 0)
-
-#ifdef SECTION_IS_RW
-#include "gpio_rw.inc"
-#endif
diff --git a/board/nocturne_fp/gpio_rw.inc b/board/nocturne_fp/gpio_rw.inc
deleted file mode 100644
index 2de4c3e92a..0000000000
--- a/board/nocturne_fp/gpio_rw.inc
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2021 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.
- */
-
-#ifndef SECTION_IS_RW
-#error "This file should only be included in RW."
-#endif
-
-/* Interrupts */
-GPIO_INT(FPS_INT, PIN(A, 0), GPIO_INT_RISING, fps_event)
-
-#ifdef APPLY_RESET_LOOP_FIX
-GPIO_INT(WP, PIN(B, 7), GPIO_INT_BOTH, wp_event)
-#endif
-
-/* Inputs */
-GPIO_INT(SLP_ALT_DEV_L, PIN(D,14), GPIO_INT_BOTH, slp_event)
-/*
- * The S4 and SUS sleep lines are unused in code, but are maintained in this
- * gpio list to ensure that they are not repurposed. This is because these
- * inputs are driven on nocturne.
- */
-GPIO(PCH_SLP_S4_L, PIN(D, 8), GPIO_INPUT)
-GPIO(PCH_SLP_SUS_L, PIN(D, 3), GPIO_INPUT)
-/* TODO(b/178808871): Only enable pull up when doing detection. */
-GPIO(FP_SPI_SEL, PIN(E, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Outputs */
-GPIO(DIVIDER_HIGHSIDE, PIN(B, 8), GPIO_OUT_LOW)
-GPIO(FP_RST_ODL, PIN(E, 0), GPIO_OUT_HIGH)
-GPIO(SPI4_NSS, PIN(E, 4), GPIO_OUT_HIGH)
-GPIO(SPI4_ALT_NSS, PIN(E, 11), GPIO_OUT_HIGH)
-GPIO(USER_PRES_L, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Default SPI4 master to sensor: PE2/5/6 (CLK/MISO/MOSI) */
-ALTERNATE(PIN_MASK(E, 0x0064), GPIO_ALT_SPI, MODULE_SPI_CONTROLLER, 0)
-
-/* See board_rw.c for the alternate configuration that we use on
- * development boards, which overrides the UNUSED values below.
- */
-UNUSED(PIN(E, 12)) /* Alternate SPI4 master to sensor CLK */
-UNUSED(PIN(E, 13)) /* Alternate SPI4 master to sensor MISO */
-UNUSED(PIN(E, 14)) /* Alternate SPI4 master to sensor MOSI */
diff --git a/board/nocturne_fp/ro_workarounds.c b/board/nocturne_fp/ro_workarounds.c
deleted file mode 100644
index e980d14877..0000000000
--- a/board/nocturne_fp/ro_workarounds.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* 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.
- */
-
-/* A place to organize workarounds for legacy RO */
-
-#include <assert.h>
-#include <stdbool.h>
-
-#include "bkpdata.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h" /* Reset cause */
-#include "gpio.h"
-#include "hooks.h"
-#include "system.h"
-#include "task.h"
-#include "watchdog.h"
-
-/* Console output macros */
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-/*
- * We only patch RW to ensure that future ROs have correct behavior.
- */
-#if defined(APPLY_RESET_LOOP_FIX) && defined(SECTION_IS_RW)
-
-/*
- * Add in ap-off flag to be able to detect on next boot.
- * No other code in this build uses this ap-off reset flag.
- */
-#define FORGE_PORFLAG_FLAGS (EC_RESET_FLAG_POWER_ON|EC_RESET_FLAG_AP_OFF)
-
-static void wp_change_deferred(void)
-{
- /*
- * The normal state of the reset backup register is 0, but
- * we know that our override version of bkpdata_write_reset_flags
- * will adjust it based on GPIO_WP's status.
- */
- bkpdata_write_reset_flags(0);
-}
-DECLARE_DEFERRED(wp_change_deferred);
-
-/*
- * We respond to changes in the hardware write protect line in order to
- * ensure this workaround is installed when it is needed and uninstalled
- * when it is not needed. This ensures that we are protected during
- * unexpected resets, such as pin resets or double faults.
- *
- * Furthermore, installing and uninstalling when needed minimizes the
- * difference between our normal operating conditions and normal operating
- * conditions with this ro_workaround source being included. That is to say,
- * the system behavior is only altered in the less likely state, when hardware
- * write protect deasserted.
- */
-void wp_event(enum gpio_signal signal)
-{
- /*
- * We must use a deferred function to call bkpdata_write_reset_flags,
- * since the underlying bkpdata_write uses a mutex.
- */
- hook_call_deferred(&wp_change_deferred_data, 0);
-}
-
-/*
- * We intercept all changes to the reset backup register to ensure that
- * our reset loop patch stays in place.
- *
- * This function will be called once in check_reset_cause during
- * startup, which ensures proper behavior even when unexpected
- * resets occurs (pin reset or exception).
- *
- * This function is also called from system_reset to set the final save
- * reset flags, before an actual planned reset.
- */
-__override
-void bkpdata_write_reset_flags(uint32_t save_flags)
-{
- /* Preserve flags in case a reset pulse occurs */
- if (!gpio_get_level(GPIO_WP))
- save_flags |= FORGE_PORFLAG_FLAGS;
-
- bkpdata_write(BKPDATA_INDEX_SAVED_RESET_FLAGS, save_flags & 0xffff);
- bkpdata_write(BKPDATA_INDEX_SAVED_RESET_FLAGS_2, save_flags >> 16);
-}
-
-/*
- * We do not need to explicitly invoke bkpdata_write_reset_flags
- * on boot, since check_reset_cause will already invoke it once on boot.
- */
-static void board_init_workarounds(void)
-{
- gpio_disable_interrupt(GPIO_WP);
- gpio_clear_pending_interrupt(GPIO_WP);
-
- /*
- * Detect our forged power-on flag and correct the current
- * system reset flags.
- * This does not ensure that all init functions will see
- * the corrected system reset flags, so care should be taken.
- */
- if ((system_get_reset_flags() & FORGE_PORFLAG_FLAGS) ==
- FORGE_PORFLAG_FLAGS) {
- CPRINTS("WARNING: Reset flags power-on + ap-off were forged.");
- system_clear_reset_flags(FORGE_PORFLAG_FLAGS);
- }
-
- gpio_enable_interrupt(GPIO_WP);
-}
-/* Run one priority level higher than the main board_init in board.c */
-DECLARE_HOOK(HOOK_INIT, board_init_workarounds, HOOK_PRIO_DEFAULT - 1);
-
-#endif /* APPLY_RESET_LOOP_FIX && SECTION_IS_RW */
diff --git a/board/npcx7_evb/board.c b/board/npcx7_evb/board.c
deleted file mode 100644
index 9ddaf9bd51..0000000000
--- a/board/npcx7_evb/board.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Nuvoton M4 EB board-specific configuration */
-
-#include "adc.h"
-#include "backlight.h"
-#include "chipset.h"
-#include "common.h"
-#include "driver/temp_sensor/tmp006.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "peci.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "switch.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "timer.h"
-#include "thermal.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_CH_0] = {"ADC0", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_1] = {"ADC1", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_2] = {"ADC2", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_3] = {"ADC3", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_4] = {"ADC4", NPCX_ADC_CH4, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { 0, PWM_CONFIG_OPEN_DRAIN, 25000},
- [PWM_CH_KBLIGHT] = { 2, 0, 10000 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = 0, /* Use MFT id to control fan */
- .pgood_gpio = GPIO_PGOOD_FAN,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1000,
- .rpm_start = 1000,
- .rpm_max = 5200,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = { NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master0-0", NPCX_I2C_PORT0_0, 100, GPIO_I2C0_SCL0, GPIO_I2C0_SDA0},
- {"master1-0", NPCX_I2C_PORT1_0, 100, GPIO_I2C1_SCL0, GPIO_I2C1_SDA0},
- {"master2-0", NPCX_I2C_PORT2_0, 100, GPIO_I2C2_SCL0, GPIO_I2C2_SDA0},
- {"master3-0", NPCX_I2C_PORT3_0, 100, GPIO_I2C3_SCL0, GPIO_I2C3_SDA0},
- {"master7-0", NPCX_I2C_PORT7_0, 100, GPIO_I2C7_SCL0, GPIO_I2C7_SDA0},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_FLASH_PORT, 0, GPIO_SPI_CS_L},
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 40,
- .debounce_down_us = 6 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 1500,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = SECOND,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xf6, 0x55, 0xfa, 0xc8 /* full set */
- },
-};
diff --git a/board/npcx7_evb/board.h b/board/npcx7_evb/board.h
deleted file mode 100644
index 4bad61b152..0000000000
--- a/board/npcx7_evb/board.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Configuration for Nuvoton M4 EB */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * npcx7 EVB version:
- * 1 - EVB version 1 supports: npcx7m6g
- * 2 - EVB version 2 supports:
- * npcx7m6f/npcx7m6fb/npcx7m6fc/npcx7m7fc/npcx7m7wb/npcx7m7wc
- */
-#if defined(CHIP_VARIANT_NPCX7M6G)
-#define BOARD_VERSION 1
-#elif defined(CHIP_VARIANT_NPCX7M6F) || defined(CHIP_VARIANT_NPCX7M6FB) || \
- defined(CHIP_VARIANT_NPCX7M6FC) || defined(CHIP_VARIANT_NPCX7M7FC) || \
- defined(CHIP_VARIANT_NPCX7M7WB) || defined(CHIP_VARIANT_NPCX7M7WC)
-#define BOARD_VERSION 2
-#endif
-
-/* EC modules */
-#define CONFIG_ADC
-#define CONFIG_PWM
-#define CONFIG_SPI
-#define CONFIG_I2C
-/* Features of eSPI */
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-/* Optional features */
-#define CONFIG_ENABLE_JTAG_SELECTION
-#define CONFIG_BOARD_VERSION_GPIO
-#define CONFIG_EXTPOWER_GPIO
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#undef CONFIG_LOW_POWER_IDLE /* Deep Sleep Support */
-#define CONFIG_POWER_BUTTON
-#undef CONFIG_PSTORE
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_VBOOT_HASH
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands */
-
-/* EC console commands */
-#define CONFIG_CMD_TASKREADY
-#define CONFIG_CMD_STACKOVERFLOW
-#define CONFIG_CMD_JUMPTAGS
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_SPI_FLASH
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_I2CWEDGE
-
-/* I2C port for CONFIG_CMD_I2CWEDGE */
-#define I2C_PORT_MASTER NPCX_I2C_PORT0_0
-#define I2C_PORT_HOST 0
-
-/* Fans for testing */
-#define CONFIG_FANS 1
-
-/* Internal spi-flash on npcx7 ec */
-#define CONFIG_SPI_FLASH_PORT 0
-#define CONFIG_SPI_FLASH
-#define CONFIG_SPI_FLASH_REGS
-#if defined(CHIP_VARIANT_NPCX7M6FC) || defined(CHIP_VARIANT_NPCX7M7FC) || \
- defined(CHIP_VARIANT_NPCX7M7WC)
-#define CONFIG_SPI_FLASH_W25Q40 /* Internal spi flash type */
-#define CONFIG_FLASH_SIZE_BYTES 0x00080000 /* 512 KB internal spi flash */
-#else
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal spi flash type */
-#define CONFIG_FLASH_SIZE_BYTES 0x00100000 /* 1 MB internal spi flash */
-#endif
-
-/* New features on npcx7 ec */
-#define CONFIG_KEYBOARD_KSO_HIGH_DRIVE /* Quasi-bidirectional buf for KSOs */
-#if (BOARD_VERSION == 2)
-#define CONFIG_HIBERNATE_PSL /* Use PSL (Power Switch Logic) for hibernate */
-#define CONFIG_CLOCK_SRC_EXTERNAL /* Use external 32kHz OSC as LFCLK source */
-#if defined(CHIP_VARIANT_NPCX7M7WB) || defined(CHIP_VARIANT_NPCX7M7WC)
-#define CONFIG_AUDIO_CODEC
-#define CONFIG_AUDIO_CODEC_DMIC
-#define CONFIG_AUDIO_CODEC_I2S_RX /* Use Audio front-end for Wake-on-Voice */
-#endif
-#undef CONFIG_FANS /* Remove fan application */
-#else
-#undef CONFIG_HIBERNATE_PSL /* Use PSL (Power Switch Logic) for hibernate */
-#undef CONFIG_CLOCK_SRC_EXTERNAL /* Use external 32kHz OSC as LFCLK source */
-#endif
-
-/* Optional feature to configure npcx7 chip */
-
-/* Select which UART Controller is the Console UART */
-#undef CONFIG_CONSOLE_UART
-#define CONFIG_CONSOLE_UART 0 /* 0:UART1 1:UART2 */
-/*
- * This definition below actually doesn't define which UART controller to be
- * used. Instead, it defines which pinouts (GPIO10/11 or GPIO64/65) are
- * connected to "UART1" controller.
- */
-#if (BOARD_VERSION == 2)
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART1 */
-#else
-#define NPCX_UART_MODULE2 0 /* 0:GPIO10/11 as UART1 */
-#endif
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 1:GPIOD5/E2/D4/E5 as JTAG */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-#define NPCX7_PWM1_SEL 0 /* 0:GPIOC2 as I2CSCL0 1:as PWM1 (only in npcx7) */
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_CH_0 = 0,
- ADC_CH_1,
- ADC_CH_2,
- ADC_CH_3,
- ADC_CH_4,
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0,
- /* Number of MFT channels */
- MFT_CH_COUNT
-};
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/npcx7_evb/build.mk b/board/npcx7_evb/build.mk
deleted file mode 100644
index 4bd829202c..0000000000
--- a/board/npcx7_evb/build.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-#
-
-# the IC is Nuvoton NPCX7 M-Series EC (npcx7m6g, npcx7m6f, npcx7m6fb, npcx7m6fc,
-# npcx7m7fc, npcx7m7wb, npcx7m7wc)
-# CHIP_VARIANT:
-# npcx7m6g - for npcx7 ec without internal flash
-# npcx7m6f - for npcx7 ec with internal flash
-# npcx7m6fb - for npcx7 ec with internal flash, enhanced features.
-# npcx7m6fc - the same as npcx7m6fb but internal flash size is 512 Kbytes.
-# npcx7m7fc - the same as npcx7m6fc but more RAM sizes.
-# npcx7m7wb - for npcx7 ec with internal flash, enhanced features + WOV.
-# npcx7m7wc - the same as npcx7m7wb but internal flash size is 512 Kbytes.
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wb
-
-board-y=board.o
diff --git a/board/npcx7_evb/ec.tasklist b/board/npcx7_evb/ec.tasklist
deleted file mode 100644
index 88b5ffaa62..0000000000
--- a/board/npcx7_evb/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
diff --git a/board/npcx7_evb/gpio.inc b/board/npcx7_evb/gpio.inc
deleted file mode 100644
index 145a48de85..0000000000
--- a/board/npcx7_evb/gpio.inc
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Pins for internal flash testing */
-GPIO_INT(RECOVERY_L, PIN(0, 3), GPIO_INT_BOTH | GPIO_PULL_UP, switch_interrupt)
-GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, switch_interrupt)
-
-/* Pins for hibernate testing */
-#ifdef CONFIG_HIBERNATE_PSL
-/*
- * Please notice internal PU/PD is gone if IOs are selected to PSL_INx. The
- * power consumption of PSL is ultra-low and sensitive. Putting a large
- * external PU/PD resistance for PSL input pins is recommended.
- */
-GPIO_INT(AC_PRESENT, PIN(D, 2), GPIO_INT_BOTH, extpower_interrupt) /* PSL_IN1# (Low Active) */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 0), GPIO_INT_BOTH, power_button_interrupt) /* PSL_IN2# (Low Active) */
-GPIO_INT(LID_OPEN, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt) /* PSL_IN3# (High Active) */
-#else
-GPIO_INT(AC_PRESENT, PIN(7, 4), GPIO_INT_BOTH | GPIO_PULL_UP, extpower_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_DOWN, lid_interrupt)
-#endif
-
-/* Pins for SPI/FAN/LPC modules testing */
-GPIO(ENTERING_RW, PIN(3, 6), GPIO_OUT_LOW )
-GPIO(PCH_WAKE_L, PIN(5, 0), GPIO_OUT_HIGH)
-GPIO(PGOOD_FAN, PIN(C, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(SPI_CS_L, PIN(A, 5), GPIO_OUT_HIGH)
-
-/* Pins for I2C module testing */
-GPIO(I2C0_SCL0, PIN(B, 5), GPIO_ODR_HIGH)
-GPIO(I2C0_SDA0, PIN(B, 4), GPIO_ODR_HIGH)
-GPIO(I2C1_SCL0, PIN(9, 0), GPIO_ODR_HIGH)
-GPIO(I2C1_SDA0, PIN(8, 7), GPIO_ODR_HIGH)
-GPIO(I2C2_SCL0, PIN(9, 2), GPIO_ODR_HIGH)
-GPIO(I2C2_SDA0, PIN(9, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SCL0, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA0, PIN(D, 0), GPIO_ODR_HIGH)
-GPIO(I2C7_SDA0, PIN(B, 2), GPIO_ODR_HIGH)
-GPIO(I2C7_SCL0, PIN(B, 3), GPIO_ODR_HIGH)
-
-/* Pins for board version command */
-GPIO(BOARD_VERSION1, PIN(6, 4), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(6, 5), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(6, 6), GPIO_INPUT)
-
-/*********************** Alternate pins for npcx7 series **********************/
-#if (CONFIG_CONSOLE_UART == 0)
-/* UART1 Tx/Rx */
-#if NPCX_UART_MODULE2
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO64/65 */
-#else
-ALTERNATE(PIN_MASK(1, 0x03), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO10/11 */
-#endif
-#else
-/* UART2 Tx/Rx */
-ALTERNATE(PIN_MASK(7, 0x20), 1, MODULE_UART, 0) /* CR_SIN2 GPIO75 */
-ALTERNATE(PIN_MASK(8, 0x40), 1, MODULE_UART, 0) /* CR_SOUT2 GPIO86 */
-#endif
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3E), 1, MODULE_ADC, 0) /* ADC0/1/2/3/4 GPIO45/44/43/42/41 */
-
-/* SPI */
-ALTERNATE(PIN_MASK(A, 0x0A), 1, MODULE_SPI, 0) /* SPIP_MOSI/SPIP_SCLK GPIOA3/A1 */
-ALTERNATE(PIN_MASK(9, 0x20), 1, MODULE_SPI, 0) /* SPIP_MISO GPIO95 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x10), 1, MODULE_PWM, 0) /* PWM2 for KBLIGHT Test - GPIOC4 */
-
-/* Fan (Tachometer) */
-#ifdef CONFIG_FANS
-ALTERNATE(PIN_MASK(C, 0x08), 1, MODULE_PWM, 0) /* PWM0 for FAN Test - GPIOC3 */
-#if NPCX_TACH_SEL2
-ALTERNATE(PIN_MASK(9, 0x08), 1, MODULE_PWM, 0) /* TA1_SL1 for FAN Test - GPIO93 */
-#else
-ALTERNATE(PIN_MASK(4, 0x01), 1, MODULE_PWM, 0) /* TA1_SL2 for FAN Test - GPIO40 */
-#endif
-#endif
-
-/* I2C Ports */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0SDA0/SCL0 GPIOB4/B5 */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1SDA0 GPIO87 */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1SCL0/I2C2SDA0/SCL0 GPIO90/91/92 */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3SDA0/SCL0 GPIOD0/D1 */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C7SDA0/SCL0 GPIOB2/B3 */
-
-/* Keyboard Columns */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(1, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-
-/* Keyboard Rows */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-
-/* PSL for hibernating */
-#ifdef CONFIG_HIBERNATE_PSL
-ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* PSL_IN1 GPIOD2 */
-ALTERNATE(PIN_MASK(0, 0x07), 1, MODULE_PMU, 0) /* PSL_IN2/3/4 GPIO00/01/02 */
-#endif
-
-#if defined(CONFIG_AUDIO_CODEC_I2S_RX) || defined(CONFIG_AUDIO_CODEC_WOV)
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
-#endif
diff --git a/board/npcx9_evb/board.c b/board/npcx9_evb/board.c
deleted file mode 100644
index 8bfc053fa5..0000000000
--- a/board/npcx9_evb/board.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* 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.
- */
-
-/* Nuvoton M4 EB board-specific configuration */
-
-#include "adc.h"
-#include "backlight.h"
-#include "chipset.h"
-#include "common.h"
-#include "driver/temp_sensor/tmp112.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "peci.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "switch.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "timer.h"
-#include "thermal.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_CH_0] = {"ADC0", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_1] = {"ADC1", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_2] = {"ADC2", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_3] = {"ADC3", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_4] = {"ADC4", NPCX_ADC_CH4, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_5] = {"ADC5", NPCX_ADC_CH5, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_6] = {"ADC6", NPCX_ADC_CH6, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_7] = {"ADC7", NPCX_ADC_CH7, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_8] = {"ADC8", NPCX_ADC_CH8, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_9] = {"ADC9", NPCX_ADC_CH9, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_10] = {"ADC10", NPCX_ADC_CH10, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_11] = {"ADC11", NPCX_ADC_CH11, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { 0, PWM_CONFIG_OPEN_DRAIN, 25000},
- [PWM_CH_KBLIGHT] = { 2, 0, 10000 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = 0, /* Use MFT id to control fan */
- .pgood_gpio = GPIO_PGOOD_FAN,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1000,
- .rpm_start = 1000,
- .rpm_max = 5200,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* TMP112 sensors. Must be in the exactly same order as in enum tmp112_sensor */
-const struct tmp112_sensor_t tmp112_sensors[] = {
- { I2C_PORT_THERMAL, TMP112_I2C_ADDR_FLAGS0 },
-};
-BUILD_ASSERT(ARRAY_SIZE(tmp112_sensors) == TMP112_COUNT);
-
-/******************************************************************************/
-/* Temperature sensor. */
-const struct temp_sensor_t temp_sensors[] = {
- { "System", TEMP_SENSOR_TYPE_BOARD, tmp112_get_val_k, TMP112_0 },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = { NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master0-0", NPCX_I2C_PORT0_0, 100, GPIO_I2C0_SCL0, GPIO_I2C0_SDA0},
- {"master1-0", NPCX_I2C_PORT1_0, 100, GPIO_I2C1_SCL0, GPIO_I2C1_SDA0},
- {"master2-0", NPCX_I2C_PORT2_0, 100, GPIO_I2C2_SCL0, GPIO_I2C2_SDA0},
- {"master3-0", NPCX_I2C_PORT3_0, 100, GPIO_I2C3_SCL0, GPIO_I2C3_SDA0},
- {"master7-0", NPCX_I2C_PORT7_0, 100, GPIO_I2C7_SCL0, GPIO_I2C7_SDA0},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 40,
- .debounce_down_us = 6 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 1500,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = SECOND,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xf6, 0x55, 0xfa, 0xc8 /* full set */
- },
-};
diff --git a/board/npcx9_evb/board.h b/board/npcx9_evb/board.h
deleted file mode 100644
index e7e1190480..0000000000
--- a/board/npcx9_evb/board.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Nuvoton M4 EB */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* EC modules */
-#define CONFIG_ADC
-#define CONFIG_PWM
-#define CONFIG_I2C
-/* Features of eSPI */
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-/* Optional features */
-#define CONFIG_ENABLE_JTAG_SELECTION
-#define CONFIG_BOARD_VERSION_GPIO
-#define CONFIG_EXTPOWER_GPIO
-#define CONFIG_HIBERNATE_PSL_COMPENSATE_RTC
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#undef CONFIG_LOW_POWER_IDLE /* Deep Sleep Support */
-#define CONFIG_POWER_BUTTON
-#undef CONFIG_PSTORE
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_VBOOT_HASH
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands */
-
-/* EC console commands */
-#define CONFIG_CMD_TASKREADY
-#define CONFIG_CMD_STACKOVERFLOW
-#define CONFIG_CMD_JUMPTAGS
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_RTC
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_I2CWEDGE
-
-/* I2C port for CONFIG_CMD_I2CWEDGE */
-#define I2C_PORT_MASTER NPCX_I2C_PORT0_0
-#define I2C_PORT_HOST 0
-
-/* Fans for testing */
-#define CONFIG_FANS 1
-
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_TMP112
-#define I2C_PORT_THERMAL NPCX_I2C_PORT2_0
-
-#define CONFIG_KEYBOARD_KSO_HIGH_DRIVE /* Quasi-bidirectional buf for KSOs */
-#define CONFIG_HIBERNATE_PSL /* Use PSL (Power Switch Logic) for hibernate */
-#undef CONFIG_CLOCK_SRC_EXTERNAL /* Use external 32kHz OSC as LFCLK source */
-
-/* Optional feature to configure npcx9 chip */
-
-/* Select which UART Controller is the Console UART */
-#undef CONFIG_CONSOLE_UART
-#define CONFIG_CONSOLE_UART 0 /* 0:UART1 1:UART2 */
-/*
- * This definition below actually doesn't define which UART controller to be
- * used. Instead, it defines which pinouts (GPIO10/11 or GPIO64/65) are
- * connected to "UART1" controller.
- */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART1 */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-#define NPCX9_PWM1_SEL 0 /* 0:GPIOC2 as I2CSCL0 1:as PWM1 */
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_CH_0 = 0,
- ADC_CH_1,
- ADC_CH_2,
- ADC_CH_3,
- ADC_CH_4,
- ADC_CH_5,
- ADC_CH_6,
- ADC_CH_7,
- ADC_CH_8,
- ADC_CH_9,
- ADC_CH_10,
- ADC_CH_11,
- ADC_CH_COUNT
-};
-
-enum tmp112_sensor {
- TMP112_0,
- TMP112_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_SYSTHERM0, /* TMP100 */
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0,
- /* Number of MFT channels */
- MFT_CH_COUNT
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/npcx9_evb/build.mk b/board/npcx9_evb/build.mk
deleted file mode 100644
index 92bcc84144..0000000000
--- a/board/npcx9_evb/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-# the IC is Nuvoton NPCX9 M-Series EC (npcx9m3f, npcx9m6f)
-# CHIP_VARIANT:
-# npcx9m6f - for npcx9 ec with 512 KByte internal flash.
-# npcx9m3f - for npcx9 ec with 512 KByte internal flash, more RAM.
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-
-board-y=board.o
diff --git a/board/npcx9_evb/ec.tasklist b/board/npcx9_evb/ec.tasklist
deleted file mode 100644
index 9560b43561..0000000000
--- a/board/npcx9_evb/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
diff --git a/board/npcx9_evb/gpio.inc b/board/npcx9_evb/gpio.inc
deleted file mode 100644
index ec57c1afc5..0000000000
--- a/board/npcx9_evb/gpio.inc
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Pins for internal flash testing */
-GPIO_INT(RECOVERY_L, PIN(0, 3), GPIO_INT_BOTH | GPIO_PULL_UP, switch_interrupt)
-GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, switch_interrupt)
-
-/* Pins for hibernate testing */
-#ifdef CONFIG_HIBERNATE_PSL
-/*
- * Please notice internal PU/PD is gone if IOs are selected to PSL_INx. The
- * power consumption of PSL is ultra-low and sensitive. Putting a large
- * external PU/PD resistance for PSL input pins is recommended.
- */
-GPIO_INT(AC_PRESENT, PIN(D, 2), GPIO_INT_BOTH, extpower_interrupt) /* PSL_IN1# (Low Active) */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 0), GPIO_INT_BOTH, power_button_interrupt) /* PSL_IN2# (Low Active) */
-GPIO_INT(LID_OPEN, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt) /* PSL_IN3# (High Active) */
-#else
-GPIO_INT(AC_PRESENT, PIN(7, 4), GPIO_INT_BOTH | GPIO_PULL_UP, extpower_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_DOWN, lid_interrupt)
-#endif
-
-/* Pins for SPI/FAN/LPC modules testing */
-GPIO(ENTERING_RW, PIN(3, 6), GPIO_OUT_LOW )
-GPIO(PCH_WAKE_L, PIN(5, 0), GPIO_OUT_HIGH)
-GPIO(PGOOD_FAN, PIN(C, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(SPI_CS_L, PIN(A, 5), GPIO_OUT_HIGH)
-
-/* Pins for I2C module testing */
-GPIO(I2C0_SCL0, PIN(B, 5), GPIO_ODR_HIGH)
-GPIO(I2C0_SDA0, PIN(B, 4), GPIO_ODR_HIGH)
-GPIO(I2C1_SCL0, PIN(9, 0), GPIO_ODR_HIGH)
-GPIO(I2C1_SDA0, PIN(8, 7), GPIO_ODR_HIGH)
-GPIO(I2C2_SCL0, PIN(9, 2), GPIO_ODR_HIGH)
-GPIO(I2C2_SDA0, PIN(9, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SCL0, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA0, PIN(D, 0), GPIO_ODR_HIGH)
-GPIO(I2C7_SDA0, PIN(B, 2), GPIO_ODR_HIGH)
-GPIO(I2C7_SCL0, PIN(B, 3), GPIO_ODR_HIGH)
-
-/* Pins for board version command */
-GPIO(BOARD_VERSION1, PIN(6, 4), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(6, 5), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(6, 6), GPIO_INPUT)
-
-/*********************** Alternate pins for npcx7 series **********************/
-#if (CONFIG_CONSOLE_UART == 0)
-/* UART1 Tx/Rx */
-#if NPCX_UART_MODULE2
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO64/65 */
-#else
-ALTERNATE(PIN_MASK(1, 0x03), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO10/11 */
-#endif
-#else
-/* UART2 Tx/Rx */
-ALTERNATE(PIN_MASK(7, 0x20), 1, MODULE_UART, 0) /* CR_SIN2 GPIO75 */
-ALTERNATE(PIN_MASK(8, 0x40), 1, MODULE_UART, 0) /* CR_SOUT2 GPIO86 */
-#endif
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3E), 1, MODULE_ADC, 0) /* ADC0/1/2/3/4 GPIO45/44/43/42/41 */
-ALTERNATE(PIN_MASK(3, 0x90), 1, MODULE_ADC, 0) /* ADC5/6 GPIO37/34 */
-ALTERNATE(PIN_MASK(E, 0x03), 1, MODULE_ADC, 0) /* ADC7/10 GPIOE1/E0 */
-ALTERNATE(PIN_MASK(F, 0x03), 1, MODULE_ADC, 0) /* ADC8/9 GPIOF1/F0 */
-ALTERNATE(PIN_MASK(C, 0x80), 1, MODULE_ADC, 0) /* ADC11 GPIOC7 */
-
-/* SPI */
-ALTERNATE(PIN_MASK(A, 0x0A), 1, MODULE_SPI, 0) /* SPIP_MOSI/SPIP_SCLK GPIOA3/A1 */
-ALTERNATE(PIN_MASK(9, 0x20), 1, MODULE_SPI, 0) /* SPIP_MISO GPIO95 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x10), 1, MODULE_PWM, 0) /* PWM2 for KBLIGHT Test - GPIOC4 */
-
-/* Fan (Tachometer) */
-#ifdef CONFIG_FANS
-ALTERNATE(PIN_MASK(C, 0x08), 1, MODULE_PWM, 0) /* PWM0 for FAN Test - GPIOC3 */
-#if NPCX_TACH_SEL2
-ALTERNATE(PIN_MASK(9, 0x08), 1, MODULE_PWM, 0) /* TA1_SL1 for FAN Test - GPIO93 */
-#else
-ALTERNATE(PIN_MASK(4, 0x01), 1, MODULE_PWM, 0) /* TA1_SL2 for FAN Test - GPIO40 */
-#endif
-#endif
-
-/* I2C Ports */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0SDA0/SCL0 GPIOB4/B5 */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1SDA0 GPIO87 */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1SCL0/I2C2SDA0/SCL0 GPIO90/91/92 */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3SDA0/SCL0 GPIOD0/D1 */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C7SDA0/SCL0 GPIOB2/B3 */
-
-/* Keyboard Columns */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(1, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-
-/* Keyboard Rows */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-
-/* PSL for hibernating */
-#ifdef CONFIG_HIBERNATE_PSL
-ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* PSL_IN1 GPIOD2 */
-ALTERNATE(PIN_MASK(0, 0x03), 1, MODULE_PMU, 0) /* PSL_IN2/3/4 GPIO00/01/02 */
-#endif
diff --git a/board/npcx_evb/board.c b/board/npcx_evb/board.c
deleted file mode 100644
index 61e0665b7f..0000000000
--- a/board/npcx_evb/board.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright 2014 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.
- */
-/* EC for Nuvoton M4 EB configuration */
-
-#include "adc.h"
-#include "backlight.h"
-#include "chipset.h"
-#include "common.h"
-#include "driver/temp_sensor/tmp006.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "peci.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "switch.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "timer.h"
-#include "thermal.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_CH_0] = {"ADC0", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_1] = {"ADC1", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_2] = {"ADC2", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { 0, PWM_CONFIG_OPEN_DRAIN, 25000},
-#if (CONFIG_FANS == 2)
- [PWM_CH_FAN2] = { 2, 0, 25000 },
-#endif
- [PWM_CH_KBLIGHT] = { 1, 0, 10000 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = 0, /* Use MFT id to control fan */
- .pgood_gpio = GPIO_PGOOD_FAN,
- .enable_gpio = -1,
-};
-
-const struct fan_conf fan_conf_1 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = 1, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1000,
- .rpm_start = 1000,
- .rpm_max = 5200,
-};
-
-const struct fan_rpm fan_rpm_1 = {
- .rpm_min = 1000,
- .rpm_start = 1000,
- .rpm_max = 4300,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-#if (CONFIG_FANS == 2)
- [FAN_CH_1] = { .conf = &fan_conf_1, .rpm = &fan_rpm_1, },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = { NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-#if (CONFIG_FANS == 2)
- [MFT_CH_1] = { NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN2},
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master0-0", NPCX_I2C_PORT0_0, 100, GPIO_I2C0_SCL0, GPIO_I2C0_SDA0},
- {"master0-1", NPCX_I2C_PORT0_1, 100, GPIO_I2C0_SCL1, GPIO_I2C0_SDA1},
- {"master1", NPCX_I2C_PORT1, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"master2", NPCX_I2C_PORT2, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"master3", NPCX_I2C_PORT3, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_FLASH_PORT, 0, GPIO_SPI_CS_L},
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 40,
- .debounce_down_us = 6 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 1500,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = SECOND,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xf6, 0x55, 0xfa, 0xc8 /* full set */
- },
-};
diff --git a/board/npcx_evb/board.h b/board/npcx_evb/board.h
deleted file mode 100644
index fc12b6d80a..0000000000
--- a/board/npcx_evb/board.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* Configuration for Nuvoton M4 EB */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional modules */
-#define CONFIG_ADC
-#define CONFIG_PWM
-#define CONFIG_SPI
-#define CONFIG_HOSTCMD_LPC
-#define CONFIG_PECI
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands for testing */
-#define CONFIG_SPI_FLASH_PORT 0
-#define CONFIG_SPI_FLASH
-#define CONFIG_FLASH_SIZE_BYTES 0x00800000 /* 8MB spi flash */
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q64
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_POWER_BUTTON
-#define CONFIG_VBOOT_HASH
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_BOARD_VERSION_GPIO
-#define CONFIG_ENABLE_JTAG_SELECTION
-
-/* Optional features for test commands */
-#define CONFIG_CMD_TASKREADY
-#define CONFIG_CMD_STACKOVERFLOW
-#define CONFIG_CMD_JUMPTAGS
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_SPI_FLASH
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_I2CWEDGE
-
-#define CONFIG_FANS 1
-
-/* Optional feature - used by nuvoton */
-#define NPCX_UART_MODULE2 0 /* 0:GPIO10/11 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 1:GPIOD5/E2/D4/E5 as JTAG*/
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-
-/* Optional for testing */
-#undef CONFIG_PSTORE
-#undef CONFIG_LOW_POWER_IDLE /* Deep Sleep Support */
-
-/* Single I2C port, where the EC is the master. */
-#define I2C_PORT_MASTER NPCX_I2C_PORT0_0
-#define I2C_PORT_HOST 0
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_CH_0 = 0,
- ADC_CH_1,
- ADC_CH_2,
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
-#if (CONFIG_FANS == 2)
- PWM_CH_FAN2,
-#endif
- PWM_CH_KBLIGHT,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
-#if (CONFIG_FANS == 2)
- FAN_CH_1,
-#endif
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0,
-#if (CONFIG_FANS == 2)
- MFT_CH_1,
-#endif
- /* Number of MFT channels */
- MFT_CH_COUNT
-};
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/npcx_evb/build.mk b/board/npcx_evb/build.mk
deleted file mode 100644
index 7dfc4544f2..0000000000
--- a/board/npcx_evb/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-#
-
-# the IC is Nuvoton NPCX5 M-Series EC (npcx5m5g, npcx5m6g)
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx5
-CHIP_VARIANT:=npcx5m5g
-
-board-y=board.o
diff --git a/board/npcx_evb/ec.tasklist b/board/npcx_evb/ec.tasklist
deleted file mode 100644
index b0d584174e..0000000000
--- a/board/npcx_evb/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
diff --git a/board/npcx_evb/gpio.inc b/board/npcx_evb/gpio.inc
deleted file mode 100644
index c4e673fd25..0000000000
--- a/board/npcx_evb/gpio.inc
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/********************** Inputs with interrupt handlers **********************/
-/* TODO: Redefine debug 2 inputs */
-GPIO_INT(RECOVERY_L, PIN(0, 0), GPIO_PULL_UP | GPIO_INT_BOTH, switch_interrupt) /* Recovery signal from servo */
-GPIO_INT(WP_L, PIN(9, 3), GPIO_PULL_UP | GPIO_INT_BOTH, switch_interrupt) /* Write protect input */
-
-/* For testing keyboard commands, we need the following 4 GPIOs */
-/* TODO: Redefine 4 inputs */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 2), GPIO_PULL_UP | GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(LID_OPEN, PIN(3, 3), GPIO_PULL_DOWN | GPIO_INT_BOTH, lid_interrupt) /* Lid switch */
-
-/**************************** Need a empty line between GPIO_INT and GPIO ****************************/
-#ifdef CONFIG_TEST_1P8V
-GPIO(ENTERING_RW, PIN(3, 6), GPIO_ODR_LOW | GPIO_SEL_1P8V) /* Indicate when EC is entering RW code */
-#else
-GPIO(ENTERING_RW, PIN(3, 6), GPIO_OUT_LOW ) /* Indicate when EC is entering RW code */
-#endif
-GPIO(PCH_WAKE_L, PIN(5, 0), GPIO_OUT_HIGH) /* Wake signal output to PCH */
-
-/* Used for module testing */
-GPIO(PGOOD_FAN, PIN(C, 7), GPIO_PULL_UP | GPIO_INPUT) /* Power Good for FAN test */
-GPIO(SPI_CS_L, PIN(A, 5), GPIO_OUT_HIGH) /* SPI_CS Ready, Low Active. */
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-#ifdef CONFIG_TEST_1P8V
-GPIO(I2C0_SCL0, PIN(B, 5), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(I2C0_SDA0, PIN(B, 4), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-#else
-GPIO(I2C0_SCL0, PIN(B, 5), GPIO_ODR_HIGH)
-GPIO(I2C0_SDA0, PIN(B, 4), GPIO_ODR_HIGH)
-#endif
-GPIO(I2C0_SCL1, PIN(B, 3), GPIO_ODR_HIGH)
-GPIO(I2C0_SDA1, PIN(B, 2), GPIO_ODR_HIGH)
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_ODR_HIGH)
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_ODR_HIGH)
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_ODR_HIGH)
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_ODR_HIGH)
-
-/* Used for board version command */
-GPIO(BOARD_VERSION1, PIN(6, 4), GPIO_INPUT) /* Board version stuffing resistor 1 */
-GPIO(BOARD_VERSION2, PIN(6, 5), GPIO_INPUT) /* Board version stuffing resistor 2 */
-GPIO(BOARD_VERSION3, PIN(6, 6), GPIO_INPUT) /* Board version stuffing resistor 3 */
-
-/**************************** Alternate pins for UART/I2C/ADC/SPI/PWM/MFT ****************************/
-/* Alternate pins for UART/I2C/ADC/SPI/PWM/MFT */
-#if NPCX_UART_MODULE2
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO64/65 */
-#else
-ALTERNATE(PIN_MASK(1, 0x03), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO10/11 */
-#endif
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C0SDA1/I2C0SCL1 GPIOB2/B3 */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0SDA0/I2C0SCL0 GPIOB4/B5 */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1SDA GPIO87 */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1SCL/I2C2SDA/I2C2SCL GPIO90/91/92 */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3SDA/I2C3SCL GPIOD0/D1 */
-ALTERNATE(PIN_MASK(4, 0x38), 1, MODULE_ADC, 0) /* ADC GPIO45/44/43 */
-ALTERNATE(PIN_MASK(A, 0x0A), 1, MODULE_SPI, 0) /* SPIP_MOSI/SPIP_SCLK GPIOA3/A1 */
-ALTERNATE(PIN_MASK(9, 0x20), 1, MODULE_SPI, 0) /* SPIP_MISO GPIO95 */
-ALTERNATE(PIN_MASK(C, 0x04), 1, MODULE_PWM, 0) /* PWM1 for PWM/KBLIGHT Test GPIOC2 */
-/* Alternative functionality for FANS */
-#ifdef CONFIG_FANS
-ALTERNATE(PIN_MASK(C, 0x08), 1, MODULE_PWM, 0) /* PWM0 for PWM/FAN Test GPIOC3 */
-#if NPCX_TACH_SEL2
-ALTERNATE(PIN_MASK(9, 0x08), 1, MODULE_PWM, 0) /* TA1_SL2 GPIO93 for tachometer input */
-#else
-ALTERNATE(PIN_MASK(4, 0x01), 1, MODULE_PWM, 0) /* TA1_SL1 GPIO40 for tachometer input */
-#endif /* NPCX_TACH_SEL2 */
-#if (CONFIG_FANS == 2)
-ALTERNATE(PIN_MASK(C, 0x10), 1, MODULE_PWM, 0) /* PWM2 for PWM/FAN Test GPIOC4 */
-#if NPCX_TACH_SEL2
-ALTERNATE(PIN_MASK(A, 0x40), 1, MODULE_PWM, 0) /* TA2_SL2 GPIOA6 for tachometer input */
-#else
-ALTERNATE(PIN_MASK(7, 0x08), 1, MODULE_PWM, 0) /* TA2_SL1 GPIO73 for tachometer input */
-#endif /* NPCX_TACH_SEL2 */
-#endif /* (CONFIG_FANS == 2) */
-#endif /* CONFIG_FANS */
-
-/* Keyboard Columns */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(1, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-
-/* Keyboard Rows */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
diff --git a/board/npcx_evb_arm/board.c b/board/npcx_evb_arm/board.c
deleted file mode 100644
index 4ee03e7a00..0000000000
--- a/board/npcx_evb_arm/board.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright 2015 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.
- */
-/* EC for Nuvoton M4 EB configuration */
-
-#include "adc.h"
-#include "backlight.h"
-#include "chipset.h"
-#include "common.h"
-#include "driver/temp_sensor/tmp006.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "peci.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "switch.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "timer.h"
-#include "thermal.h"
-#include "util.h"
-#include "shi_chip.h"
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_CH_0] = {"ADC0", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_1] = {"ADC1", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_CH_2] = {"ADC2", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { 0, PWM_CONFIG_OPEN_DRAIN, 25000},
- [PWM_CH_KBLIGHT] = { 1, 0, 10000 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = 0, /* Use MFT id to control fan */
- .pgood_gpio = GPIO_PGOOD_FAN,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1000,
- .rpm_start = 1000,
- .rpm_max = 5200,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = { NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master0-0", NPCX_I2C_PORT0_0, 100, GPIO_I2C0_SCL0, GPIO_I2C0_SDA0},
- {"master0-1", NPCX_I2C_PORT0_1, 100, GPIO_I2C0_SCL1, GPIO_I2C0_SDA1},
- {"master1", NPCX_I2C_PORT1, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"master2", NPCX_I2C_PORT2, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"master3", NPCX_I2C_PORT3, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- .output_settle_us = 40,
- .debounce_down_us = 6 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 1500,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = SECOND,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xf6, 0x55, 0xfa, 0xc8 /* full set */
- },
-};
diff --git a/board/npcx_evb_arm/board.h b/board/npcx_evb_arm/board.h
deleted file mode 100644
index c3fd341365..0000000000
--- a/board/npcx_evb_arm/board.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/* Configuration for Nuvoton M4 EB */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional modules */
-#define CONFIG_ADC
-#define CONFIG_PWM
-#define CONFIG_HOSTCMD_SHI /* Used in ARM-based platform for host interface */
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands for testing */
-#define CONFIG_FLASH_SIZE_BYTES 0x00800000 /* 8MB spi flash */
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q64
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP /* Instead of 8042 protocol of keyboard */
-#define CONFIG_MKBP_USE_GPIO
-#define CONFIG_POWER_BUTTON
-#define CONFIG_VBOOT_HASH
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_BOARD_VERSION_GPIO
-#define CONFIG_ENABLE_JTAG_SELECTION
-
-/* Optional features for test commands */
-#define CONFIG_CMD_TASKREADY
-#define CONFIG_CMD_STACKOVERFLOW
-#define CONFIG_CMD_JUMPTAGS
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_SPI_FLASH
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_I2CWEDGE
-
-#define CONFIG_UART_HOST 0
-#define CONFIG_FANS 1
-
-/* Optional feature - used by nuvoton */
-#define NPCX_UART_MODULE2 0 /* 0:GPIO10/11 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 1:GPIOD5/E2/D4/E5 as JTAG*/
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-/* Enable SHI PU on transition to S0. Disable the PU otherwise for leakage. */
-#define NPCX_SHI_CS_PU
-/* Enable bypass since shi outputs invalid data when across 256B boundary */
-#define NPCX_SHI_BYPASS_OVER_256B
-
-/* Optional for testing */
-#undef CONFIG_PSTORE
-#undef CONFIG_LOW_POWER_IDLE /* Deep Sleep Support */
-
-/* Single I2C port, where the EC is the master. */
-#define I2C_PORT_MASTER NPCX_I2C_PORT0_0
-#define I2C_PORT_HOST 0
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_CH_0 = 0,
- ADC_CH_1,
- ADC_CH_2,
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0,
- /* Number of MFT channels */
- MFT_CH_COUNT
-};
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/npcx_evb_arm/build.mk b/board/npcx_evb_arm/build.mk
deleted file mode 100644
index 48116c5454..0000000000
--- a/board/npcx_evb_arm/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-# the IC is Nuvoton NPCX5 M-Series EC (npcx5m5g, npcx5m6g)
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx5
-CHIP_VARIANT:=npcx5m5g
-
-board-y=board.o
diff --git a/board/npcx_evb_arm/ec.tasklist b/board/npcx_evb_arm/ec.tasklist
deleted file mode 100644
index a014b86350..0000000000
--- a/board/npcx_evb_arm/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
diff --git a/board/npcx_evb_arm/gpio.inc b/board/npcx_evb_arm/gpio.inc
deleted file mode 100644
index 1cdda98300..0000000000
--- a/board/npcx_evb_arm/gpio.inc
+++ /dev/null
@@ -1,92 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2015 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/********************** Inputs with interrupt handlers **********************/
-/* TODO: Redefine debug 2 inputs */
-GPIO_INT(RECOVERY_L, PIN(0, 0), GPIO_PULL_UP | GPIO_INT_BOTH, switch_interrupt) /* Recovery signal from servo */
-GPIO_INT(WP_L, PIN(9, 3), GPIO_PULL_UP | GPIO_INT_BOTH, switch_interrupt) /* Write protect input */
-/* Used for ARM based platform */
-GPIO_INT(SHI_CS_L, PIN(5, 3), GPIO_INT_FALLING,shi_cs_event) /* SHI CS Ready, Low Active. */
-/* For testing keyboard commands, we need the following 4 GPIOs */
-/* TODO: Redefine 4 inputs */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 2), GPIO_PULL_UP | GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(LID_OPEN, PIN(3, 3), GPIO_PULL_DOWN | GPIO_INT_BOTH, lid_interrupt) /* Lid switch */
-
-/**************************** Need a empty line between GPIO_INT and GPIO ****************************/
-#ifdef CONFIG_TEST_1P8V
-GPIO(ENTERING_RW, PIN(3, 6), GPIO_ODR_LOW | GPIO_SEL_1P8V) /* Indicate when EC is entering RW code */
-#else
-GPIO(ENTERING_RW, PIN(3, 6), GPIO_OUT_LOW ) /* Indicate when EC is entering RW code */
-#endif
-GPIO(PCH_WAKE_L, PIN(5, 0), GPIO_OUT_HIGH) /* Wake signal output to PCH */
-/* For testing keyboard mkbp */
-GPIO(EC_INT_L, PIN(7, 4), GPIO_ODR_HIGH) /* Interrupt pin for keyboard mkbp */
-/* Used for module testing */
-GPIO(PGOOD_FAN, PIN(C, 7), GPIO_PULL_UP | GPIO_INPUT) /* Power Good for FAN test */
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-#ifdef CONFIG_TEST_1P8V
-GPIO(I2C0_SCL0, PIN(B, 5), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(I2C0_SDA0, PIN(B, 4), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-#else
-GPIO(I2C0_SCL0, PIN(B, 5), GPIO_ODR_HIGH)
-GPIO(I2C0_SDA0, PIN(B, 4), GPIO_ODR_HIGH)
-#endif
-GPIO(I2C0_SCL1, PIN(B, 3), GPIO_ODR_HIGH)
-GPIO(I2C0_SDA1, PIN(B, 2), GPIO_ODR_HIGH)
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_ODR_HIGH)
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_ODR_HIGH)
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_ODR_HIGH)
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_ODR_HIGH)
-
-/* Used for board version command */
-GPIO(BOARD_VERSION1, PIN(6, 4), GPIO_INPUT) /* Board version stuffing resistor 1 */
-GPIO(BOARD_VERSION2, PIN(6, 5), GPIO_INPUT) /* Board version stuffing resistor 2 */
-GPIO(BOARD_VERSION3, PIN(6, 6), GPIO_INPUT) /* Board version stuffing resistor 3 */
-
-/**************************** Alternate pins for UART/I2C/ADC/SPI/PWM/MFT ****************************/
-/* Alternate pins for UART/I2C/ADC/SPI/PWM/MFT */
-#if NPCX_UART_MODULE2
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO64/65 */
-#else
-ALTERNATE(PIN_MASK(1, 0x03), 1, MODULE_UART, 0) /* CR_SIN/SOUT GPIO10/11 */
-#endif
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C0SDA1/I2C0SCL1 GPIOB2/B3 */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0SDA0/I2C0SCL0 GPIOB4/B5 */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1SDA GPIO87 */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1SCL/I2C2SDA/I2C2SCL GPIO90/91/92 */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3SDA/I2C3SCL GPIOD0/D1 */
-ALTERNATE(PIN_MASK(4, 0x38), 1, MODULE_ADC, 0) /* ADC GPIO45/44/43 */
-ALTERNATE(PIN_MASK(A, 0x0A), 1, MODULE_SPI, 0) /* SPIP_MOSI/SPIP_SCLK GPIOA3/A1 */
-ALTERNATE(PIN_MASK(9, 0x20), 1, MODULE_SPI, 0) /* SPIP_MISO GPIO95 */
-ALTERNATE(PIN_MASK(C, 0x04), 1, MODULE_PWM, 0) /* PWM1 for PWM/KBLIGHT Test GPIOC2 */
-/* Alternative functionality for FANS */
-#ifdef CONFIG_FANS
-ALTERNATE(PIN_MASK(C, 0x08), 1, MODULE_PWM, 0) /* PWM0 for PWM/FAN Test GPIOC3 */
-#if NPCX_TACH_SEL2
-ALTERNATE(PIN_MASK(9, 0x08), 1, MODULE_PWM, 0) /* MFT-1/TA1_TACH1 for FAN GPIO93 */
-#else
-ALTERNATE(PIN_MASK(4, 0x01), 1, MODULE_PWM, 0) /* MFT-1/TA1_TACH1 for FAN Test GPIO40 */
-#endif
-#endif
-
-/* Keyboard Columns */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(1, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
-
-/* Keyboard Rows */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, 0)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, 0)
diff --git a/board/nucleo-dartmonkey/board.c b/board/nucleo-dartmonkey/board.c
deleted file mode 100644
index a7851ec00b..0000000000
--- a/board/nucleo-dartmonkey/board.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "fpsensor_detect.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "util.h"
-
-/**
- * Disable restricted commands when the system is locked.
- *
- * @see console.h system.c
- */
-int console_is_restricted(void)
-{
- return system_is_locked();
-}
-
-static void ap_deferred(void)
-{
- /*
- * Behavior:
- * AP Active (ex. Intel S0): SLP_L is 1
- * AP Suspend (ex. Intel S0ix): SLP_L is 0
- * The alternative SLP_ALT_L should be pulled high at all the times.
- *
- * Legacy Intel behavior:
- * in S3: SLP_ALT_L is 0 and SLP_L is X.
- * in S0ix: SLP_ALT_L is X and SLP_L is 0.
- * in S0: SLP_ALT_L is 1 and SLP_L is 1.
- * in S5/G3, the FP MCU should not be running.
- */
- int running = gpio_get_level(GPIO_SLP_ALT_L)
- && gpio_get_level(GPIO_SLP_L);
-
- if (running) { /* S0 */
- disable_sleep(SLEEP_MASK_AP_RUN);
- hook_notify(HOOK_CHIPSET_RESUME);
- } else { /* S0ix/S3 */
- hook_notify(HOOK_CHIPSET_SUSPEND);
- enable_sleep(SLEEP_MASK_AP_RUN);
- }
-}
-DECLARE_DEFERRED(ap_deferred);
-
-/* PCH power state changes */
-static void slp_event(enum gpio_signal signal)
-{
- hook_call_deferred(&ap_deferred_data, 0);
-}
-
-#ifndef HAS_TASK_FPSENSOR
-void fps_event(enum gpio_signal signal)
-{
-}
-#endif
-
-#include "gpio_list.h"
-
-/* SPI devices */
-struct spi_device_t spi_devices[] = {
- /* Fingerprint sensor (SCLK at 4Mhz) */
- { .port = CONFIG_SPI_FP_PORT, .div = 3, .gpio_cs = GPIO_SPI4_NSS }
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-static void spi_configure(void)
-{
- /* Configure SPI GPIOs */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
- /* Set all SPI master signal pins to very high speed: pins E2/4/5/6 */
- STM32_GPIO_OSPEEDR(GPIO_E) |= 0x00003f30;
- /* Enable clocks to SPI4 module (master) */
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI4;
-
- spi_enable(&spi_devices[0], 1);
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- spi_configure();
-
- ccprints("TRANSPORT_SEL: %s",
- fp_transport_type_to_str(get_fp_transport_type()));
-
- /* Enable interrupt on PCH power signals */
- gpio_enable_interrupt(GPIO_SLP_ALT_L);
- gpio_enable_interrupt(GPIO_SLP_L);
-
- /*
- * Enable the SPI slave interface if the PCH is up.
- * Do not use hook_call_deferred(), because ap_deferred() will be
- * called after tasks with priority higher than HOOK task (very late).
- */
- ap_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/nucleo-dartmonkey/board.h b/board/nucleo-dartmonkey/board.h
deleted file mode 100644
index 9e220db7dc..0000000000
--- a/board/nucleo-dartmonkey/board.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* 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.
- */
-
-/*
- * STM32H743 + FPC 1145 Fingerprint MCU configuration
- *
- * This board is designed to have nucleo-h743zi support (uart+btn+leds) with
- * dartmonkey configuration (fingerprint support).
- * This allows for proxy testing of dartmonkey on the Nucleo-H743ZI.
- */
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-/* Baseboard features */
-#include "base-board.h"
-
-#undef CONFIG_SYSTEM_UNLOCKED
-
-/*
- * These allow console commands to be flagged as restricted.
- * Restricted commands will only be permitted to run when
- * console_is_restricted() returns false.
- * See console_is_restricted's definition in board.c.
- */
-#define CONFIG_CONSOLE_COMMAND_FLAGS
-#define CONFIG_RESTRICTED_CONSOLE_COMMANDS
-
-/* Fingerprint needs to store a secrect in the anti-rollback block */
-#define CONFIG_ROLLBACK_SECRET_SIZE 32
-
-/* SPI configuration for the fingerprint sensor */
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_FP_PORT 2 /* SPI4: third master config */
-
-#define CONFIG_FINGERPRINT_MCU
-
-#ifdef SECTION_IS_RW
- /* Select fingerprint sensor */
-# define CONFIG_FP_SENSOR_FPC1145
-# define CONFIG_CMD_FPSENSOR_DEBUG
- /* Special memory regions to store large arrays */
-# define FP_FRAME_SECTION __SECTION(ahb4)
-# define FP_TEMPLATE_SECTION __SECTION(ahb)
- /*
- * Use the malloc code only in the RW section (for the private library),
- * we cannot enable it in RO since it is not compatible with the RW
- * verification (shared_mem_init done too late).
- */
-# define CONFIG_MALLOC
-#endif /* SECTION_IS_RW */
-
-#ifndef __ASSEMBLER__
- void fps_event(enum gpio_signal signal);
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __BOARD_H */
diff --git a/board/nucleo-dartmonkey/build.mk b/board/nucleo-dartmonkey/build.mk
deleted file mode 100644
index 4bc677e7e0..0000000000
--- a/board/nucleo-dartmonkey/build.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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.
-#
-# Board specific files build
-
-BASEBOARD:=nucleo-h743zi
-
-board-y=board.o
-board-y+=fpsensor_detect.o
-
-# Enable on device tests
-test-list-y=\
- aes \
- cec \
- compile_time_macros \
- crc \
- flash_physical \
- flash_write_protect \
- fpsensor \
- fpsensor_hw \
- mpu \
- mutex \
- pingpong \
- printf \
- queue \
- rollback \
- rollback_entropy \
- rsa3 \
- rtc \
- scratchpad \
- sha256 \
- sha256_unrolled \
- static_if \
- timer_dos \
- utils \
- utils_str \
diff --git a/board/nucleo-dartmonkey/dev_key.pem b/board/nucleo-dartmonkey/dev_key.pem
deleted file mode 100644
index 5b3a7ab290..0000000000
--- a/board/nucleo-dartmonkey/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4wIBAAKCAYEAshjw6IqptVQZ/ysb0Z5hwABKpJVjgfezpqcaeXA6Cjy97UMh
-fy7C9lghQDBlE2ykiXrVICTxpKuWdonbvNgBbhCR/VBkvakBYzYdTl94VCeajguu
-39PqBQmROaWmDmaFxxMfC+IV2K8TFP9rPl+g2ILxgZqXhEcZLizpn7oF494xSeLG
-xH2bWkuYVeF/kFkgoTldC2gA3l98cF1mUFQ7kjq1G/VHCKAPjetZWpdUw+5vbZJQ
-/Yk+UtAyHwi+v5MoEnlnEcSJE9YJu4ISxWkl4OWhDElFibDNOs+Zievj4QvKhjO5
-eISyD6HxphGBLm4wfdnCgxLJrDpMWDqy+lRus4JpTt3Cxvm2LhIqZ3X9SWtVgGZ3
-u9W7IEBVsGY3Juxend5q0vgF6KBGgPSScKseq9GazVUbs5g/Bm+NAH+UTNHOJDbf
-VU7WfyCJXY/5vmgQcLyxRi0RKJRLrClGm6uIgTmpo4UKfb8Uo02BE+AIF7f5SdKh
-/w+jsW8/T9gufzZBAgEDAoIBgHa7S0Wxxnjiu/9yEou+69VVhxhjl6v6d8RvZvug
-JrF90/OCFlTJ107la4AgQ2JIbbD8jhVt9m3HuaRb59M6q561tqjgQykbVkIkE4mU
-+uLFEbQHyeqNRq4GYNEZGV7vA9oMv11BY+XKDLiqR37qazsB9lZnD62Eu3Qd8RUm
-rpfpdjFB2dhTvObdEDlA/7WQwGt7k1zwAJQ/qEro7uA4J7bRzhKjhLBqtQlHkOcP
-jdf0SkkMNf5bfuHgIWoF1H+3bu+clx8IpiGvfZGRTmWOErxhYhyUOLdvPIruoCaa
-NRcjxa/KO6PrSQeTpl9/Pf8Wu/2HHmQRTNv2VuCvmtvgd/RQEdXZET2Q28BYJqp5
-U0qB4YC1Y3Ef5aMCPevmxsWC5aoX7vwSlfjF/Ni4jBVV+nVlFFldiTOWQXOWnbhl
-ahIk4+h42X+SRPzTR67JcM1JGrLGSh7P+LLZNGXICXJyKu2y58+ABLfQybdgvBv4
-MpiBt5h09WtFbXKHaw07lYJGywKBwQDWt/nuS551Q8n4wDs30mIKn5OJZgZcM9iS
-MSB4HFLE6tOWbZyIwRWWT2CoK3F50JwSFKZsz24oUe7hULCOBu45s21tjvWk3oiH
-JSWLKPKr8gEwu6PQ3LqOs+qXOH66+7Bq/ozvRmCu/m3OKZQ1oY7bxnonkqNT7qj6
-DPjE1OdJmpmVLPPJGLt8nSw5h8Np3Y2FgM3mcB39OIam/3OFCPexAiIvtZxOOZzM
-PhbaFU4u5O2pOdveeTXqoXRSNzhSWUUCgcEA1FaKdOvxbAsDaGfh9UGnu7P6WATq
-GlYZ2DiI1+hBeWtOaBbDeeKu7fUXbqcytft6b3pugCloOfbbJeKaInzMi1bhIIkz
-RcHkBmjK3JcNrbaCDpq+wUkoHQkON1OOQ6xVs7v3aZXERHjdbbYsGwiYH/OCH7Yq
-kkgz3wCnpxKN5//eslSlTNqzh0ZxndoNIJza3xJ0MYT+HxX2bH3E6vdQa6srvI9n
-G8xJQ/5QD9ZuBBB4O+lV/65JmwKqaceV6XLNAoHBAI8lUUmHvvjX2/sq0iU27AcV
-DQZEBD135bbLavq9jINHN7meaFsrY7mKQHAc9lE1vWFjGZ3fnsWL9JY1ywlZ9CZ3
-nkkJ+RiUWwTDblzF9x1MAMsnwos90bR38bolqdH9IEdUXfTZlcn+897GYs5rtJKE
-UW+3F41JxfwIpdiN74ZnEQ4d99tl0lMTctEFLPE+XlkAiURKvqjQWcSqTQNbT8tW
-wXUjvYl7vd1+uea43snt88YmkpRQzpxrouF6JYw7gwKBwQCNjwb4nUudXKzwRUFO
-K8UnzVGQA0a8OWaQJbCP8CumR4maudemlx9JTg+fGiHOp6b0/EmqxkV7+edulxFs
-UzMHj0DAW3eD1pgERdyTD15zzwFfEdSA23ATW17PjQmCcuPNJ/pGY9gtpejzzsgS
-Bbq/96wVJBxhhXfqAG/EtwlFVT8hjcOIkc0E2aET5rNrEzyUtvghA1QUuU7y/oNH
-T4rych0oX5oSiDDX/uAKjvQCtaV9RjlVHtu8rHGb2mPw9zMCgcEAkTZ4izUWm58A
-nzEeiqYrqb6Cmdg70YfK/bsW0GNcp+TLdA7ZZ2kg3sFaCTo4s4NZEruDMC0ecLng
-Y7JYGOhhzJRzLDFpW1g2qNWJx+ndmAR36fAbz5m7sEKxIPCKukfxlOOzH56uy8xK
-8L2I+KEHZMOYu8NeebCbLBgWBHzO5fvPXEQyNVSFAvBbbmzLHh4LvhlYg2y/mUB0
-zNpCrc1vaob1YLuaTfusXDm6blWvPr4MVKnn5iChZQBogfBrPCHc
------END RSA PRIVATE KEY-----
diff --git a/board/nucleo-dartmonkey/ec.tasklist b/board/nucleo-dartmonkey/ec.tasklist
deleted file mode 100644
index 80e226637b..0000000000
--- a/board/nucleo-dartmonkey/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* 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.
- */
-
- #include "base-ec.tasklist"
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST BASEBOARD_CONFIG_TASK_LIST \
- TASK_ALWAYS_RW(FPSENSOR, fp_task, NULL, 4096)
diff --git a/board/nucleo-dartmonkey/fpsensor_detect.c b/board/nucleo-dartmonkey/fpsensor_detect.c
deleted file mode 100644
index 72b9b89e11..0000000000
--- a/board/nucleo-dartmonkey/fpsensor_detect.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* 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.
- */
-
-#include "fpsensor_detect.h"
-
-enum fp_sensor_type get_fp_sensor_type(void)
-{
- return FP_SENSOR_TYPE_FPC;
-}
-
-enum fp_transport_type get_fp_transport_type(void)
-{
- return FP_TRANSPORT_TYPE_SPI;
-}
diff --git a/board/nucleo-dartmonkey/gpio.inc b/board/nucleo-dartmonkey/gpio.inc
deleted file mode 100644
index 11709fe738..0000000000
--- a/board/nucleo-dartmonkey/gpio.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * Note that these pins map to the Nucleo-H743ZI V2 and are only slightly
- * compatible with the original version.
- *
- * The V2 is denoted by "Nucleo-H743ZI2" vs. "Nucleo-H743ZI".
- */
-
-#include "base-gpio.inc"
-
-/* Interrupts */
-GPIO_INT(SLP_L, PIN(D, 13), GPIO_INT_BOTH, slp_event)
-GPIO_INT(SLP_ALT_L, PIN(A, 11), GPIO_INT_BOTH, slp_event)
-
-/* Output for User Presence */
-GPIO(USER_PRES_L, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Fingerprint Sensor */
-GPIO_INT(FPS_INT, PIN(A, 0), GPIO_INT_RISING, fps_event)
-GPIO(FP_RST_ODL, PIN(E, 0), GPIO_OUT_HIGH)
-GPIO(SPI4_NSS, PIN(E, 4), GPIO_OUT_HIGH)
-/* SPI4 master to sensor: PE2/5/6 (CLK/MISO/MOSI) */
-ALTERNATE(PIN_MASK(E, 0x0064), GPIO_ALT_SPI, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/nucleo-dartmonkey/openocd-flash.cfg b/board/nucleo-dartmonkey/openocd-flash.cfg
deleted file mode 120000
index 904ee459ab..0000000000
--- a/board/nucleo-dartmonkey/openocd-flash.cfg
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/nucleo-h743zi/openocd-flash.cfg \ No newline at end of file
diff --git a/board/nucleo-dartmonkey/openocd.cfg b/board/nucleo-dartmonkey/openocd.cfg
deleted file mode 120000
index b3fc5796c5..0000000000
--- a/board/nucleo-dartmonkey/openocd.cfg
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/nucleo-h743zi/openocd.cfg \ No newline at end of file
diff --git a/board/nucleo-f072rb/board.c b/board/nucleo-f072rb/board.c
deleted file mode 100644
index 66e8960ce7..0000000000
--- a/board/nucleo-f072rb/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "task.h"
-#include "i2c.h"
-#include "timer.h"
-
-void button_event(enum gpio_signal signal)
-{
- gpio_set_level(GPIO_LED_U, 1);
-}
-
-#ifdef CTS_MODULE
-/*
- * Mock interrupt handler. It's supposed to be overwritten by each suite
- * if needed.
- */
-__attribute__((weak)) void cts_irq1(enum gpio_signal signal) {}
-__attribute__((weak)) void cts_irq2(enum gpio_signal signal) {}
-#endif
-
-#include "gpio_list.h"
-
-void tick_event(void)
-{
- static int count;
-
- gpio_set_level(GPIO_LED_U, (count & 0x07) == 0);
-
- count++;
-}
-DECLARE_HOOK(HOOK_TICK, tick_event, HOOK_PRIO_DEFAULT);
-
-#ifdef CTS_MODULE_I2C
-const struct i2c_port_t i2c_ports[] = {
- {"test", STM32_I2C1_PORT, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-#endif
-
-/******************************************************************************
- * Initialize board.
- */
-static void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USER_BUTTON);
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/nucleo-f072rb/board.h b/board/nucleo-f072rb/board.h
deleted file mode 100644
index 0ec675ab61..0000000000
--- a/board/nucleo-f072rb/board.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Nucleo-F072RB board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART2 (PA14/PA15) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-
-#ifdef CTS_MODULE
-#undef STM32_IRQ_EXT2_3_PRIORITY
-#define STM32_IRQ_EXT2_3_PRIORITY 2
-#ifdef CTS_MODULE_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#endif
-#endif
-
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nucleo-f072rb/build.mk b/board/nucleo-f072rb/build.mk
deleted file mode 100644
index 0e069a31ad..0000000000
--- a/board/nucleo-f072rb/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
diff --git a/board/nucleo-f072rb/ec.tasklist b/board/nucleo-f072rb/ec.tasklist
deleted file mode 100644
index a6385530b5..0000000000
--- a/board/nucleo-f072rb/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/nucleo-f072rb/gpio.inc b/board/nucleo-f072rb/gpio.inc
deleted file mode 100644
index 6f3b592845..0000000000
--- a/board/nucleo-f072rb/gpio.inc
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USER_BUTTON, PIN(C, 13), GPIO_INT_FALLING, button_event)
-#ifdef CTS_MODULE
-#ifndef CTS_MODULE_GPIO
-/* Overload C1 for interrupt. Enabled only for non-GPIO suites as
- * GPIO tests don't require a separate notification line. */
-GPIO_INT(CTS_IRQ1, PIN(C, 1), GPIO_INT_FALLING | GPIO_PULL_UP , cts_irq1)
-/* Used to disable interrupt. This IRQ# has to match the number used for the
- * pin set above */
-#define CTS_IRQ_NUMBER STM32_IRQ_EXTI0_1
-#endif
-GPIO_INT(CTS_IRQ2, PIN(C, 2), GPIO_INT_FALLING | GPIO_PULL_UP , cts_irq2)
-#endif
-
-/* Outputs */
-GPIO(LED_U, PIN(A, 5), GPIO_OUT_LOW)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x000C), 1, MODULE_UART, 0) /* USART2: PA2/PA3 */
-
-GPIO(I2C1_SCL, PIN(B, 6), GPIO_ODR_HIGH) /* I2C port 1 SCL */
-GPIO(I2C1_SDA, PIN(B, 7), GPIO_ODR_HIGH) /* I2C port 1 SDA */
-
-/* I2C1: PB6/7*/
-ALTERNATE(PIN_MASK(B, 0x00C0), GPIO_ALT_F1, MODULE_I2C, GPIO_PULL_UP)
-
-#ifdef CTS_MODULE
-/* CTS Signals */
-GPIO(HANDSHAKE_INPUT, PIN(A, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(HANDSHAKE_OUTPUT, PIN(B, 0), GPIO_ODR_LOW)
-#ifdef CTS_MODULE_GPIO
-GPIO(INPUT_TEST, PIN(C, 1), GPIO_INPUT | GPIO_PULL_UP)
-#endif
-GPIO(OUTPUT_TEST, PIN(C, 0), GPIO_ODR_LOW)
-#endif
diff --git a/board/nucleo-f072rb/openocd-flash.cfg b/board/nucleo-f072rb/openocd-flash.cfg
deleted file mode 100644
index 91e3805c74..0000000000
--- a/board/nucleo-f072rb/openocd-flash.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2016 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.
-
-source [find board/st_nucleo_f0.cfg]
-
-# For flashing, force the board into reset on connect, this ensures that
-# code running on the core can't interfere with programming.
-reset_config connect_assert_srst
-
-gdb_port 0
-tcl_port 0
-telnet_port 0
-init
-reset init
-flash write_image erase $BUILD_DIR/ec.bin 0x08000000
-reset halt
-resume
-shutdown
diff --git a/board/nucleo-f411re/board.c b/board/nucleo-f411re/board.c
deleted file mode 100644
index a177a793ab..0000000000
--- a/board/nucleo-f411re/board.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2015 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.
- */
-/* nucleo-f411re development board configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "motion_sense.h"
-
-#include "gpio.h"
-#include "registers.h"
-#include "task.h"
-#include "util.h"
-
-void user_button_evt(enum gpio_signal signal)
-{
- ccprintf("Button %d, %d!\n", signal, gpio_get_level(signal));
-}
-
-#include "gpio_list.h"
-
-/* Initialize board. */
-static void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USER_BUTTON_L);
-
- /* No power control yet */
- /* Go to S3 state */
- hook_notify(HOOK_CHIPSET_STARTUP);
-
- /* Go to S0 state */
- hook_notify(HOOK_CHIPSET_RESUME);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Arduino connectors analog pins */
- [ADC1_0] = {"ADC1_0", 3000, 4096, 0, STM32_AIN(0)},
- [ADC1_1] = {"ADC1_1", 3000, 4096, 0, STM32_AIN(1)},
- [ADC1_4] = {"ADC1_4", 3000, 4096, 0, STM32_AIN(4)},
- [ADC1_8] = {"ADC1_8", 3000, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 100,
- GPIO_MASTER_I2C_SCL, GPIO_MASTER_I2C_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-#ifdef CONFIG_DMA_HELP
-#include "dma.h"
-int command_dma_help(int argc, char **argv)
-{
- dma_dump(STM32_DMA2_STREAM0);
- dma_test(STM32_DMA2_STREAM0);
- dma_dump(STM32_DMA2_STREAM0);
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(dmahelp, command_dma_help,
- NULL, "Run DMA test");
-#endif
diff --git a/board/nucleo-f411re/board.h b/board/nucleo-f411re/board.h
deleted file mode 100644
index 56d2ad41d0..0000000000
--- a/board/nucleo-f411re/board.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/* Nucleo-F411RE development board configuration */
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-/* 84 MHz CPU/AHB/APB2 clock frequency (APB1 = 42 Mhz) */
-#define CPU_CLOCK 84000000
-#define CONFIG_FLASH_WRITE_SIZE STM32_FLASH_WRITE_SIZE_3300
-
-
-/* the UART console is on USART2 (PA2/PA3) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-
-/* Optional features */
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_HIBERNATE
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_TASK_PROFILING
-
-#undef CONFIG_ADC
-#define CONFIG_DMA_HELP
-#define CONFIG_I2C
-
-#undef CONFIG_UART_RX_DMA
-#define CONFIG_UART_TX_DMA_CH STM32_DMAS_USART2_TX
-#define CONFIG_UART_RX_DMA_CH STM32_DMAS_USART2_RX
-#define CONFIG_UART_TX_REQ_CH STM32_REQ_USART2_TX
-#define CONFIG_UART_RX_REQ_CH STM32_REQ_USART2_RX
-
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_FLASH
-
-/* I2C ports configuration */
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_I2C_DEBUG
-#define I2C_PORT_MASTER 1
-#define I2C_PORT_SLAVE 0 /* needed for DMAC macros (ugh) */
-#define I2C_PORT_ACCEL I2C_PORT_MASTER
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 11
-
-#define CONFIG_WP_ALWAYS
-#define CONFIG_FLASH_READOUT_PROTECTION
-
-/* ADC signal */
-enum adc_channel {
- ADC1_0 = 0,
- ADC1_1,
- ADC1_4,
- ADC1_8,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- BASE_ACCEL = 0,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __BOARD_H */
diff --git a/board/nucleo-f411re/build.mk b/board/nucleo-f411re/build.mk
deleted file mode 100644
index 3a5fc28558..0000000000
--- a/board/nucleo-f411re/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2015 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F411RE
-CHIP:=stm32
-CHIP_FAMILY:=stm32f4
-CHIP_VARIANT:=stm32f411
-
-board-y=board.o
diff --git a/board/nucleo-f411re/ec.tasklist b/board/nucleo-f411re/ec.tasklist
deleted file mode 100644
index b5e3cb82b2..0000000000
--- a/board/nucleo-f411re/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(MOTIONSENSE, motion_sense_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/nucleo-f411re/gpio.inc b/board/nucleo-f411re/gpio.inc
deleted file mode 100644
index 83a9e51a08..0000000000
--- a/board/nucleo-f411re/gpio.inc
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2015 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.
- */
-
-/* Interrupts */
-GPIO_INT(USER_BUTTON_L, PIN(C, 13), GPIO_INT_BOTH, user_button_evt)
-
-/* User LED */
-GPIO(USER_LED, PIN(A, 5), GPIO_OUT_LOW)
-
-GPIO(BMI160_INT2_L, PIN(C, 10), GPIO_OUT_LOW)
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(MASTER_I2C_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(MASTER_I2C_SDA, PIN(B, 3), GPIO_INPUT)
-GPIO(SLAVE_I2C_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(SLAVE_I2C_SDA, PIN(B, 9), GPIO_INPUT)
-
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x000C), GPIO_ALT_USART, MODULE_UART, GPIO_PULL_UP) /* USART2: PA2/PA3 */
-ALTERNATE(PIN_MASK(B, 0x0400), GPIO_ALT_I2C, MODULE_I2C, 0) /* I2C MASTER:PB10 */
-ALTERNATE(PIN_MASK(B, 0x0008), GPIO_ALT_I2C_23, MODULE_I2C, 0) /* I2C MASTER:PB3 */
-ALTERNATE(PIN_MASK(B, 0x0200), GPIO_ALT_I2C, MODULE_I2C, 0) /* I2C SLAVE:PB9 */
-ALTERNATE(PIN_MASK(B, 0x0100), GPIO_ALT_I2C, MODULE_I2C, 0) /* I2C SLAVE:PB8 */
diff --git a/board/nucleo-f411re/openocd-flash.cfg b/board/nucleo-f411re/openocd-flash.cfg
deleted file mode 100644
index 7a6ea6316c..0000000000
--- a/board/nucleo-f411re/openocd-flash.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2016 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.
-
-source [find board/st_nucleo_f4.cfg]
-
-# For flashing, force the board into reset on connect, this ensures that
-# code running on the core can't interfere with programming.
-reset_config connect_assert_srst
-
-gdb_port 0
-tcl_port 0
-telnet_port 0
-init
-reset init
-flash write_image erase unlock $BUILD_DIR/ec.bin 0x08000000
-reset halt
-resume
-shutdown
diff --git a/board/nucleo-f412zg/README.md b/board/nucleo-f412zg/README.md
deleted file mode 100644
index f2fa682e6f..0000000000
--- a/board/nucleo-f412zg/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# Nucleo F412ZG
-
-This is a simpler EC example for the ST Nucleo F412ZG development board.
-
-# Quick Start
-
-The Nucleo dev boards have lots of developer friendly features, like an
-in-circuit debugger/programmer/UART-bridge, programmable LEDs, and a button, to
-name a few.
-
-The built-in debugger can be connected to using a Micro USB cable. It provides
-three great interfaces to the host. 1. Mass storage interface for drag-drop
-programming 2. Full ST-Link in-circuit debugger 3. UART bridge for logs/consoles
-
-We will use a few of these interfaces below to program and interact with out
-Nucleo dev board.
-
-## Build
-
-```bash
-make BOARD=nucleo-f412zg -j
-```
-
-## Program
-
-The easiest way to flash the Nucleo board is to Copy-Paste/Drag-Drop the
-firmware image onto the exposed mass storage drive.
-
-Open a file browser and `Copy` the file in `build/nucleo-f412zg/ec.bin`. Now,
-find the removable storage that the Nucleo device has presented, and `Paste` the
-file into the directory.
-
-## Interact
-
-After the Nucleo finishes programming, you can open the EC console. On
-GNU/Linux, this is mapped to `/dev/ttyACM0`.
-
-Install `minicom` and issue the following command:
-
-```bash
-minicom -D/dev/ttyACM0
-```
-
-# Unit Testing
-
-A fun EC feature is that unit tests can be run on-device.
-
-This is made possible by an alternative build rule that generates a test image
-per unit test. These test images use a unit test specific taskset and console
-command to trigger them.
-
-## Create
-
-To enable an existing unit test, add it to the [build.mk](build.mk)'s
-`test-list-y` variable.
-
-See the main [README.md](/README.md) on how to write a new unit test.
-
-## Build
-
-To build all unit test images for this board, run the following command:
-
-```bash
-make BOARD=nucleo-f412zg tests
-```
-
-You can build a specific unit test image by changing `tests` to `test-aes`, for
-the `aes` unit test.
-
-## Flash
-
-Copy/paste the `build/nucleo-f412zg/${TEST}/${TEST}.bin` file to the Nucleo's
-mass storage drive, where `${TEST}` is the name of the unit test, like `aes`.
-
-## Run
-
-1. Connect to UART console
-
-```bash
-minicom -D/dev/ttyACM0
-```
-
-1. Run the `runtest` command
diff --git a/board/nucleo-f412zg/board.c b/board/nucleo-f412zg/board.c
deleted file mode 100644
index 4324101da9..0000000000
--- a/board/nucleo-f412zg/board.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "util.h"
-
-/**
- * Disable restricted commands when the system is locked.
- *
- * @see console.h system.c
- */
-int console_is_restricted(void)
-{
- return system_is_locked();
-}
-
-static void ap_deferred(void)
-{
- /*
- * in S3: SLP_S3_L is 0 and SLP_S0_L is X.
- * in S0ix: SLP_S3_L is X and SLP_S0_L is 0.
- * in S0: SLP_S3_L is 1 and SLP_S0_L is 1.
- * in S5/G3, the FP MCU should not be running.
- */
- int running = gpio_get_level(GPIO_PCH_SLP_S3_L)
- && gpio_get_level(GPIO_PCH_SLP_S0_L);
-
- if (running) { /* S0 */
- disable_sleep(SLEEP_MASK_AP_RUN);
- hook_notify(HOOK_CHIPSET_RESUME);
- } else { /* S0ix/S3 */
- hook_notify(HOOK_CHIPSET_SUSPEND);
- enable_sleep(SLEEP_MASK_AP_RUN);
- }
-}
-DECLARE_DEFERRED(ap_deferred);
-
-/* PCH power state changes */
-static void slp_event(enum gpio_signal signal)
-{
- hook_call_deferred(&ap_deferred_data, 0);
-}
-
-#include "gpio_list.h"
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable interrupt on PCH power signals */
- gpio_enable_interrupt(GPIO_PCH_SLP_S3_L);
- gpio_enable_interrupt(GPIO_PCH_SLP_S0_L);
-
- /*
- * Enable the SPI slave interface if the PCH is up.
- * Do not use hook_call_deferred(), because ap_deferred() will be
- * called after tasks with priority higher than HOOK task (very late).
- */
- ap_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/nucleo-f412zg/board.h b/board/nucleo-f412zg/board.h
deleted file mode 100644
index f6e1368847..0000000000
--- a/board/nucleo-f412zg/board.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* 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.
- */
-
-/* STM32F412 */
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-/* Baseboard features */
-#include "base-board.h"
-
-#undef CONFIG_SYSTEM_UNLOCKED
-
-/*
- * These allow console commands to be flagged as restricted.
- * Restricted commands will only be permitted to run when
- * console_is_restricted() returns false.
- * See console_is_restricted's definition in board.c.
- */
-#define CONFIG_CONSOLE_COMMAND_FLAGS
-#define CONFIG_RESTRICTED_CONSOLE_COMMANDS
-
-/*
- * Enable the blink example that exercises the LEDs.
- */
-#define CONFIG_BLINK
-#define CONFIG_BLINK_LEDS GPIO_LED1, GPIO_LED2, GPIO_LED3
-
-#endif /* __BOARD_H */
diff --git a/board/nucleo-f412zg/build.mk b/board/nucleo-f412zg/build.mk
deleted file mode 100644
index 6d46b6c289..0000000000
--- a/board/nucleo-f412zg/build.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-# 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.
-#
-# Board specific files build
-
-BASEBOARD:=nucleo-f412zg
-
-board-y=board.o
-
-# Enable on device tests
-test-list-y=\
- aes \
- cec \
- compile_time_macros \
- crc \
- flash_physical \
- flash_write_protect \
- mpu \
- mutex \
- pingpong \
- printf \
- queue \
- rollback \
- rollback_entropy \
- rsa3 \
- rtc \
- scratchpad \
- sha256 \
- sha256_unrolled \
- static_if \
- stm32f_rtc \
- timer_dos \
- utils \
- utils_str \
diff --git a/board/nucleo-f412zg/dev_key.pem b/board/nucleo-f412zg/dev_key.pem
deleted file mode 100644
index 1eb0d88b78..0000000000
--- a/board/nucleo-f412zg/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4wIBAAKCAYEAwLY2WYJasnLc/5iNin8L7Sxv/JkAwGWwEc3gJDMbHwgDYmm0
-V0pA1yKIKdcMsCLEh8VmI9JClgOdn9G9H0UXjtfWmszF8a9TtnrDcSJFBV/cxNs5
-CwxhQrcHmjSqpvhiDBFNyPEECPzg/s+Us7HHw9LaR61TBCY8/KDSHZoULx5m2n74
-xW5cJsxCmK/q8vQXYy+dhJzsCkgYOmubFyuHYn2CoNPBGaBLCiysD3ZbyxcJ+gl4
-NFN6MvD/fK0AufailWIskGJvDQmsJn+KBdNERaU31rHf6xqsq8wviYvSDtZk/QaI
-r9rWf7o48mQhDgB3o/3GEpL1ptWetmT1ZquqisCH0vh180jPDCmJl6t9xR2piJr8
-Hudq4STiE1++olFmwx/T6GCfy2fYMH8UD9ZrWvmD46V/2HGOJYfyWig0VyHN+QPr
-ZKtCbjgCyJCzxRQ8NTdmHyqyguwEcsHB20gpOVLknA3QB8VFIWzz4ZdNqksP6nxB
-PDZVKrIQNmUEkJZnAgEDAoIBgQCAeXmRAZHMTJNVEF5cVLKeHZ/9u1XVmSAL3pVt
-d2dqBVeW8SLk3Cs6FwVxOgh1bIMFLkQX4YG5V75qi9NqLg+0j+RnMy6hH40kUdeg
-wYNY6pMt53tcsuuBz1pmzccZ+uwIC4kwoK1bU0Cp37h3y9qCjJGFHjdYGX39wIwT
-vA10vu88VKXY9D1vMtcQdUdMorpCH75YaJ1cMBAm8mdkx6+W/lcV4oC7wDIGyHK0
-+ZKHZLFRW6V4N6bMoKpTHgB7+cCQfQaycUvp0eFq2Y1FMiFGcJmg1VXxn0DVtMfp
-6EMZSb6vEsFt5xR7twVKgdKVWMErchvkFR0G1r4p2c83MknQgml34TfmDRIhO9O6
-Vz914sZPK4DiGejYQlyGxm2bcKd9OpBFRZKAdEKYyPbJPTxjwY1ZcmiMaWju3YGa
-MLuT+ixkoV+aeusm/oEfha9h0HF7CuCplFo2onP7L/9myyAkC6GsAyeZICMZV5yn
-xNXR4UHDyMI6TWoo1ui8RY8Fg8sCgcEA6AqRnCJhc1WZL9O+JxmzYVok0sgvzqRw
-N6ZhDMC4vaIVHxzPsVBRXgqA+67mA8d7afNzN6uzO+gnkkKwrdPDpUeLcs1M72wK
-mps1iRFl7jKV/QVlUOTbd1bh0DTWkF3QCOinloueLqh7DAZ8Yewjw+Svg8esQVD6
-6g68PlegGnCLMTPN29G2al+4ucNJ8PflulOdzzodU4dZf/8EnUsXxGaluJrv0vz2
-oRCsClqXeJ0yu1Vuh2/fcSCPz3hjTi9PAoHBANScEOiWG7r5QNZld/buXvqiLJKp
-rzIHWzOWop3utKtFsddNltmv5mgdMAbyfyoz2njfKQTHluCrWeVbjeYMeCy1XixZ
-VSrJKT+0lncXOKYW6hTUVXrbsiVqdXkBQ6jKm35fU+nspdwQ+T9LJYAObQFygFmy
-NsSCddUs87SHet66ADDeDiEhK0laiF+E4sFjrEJTd1GSDd1w/Pn6viPMYT7azGFu
-JM8YGdpY3NuVdXbb+ol5r11SVnxPI0yESrohaQKBwQCasbZoFuuiORDKjSlvZneW
-PBiMhXU0baAlGZYIgHspFri/aIp2NYuUBwCnye6tL6eb96IlHSIn8BphgcsejS0Y
-2lz3M4ifnVxnEiOwtkP0IblTWO417eek5JaKzeRgPoqwmxpkXRQfGvyyrv2WnW0t
-Qx+tL8gri1HxXygpj8ARoFzLd96Si87xlSXRLNv1+pkm4mk00WjiWjuqqgMTh2Ut
-mcPQZ0qMqKRrYHKxkbpQaMx8458E9T+gwF/fpZeJdN8CgcEAjb1gmw69J1DV5EOl
-T0mUpxbIYcZ0zATnd7nBvp8jHNkhOjO55nVERWjKr0xUxs08UJTGAy+56xzmmOez
-7rL6yHjpcuY4xzDGKnhkT2TQbrnxYzg4/JJ2w5xOUKuCcIcSVD+NRp3D6AtQ1NzD
-qrRIq6Gq5nbPLaxOjh33za+nPyaqyz60FhYc25GwP63sgO0dgYz6NmFek6Copqcp
-bTLrfzyIQPQYihARPDs957j4+ef8W6Z06OGO/YoXiFgx0WubAoHAYEw+laK7DHcu
-83aIYtzAMqo15axtIyxfb0RTAKqzBrtlhNO/7TfHTrSuGpIj9DWXbPj8X8UZZkZH
-O8w5NIrQB6fo5OmS1NnZCWDYEd7yGO/8vARvDLriVZ1lykIrP3ZkCEuRo+mVMtcP
-9J3otNKcnnyAlTqZnHgqlW0upMQXiHCWKHHqXUTG0KsGFu6qHPQBqwQ/k5qD+Osv
-tJS8v/ziA33WUHm2OyFgsLNW1tBjkLCDiYJD24/B+3Rc5/fic31r
------END RSA PRIVATE KEY-----
diff --git a/board/nucleo-f412zg/ec.tasklist b/board/nucleo-f412zg/ec.tasklist
deleted file mode 100644
index 896eb2fdb3..0000000000
--- a/board/nucleo-f412zg/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 1024) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 4096) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, CONSOLE_TASK_STACK_SIZE)
diff --git a/board/nucleo-f412zg/gpio.inc b/board/nucleo-f412zg/gpio.inc
deleted file mode 100644
index 57f78203ba..0000000000
--- a/board/nucleo-f412zg/gpio.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * 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.
- */
-
-#include "base-gpio.inc"
-
-/* Interrupts */
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 8), GPIO_INT_BOTH, slp_event)
-GPIO_INT(PCH_SLP_S3_L, PIN(B, 6), GPIO_INT_BOTH, slp_event)
diff --git a/board/nucleo-f412zg/openocd-flash.cfg b/board/nucleo-f412zg/openocd-flash.cfg
deleted file mode 120000
index bafbe75704..0000000000
--- a/board/nucleo-f412zg/openocd-flash.cfg
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/nucleo-f412zg/openocd-flash.cfg \ No newline at end of file
diff --git a/board/nucleo-f412zg/openocd.cfg b/board/nucleo-f412zg/openocd.cfg
deleted file mode 120000
index 29e0be4ba2..0000000000
--- a/board/nucleo-f412zg/openocd.cfg
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/nucleo-f412zg/openocd.cfg \ No newline at end of file
diff --git a/board/nucleo-g431rb/board.c b/board/nucleo-g431rb/board.c
deleted file mode 100644
index 01f8a55629..0000000000
--- a/board/nucleo-g431rb/board.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* 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.
- */
-
-/* STM32G431 Nucleo-64 board-specific configuration */
-
-#include "common.h"
-#include "gpio.h"
-#include "hooks.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-
-static void board_init(void)
-{
- /*
- * Using alt-function to send system clock to MCO pin (PA8). The alt
- * function for module clock will not get configured unless the module
- * is configured here.
- */
- gpio_config_module(MODULE_CLOCK, 1);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void led_second(void)
-{
- static int count;
-
- /* Blink user LED on nucleo board */
- gpio_set_level(GPIO_LED1, count++ & 0x1);
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
-
diff --git a/board/nucleo-g431rb/board.h b/board/nucleo-g431rb/board.h
deleted file mode 100644
index a65daa4364..0000000000
--- a/board/nucleo-g431rb/board.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* 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.
- */
-
-/* STM32G431 Nucleo-64 board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CPU_CLOCK 48000000
-#define CONFIG_STM_HWTIMER32
-#define TIM_CLOCK32 2
-#define TIM_CLOCK_MSB 3
-#define TIM_CLOCK_LSB 15
-#define TIM_WATCHDOG 7
-
-/* Nucelo platform does not have a lid switch */
-#undef CONFIG_LID_SWITCH
-
-
-/* Setup UART console */
-/*
- * The STM32G431 Nucleo-64 has two UARTs which can be connected to the virtual
- * com port(VCP) of the STLINK chip. The VCP to STM32G4 connection depends on
- * solder bridge configuration. The default configuration is VCP to LUPAURT
- * (PA2/PA3). In order to reuse existing stm32 uart drivers, UART9 is used to
- * indicate that lpuart is being used.
- *
- * The STM32G4 has a DMAMUX and so both the DMA channel and DMAMUX request
- * numbers need to be specified here.
- */
-#define STM32G431_EVAL_USE_LPUART_CONSOLE
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_TX_DMA
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 2048
-
-#ifdef STM32G431_EVAL_USE_LPUART_CONSOLE
-#define CONFIG_UART_CONSOLE 9
-#define CONFIG_UART_TX_DMA_CH STM32_DMAC_LPUART_TX
-#define CONFIG_UART_TX_DMA_PH DMAMUX_REQ_UART9_TX
-#else
-#define CONFIG_UART_CONSOLE 1
-#define CONFIG_UART_TX_DMA_CH STM32_DMAC_USART1_TX
-#define CONFIG_UART_TX_DMA_PH DMAMUX_REQ_USART1_TX
-#endif
-
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_WP_L GPIO_EC_WP_L
-
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nucleo-g431rb/build.mk b/board/nucleo-g431rb/build.mk
deleted file mode 100644
index 8140048cdd..0000000000
--- a/board/nucleo-g431rb/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=stm32
-CHIP_FAMILY:=stm32g4
-CHIP_VARIANT:=stm32g431xb
-
-board-y=board.o
diff --git a/board/nucleo-g431rb/ec.tasklist b/board/nucleo-g431rb/ec.tasklist
deleted file mode 100644
index c272906fc7..0000000000
--- a/board/nucleo-g431rb/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/nucleo-g431rb/gpio.inc b/board/nucleo-g431rb/gpio.inc
deleted file mode 100644
index 4dd4a6d966..0000000000
--- a/board/nucleo-g431rb/gpio.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Outputs */
-GPIO(LED1, PIN(A, 5), GPIO_OUT_LOW) /* Green */
-
-/* Misc Signals */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(EC_WP_L)
-
-/* LPUART1: A2/A3 */
-ALTERNATE(PIN_MASK(A, 0x000C), GPIO_ALT_LPUART, MODULE_UART, GPIO_PULL_UP)
-/* MCO A8 */
-ALTERNATE(PIN_MASK(A, 0x0100), 0, MODULE_CLOCK, 0)
diff --git a/board/nucleo-h743zi/README.md b/board/nucleo-h743zi/README.md
deleted file mode 100644
index 7ba8a143a3..0000000000
--- a/board/nucleo-h743zi/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# Nucleo H743ZI
-
-This is a simpler EC example for the ST Nucleo H743ZI development board.
-
-# Quick Start
-
-The Nucleo dev boards have lots of developer friendly features, like an
-in-circuit debugger/programmer/UART-bridge, programmable LEDs, and a button, to
-name a few.
-
-The built-in debugger can be connected to using a Micro USB cable. It provides
-three great interfaces to the host. 1. Mass storage interface for drag-drop
-programming 2. Full ST-Link in-circuit debugger 3. UART bridge for logs/consoles
-
-We will use a few of these interfaces below to program and interact with out
-Nucleo dev board.
-
-## Build
-
-```bash
-make BOARD=nucleo-h743zi -j
-```
-
-## Program
-
-The easiest way to flash the Nucleo board is to Copy-Paste/Drag-Drop the
-firmware image onto the exposed mass storage drive.
-
-Open a file browser and `Copy` the file in `build/nucleo-h743zi/ec.bin`. Now,
-find the removable storage that the Nucleo device has presented, and `Paste` the
-file into the directory.
-
-## Interact
-
-After the Nucleo finishes programming, you can open the EC console. On
-GNU/Linux, this is mapped to `/dev/ttyACM0`.
-
-Install `minicom` and issue the following command:
-
-```bash
-minicom -D/dev/ttyACM0
-```
-
-# Unit Testing
-
-A fun EC feature is that unit tests can be run on-device.
-
-This is made possible by an alternative build rule that generates a test image
-per unit test. These test images use a unit test specific taskset and console
-command to trigger them.
-
-## Create
-
-To enable an existing unit test, add it to the [build.mk](build.mk)'s
-`test-list-y` variable.
-
-See the main [README.md](/README.md) on how to write a new unit test.
-
-## Build
-
-To build all unit test images for this board, run the following command:
-
-```bash
-make BOARD=nucleo-h743zi tests
-```
-
-You can build a specific unit test image by changing `tests` to `test-aes`, for
-the `aes` unit test.
-
-## Flash
-
-Copy/paste the `build/nucleo-h743zi/${TEST}/${TEST}.bin` file to the Nucleo's
-mass storage drive, where `${TEST}` is the name of the unit test, like `aes`.
-
-## Run
-
-1. Connect to UART console
-
-```bash
-minicom -D/dev/ttyACM0
-```
-
-1. Run the `runtest` command
diff --git a/board/nucleo-h743zi/board.c b/board/nucleo-h743zi/board.c
deleted file mode 100644
index f1493658aa..0000000000
--- a/board/nucleo-h743zi/board.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "util.h"
-
-/**
- * Disable restricted commands when the system is locked.
- *
- * @see console.h system.c
- */
-int console_is_restricted(void)
-{
- return system_is_locked();
-}
-
-static void ap_deferred(void)
-{
- /*
- * in S3: SLP_S3_L is 0 and SLP_S0_L is X.
- * in S0ix: SLP_S3_L is X and SLP_S0_L is 0.
- * in S0: SLP_S3_L is 1 and SLP_S0_L is 1.
- * in S5/G3, the FP MCU should not be running.
- */
- int running = gpio_get_level(GPIO_PCH_SLP_S3_L)
- && gpio_get_level(GPIO_PCH_SLP_S0_L);
-
- if (running) { /* S0 */
- disable_sleep(SLEEP_MASK_AP_RUN);
- hook_notify(HOOK_CHIPSET_RESUME);
- } else { /* S0ix/S3 */
- hook_notify(HOOK_CHIPSET_SUSPEND);
- enable_sleep(SLEEP_MASK_AP_RUN);
- }
-}
-DECLARE_DEFERRED(ap_deferred);
-
-/* PCH power state changes */
-static void slp_event(enum gpio_signal signal)
-{
- hook_call_deferred(&ap_deferred_data, 0);
-}
-
-#include "gpio_list.h"
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable interrupt on PCH power signals */
- gpio_enable_interrupt(GPIO_PCH_SLP_S3_L);
- gpio_enable_interrupt(GPIO_PCH_SLP_S0_L);
-
- /*
- * Enable the SPI slave interface if the PCH is up.
- * Do not use hook_call_deferred(), because ap_deferred() will be
- * called after tasks with priority higher than HOOK task (very late).
- */
- ap_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/nucleo-h743zi/board.h b/board/nucleo-h743zi/board.h
deleted file mode 100644
index 966f2a8c94..0000000000
--- a/board/nucleo-h743zi/board.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * STM32H743 MCU configuration
- */
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-/* Baseboard features */
-#include "base-board.h"
-
-#undef CONFIG_SYSTEM_UNLOCKED
-
-/*
- * These allow console commands to be flagged as restricted.
- * Restricted commands will only be permitted to run when
- * console_is_restricted() returns false.
- * See console_is_restricted's definition in board.c.
- */
-#define CONFIG_CONSOLE_COMMAND_FLAGS
-#define CONFIG_RESTRICTED_CONSOLE_COMMANDS
-
-/*
- * Enable the blink example that exercises the LEDs.
- */
-#define CONFIG_BLINK
-#define CONFIG_BLINK_LEDS GPIO_LED1, GPIO_LED2, GPIO_LED3
-
-#endif /* __BOARD_H */
diff --git a/board/nucleo-h743zi/build.mk b/board/nucleo-h743zi/build.mk
deleted file mode 100644
index 1230d9b334..0000000000
--- a/board/nucleo-h743zi/build.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2019 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.
-#
-# Board specific files build
-
-BASEBOARD:=nucleo-h743zi
-
-board-y=board.o
-
-# Enable on device tests
-test-list-y=\
- aes \
- cec \
- compile_time_macros \
- crc \
- flash_physical \
- flash_write_protect \
- mpu \
- mutex \
- pingpong \
- printf \
- queue \
- rollback \
- rollback_entropy \
- rsa3 \
- rtc \
- scratchpad \
- sha256 \
- sha256_unrolled \
- static_if \
- timer_dos \
- utils \
- utils_str \
diff --git a/board/nucleo-h743zi/dev_key.pem b/board/nucleo-h743zi/dev_key.pem
deleted file mode 100644
index cb402c9c68..0000000000
--- a/board/nucleo-h743zi/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4wIBAAKCAYEAnWlGtHyWlAntpuFtoK4ukTuqnvaPiZrr7I8S+9cVpwGJXa7A
-yqK5bp8kmZiUDZEMpFA6+f6OGT8dOS5e07vUcIPaZXc1tbaXADywqI04BdCgPsPP
-pKNnKSUglkkgH2WQ/3aqPrT8IJ17+rCUNLysbvcNy3g0CAj0BGzY/s/2mn50C155
-R+6FsQ47jfBS1vOm3s6bOik73VZMutUyBXu5+Sy6HS0kiuAuL3g9tgslqlVaPWS/
-B6+Pd2ednqTp027z9ZJiY40OdXsTzqoD5iwkkcA391thkfsYASVloLplfFtbymWM
-QaqGyaXeuXmeVXr5NUvpeLwgpA1/spX6BfBhmEK/yJ2FeYaKoBWSLz3UztZMG/FK
-glupYLcV3FTJ6zHzy0LOqsdIZKpQivazHfTD5HsKuokNDZVQjtn+Oga8LWEAA8TQ
-ZB+vEpYxSxi2AHwSjEQaXv8dBgnyTl173qFy4RlZ3d9qpZP3bntVpMGQlIjuYAIM
-cbKoLO69rEED+zr7AgEDAoIBgGjw2c2oZGKxSRnrnmseybYnxxSkX7ER8p20t1KP
-Y8SrsOkfKzHB0PRqGGZluAkLXcLgJ1FUXrt/aNDJlI0n4vWtPEOkznkkZKrTIHBe
-JVk1wCnX38MXmhtuFbmGFWpDtf+kcX8jUsBo/VHLDXh9yEn6CTJQIrAF+ALzO1SK
-pGb++AeUUNqfA8te0l6gNzn3xJSJvNFw0pOO3dHjdq5Se/tzJr4eGFyVdB+lfnlc
-w8bjkX5DKgUftPpFE78Ym+JJ9u1XgVtetZBUAeVl39X+cZZZHXIIu84JtF23qb77
-iHJa85zWKqBXChg3aOReLbbF1tg+HPATDzlXPk0wq9l+HEERkkM7WdsjlBtH/so6
-euQ5mGE8vx/TaggY4gBtVjvsgKe89bzxmIGhLMdKjmwZOYqZKNd4ZujPfj8Mh9cu
-LCsjEwv1WgXBoSI+vDEscV9aSjEU/AkWryc/k/Zo0wfYjRF5+faw9csAl3NSGwOs
-hCiWya8+2z390d+Sc3k3FUH/awKBwQDMq/VieSR08kpSvbakKqxvamrCfeJ0qHA4
-H0scQgVwAwNaFAZptJwdACHNj/XS+AkIWG4ycLL/o2PvbOvcQMJ+2ga0j1iFLixJ
-uFaMi7sUJKIe7+5/cqtoFWhfW3wRildjBRXKxf4GBYrn6eMUjlxSs8pY/j2eLqEc
-zTJzzYoFffI54Ck/tyry0JJR6Jv5hAxS4Acu/ip2zf20lfTOM8Kvt1jYJ4S6Nc1n
-pkx7RUmroALms20u3qZHBu45Pe2FWlECgcEAxOMq+AXZqArGo9N9gQPNwNAhCdBl
-aEQZPHKb5f8TYM/rBRBF53NbiFKflVxj8Fot6JZP3i7Wzmc+T2AMY3J0t85drzUm
-K6MALXE9c1phZFtFayY9Uyve7HxafFVMf8TbbKJIRJblnDMCeBz6Z0CRQeGDHlY1
-Ei9yE3oAA3Pv5y5xN/SgG8YSbGeEr21v9/CW78SZIl7r1FyWqCpKhKjclysKE651
-Ot1G2dngo/mArAa88nBWZddHFowiPTB2kuGLAoHBAIhyo5b7baNMMYx+ecLHHZ+c
-RyxT7E3FoCVqMhLWrkqsrOa4BEZ4aBNVa95f+TdQBgWQSXb1zKps7UpInT2Aganm
-ryMKOwN0HYZ65F2yfLgYbBSf9FT3HPAORZTnqAuxj5dYuTHZVAQDse/xQg20PYx3
-3DtUKRQfFhMzdvfeXAOpTCaVcNUkx0yLDDabEqZYCDdABMn+xvneqSMOozQigcp6
-OzrFAybOiO/EMvzY28fAAe8iSMnpxC9Z9CYpSQORiwKBwQCDQhylWTvFXIRtN6kA
-rTPV4BYGiu5Fgrt9ob1D/2JAipyuCtlE95Ja4b+46EKgPB6bDt/pdI80RNQ06rLs
-9vh6iZPKI27HwgAeS35M5uuYPNjyGX43cpSdqDxS44hVLeedwYWDD0O9d1b6vfxE
-1bYr66y+5CNhdPa3pqqs9/VEyaDP+Gq9Lrby763KSPVP9bn1LbtsP0fi6GRwHDGt
-xehkx1wNHvjR6NnmkUBtUQByryihoDmZOi9kXWwoyvm3QQcCgcEAw8zqXhE7phhN
-WZZeYjZYYC295VQxktUM7RT2ld2wnE6sFKrBBPtipgZC9o5bgajjNOUQEmkoGkw0
-+TzUwrrB3awzAh9+83XVtT1BiQP3rDdBXuWPnHEe5v/7Zzg06YHfxVOi0WlohqoV
-RrUsbxLRn83Z+5HhhRlIKEuUq5cIkPR/QJDyxNfxmykC9eS7LrAdaBU9dDF6uZYI
-6mxZaz6MAmYRNlFyQA3BMBJIcykQU10Jxil68yOrYLz7o1zARFxZ
------END RSA PRIVATE KEY-----
diff --git a/board/nucleo-h743zi/ec.tasklist b/board/nucleo-h743zi/ec.tasklist
deleted file mode 100644
index 9c37e0b58b..0000000000
--- a/board/nucleo-h743zi/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2019 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.
- */
-
- #include "base-ec.tasklist"
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST BASEBOARD_CONFIG_TASK_LIST
diff --git a/board/nucleo-h743zi/gpio.inc b/board/nucleo-h743zi/gpio.inc
deleted file mode 100644
index 0f2bb32d75..0000000000
--- a/board/nucleo-h743zi/gpio.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright 2019 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.
- */
-
-/*
- * Note that these pins map to the Nucleo-H743ZI V2 and are only slightly
- * compatible with the original version.
- *
- * The V2 is denoted by "Nucleo-H743ZI2" vs. "Nucleo-H743ZI".
- */
-
-#include "base-gpio.inc"
-
-/* Interrupts */
-GPIO_INT(PCH_SLP_S0_L, PIN(D, 13), GPIO_INT_BOTH, slp_event)
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 11), GPIO_INT_BOTH, slp_event)
diff --git a/board/nucleo-h743zi/openocd-flash.cfg b/board/nucleo-h743zi/openocd-flash.cfg
deleted file mode 120000
index 904ee459ab..0000000000
--- a/board/nucleo-h743zi/openocd-flash.cfg
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/nucleo-h743zi/openocd-flash.cfg \ No newline at end of file
diff --git a/board/nucleo-h743zi/openocd.cfg b/board/nucleo-h743zi/openocd.cfg
deleted file mode 120000
index b3fc5796c5..0000000000
--- a/board/nucleo-h743zi/openocd.cfg
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/nucleo-h743zi/openocd.cfg \ No newline at end of file
diff --git a/board/nuwani/analyzestack.yaml b/board/nuwani/analyzestack.yaml
deleted file mode 120000
index 9873122a08..0000000000
--- a/board/nuwani/analyzestack.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/grunt/analyzestack.yaml \ No newline at end of file
diff --git a/board/nuwani/battery.c b/board/nuwani/battery.c
deleted file mode 100644
index 5cbbeb5123..0000000000
--- a/board/nuwani/battery.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Treeya battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 5B10Q13163 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L17M3PB0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* LGC 5B10Q13162 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L17L3PB0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 181, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L18D3PG1 */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .device_name = "L18D3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP L19M3PG1 */
- [BATTERY_SMP_1] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* LGC L19L3PG1 */
- [BATTERY_LGC_1] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L19L3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* Celxpert L19C3PG1 */
- [BATTERY_CEL_1] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L19C3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP_1;
diff --git a/board/nuwani/board.c b/board/nuwani/board.c
deleted file mode 100644
index 8004e25b37..0000000000
--- a/board/nuwani/board.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* 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.
- */
-
-/* Treeya board-specific configuration */
-
-#include "button.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "extpower.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "system.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-
-#include "gpio_list.h"
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
- GPIO_EC_RST_ODL,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* I2C port map. */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", I2C_PORT_THERMAL_AP, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Motion sensors */
-static struct mutex g_lid_mutex_1;
-static struct mutex g_base_mutex_1;
-
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct lsm6dsm_data g_lsm6dsm_data = LSM6DSM_DATA;
-
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t lsm6dsm_base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t treeya_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t lid_accel_1 = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex_1,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t base_accel_1 = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex_1,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &lsm6dsm_base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t base_gyro_1 = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex_1,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &lsm6dsm_base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
-};
-
-static int board_use_st_sensor(void)
-{
- /* sku_id 0xa8-0xa9 use ST sensors */
- uint32_t sku_id = system_get_sku_id();
-
- return sku_id == 0xa8 || sku_id == 0xa9;
-}
-
-/* treeya board will use two sets of lid/base sensor, we need update
- * sensors info according to sku id.
- */
-void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- /* sku_id a8-a9 use ST sensors */
- if (board_use_st_sensor()) {
- motion_sensors[LID_ACCEL] = lid_accel_1;
- motion_sensors[BASE_ACCEL] = base_accel_1;
- motion_sensors[BASE_GYRO] = base_gyro_1;
- } else{
- /*Need to change matrix for treeya*/
- motion_sensors[BASE_ACCEL].rot_standard_ref = &treeya_standard_ref;
- motion_sensors[BASE_GYRO].rot_standard_ref = &treeya_standard_ref;
- }
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-/* bmi160 or lsm6dsm need different interrupt function */
-void board_bmi160_lsm6dsm_interrupt(enum gpio_signal signal)
-{
- if (board_use_st_sensor())
- lsm6dsm_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
diff --git a/board/nuwani/board.h b/board/nuwani/board.h
deleted file mode 100644
index 780e1cd852..0000000000
--- a/board/nuwani/board.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* 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.
- */
-
-/* Treeya board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_GRUNT_TCPC_0_ANX3447
-
-#include "baseboard.h"
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Power and battery LEDs */
-#define CONFIG_LED_COMMON
-#define CONFIG_CMD_LEDTEST
-
-#define CONFIG_LED_ONOFF_STATES
-
-/* Disable keyboard backlight */
-#undef CONFIG_PWM
-#undef CONFIG_PWM_KBLIGHT
-
-#define CONFIG_MKBP_USE_GPIO
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-/*
- * Slew rate on the PP1800_SENSOR load switch requires a short delay on startup.
- */
-#undef CONFIG_MOTION_SENSE_RESUME_DELAY_US
-#define CONFIG_MOTION_SENSE_RESUME_DELAY_US (10 * MSEC)
-
-/* Second set of sensor drivers */
-#define CONFIG_ACCELGYRO_LSM6DSM
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_LIS2DWL
-
-#ifndef __ASSEMBLER__
-
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_SMP_1,
- BATTERY_LGC_1,
- BATTERY_CEL_1,
- BATTERY_TYPE_COUNT,
-};
-
-void board_bmi160_lsm6dsm_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/nuwani/build.mk b/board/nuwani/build.mk
deleted file mode 100644
index 85b141b15d..0000000000
--- a/board/nuwani/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6f
-BASEBOARD:=grunt
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/nuwani/ec.tasklist b/board/nuwani/ec.tasklist
deleted file mode 100644
index 2874dff927..0000000000
--- a/board/nuwani/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/nuwani/gpio.inc b/board/nuwani/gpio.inc
deleted file mode 100644
index 18c72c8125..0000000000
--- a/board/nuwani/gpio.inc
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(A, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S5_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S5_PGOOD, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(8, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, board_bmi160_lsm6dsm_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_LOCKED)
-
-GPIO(EN_PWR_A, PIN(E, 2), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EN_PP1800_SENSOR, PIN(6, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(ENABLE_BACKLIGHT_L, PIN(D, 3), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(SYS_RESET_L, PIN(E, 4), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT | GPIO_PULL_UP) /* Battery Present */
-GPIO(PCH_SYS_PWROK, PIN(D, 6), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(CPU_PROCHOT, PIN(3, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* PROCHOT to SOC */
-GPIO(APU_ALERT_L, PIN(A, 2), GPIO_INPUT) /* Alert to SOC */
-GPIO(3AXIS_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* 3 Axis Accel */
-GPIO(EC_INT_L, PIN(A, 4), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SIC */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SID */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL and
- EC_I2C_KB_BL_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_EEPROM_SDA and
- EC_I2C_KB_BL_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SDA */
-
-/*
- * The NPCX LPC driver configures and controls SCI and SMI,
- * so PCH_SCI_ODL [PIN(7, 6)] and PCH_SMI_ODL [PIN(C, 6)] are
- * not defined here as GPIOs.
- */
-
-GPIO(EN_USB_A0_5V, PIN(6, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(C, 0), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_C0_OC_L, PIN(7, 3), GPIO_OUT_HIGH) /* C0 Over Current */
-GPIO(USB_C1_OC_L, PIN(7, 2), GPIO_OUT_HIGH) /* C1 Over Current */
-GPIO(USB_C0_PD_RST, PIN(3, 2), GPIO_OUT_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(D, 5), GPIO_OUT_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON_L, PIN(4, 0), GPIO_ODR_HIGH) /* C0 BC1.2 Power */
-GPIO(USB_C1_BC12_VBUS_ON_L, PIN(B, 1), GPIO_ODR_HIGH | GPIO_PULL_UP) /* C1 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET, PIN(6, 2), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C1_BC12_CHG_DET, PIN(8, 3), GPIO_INPUT | GPIO_PULL_DOWN) /* C1 BC1.2 Detect */
-GPIO(USB_C0_DP_HPD, PIN(9, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(9, 6), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 7), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(9, 3), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(8, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(4, 1), GPIO_INPUT)
-
-/* LED */
-GPIO(BAT_LED_1_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(BAT_LED_2_L, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(POWER_LED_3_L, PIN(B, 7), GPIO_OUT_HIGH)
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x02), 0, MODULE_ADC, 0) /* ADC8 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* Keyboard Pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = AC_PRESENT,
- GPIO01 = POWER_BUTTON_L,
- GPIO02 = EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
diff --git a/board/nuwani/led.c b/board/nuwani/led.c
deleted file mode 100644
index 76156d66d4..0000000000
--- a/board/nuwani/led.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* 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.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_POWER_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_POWER_LED_3_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/nuwani/vif_override.xml b/board/nuwani/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/nuwani/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/oak/battery.c b/board/oak/battery.c
deleted file mode 100644
index fffd2f7763..0000000000
--- a/board/oak/battery.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2015 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "i2c.h"
-#include "util.h"
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define PARAM_CUT_OFF_LOW 0x10
-#define PARAM_CUT_OFF_HIGH 0x00
-
-static const struct battery_info info = {
-#if (BOARD_REV >= OAK_REV3)
- .voltage_max = 13050,
- .voltage_normal = 11400,
- /*
- * TODO(crosbug.com/p/44428):
- * In order to compatible with 2S battery, set min voltage as 6V rather
- * than 9V. Should set voltage_min to 9V, when 2S battery
- * phased out.
- */
- .voltage_min = 6000,
-#else /* BOARD_REV < OAK_REV3 */
- .voltage_max = 8700,
- .voltage_normal = 7600,
- .voltage_min = 6000,
-#endif
- /* Pre-charge values. */
- .precharge_current = 256, /* mA */
-
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-static int cutoff(void)
-{
- int rv;
- uint8_t buf[3];
-
- /* Ship mode command must be sent twice to take effect */
- buf[0] = SB_MANUFACTURER_ACCESS & 0xff;
- buf[1] = PARAM_CUT_OFF_LOW;
- buf[2] = PARAM_CUT_OFF_HIGH;
-
- i2c_lock(I2C_PORT_BATTERY, 1);
- rv = i2c_xfer_unlocked(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS,
- buf, 3, NULL, 0, I2C_XFER_SINGLE);
- rv |= i2c_xfer_unlocked(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS,
- buf, 3, NULL, 0, I2C_XFER_SINGLE);
- i2c_lock(I2C_PORT_BATTERY, 0);
-
- return rv;
-}
-
-int board_cut_off_battery(void)
-{
- return cutoff();
-}
diff --git a/board/oak/board.c b/board/oak/board.c
deleted file mode 100644
index e8eba6d45b..0000000000
--- a/board/oak/board.c
+++ /dev/null
@@ -1,732 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/* Oak board configuration */
-
-#include "adc.h"
-#include "als.h"
-#include "atomic.h"
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_opt3001.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_lid.h"
-#include "motion_sense.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "thermal.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Dispaly port hardware can connect to port 0, 1 or neither. */
-#define PD_PORT_NONE -1
-
-void pd_mcu_interrupt(enum gpio_signal signal)
-{
- /* Exchange status with PD MCU to determine interrupt cause */
- host_command_pd_send_status(0);
-}
-
-#if BOARD_REV >= OAK_REV4
-void usb_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_INTR);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_INTR);
-}
-#endif /* BOARD_REV >= OAK_REV4 */
-
-#include "gpio_list.h"
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_SOC_POWER_GOOD, POWER_SIGNAL_ACTIVE_HIGH, "POWER_GOOD"},
- {GPIO_SUSPEND_L, POWER_SIGNAL_ACTIVE_LOW, "SUSPEND#_ASSERTED"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /*
- * PSYS_MONITOR(PA2): ADC_IN2, 1.44 uA/W on 6.05k Ohm
- * output in mW
- */
- [ADC_PSYS] = {"PSYS", 379415, 4096, 0, STM32_AIN(2)},
- /* AMON_BMON(PC0): ADC_IN10, output in uV */
- [ADC_AMON_BMON] = {"AMON_BMON", 183333, 4096, 0, STM32_AIN(10)},
- /* VDC_BOOSTIN_SENSE(PC1): ADC_IN11, output in mV */
- [ADC_VBUS] = {"VBUS", 33000, 4096, 0, STM32_AIN(11)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"battery", I2C_PORT_BATTERY, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"pd", I2C_PORT_PD_MCU, 1000, GPIO_I2C1_SCL, GPIO_I2C1_SDA}
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#ifdef CONFIG_ACCELGYRO_BMI160
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 1, GPIO_SPI2_NSS }
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-#endif
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC,
- .addr_flags = CONFIG_TCPC_I2C_BASE_ADDR_FLAGS,
- },
- .drv = &tcpci_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC,
- .addr_flags = CONFIG_TCPC_I2C_BASE_ADDR_FLAGS + 1,
- },
- .drv = &tcpci_tcpm_drv,
- },
-};
-
-struct mutex pericom_mux_lock;
-struct pi3usb9281_config pi3usb9281_chips[] = {
- {
- .i2c_port = I2C_PORT_PERICOM,
- .mux_gpio = GPIO_USB_C_BC12_SEL,
- .mux_gpio_level = 0,
- .mux_lock = &pericom_mux_lock,
- },
- {
- .i2c_port = I2C_PORT_PERICOM,
- .mux_gpio = GPIO_USB_C_BC12_SEL,
- .mux_gpio_level = 1,
- .mux_lock = &pericom_mux_lock,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
- CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT);
-
-#if BOARD_REV == OAK_REV1
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = I2C_ADDR_CHARGER_FLAGS,
- .drv = &bq2477x_drv,
- },
-};
-#else
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-#endif /* OAK_REV1 */
-
-/*
- * Temperature sensors data; must be in same order as enum temp_sensor_id.
- * Sensor index and name must match those present in coreboot:
- * src/mainboard/google/${board}/acpi/dptf.asl
- */
-const struct temp_sensor_t temp_sensors[] = {
- {"TMP432_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_LOCAL},
- {"TMP432_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE1},
- {"TMP432_Sensor_2", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE2},
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp,
- 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-#ifdef HAS_TASK_ALS
-/* ALS instances. Must be in same order as enum als_id. */
-struct als_t als[] = {
- {"TI", opt3001_init, opt3001_read_lux, 5},
-};
-BUILD_ASSERT(ARRAY_SIZE(als) == ALS_COUNT);
-#endif
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_USB_MUX,
-#if (BOARD_REV <= OAK_REV4)
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR1,
- .driver = &pi3usb3x532_usb_mux_driver,
-#else
- .i2c_addr_flags = 0x10,
- .driver = &ps8740_usb_mux_driver,
-#endif
- },
-};
-
-/**
- * Store the current DP hardware route.
- */
-static int dp_hw_port = PD_PORT_NONE;
-static struct mutex dp_hw_lock;
-
-/**
- * Reset PD MCU
- */
-void board_reset_pd_mcu(void)
-{
- gpio_set_level(GPIO_USB_PD_RST_L, 0);
- usleep(100);
- gpio_set_level(GPIO_USB_PD_RST_L, 1);
-}
-
-/**
- * There is a level shift for AC_OK & LID_OPEN signal between AP & EC,
- * disable it (drive high) when AP is off, otherwise enable it (drive low).
- */
-static void board_extpower_buffer_to_soc(void)
-{
- /* Drive high when AP is off (G3), else drive low */
- gpio_set_level(GPIO_LEVEL_SHIFT_EN_L,
- chipset_in_state(CHIPSET_STATE_HARD_OFF) ? 1 : 0);
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /*
- * Assert wake GPIO to PD MCU to wake it from hibernate.
- * This cannot be done from board_pre_init() (or from any function
- * called before system_pre_init()), otherwise a spurious wake will
- * occur -- see stm32 check_reset_cause() WORKAROUND comment.
- */
- gpio_set_level(GPIO_USB_PD_VBUS_WAKE, 1);
-
- /* Enable Level shift of AC_OK & LID_OPEN signals */
- board_extpower_buffer_to_soc();
- /* Enable rev1 testing GPIOs */
- gpio_set_level(GPIO_SYSTEM_POWER_H, 1);
- /* Enable PD MCU interrupt */
- gpio_enable_interrupt(GPIO_PD_MCU_INT);
-
-#if BOARD_REV >= OAK_REV4
- /* Enable BC 1.2 interrupt */
- gpio_enable_interrupt(GPIO_USB_BC12_INT);
-#endif /* BOARD_REV >= OAK_REV4 */
-
-#if BOARD_REV >= OAK_REV3
- /* Update VBUS supplier */
- usb_charger_vbus_change(0, !gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L));
- usb_charger_vbus_change(1, !gpio_get_level(GPIO_USB_C1_VBUS_WAKE_L));
-#else
- usb_charger_vbus_change(0, 0);
- usb_charger_vbus_change(1, 0);
-#endif
-
-#ifdef CONFIG_ACCELGYRO_BMI160
- /* SPI sensors: put back the GPIO in its expected state */
- gpio_set_level(GPIO_SPI2_NSS, 1);
-
- /* Remap SPI2 to DMA channels 6 and 7 (0011) */
- STM32_DMA_CSELR(STM32_DMAC_CH6) |= (3 << 20) | (3 << 24);
-
- /* Enable SPI for BMI160 */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-
- /* Set all four SPI pins to high speed */
- /* pins D0/D1/D3/D4 */
- STM32_GPIO_OSPEEDR(GPIO_D) |= 0x000003cf;
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
- CPRINTS("Board using SPI sensors");
-#endif
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/**
- * Set active charge port -- only one port can active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Return EC_SUCCESS if charge port is accepted and made active.
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are source VBUS on the port */
- int source = gpio_get_level(charge_port == 0 ? GPIO_USB_C0_5V_EN :
- GPIO_USB_C1_5V_EN);
-
- if (is_real_port && source) {
- CPRINTF("Skip enable p%d", charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTF("New chg p%d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable both ports */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
- gpio_set_level(GPIO_USB_C1_CHARGE_L, 1);
- } else {
- /* Make sure non-charging port is disabled */
- gpio_set_level(charge_port ? GPIO_USB_C0_CHARGE_L :
- GPIO_USB_C1_CHARGE_L, 1);
- /* Enable charging port */
- gpio_set_level(charge_port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-/*
- * timestamp of the next possible toggle to ensure the 2-ms spacing
- * between IRQ_HPD.
- */
-static uint64_t hpd_deadline[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-static void board_typec_set_dp_hpd(int port, int level)
-{
-#if BOARD_REV >= OAK_REV5
- if (1 == dp_hw_port)
- gpio_set_level(GPIO_C1_DP_HPD, level);
-#endif
-
- gpio_set_level(GPIO_USB_DP_HPD, level);
-}
-
-/**
- * Turn on DP hardware on type-C port.
- */
-void board_typec_dp_on(int port)
-{
- mutex_lock(&dp_hw_lock);
-
- if (dp_hw_port != !port) {
- /* Get control of DP hardware */
- dp_hw_port = port;
-#if BOARD_REV == OAK_REV2 || BOARD_REV >= OAK_REV5
- /* Rev2 or Rev5 later board has DP switch */
- gpio_set_level(GPIO_DP_SWITCH_CTL, port);
-#endif
- if (!gpio_get_level(GPIO_USB_DP_HPD)) {
- board_typec_set_dp_hpd(port, 1);
- } else {
- uint64_t now = get_time().val;
- /* wait for the minimum spacing between IRQ_HPD */
- if (now < hpd_deadline[port])
- usleep(hpd_deadline[port] - now);
-
- board_typec_set_dp_hpd(port, 0);
- usleep(HPD_DSTREAM_DEBOUNCE_IRQ);
- board_typec_set_dp_hpd(port, 1);
- }
- }
- /* enforce 2-ms delay between HPD pulses */
- hpd_deadline[port] = get_time().val + HPD_USTREAM_DEBOUNCE_LVL;
-
- mutex_unlock(&dp_hw_lock);
-}
-
-/**
- * Turn off a PD port's DP output.
- */
-void board_typec_dp_off(int port, int *dp_flags)
-{
- mutex_lock(&dp_hw_lock);
-
- if (dp_hw_port == !port) {
- mutex_unlock(&dp_hw_lock);
- return;
- }
-
- dp_hw_port = PD_PORT_NONE;
- board_typec_set_dp_hpd(port, 0);
-
- mutex_unlock(&dp_hw_lock);
-
- /* Enable the other port if its dp flag is on */
- if (dp_flags[!port] & DP_FLAGS_DP_ON)
- board_typec_dp_on(!port);
-}
-
-/**
- * Set DP hotplug detect level.
- */
-void board_typec_dp_set(int port, int level)
-{
- mutex_lock(&dp_hw_lock);
-
- if (dp_hw_port == PD_PORT_NONE) {
- dp_hw_port = port;
-#if BOARD_REV == OAK_REV2 || BOARD_REV >= OAK_REV5
- /* Rev2 or Rev5 later board has DP switch */
- gpio_set_level(GPIO_DP_SWITCH_CTL, port);
-#endif
- }
-
- if (dp_hw_port == port)
- board_typec_set_dp_hpd(port, level);
-
- mutex_unlock(&dp_hw_lock);
-}
-
-#if BOARD_REV < OAK_REV3
-#ifndef CONFIG_AP_WARM_RESET_INTERRUPT
-/* Using this hook if system doesn't have enough external line. */
-static void check_ap_reset_second(void)
-{
- /* Check the warm reset signal from servo board */
- static int warm_reset, last;
-
- warm_reset = !gpio_get_level(GPIO_AP_RESET_L);
-
- if (last == warm_reset)
- return;
-
- if (warm_reset)
- chipset_reset(); /* Warm reset AP */
-
- last = warm_reset;
-}
-DECLARE_HOOK(HOOK_SECOND, check_ap_reset_second, HOOK_PRIO_DEFAULT);
-#endif
-#endif
-
-/**
- * Set AP reset.
- *
- * PMIC_WARM_RESET_H (PB3) is connected to PMIC RESET before rev < 3.
- * AP_RESET_L (PC3, CPU_WARM_RESET_L) is connected to PMIC SYSRSTB
- * after rev >= 3.
- */
-void board_set_ap_reset(int asserted)
-{
- if (system_get_board_version() < 3) {
- /* Signal is active-high */
- CPRINTS("pmic warm reset(%d)", asserted);
- gpio_set_level(GPIO_PMIC_WARM_RESET_H, asserted);
- } else {
- /* Signal is active-low */
- CPRINTS("ap warm reset(%d)", asserted);
- gpio_set_level(GPIO_AP_RESET_L, !asserted);
- }
-}
-
-#if BOARD_REV < OAK_REV4
-/**
- * Check VBUS state and trigger USB BC1.2 charger.
- */
-void vbus_task(void *u)
-{
- struct {
- uint8_t interrupt;
- uint8_t device_type;
- uint8_t charger_status;
- uint8_t vbus;
- } bc12[CONFIG_USB_PD_PORT_MAX_COUNT];
- uint8_t port, vbus, reg, wake;
-
- while (1) {
- for (port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; port++) {
-#if BOARD_REV == OAK_REV3
- vbus = !gpio_get_level(port ? GPIO_USB_C1_VBUS_WAKE_L :
- GPIO_USB_C0_VBUS_WAKE_L);
-#else
- vbus = tcpm_check_vbus_level(port, VBUS_PRESENT);
-#endif
- /* check if VBUS changed */
- if (((bc12[port].vbus >> port) & 1) == vbus)
- continue;
- /* wait 1.2 seconds and check BC 1.2 status */
- msleep(1200);
-
- if (vbus)
- bc12[port].vbus |= 1 << port;
- else
- bc12[port].vbus &= ~BIT(port);
-
- wake = 0;
- reg = pi3usb9281_get_interrupts(port);
- if (reg != bc12[port].interrupt) {
- bc12[port].interrupt = reg;
- wake++;
- }
-
- reg = pi3usb9281_get_device_type(port);
- if (reg != bc12[port].device_type) {
- bc12[port].device_type = reg;
- wake++;
- }
-
- reg = pi3usb9281_get_charger_status(port);
- if (reg != bc12[port].charger_status) {
- bc12[port].charger_status = reg;
- wake++;
- }
-
- if (wake)
- task_set_event(port ? TASK_ID_USB_CHG_P1 :
- TASK_ID_USB_CHG_P0,
- USB_CHG_EVENT_BC12);
- }
- task_wait_event(-1);
- }
-}
-#else
-void vbus_task(void *u)
-{
- while (1)
- task_wait_event(-1);
-}
-#endif /* BOARD_REV < OAK_REV4 */
-
-#ifdef CONFIG_TEMP_SENSOR_TMP432
-static void tmp432_set_power_deferred(void)
-{
- /* Shut tmp432 down if not in S0 && no external power */
- if (!extpower_is_present() && !chipset_in_state(CHIPSET_STATE_ON)) {
- if (EC_SUCCESS != tmp432_set_power(TMP432_POWER_OFF))
- CPRINTS("ERROR: Can't shutdown TMP432.");
- return;
- }
-
- /* else, turn it on. */
- if (EC_SUCCESS != tmp432_set_power(TMP432_POWER_ON))
- CPRINTS("ERROR: Can't turn on TMP432.");
-}
-DECLARE_DEFERRED(tmp432_set_power_deferred);
-#endif
-
-/**
- * Hook of AC change. turn on/off tmp432 depends on AP & AC status.
- */
-static void board_extpower(void)
-{
- board_extpower_buffer_to_soc();
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- hook_call_deferred(&tmp432_set_power_deferred_data, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition, and before HOOK_CHIPSET_STARTUP */
-static void board_chipset_pre_init(void)
-{
- /* Enable level shift of AC_OK when power on */
- board_extpower_buffer_to_soc();
-#if BOARD_REV >= OAK_REV5
- /* Enable DP muxer */
- gpio_set_level(GPIO_DP_MUX_EN_L , 0);
- gpio_set_level(GPIO_PARADE_MUX_EN, 1);
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_PRE_INIT, board_chipset_pre_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Disable level shift to SoC when shutting down */
- gpio_set_level(GPIO_LEVEL_SHIFT_EN_L, 1);
-#if BOARD_REV >= OAK_REV5
- /* Disable DP muxer */
- gpio_set_level(GPIO_DP_MUX_EN_L , 1);
- gpio_set_level(GPIO_PARADE_MUX_EN, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- hook_call_deferred(&tmp432_set_power_deferred_data, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
-#ifdef CONFIG_TEMP_SENSOR_TMP432
- hook_call_deferred(&tmp432_set_power_deferred_data, 0);
-#endif
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-#ifdef HAS_TASK_MOTIONSENSE
-/* Motion sensors */
-/* Mutexes */
-#ifdef CONFIG_ACCEL_KX022
-static struct mutex g_lid_mutex;
-#endif
-#ifdef CONFIG_ACCELGYRO_BMI160
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-#endif
-
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
-#ifdef CONFIG_ACCELGYRO_BMI160
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(0),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(0),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-#endif
-#ifdef CONFIG_ACCEL_KX022
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-#endif
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-__override void lid_angle_peripheral_enable(int enable)
-{
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-#endif /* defined(HAS_TASK_MOTIONSENSE) */
diff --git a/board/oak/board.h b/board/oak/board.h
deleted file mode 100644
index e82907a508..0000000000
--- a/board/oak/board.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/* oak board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* board revision */
-#include "board_revs.h"
-
-/* Free up some flash space */
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#define CONFIG_USB_PD_DEBUG_LEVEL 0
-
-#define CONFIG_LTO
-
-#if BOARD_REV >= OAK_REV5
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#endif
-
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-
-#if BOARD_REV >= OAK_REV5
-/* Add for Ambient Light Sensor */
-#define CONFIG_ALS_OPT3001
-#define CONFIG_CMD_ALS
-#endif
-
-/* Add for AC adaptor, charger, battery */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_PRESENT_L
-#define CONFIG_BATTERY_REQUESTS_NIL_WHEN_DEAD
-#define CONFIG_BATTERY_SMART
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGER
-
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-
-#if BOARD_REV == OAK_REV1
-#define CONFIG_CHARGER_BQ24773
-#define CONFIG_CHARGER_MAX_INPUT_CURRENT 2150
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#else
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_ISL9237
-#define CONFIG_CHARGER_MAX_INPUT_CURRENT 2250
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#endif /* BOARD_REV */
-
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHIPSET_MT817X
-#define CONFIG_CMD_TYPEC
-#define CONFIG_EXTPOWER_GPIO
-#define CONFIG_FORCE_CONSOLE_RESUME
-
-/*
- * EC_WAKE: PA0 - WKUP1
- * POWER_BUTTON_L: PB5 - WKUP6
- */
-#define CONFIG_HIBERNATE
-#if BOARD_REV <= OAK_REV4
-#define CONFIG_HIBERNATE_WAKEUP_PINS (STM32_PWR_CSR_EWUP6)
-#else
-#define CONFIG_HIBERNATE_WAKEUP_PINS (STM32_PWR_CSR_EWUP1)
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-#endif /* BOARD_REV */
-#define CONFIG_HOST_COMMAND_STATUS
-#define CONFIG_HOSTCMD_PD
-#define CONFIG_HOSTCMD_PD_PANIC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_COMMON
-#define CONFIG_USB_CHARGER
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_VBOOT_HASH
-#undef CONFIG_WATCHDOG_HELP
-#define CONFIG_SWITCH
-#define CONFIG_BOARD_VERSION_GPIO
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_TMP432
-#define CONFIG_DPTF
-
-/* UART DMA */
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-/*
- * Allow dangerous commands.
- * TODO: Remove this config before production.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* Optional features */
-#define CONFIG_CMD_HOSTCMD
-#undef CONFIG_CMD_MFALLOW
-
-/* Drivers */
-/* USB Mux */
-#define CONFIG_USB_MUX_PI3USB30532
-#if BOARD_REV >= OAK_REV5
-#define CONFIG_USB_MUX_PS8740
-#endif
-/* BC 1.2 charger */
-#define CONFIG_BC12_DETECT_PI3USB9281
-#define CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT 2
-
-#ifndef __ASSEMBLER__
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Keyboard output port list */
-#define KB_OUT_PORT_LIST GPIO_A, GPIO_B, GPIO_C, GPIO_D
-
-/* 2 I2C master ports, connect to battery, charger, pd and USB switches */
-#define I2C_PORT_MASTER 0
-#define I2C_PORT_ACCEL 0
-#define I2C_PORT_ALS 0
-#define I2C_PORT_BATTERY 0
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_PERICOM 0
-#define I2C_PORT_THERMAL 0
-#define I2C_PORT_PD_MCU 1
-#define I2C_PORT_USB_MUX 1
-#define I2C_PORT_TCPC 1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* First SPI master port (SPI2) */
-
-/* Ambient Light Sensor address */
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 4
-
-/* Define the host events which are allowed to wakeup AP in S3. */
-#define CONFIG_MKBP_HOST_EVENT_WAKEUP_MASK \
- (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEYBOARD_RECOVERY) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEYBOARD_FASTBOOT))
-
-#include "gpio_signal.h"
-
-enum power_signal {
- MTK_POWER_GOOD = 0,
- MTK_SUSPEND_ASSERTED,
- /* Number of power signals */
- POWER_SIGNAL_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_POWER_LED = 0,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum adc_channel {
- ADC_PSYS = 0, /* PC1: STM32_AIN(2) */
- ADC_AMON_BMON, /* PC0: STM32_AIN(10) */
- ADC_VBUS, /* PA2: STM32_AIN(11) */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- /* TMP432 local and remote sensors */
- TEMP_SENSOR_I2C_TMP432_LOCAL,
- TEMP_SENSOR_I2C_TMP432_REMOTE1,
- TEMP_SENSOR_I2C_TMP432_REMOTE2,
-
- /* Battery temperature sensor */
- TEMP_SENSOR_BATTERY,
-
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
-#ifdef CONFIG_ACCELGYRO_BMI160
- BASE_ACCEL,
- BASE_GYRO,
-#endif
-#ifdef CONFIG_ACCEL_KX022
- LID_ACCEL,
-#endif
- SENSOR_COUNT,
-};
-
-/* Light sensors */
-enum als_id {
- ALS_OPT3001 = 0,
-
- ALS_COUNT
-};
-
-/* TODO: determine the following board specific type-C power constants */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA CONFIG_CHARGER_MAX_INPUT_CURRENT
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Reset PD MCU */
-void board_reset_pd_mcu(void);
-/* Set AP reset pin according to parameter */
-void board_set_ap_reset(int asserted);
-
-/* Control type-C DP route and hotplug detect signal */
-void board_typec_dp_on(int port);
-void board_typec_dp_off(int port, int *dp_flags);
-void board_typec_dp_set(int port, int level);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/oak/board_revs.h b/board/oak/board_revs.h
deleted file mode 100644
index 34fc4bfc88..0000000000
--- a/board/oak/board_revs.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2015 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.
- */
-
-#ifndef __CROS_EC_BOARD_REVS_H
-#define __CROS_EC_BOARD_REVS_H
-
-#define OAK_REV0 0
-#define OAK_REV1 1
-#define OAK_REV2 2
-#define OAK_REV3 3
-#define OAK_REV4 4
-#define OAK_REV5 5
-#define OAK_REV_LAST OAK_REV5
-#define OAK_REV_DEFAULT OAK_REV5
-
-#if !defined(BOARD_REV)
-#define BOARD_REV OAK_REV_DEFAULT
-#endif
-
-#if BOARD_REV < OAK_REV1 || BOARD_REV > OAK_REV_LAST
-#error "Board revision out of range"
-#endif
-
-#endif /* __CROS_EC_BOARD_REVS_H */
diff --git a/board/oak/build.mk b/board/oak/build.mk
deleted file mode 100644
index dc21970df0..0000000000
--- a/board/oak/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-#-*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-
-# STmicro STM32F091VC
-CHIP := stm32
-CHIP_FAMILY := stm32f0
-CHIP_VARIANT:= stm32f09x
-
-board-y = board.o battery.o led.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/oak/ec.tasklist b/board/oak/ec.tasklist
deleted file mode 100644
index 2af7da77eb..0000000000
--- a/board/oak/ec.tasklist
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#include "board_revs.h"
-
-
-#if BOARD_REV >= OAK_REV5
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(VBUS, vbus_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(PDCMD, pd_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(ALS, als_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(MOTIONSENSE, motion_sense_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE)
-
-#else /* BOARD_REV >= OAK_REV5 */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(VBUS, vbus_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(PDCMD, pd_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE)
-
-#endif /* BOARD_REV >= OAK_REV5 */
diff --git a/board/oak/gpio.inc b/board/oak/gpio.inc
deleted file mode 100644
index 3789f3ec35..0000000000
--- a/board/oak/gpio.inc
+++ /dev/null
@@ -1,214 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2015 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(AC_PRESENT, PIN(C, 6), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(B, 5), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(C, 13), GPIO_INT_BOTH, lid_interrupt) /* LID switch detection */
-#if BOARD_REV <= OAK_REV3
-GPIO_INT(SUSPEND_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* AP suspend/resume state */
-#else
-GPIO_INT(SUSPEND_L, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt) /* AP suspend/resume state */
-#endif
-GPIO_INT(PD_MCU_INT, PIN(E, 0), GPIO_INT_FALLING, pd_mcu_interrupt) /* Signal from PD MCU, external pull-up */
-GPIO_INT(SPI1_NSS, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_UP, spi_event) /* SPI Chip Select */
-
-/* Keyboard inputs */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH)
-#define GPIO_KB_OUTPUT GPIO_ODR_HIGH
-
-GPIO_INT(KB_IN00, PIN(C, 8), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN01, PIN(C, 9), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN02, PIN(C, 10), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN03, PIN(C, 11), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN04, PIN(C, 12), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN05, PIN(C, 14), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN06, PIN(C, 15), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-GPIO_INT(KB_IN07, PIN(D, 2), GPIO_KB_INPUT, keyboard_raw_gpio_interrupt)
-
-/* Board specific interrupt and input */
-#if BOARD_REV <= OAK_REV1
-GPIO_INT(SOC_POWER_GOOD, PIN(A, 3), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt)
-GPIO(EC_INT_L, PIN(B, 9), GPIO_OUT_HIGH)
-#elif BOARD_REV == OAK_REV2
-GPIO_INT(SOC_POWER_GOOD, PIN(A, 3), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt)
-GPIO(EC_INT_L, PIN(B, 9), GPIO_OUT_HIGH)
-GPIO(USB_VBUS_WAKE_L, PIN(E, 1), GPIO_INPUT)
-#elif BOARD_REV == OAK_REV3
-GPIO_INT(SOC_POWER_GOOD, PIN(A, 3), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt)
-GPIO(EC_INT_L, PIN(B, 9), GPIO_OUT_HIGH)
-GPIO(USB_C0_VBUS_WAKE_L, PIN(E, 1), GPIO_INPUT)
-GPIO(USB_C1_VBUS_WAKE_L, PIN(F, 2), GPIO_INPUT)
-#elif BOARD_REV >= OAK_REV4
-GPIO_INT(SOC_POWER_GOOD, PIN(A, 3), GPIO_INT_BOTH , power_signal_interrupt)
-GPIO_INT(USB_BC12_INT, PIN(E, 1), GPIO_INT_FALLING, usb_evt)
-GPIO(USB_C0_VBUS_WAKE_L, PIN(D, 12), GPIO_INPUT)
-GPIO(USB_C1_VBUS_WAKE_L, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_INT_L, PIN(B, 9), GPIO_ODR_HIGH)
-#endif
-
-/* Inputs without interrupt handlers */
-GPIO(5V_POWER_GOOD, PIN(A, 1), GPIO_INPUT)
-GPIO(EC_WAKE, PIN(A, 0), GPIO_INPUT|GPIO_PULL_DOWN)
-GPIO(WP_L, PIN(B, 4), GPIO_INPUT) /* Write protect input */
-GPIO(BAT_PRESENT_L, PIN(E, 3), GPIO_INPUT|GPIO_PULL_UP)
-
-/* Board version */
-GPIO(BOARD_VERSION1, PIN(E, 10), GPIO_INPUT) /* Board ID 0 */
-GPIO(BOARD_VERSION2, PIN(E, 9), GPIO_INPUT) /* Board ID 1 */
-GPIO(BOARD_VERSION3, PIN(E, 12), GPIO_INPUT) /* Board ID 2 */
-GPIO(BOARD_VERSION4, PIN(E, 11), GPIO_INPUT) /* Board ID 3 */
-
-/* Outputs */
-#if BOARD_REV < OAK_REV5
-GPIO(BAT_LED0, PIN(B, 11), GPIO_OUT_LOW) /* LED_GREEN */
-GPIO(BAT_LED1, PIN(A, 11), GPIO_OUT_LOW) /* LED_ORANGE or LED_RED(>rev3)*/
-#else
-GPIO(BAT_LED0, PIN(A, 11), GPIO_OUT_LOW) /* LED_GREEN */
-GPIO(BAT_LED1, PIN(B, 11), GPIO_OUT_LOW) /* LED_ORANGE or LED_RED(>rev3)*/
-#endif
-
-#if (BOARD_REV == OAK_REV3) || (BOARD_REV == OAK_REV4)
-GPIO(PWR_LED0, PIN(F, 10), GPIO_OUT_LOW) /* LED_GREEN */
-GPIO(PWR_LED1, PIN(F, 9), GPIO_OUT_LOW) /* LED_ORANGE */
-#else
-UNIMPLEMENTED(PWR_LED0)
-UNIMPLEMENTED(PWR_LED1)
-#endif
-GPIO(EC_BL_OVERRIDE, PIN(F, 1), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(F, 0), GPIO_OUT_LOW)
-
-
-#if BOARD_REV == OAK_REV1
-GPIO(AP_RESET_L, PIN(C, 3), GPIO_INPUT|GPIO_PULL_UP) /* AP reset signal from servo board */
-GPIO(USB_C_BC12_SEL, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(KB_OUT00, PIN(B, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(B, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT02, PIN(B, 12), GPIO_OUT_LOW) /* KSO2 is inverted */
-GPIO(KB_OUT03, PIN(B, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT04, PIN(A, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(D, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(D, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(D, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(C, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(B, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(C, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(C, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(A, 13), GPIO_KB_OUTPUT)
-UNIMPLEMENTED(DP_SWITCH_CTL)
-
-#elif BOARD_REV == OAK_REV2
-GPIO(AP_RESET_L, PIN(C, 3), GPIO_INPUT|GPIO_PULL_UP) /* AP reset signal from servo board */
-GPIO(USB_C_BC12_SEL, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(KB_OUT00, PIN(B, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(B, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT02, PIN(B, 12), GPIO_OUT_LOW) /* KSO2 is inverted */
-GPIO(KB_OUT03, PIN(B, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT04, PIN(A, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(D, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(D, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(D, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(C, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(B, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(C, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(C, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(D, 5), GPIO_KB_OUTPUT)
-GPIO(DP_MUX_EN_L, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(DP_SWITCH_CTL, PIN(E, 5), GPIO_OUT_LOW)
-
-#elif BOARD_REV <= OAK_REV4 /* BOARD_REV 3 or 4 */
-GPIO(AP_RESET_L, PIN(C, 3), GPIO_ODR_HIGH) /* Connect to the PMU_SYSRSTB */
-GPIO(USB_C_BC12_SEL, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(KB_OUT00, PIN(B, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(B, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT02, PIN(B, 12), GPIO_OUT_LOW) /* KSO2 is inverted */
-GPIO(KB_OUT03, PIN(D, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT04, PIN(A, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(D, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(B, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(D, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(D, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(B, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(C, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(C, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(C, 2), GPIO_KB_OUTPUT)
-UNIMPLEMENTED(DP_SWITCH_CTL)
-
-#else /* >= OAK_REV5 */
-GPIO(AP_RESET_L, PIN(C, 3), GPIO_ODR_HIGH) /* Connect to the PMU_SYSRSTB */
-GPIO(USB_C_BC12_SEL, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(KB_OUT00, PIN(B, 0), GPIO_KB_OUTPUT)
-GPIO(KB_OUT01, PIN(B, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT02, PIN(B, 12), GPIO_OUT_LOW) /* KSO2 is inverted */
-GPIO(KB_OUT03, PIN(B, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT04, PIN(A, 8), GPIO_KB_OUTPUT)
-GPIO(KB_OUT05, PIN(D, 14), GPIO_KB_OUTPUT)
-GPIO(KB_OUT06, PIN(D, 13), GPIO_KB_OUTPUT)
-GPIO(KB_OUT07, PIN(D, 15), GPIO_KB_OUTPUT)
-GPIO(KB_OUT08, PIN(C, 2), GPIO_KB_OUTPUT)
-GPIO(KB_OUT09, PIN(B, 1), GPIO_KB_OUTPUT)
-GPIO(KB_OUT10, PIN(C, 5), GPIO_KB_OUTPUT)
-GPIO(KB_OUT11, PIN(C, 4), GPIO_KB_OUTPUT)
-GPIO(KB_OUT12, PIN(D, 5), GPIO_KB_OUTPUT)
-GPIO(C1_DP_HPD, PIN(E,15), GPIO_OUT_LOW) /* inform PS8740 to exit from idle mode. */
-GPIO(DP_SWITCH_CTL, PIN(E, 5), GPIO_OUT_LOW)
-GPIO(EN_OTG_USB_A_PWR, PIN(E, 4), GPIO_OUT_HIGH)
-GPIO(OTG_USB_A_ILIM_SEL,PIN(E, 2), GPIO_OUT_HIGH)
-GPIO(EC_IDDIG, PIN(E,13), GPIO_OUT_LOW)
-GPIO(DP_MUX_EN_L, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(PARADE_MUX_EN, PIN(E, 7), GPIO_OUT_HIGH)
-#endif /* BOARD_REV */
-
-GPIO(SYSTEM_POWER_H, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(PMIC_PWRON_H, PIN(A, 12), GPIO_OUT_LOW)
-GPIO(PMIC_WARM_RESET_H, PIN(B, 3), GPIO_OUT_LOW)
-#if BOARD_REV <= OAK_REV4
-GPIO(LEVEL_SHIFT_EN_L, PIN(D, 3), GPIO_OUT_LOW) /* LID/AC level shift */
-GPIO(USB_C0_DEVMODE_L, PIN(E, 4), GPIO_OUT_HIGH) /* set HSD2 (host mode) path as default */
-GPIO(USB_C1_DEVMODE, PIN(E, 2), GPIO_OUT_LOW) /* set HSD1 (host mode) path as default */
-#else /* >= OAK_REV5 */
-GPIO(LEVEL_SHIFT_EN_L, PIN(F, 10), GPIO_OUT_LOW) /* LID/AC level shift */
-/* SPI MASTER. For SPI sensor */
-GPIO(SPI2_NSS, PIN(D, 0), GPIO_OUT_LOW)
-
-#endif
-GPIO(USB_PD_RST_L, PIN(A, 15), GPIO_OUT_HIGH) /* PD reset */
-GPIO(USB_C0_5V_EN, PIN(D, 8), GPIO_OUT_LOW) /* USBC port 0 5V */
-GPIO(USB_C0_CHARGE_L, PIN(D, 9), GPIO_OUT_LOW) /* USBC port 0 charge */
-GPIO(USB_C1_5V_EN, PIN(D, 10), GPIO_OUT_LOW) /* USBC port 1 5V */
-GPIO(USB_C1_CHARGE_L, PIN(D, 11), GPIO_OUT_LOW) /* USBC port 1 charge */
-GPIO(USB_PD_VBUS_WAKE, PIN(B, 15), GPIO_OUT_LOW) /* PD MCU wake */
-GPIO(USB_DP_HPD, PIN(F, 3), GPIO_OUT_LOW)
-
-#if (BOARD_REV < OAK_REV5)
-GPIO(TYPEC0_MUX_EN_L, PIN(E, 13), GPIO_OUT_LOW)
-GPIO(TYPEC1_MUX_EN_L, PIN(E, 14), GPIO_OUT_LOW)
-#endif
-
-/* Analog pins */
-GPIO(VDC_BOOSTIN_SENSE, PIN(C, 1), GPIO_ANALOG) /* ADC_IN11 */
-GPIO(PSYS_MONITOR, PIN(A, 2), GPIO_ANALOG) /* ADC_IN2 */
-GPIO(AMON_BMON, PIN(C, 0), GPIO_ANALOG) /* ADC_IN10 */
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C0_SCL, PIN(B, 6), GPIO_INPUT) /* EC I2C */
-GPIO(I2C0_SDA, PIN(B, 7), GPIO_INPUT)
-GPIO(I2C1_SCL, PIN(B, 13), GPIO_INPUT) /* PD I2C */
-GPIO(I2C1_SDA, PIN(B, 14), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0) /* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, 0) /* I2C MASTER:PB6/7 */
-ALTERNATE(PIN_MASK(B, 0x6000), 5, MODULE_I2C, 0) /* I2C MASTER:PB13/14 */
-ALTERNATE(PIN_MASK(A, 0x00f0), 0, MODULE_SPI, 0) /* SPI SLAVE:PA4/5/6/7 */
-#if BOARD_REV >= OAK_REV5
-ALTERNATE(PIN_MASK(D, 0x001A), 1, MODULE_SPI_CONTROLLER, 0) /* SPI MASTER:PD1/3/4 */
-#endif
diff --git a/board/oak/led.c b/board/oak/led.c
deleted file mode 100644
index 877f115a12..0000000000
--- a/board/oak/led.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Copyright 2015 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.
- *
- * Battery LED and Power LED control for Oak Board.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "util.h"
-#include "system.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- BAT_LED_GREEN = 0,
- BAT_LED_ORANGE,
- BAT_LED_RED,
- BAT_LED_AMBER,
- PWR_LED_GREEN,
- PWR_LED_ORANGE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int bat_led_set(enum led_color color, int on)
-{
- /* Before Rev5, it's active low; After that, it's active high */
- if (system_get_board_version() < OAK_REV5)
- on = !on;
-
- switch (color) {
- case BAT_LED_GREEN:
- gpio_set_level(GPIO_BAT_LED0, on); /* BAT_LED_GREEN */
- break;
- case BAT_LED_ORANGE:
- /* for rev2 or before */
- gpio_set_level(GPIO_BAT_LED1, on); /* BAT_LED_ORANGE */
- break;
- case BAT_LED_RED:
- /* for rev3 or later */
- gpio_set_level(GPIO_BAT_LED1, on); /* BAT_LED_RED */
- break;
- case BAT_LED_AMBER:
- /* for rev3 or later */
- gpio_set_level(GPIO_BAT_LED0, on); /* BAT_LED_AMBER */
- gpio_set_level(GPIO_BAT_LED1, on);
- break;
- case PWR_LED_GREEN:
- gpio_set_level(GPIO_PWR_LED0, on); /* PWR_LED_GREEN */
- break;
- case PWR_LED_ORANGE:
- gpio_set_level(GPIO_PWR_LED1, on); /* PWR_LED_ORANGE */
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- /* Ignoring led_id as both leds support the same colors */
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_YELLOW] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (EC_LED_ID_BATTERY_LED == led_id) {
- if (brightness[EC_LED_COLOR_GREEN] != 0) {
- bat_led_set(BAT_LED_GREEN, 1);
- bat_led_set(BAT_LED_ORANGE, 0);
- } else if (brightness[EC_LED_COLOR_YELLOW] != 0) {
- bat_led_set(BAT_LED_GREEN, 1);
- bat_led_set(BAT_LED_ORANGE, 1);
- } else if (brightness[EC_LED_COLOR_RED] != 0) {
- bat_led_set(BAT_LED_GREEN, 0);
- bat_led_set(BAT_LED_RED, 1);
- } else {
- bat_led_set(BAT_LED_GREEN, 0);
- bat_led_set(BAT_LED_ORANGE, 0);
- }
- return EC_SUCCESS;
- } else if (EC_LED_ID_POWER_LED == led_id) {
- if (brightness[EC_LED_COLOR_GREEN] != 0) {
- bat_led_set(PWR_LED_GREEN, 1);
- bat_led_set(PWR_LED_ORANGE, 0);
- } else if (brightness[EC_LED_COLOR_YELLOW] != 0) {
- bat_led_set(PWR_LED_GREEN, 1);
- bat_led_set(PWR_LED_ORANGE, 1);
- } else {
- bat_led_set(PWR_LED_GREEN, 0);
- bat_led_set(PWR_LED_ORANGE, 0);
- }
- return EC_SUCCESS;
- } else {
- return EC_ERROR_UNKNOWN;
- }
-}
-
-static void oak_led_set_power(int board_version)
-{
- static int power_second;
-
- power_second++;
-
- switch(board_version) {
- case OAK_REV3:
- case OAK_REV4:
- /*
- * For Rev3 and Rev4 revision.
- * PWR LED behavior:
- * Power on: Green ON
- * Suspend: Orange in breeze mode ( 1 sec on/ 3 sec off)
- * Power off: OFF
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- bat_led_set(PWR_LED_GREEN, 0);
- bat_led_set(PWR_LED_ORANGE, 0);
- } else if (chipset_in_state(CHIPSET_STATE_ON)) {
- bat_led_set(PWR_LED_GREEN, 1);
- bat_led_set(PWR_LED_ORANGE, 0);
- } else if (chipset_in_state(CHIPSET_STATE_SUSPEND)) {
- bat_led_set(PWR_LED_GREEN, 0);
- bat_led_set(PWR_LED_ORANGE,
- (power_second & 3) ? 0 : 1);
- }
- break;
- default:
- break;
- }
-}
-
-static void oak_led_set_battery(int board_version)
-{
- static int battery_second;
-
- battery_second++;
-
- switch(board_version) {
- case OAK_REV3:
- case OAK_REV4:
- /*
- * For Rev3 and Rev4 revision:
- * BAT LED behavior:
- * - Fully charged / idle: Green ON
- * - Charging: Amber ON (BAT_LED_RED && BAT_LED_GREEN)
- * - Battery discharging capacity<10%, red blink
- * - Battery error: Red ON
- */
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- bat_led_set(BAT_LED_AMBER, 1);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- bat_led_set(BAT_LED_GREEN, 1);
- bat_led_set(BAT_LED_RED, 0);
- break;
- case PWR_STATE_DISCHARGE:
- bat_led_set(BAT_LED_GREEN, 0);
- if (charge_get_percent() < 3)
- bat_led_set(BAT_LED_RED,
- (battery_second & 1) ? 0 : 1);
- else if (charge_get_percent() < 10)
- bat_led_set(BAT_LED_RED,
- (battery_second & 3) ? 0 : 1);
- else
- bat_led_set(BAT_LED_RED, 0);
- break;
- case PWR_STATE_ERROR:
- bat_led_set(BAT_LED_RED, 1);
- break;
- case PWR_STATE_IDLE: /* Ext. power connected in IDLE. */
- bat_led_set(BAT_LED_GREEN, 1);
- bat_led_set(BAT_LED_RED, 0);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
- break; /* End of case OAK_REV3 & OAK_REV4 */
- default:
- /*
- * Put power control here since we are using the "battery" LED.
- * This allows LED autocontrol to be turned off by cmd during factory test.
- *
- * PWR LED behavior:
- * Power on: Green
- * Suspend: Green in breeze mode ( 1 sec on/ 3 sec off)
- * Power off: OFF
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- bat_led_set(BAT_LED_GREEN, 0);
- else if (chipset_in_state(CHIPSET_STATE_ON))
- bat_led_set(BAT_LED_GREEN, 1);
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND)) {
- int cycle_time = 4;
- /* Oak rev5 with GlaDOS ID has a extremely power
- * comsuming LED. Increase LED blink cycle time to reduce
- * S3 power comsuption. */
- if (board_version >= OAK_REV5)
- cycle_time = 10;
- bat_led_set(BAT_LED_GREEN,
- (battery_second % cycle_time) ? 0 : 1);
- }
-
- /* BAT LED behavior:
- * Fully charged / idle: Off
- * Under charging: Orange
- * Bat. low (10%): Orange in breeze mode (1s on, 3s off)
- * Bat. critical low (less than 3%) or abnormal battery
- * situation: Orange in blinking mode (1s on, 1s off)
- * Using battery or not connected to AC power: OFF
- */
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- bat_led_set(BAT_LED_ORANGE, 1);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- bat_led_set(BAT_LED_ORANGE, 1);
- break;
- case PWR_STATE_DISCHARGE:
- if (charge_get_percent() < 3)
- bat_led_set(BAT_LED_ORANGE,
- (battery_second & 1) ? 0 : 1);
- else if (charge_get_percent() < 10)
- bat_led_set(BAT_LED_ORANGE,
- (battery_second & 3) ? 0 : 1);
- else
- bat_led_set(BAT_LED_ORANGE, 0);
- break;
- case PWR_STATE_ERROR:
- bat_led_set(BAT_LED_ORANGE,
- (battery_second & 1) ? 0 : 1);
- break;
- case PWR_STATE_IDLE: /* Ext. power connected in IDLE. */
- bat_led_set(BAT_LED_ORANGE, 0);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
- break; /* End of default */
- }
-}
-
-/**
- * Called by hook task every 1 sec
- */
-static void led_second(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- oak_led_set_power(system_get_board_version());
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- oak_led_set_battery(system_get_board_version());
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
diff --git a/board/oak/usb_pd_policy.c b/board/oak/usb_pd_policy.c
deleted file mode 100644
index a4e62ebe88..0000000000
--- a/board/oak/usb_pd_policy.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright 2015 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.
- */
-
-#include "atomic.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 1);
- /* Provide VBUS */
- gpio_set_level(port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- gpio_set_level(port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-__override int pd_board_checks(void)
-{
-#if BOARD_REV <= OAK_REV3
- /* wake up VBUS task to check vbus change */
- task_wake(TASK_ID_VBUS);
-#endif
- return EC_SUCCESS;
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since 5V power source is off */
- return gpio_get_level(GPIO_5V_POWER_GOOD);
-}
-
-/* ----------------- Vendor Defined Messages ------------------ */
-#ifdef CONFIG_USB_PD_ALT_MODE_DFP
-__override void svdm_dp_post_config(int port)
-{
- dp_flags[port] |= DP_FLAGS_DP_ON;
- if (!(dp_flags[port] & DP_FLAGS_HPD_HI_PENDING))
- return;
- board_typec_dp_set(port, 1);
-}
-
-__override int svdm_dp_attention(int port, uint32_t *payload)
-{
- int cur_lvl;
- int lvl = PD_VDO_DPSTS_HPD_LVL(payload[1]);
- int irq = PD_VDO_DPSTS_HPD_IRQ(payload[1]);
-
- dp_status[port] = payload[1];
- cur_lvl = gpio_get_level(GPIO_USB_DP_HPD);
-
- /* Its initial DP status message prior to config */
- if (!(dp_flags[port] & DP_FLAGS_DP_ON)) {
- if (lvl)
- dp_flags[port] |= DP_FLAGS_HPD_HI_PENDING;
- return 1;
- }
-
- if (irq & cur_lvl) {
- board_typec_dp_on(port);
- } else if (irq & !cur_lvl) {
- CPRINTF("ERR:HPD:IRQ&LOW\n");
- return 0; /* nak */
- } else {
- board_typec_dp_set(port, lvl);
- }
- /* ack */
- return 1;
-}
-
-__override void svdm_exit_dp_mode(int port)
-{
- board_typec_dp_off(port, dp_flags);
-}
-#endif /* CONFIG_USB_PD_ALT_MODE_DFP */
diff --git a/board/oak/vif_override.xml b/board/oak/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/oak/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/palkia/battery.c b/board/palkia/battery.c
deleted file mode 100644
index 76e58aa618..0000000000
--- a/board/palkia/battery.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Palkia battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Simplo Battery Information */
- [BATTERY_DYNAPACK_UX48144] = {
- .fuel_gauge = {
- .manuf_name = "AS3GVQC3KC",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 17600, /* mV */
- .voltage_normal = 15400, /* mV */
- .voltage_min = 12000, /* mV */
- .precharge_current = 444, /* mA */
- .start_charging_min_c = 1,
- .start_charging_max_c = 45,
- .charging_min_c = 1,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_UX48144;
diff --git a/board/palkia/board.c b/board/palkia/board.c
deleted file mode 100644
index 7586478724..0000000000
--- a/board/palkia/board.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/* 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.
- */
-
-/* Palkia board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static const uint8_t actual_key_mask[KEYBOARD_COLS_MAX] = {
- 0x01, 0x68, 0xbd, 0x03, 0x7e, 0xff, 0xff,
- 0xff, 0xff, 0x03, 0xfd, 0x48, 0x03, 0xff,
- 0xf7, 0x16 /* full set */
-};
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-void board_config_pre_init(void)
-{
- int i;
-
- /* override the keyscan key mask */
- for (i = 0; i < KEYBOARD_COLS_MAX; ++i)
- keyscan_config.actual_key_mask[i] = actual_key_mask[i];
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-static void board_lid_interrupt(enum gpio_signal signal)
-{
- static int board_id = -1;
-
- if (board_id == -1) {
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS)
- board_id = val;
- }
-
- lid_interrupt(signal);
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- }
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_5V_REG", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_3] = {
- "TEMP_AMB", NPCX_ADC_CH3, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_4] = {
- "TEMP_CPU", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Temp1",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Temp2",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Temp3",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
- [TEMP_SENSOR_4] = {.name = "Temp4",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Palkia temperature control thresholds */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(60),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(65),
- .temp_fan_max = C_TO_K(80),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_a;
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-int board_tcpc_post_init(int port)
-{
- int rv = EC_SUCCESS;
-
- if (port == USB_PD_PORT_TCPC_0)
- /* Set MUX_DP_EQ to 3.6dB (0x98) */
- rv = tcpc_write(port, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
-
- return rv;
-}
-
-bool board_is_convertible(void)
-{
- return false;
-}
diff --git a/board/palkia/board.h b/board/palkia/board.h
deleted file mode 100644
index 3e1baf8a4f..0000000000
--- a/board/palkia/board.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* 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.
- */
-
-/* Palkia board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_KEYBOARD_CUSTOMIZATION
-
-/* Enable board_config_pre_init() */
-#define CONFIG_BOARD_PRE_INIT
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY 0
-#define GPIO_USB_C0_TCPC_RST GPIO_USB_C0_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A_LOW_PWR_ODL
-
-/*
- * Palkia' battery takes several seconds to come back out of its disconnect
- * state (~4.2 seconds on the unit I have, so give it a little more for margin).
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 6
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* DPTF */
-#define CONFIG_DPTF_MULTI_PROFILE
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_TEMP_SENSOR_3, /* ADC3 */
- ADC_TEMP_SENSOR_4, /* ADC2 */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_4,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_DYNAPACK_UX48144,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/palkia/build.mk b/board/palkia/build.mk
deleted file mode 100644
index cf0939b776..0000000000
--- a/board/palkia/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_KEYBOARD_CUSTOMIZATION)+=keyboard_customization.o
diff --git a/board/palkia/ec.tasklist b/board/palkia/ec.tasklist
deleted file mode 100644
index be39ae64a2..0000000000
--- a/board/palkia/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
-
diff --git a/board/palkia/gpio.inc b/board/palkia/gpio.inc
deleted file mode 100644
index ec7ce25538..0000000000
--- a/board/palkia/gpio.inc
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, board_lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(9, 7), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_HIGH)
-GPIO(USB_A_LOW_PWR_ODL, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO4, PIN(1, 5), GPIO_OUT_LOW) /* KSO_04 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0xDF), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_02-03,05-09 */
-ALTERNATE(PIN_MASK(0, 0xE8), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x0C), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14-15 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3C), 0, MODULE_ADC, 0) /* ADC0, ADC1, ADC2, ADC3 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/palkia/keyboard_customization.c b/board/palkia/keyboard_customization.c
deleted file mode 100644
index 706ad18a4e..0000000000
--- a/board/palkia/keyboard_customization.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* 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.
- */
-
-#include "common.h"
-#include "keyboard_customization.h"
-#include "keyboard_8042_sharedlib.h"
-#include "keyboard_config.h"
-#include "keyboard_protocol.h"
-#include "keyboard_raw.h"
-
-static uint16_t scancode_set2[KEYBOARD_COLS_MAX][KEYBOARD_ROWS] = {
- {0x0021, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
- {0x0000, 0x0000, 0x0000, 0x0011, 0x0000, 0x0000, 0x0000, 0x0000},
- {0x0015, 0x0000, 0x0014, 0x000d, 0x000e, 0x0016, 0x0000, 0x001c},
- {0xe011, 0x0011, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
- {0x0000, 0x0029, 0x0024, 0x000c, 0xe01f, 0x0026, 0x0004, 0x0000},
- {0x0022, 0x001a, 0x0006, 0x0005, 0x001b, 0x001e, 0x001d, 0x0076},
- {0x002a, 0x0032, 0x0034, 0x002c, 0x002e, 0x0025, 0x002d, 0x002b},
- {0x003a, 0x0031, 0x0033, 0x0035, 0x0036, 0x003d, 0x003c, 0x003b},
- {0x0049, 0xe072, 0x005d, 0x0044, 0x0009, 0x0046, 0x0000, 0x004b},
- {0x0059, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
- {0x0041, 0x0000, 0x0083, 0x000b, 0x0003, 0x003e, 0x0043, 0x0042},
- {0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0xe06b, 0x0000},
- {0xe014, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
- {0x004a, 0xe075, 0x004e, 0x0000, 0x0045, 0x004d, 0x0054, 0x004c},
- {0x0052, 0x005a, 0x0000, 0x0000, 0x0055, 0x0066, 0x005b, 0x0023},
- {0x0000, 0x000a, 0xe074, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
-};
-
-uint16_t get_scancode_set2(uint8_t row, uint8_t col)
-{
- if (col < KEYBOARD_COLS_MAX && row < KEYBOARD_ROWS)
- return scancode_set2[col][row];
- return 0;
-}
-
-void set_scancode_set2(uint8_t row, uint8_t col, uint16_t val)
-{
- if (col < KEYBOARD_COLS_MAX && row < KEYBOARD_ROWS)
- scancode_set2[col][row] = val;
-}
-
-void board_keyboard_drive_col(int col)
-{
- /* Drive all lines to high */
- if (col == KEYBOARD_COLUMN_NONE)
- gpio_set_level(GPIO_KBD_KSO4, 0);
-
- /* Set KBSOUT to zero to detect key-press */
- else if (col == KEYBOARD_COLUMN_ALL)
- gpio_set_level(GPIO_KBD_KSO4, 1);
-
- /* Drive one line for detection */
- else {
- if (col == 4)
- gpio_set_level(GPIO_KBD_KSO4, 1);
- else
- gpio_set_level(GPIO_KBD_KSO4, 0);
- }
-}
-
-#ifdef CONFIG_KEYBOARD_DEBUG
-static char keycap_label[KEYBOARD_COLS_MAX][KEYBOARD_ROWS] = {
- {'c', KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO,
- KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO},
- {KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO,
- KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO},
- {'q', KLLI_UNKNO, KLLI_UNKNO, KLLI_TAB, '`',
- '1', KLLI_UNKNO, 'a'},
- {KLLI_R_ALT, KLLI_L_ALT, KLLI_UNKNO, KLLI_UNKNO,
- KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO},
- {KLLI_UNKNO, KLLI_SPACE, 'e', KLLI_F4,
- KLLI_SEARC, '3', KLLI_F3, KLLI_UNKNO},
- {'x', 'z', KLLI_F2, KLLI_F1,
- 's', '2', 'w', KLLI_ESC},
- {'v', 'b', 'g', 't',
- '5', '4', 'r', 'f'},
- {'m', 'n', 'h', 'y',
- '6', '7', 'u', 'j'},
- {'.', KLLI_DOWN, '\\', 'o',
- KLLI_F10, '9', KLLI_UNKNO, 'l'},
- {KLLI_R_SHT, KLLI_L_SHT, KLLI_UNKNO, KLLI_UNKNO,
- KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO},
- {',', KLLI_UNKNO, KLLI_F7, KLLI_F6,
- KLLI_F5, '8', 'i', 'k'},
- {KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_F9,
- KLLI_UNKNO, KLLI_UNKNO, KLLI_LEFT, KLLI_UNKNO},
- {KLLI_R_CTR, KLLI_L_CTR, KLLI_UNKNO, KLLI_UNKNO,
- KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO},
- {'/', KLLI_UP, '-', KLLI_UNKNO,
- '0', 'p', '[', ';'},
- {'\'', KLLI_ENTER, KLLI_UNKNO, KLLI_UNKNO,
- '=', KLLI_B_SPC, ']', 'd'},
- {KLLI_UNKNO, KLLI_F8, KLLI_RIGHT, KLLI_UNKNO,
- KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO},
-};
-
-char get_keycap_label(uint8_t row, uint8_t col)
-{
- if (col < KEYBOARD_COLS_MAX && row < KEYBOARD_ROWS)
- return keycap_label[col][row];
- return KLLI_UNKNO;
-}
-
-void set_keycap_label(uint8_t row, uint8_t col, char val)
-{
- if (col < KEYBOARD_COLS_MAX && row < KEYBOARD_ROWS)
- keycap_label[col][row] = val;
-}
-#endif
diff --git a/board/palkia/keyboard_customization.h b/board/palkia/keyboard_customization.h
deleted file mode 100644
index 37ce1cf61f..0000000000
--- a/board/palkia/keyboard_customization.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* 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.
- */
-
-/* Keyboard configuration */
-
-#ifndef __KEYBOARD_CUSTOMIZATION_H
-#define __KEYBOARD_CUSTOMIZATION_H
-
-/*
- * KEYBOARD_COLS_MAX has the build time column size. It's used to allocate
- * exact spaces for arrays. Actual keyboard scanning is done using
- * keyboard_cols, which holds a runtime column size.
- */
-#define KEYBOARD_COLS_MAX 16
-#define KEYBOARD_ROWS 8
-
-/*
- * WARNING: Do not directly modify it. You should call keyboard_raw_set_cols,
- * instead. It checks whether you're eligible or not.
- */
-extern uint8_t keyboard_cols;
-
-#define KEYBOARD_ROW_TO_MASK(r) (1 << (r))
-
-/* Columns and masks for keys we particularly care about */
-#define KEYBOARD_COL_DOWN 8
-#define KEYBOARD_ROW_DOWN 1
-#define KEYBOARD_MASK_DOWN KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_DOWN)
-#define KEYBOARD_COL_ESC 5
-#define KEYBOARD_ROW_ESC 7
-#define KEYBOARD_MASK_ESC KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_ESC)
-#define KEYBOARD_COL_KEY_H 7
-#define KEYBOARD_ROW_KEY_H 2
-#define KEYBOARD_MASK_KEY_H KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_KEY_H)
-#define KEYBOARD_COL_KEY_R 6
-#define KEYBOARD_ROW_KEY_R 6
-#define KEYBOARD_MASK_KEY_R KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_KEY_R)
-#define KEYBOARD_COL_LEFT_ALT 3
-#define KEYBOARD_ROW_LEFT_ALT 1
-#define KEYBOARD_MASK_LEFT_ALT KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_LEFT_ALT)
-#define KEYBOARD_COL_REFRESH 4
-#define KEYBOARD_ROW_REFRESH 6
-#define KEYBOARD_MASK_REFRESH KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_REFRESH)
-#define KEYBOARD_COL_RIGHT_ALT 3
-#define KEYBOARD_ROW_RIGHT_ALT 0
-#define KEYBOARD_MASK_RIGHT_ALT KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_RIGHT_ALT)
-#define KEYBOARD_DEFAULT_COL_VOL_UP 8
-#define KEYBOARD_DEFAULT_ROW_VOL_UP 4
-#define KEYBOARD_COL_LEFT_CTRL 12
-#define KEYBOARD_ROW_LEFT_CTRL 1
-#define KEYBOARD_MASK_LEFT_CTRL KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_LEFT_CTRL)
-#define KEYBOARD_COL_RIGHT_CTRL 12
-#define KEYBOARD_ROW_RIGHT_CTRL 0
-#define KEYBOARD_MASK_RIGHT_CTRL KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_RIGHT_CTRL)
-#define KEYBOARD_COL_SEARCH 2
-#define KEYBOARD_ROW_SEARCH 3
-#define KEYBOARD_MASK_SEARCH KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_SEARCH)
-#define KEYBOARD_COL_KEY_0 13
-#define KEYBOARD_ROW_KEY_0 4
-#define KEYBOARD_MASK_KEY_0 KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_KEY_0)
-#define KEYBOARD_COL_KEY_1 2
-#define KEYBOARD_ROW_KEY_1 5
-#define KEYBOARD_MASK_KEY_1 KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_KEY_1)
-#define KEYBOARD_COL_KEY_2 5
-#define KEYBOARD_ROW_KEY_2 5
-#define KEYBOARD_MASK_KEY_2 KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_KEY_2)
-#define KEYBOARD_COL_LEFT_SHIFT 9
-#define KEYBOARD_ROW_LEFT_SHIFT 1
-#define KEYBOARD_MASK_LEFT_SHIFT KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_LEFT_SHIFT)
-
-#endif /* __KEYBOARD_CUSTOMIZATION_H */
diff --git a/board/palkia/led.c b/board/palkia/led.c
deleted file mode 100644
index c7607960e5..0000000000
--- a/board/palkia/led.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Palkia
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/palkia/vif_override.xml b/board/palkia/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/palkia/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/pazquel/battery.c b/board/pazquel/battery.c
deleted file mode 100644
index 88a38255d0..0000000000
--- a/board/pazquel/battery.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* GanFeng SG20 Battery Information */
- [BATTERY_GANFENG] = {
- .fuel_gauge = {
- .manuf_name = "Ganfeng",
- .device_name = "SG20",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0003,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_GANFENG;
diff --git a/board/pazquel/board.c b/board/pazquel/board.c
deleted file mode 100644
index 8d7e679190..0000000000
--- a/board/pazquel/board.c
+++ /dev/null
@@ -1,616 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Trogdor board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "pi3usb9201.h"
-#include "power.h"
-#include "power/qcom.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_ocp.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Forward declaration */
-static void tcpc_alert_event(enum gpio_signal signal);
-static void usb0_evt(enum gpio_signal signal);
-static void usb1_evt(enum gpio_signal signal);
-static void usba_oc_interrupt(enum gpio_signal signal);
-static void ppc_interrupt(enum gpio_signal signal);
-static void board_connect_c0_sbu(enum gpio_signal s);
-
-#include "gpio_list.h"
-
-/* GPIO Interrupt Handlers */
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void usba_oc_deferred(void)
-{
- /* Use next number after all USB-C ports to indicate the USB-A port */
- board_overcurrent_event(CONFIG_USB_PD_PORT_MAX_COUNT,
- !gpio_get_level(GPIO_USB_A0_OC_ODL));
-}
-DECLARE_DEFERRED(usba_oc_deferred);
-
-static void usba_oc_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&usba_oc_deferred_data, 0);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-static void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Use 80 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /*
- * 1. launcher key mapped to (KSI_3, KSO_0):
- * change actual_key_mask[0] = 0x14 to 0x1c
- * 2. T11 key not in keyboard (KSI_0,KSO_1):
- * change actual_key_mask[1] from 0xff to 0xfe
- */
- .actual_key_mask = {
- 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca
- },
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
-};
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-static void board_update_sensor_config_clamshell(void)
-{
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* The sensors are not stuffed; don't allow lines to float */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_LID_ACCEL_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-}
-DECLARE_HOOK(HOOK_INIT, board_update_sensor_config_clamshell,
- HOOK_PRIO_INIT_I2C + 2);
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Enable USB-A overcurrent interrupt */
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
-
- /* Enable interrupt for BMI160 sensor */
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-void board_hibernate(void)
-{
- int i;
-
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_LID_ACCEL_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_ON);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_PG);
-}
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-/* Mutexes */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
diff --git a/board/pazquel/board.h b/board/pazquel/board.h
deleted file mode 100644
index 98f7ff2499..0000000000
--- a/board/pazquel/board.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Trogdor board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* TODO(waihong): Remove the following bringup features */
-#define CONFIG_BRINGUP
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands. */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define CONFIG_CMD_GPIO_EXTENDED
-#define CONFIG_CMD_POWERINDEBUG
-#define CONFIG_I2C_DEBUG
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_PWM_KBLIGHT
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* USB-A */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* BMA253 lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_SWITCHCAP_PG GPIO_SWITCHCAP_GPIO_1
-#define GPIO_ACOK_OD GPIO_CHG_ACOK_OD
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_DISPLIGHT,
- PWM_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_GANFENG,
- BATTERY_TYPE_COUNT,
-};
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/pazquel/build.mk b/board/pazquel/build.mk
deleted file mode 100644
index f03287a2ee..0000000000
--- a/board/pazquel/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y+=battery.o
-board-y+=board.o
-board-y+=led.o
diff --git a/board/pazquel/ec.tasklist b/board/pazquel/ec.tasklist
deleted file mode 100644
index 5beeb38feb..0000000000
--- a/board/pazquel/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/pazquel/gpio.inc b/board/pazquel/gpio.inc
deleted file mode 100644
index 0d7e73fca2..0000000000
--- a/board/pazquel/gpio.inc
+++ /dev/null
@@ -1,187 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING, usb1_evt) /* Interrupt from port-1 BC1.2 */
-GPIO_INT(USB_A0_OC_ODL, PIN(D, 1), GPIO_INT_BOTH | GPIO_PULL_UP, usba_oc_interrupt)
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-/* Sensor interrupts */
-GPIO_INT(TABLET_MODE_L, PIN(C, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, bmi160_interrupt) /* Accelerometer/gyro interrupt */
-
-/*
- * EC_RST_ODL used to be a wake source from PSL mode. However, we disabled
- * the PSL mode. This GPIO does nothing now. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PMIC_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_OUT_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Sensors */
-GPIO(LID_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT) /* Lid accel sensor interrupt */
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(7, 4), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_OUT_HIGH) /* Port-0 TCPC chip reset */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_OUT_HIGH) /* Port-1 TCPC chip reset */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* USB-A */
-GPIO(EN_USB_A_5V, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(USB_A_CDP_ILIM_EN_L, PIN(7, 5), GPIO_OUT_HIGH) /* H:CDP, L:SDP. Only one USB-A port, always CDP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C0, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C0, PIN(C, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_Y_C1, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C1, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(KB_BL_PWM, PIN(8, 0), GPIO_INPUT) /* PWM3 */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Switchcap */
-/*
- * GPIO0 is configured as PVC_PG. When the chip in power down mode, it outputs
- * high-Z. Set pull-down to avoid floating.
- */
-GPIO(SWITCHCAP_GPIO_1, PIN(E, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* Switchcap GPIO0 */
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(3, 7))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(6, 2))
-UNUSED(PIN(0, 4))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(5, 0))
-UNUSED(PIN(D, 3))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-
-/* Keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* Keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO10 (GPIO07), KSO11 (GPIO06), KSO12 (GPIO05) */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO03 (GPIO16), KSO04 (GPIO15), KSO05 (GPIO14), KSO06 (GPIO13), KSO07 (GPIO12), KSO08 (GPIO11), KSO09 (GPIO10) */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO00 (GPIO21), KSO01 (GPIO20) */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI2 (GPIO27), KSI3 (GPIO26), KSI4 (GPIO25), KSI5 (GPIO24), KSI6 (GPIO23), KSI7 (GPIO22) */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI0 (GPIO31), KSI1 (GPIO30) */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2) /* KSO02 (GPIO17) */
diff --git a/board/pazquel/led.c b/board/pazquel/led.c
deleted file mode 100644
index aabf33f3f0..0000000000
--- a/board/pazquel/led.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_BLUE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_Y_C1,
- (color == LED_RED) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_EC_CHG_LED_W_C1,
- (color == LED_BLUE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color(LED_BLUE);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color(LED_RED);
- else
- led_set_color(LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- enum led_color color = LED_OFF;
- int period = 0;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate amber on when charging. */
- color = LED_RED;
- break;
- case PWR_STATE_DISCHARGE:
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Discharging in S3: Red 1 sec, off 3 sec */
- period = (1 + 3) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- /* Discharging in S5: off */
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ON)) {
- /* Discharging in S0: Blue on */
- color = LED_BLUE;
- }
- break;
- case PWR_STATE_ERROR:
- /* Battery error: Red 1 sec, off 1 sec */
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- /* Full Charged: Blue on */
- color = LED_BLUE;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode: Blue 2 sec, Red 2 sec */
- period = (2 + 2) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2 * LED_ONE_SEC)
- color = LED_BLUE;
- else
- color = LED_RED;
- } else
- color = LED_BLUE;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_BLUE : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color(color);
-}
diff --git a/board/pazquel/vif_override.xml b/board/pazquel/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/pazquel/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/pdeval-stm32f072/PD_evaluation.md b/board/pdeval-stm32f072/PD_evaluation.md
deleted file mode 100644
index 4f1c8636c6..0000000000
--- a/board/pdeval-stm32f072/PD_evaluation.md
+++ /dev/null
@@ -1,177 +0,0 @@
-# USB PD chip evaluation configuration
-
-This board configuration implements a USB Power Delivery TCPM in order to
-evaluate various TCPC chips. The code tries to follow the preliminary USB PD
-interface standard but for TCPC chip implementing proprietary I2C protocol, a
-new TCPM file can be implemented as explained in the
-[Updating the code](#Updating-the-code) section below.
-
-## Building
-
-### Chromium OS chroot
-
-All the following instructions have been verified in a ChromiumOS chroot. You
-can find how to set one up on the Chromium development:
-[http://dev.chromium.org/chromium-os/quick-start-guide](http://dev.chromium.org/chromium-os/quick-start-guide)
-
-### Build the TCPM code
-
-`cd src/platform/ec`
-
-`make BOARD=pdeval-stm32f072`
-
-## Updating the code
-
-### TCPC Communication code
-
-Please duplicate [driver/tcpm/tcpci.c](../../driver/tcpm/tcpci.c) into
-**driver/tcpm/##chip#name##.c**. Then update the control logic through I2C
-there.
-
-In order for your new code to compile, you need to update
-[driver/build.mk](../../driver/build.mk) with the new file :
-`driver-$(CONFIG_USB_PD_TCPM_##CHIP#NAME##)+=tcpm/##chip#name##.o` then document
-the new `CONFIG_USB_PD_TCPM_` variable in the
-[include/config.h](../../include/config.h) file and define it in the board
-configuration in [board/pdeval-stm32f072/board.h](board.h).
-
-### Board configuration
-
-In [board/pdeval-stm32f072/board.h](board.h), you can update
-`CONFIG_USB_PD_PORT_MAX_COUNT` to the actual number of ports on your board. You
-also need to create/delete the corresponding `PD_Cx` tasks in
-[board/pdeval-stm32f072/ec.tasklist](ec.tasklist).
-
-By default, the firmware is using I2C1 with SCL/SDA on pins PB6 and PB7, running
-with a 100kHz clock, and tries to talk to TCPCs at i2c slave addresses 0x9c and
-0x9e. To change the pins or speed, you need to edit `i2c_ports` in
-[board/pdeval-stm32f072/board.c](board.c), update `I2C_PORT_TCPC` in
-[board/pdeval-stm32f072/board.h](board.h) with the right controller number, and
-change the pin mux in [board/pdeval-stm32f072/gpio.inc](gpio.inc). To change
-TCPC i2c slave addresses, update `TCPC1_I2C_ADDR` and `TCPC2_I2C_ADDR` in
-[board/pdeval-stm32f072/board.h](board.h).
-
-The I2C bus needs pull-up resistors on SCL/SDA. If your setup doesn't have
-external pull-ups on those lines, you can activate the chip internal pull-ups
-(but they are a bit weak for I2C) by editing
-[board/pdeval-stm32f072/gpio.inc](gpio.inc) and updating the alternate mode
-configuration flags with `GPIO_PULL_UP` e.g. : `ALTERNATE(PIN_MASK(B, 0x00c0),
-1, MODULE_I2C, GPIO_PULL_UP) /* I2C MASTER:PB6/7 */`
-
-An interrupt line, PA1, is configured to be used for the TCPC to get the
-attention of the TCPM. The GPIO is configured to trigger an interrupt on the
-falling edge and will call `tcpc_alert()`, which must be implemented in
-**driver/tcpm/<vendor>.c**, and should determine the cause of the interrupt and
-take action. The GPIO can be changed in
-[board/pdeval-stm32f072/gpio.inc](gpio.inc).
-
-## Flashing and Running
-
-### Flashing the firmware binary
-
-To flash through JTAG with OpenOCD, you can just run:
-
-`sudo make flash BOARD=pdeval-stm32f072`
-
-Note: you need to do that with your USB mini-B cable is connected to the **USB
-ST-LINK** plug on the discovery board.
-
-### Connecting to the firmware console
-
-Connect a USB cable to the **USB USER** mini-B receptacle on the board. `lsusb`
-should show you a device with the following ID : 18d1:500f
-
-You can get a console over USB by issuing the following command on a Linux
-computer:
-
-`echo '18d1 500f' | sudo tee /sys/bus/usb-serial/drivers/generic/new_id`
-
-## Testing
-
-Currently, the TCPM is expecting to have a GPIO to detect VBUS, but to minimize
-the HW setup with the discovery board the alternative is to fake VBUS detection
-using either the **USER** button on the discovery board, or the `vbus` console
-command, both of which toggle the state of VBUS detected. For example, to make
-get a PD contract with a power adapter, plug in the adapter and then toggle VBUS
-on. When a PD contract above 6V is made, LED5 on the discovery board will light.
-To disconnect, toggle VBUS off.
-
-EC command line commands
-
-- `help` List all available EC console commands
-- `vbus` Toggle VBUS on/off
-- `pd <port> state` Print PD protocol state information
-- `pd <port> swap data` Request data role swap on port
-- `pd <port> swap power` Request power role swap on port
-- `i2cscan` Scan i2c bus for any responsive devices
-- `i2cxfer` Perform an i2c transaction
-
-On the console, you will the PD state machine transitioning through its states
-with traces like `C0 st5`. You can always the human readable name of the current
-state by doing `pd 0 state` returning something like : `Port C0 CC1, Ena - Role:
-SNK-UFP State: SNK_DISCOVERY, Flags: 0x0608` else the numbering of the state is
-defined in [include/usb_pd.h](../../include/us_pd.h) by the `PD_STATE_`
-constants. It should be by default :
-
-```
-[0] DISABLED
-[1] SUSPENDED
-[2] SNK_DISCONNECTED
-[3] SNK_DISCONNECTED_DEBOUNCE
-[4] SNK_HARD_RESET_RECOVER
-[5] SNK_DISCOVERY
-[6] SNK_REQUESTED
-[7] SNK_TRANSITION
-[8] SNK_READY
-[9] SNK_SWAP_INIT
-[10] SNK_SWAP_SNK_DISABLE
-[11] SNK_SWAP_SRC_DISABLE
-[12] SNK_SWAP_STANDBY
-[13] SNK_SWAP_COMPLETE
-[14] SRC_DISCONNECTED
-[15] SRC_DISCONNECTED_DEBOUNCE
-[16] SRC_ACCESSORY
-[17] SRC_HARD_RESET_RECOVER
-[18] SRC_STARTUP
-[19] SRC_DISCOVERY
-[20] SRC_NEGOCIATE
-[21] SRC_ACCEPTED
-[22] SRC_POWERED
-[23] SRC_TRANSITION
-[24] SRC_READY
-[25] SRC_GET_SINK_CAP
-[26] DR_SWAP
-[27] SRC_SWAP_INIT
-[28] SRC_SWAP_SNK_DISABLE
-[29] SRC_SWAP_SRC_DISABLE
-[30] SRC_SWAP_STANDBY
-[31] SOFT_RESET
-[32] HARD_RESET_SEND
-[33] HARD_RESET_EXECUTE
-[34] BIST_RX
-[35] BIST_TX
-```
-
-## Known Issues
-
-1. This doc is not finished yet ...
-
-2. You might need a ChromeOS chroot ...
-
-## Troubleshooting
-
-1. OpenOCD is not finding the device.
-
- 1. Check that your USB mini-B cable is connected to the **USB ST-LINK**
- plug on the discovery board.
- 2. What color is the LD1 LED on the board ?
-
-1. On the I2C bus, SDA/SCL lines are staying always low
-
- 1. You might be missing some pull-up resistors on the bus.
- 1. Check the [Board configuration](#Board-configuration) section if you
- cannot add external pull-ups.
-
-1. You got black smoke
-
- 1. Time to buy a new one.
diff --git a/board/pdeval-stm32f072/board.c b/board/pdeval-stm32f072/board.c
deleted file mode 100644
index 8c62c10b79..0000000000
--- a/board/pdeval-stm32f072/board.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2015 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.
- */
-/* STM32F072-discovery board based USB PD evaluation configuration */
-
-#include "common.h"
-#include "anx7447.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "registers.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "usb_descriptor.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-void button_event(enum gpio_signal signal);
-
-void alert_event(enum gpio_signal signal)
-{
- /* Exchange status with PD MCU. */
- host_command_pd_send_status(PD_CHARGE_NO_CHANGE);
-}
-
-#include "gpio_list.h"
-
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("PDeval-stm32f072"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Shell"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/* Initialize board. */
-static void board_init(void)
-{
- gpio_enable_interrupt(GPIO_USER_BUTTON);
- gpio_enable_interrupt(GPIO_PD_MCU_INT);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
-}
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc", I2C_PORT_TCPC, 400 /* kHz */, GPIO_I2C0_SCL, GPIO_I2C0_SDA}
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC,
- .addr_flags = AN7447_TCPC3_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_PD_MCU_INT)) {
- status = PD_STATUS_TCPC_ALERT_0;
- }
-
- return status;
-}
diff --git a/board/pdeval-stm32f072/board.h b/board/pdeval-stm32f072/board.h
deleted file mode 100644
index e0b364e2c9..0000000000
--- a/board/pdeval-stm32f072/board.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/* STM32F072-discovery board based USB PD evaluation configuration */
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART2 (PA14/PA15) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-
-/* Optional features */
-#define CONFIG_HW_CRC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_STM_HWTIMER32
-/* USB Power Delivery configuration */
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_MUX
-
-#undef CONFIG_USB_PD_INITIAL_DRP_STATE
-#define CONFIG_USB_PD_INITIAL_DRP_STATE PD_DRP_TOGGLE_ON
-
-#undef CONFIG_USB_PD_PULLUP
-#define CONFIG_USB_PD_PULLUP TYPEC_RP_USB
-
-/* fake board specific type-C power constants */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 650000 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* I2C master port connected to the TCPC */
-#define I2C_PORT_TCPC 0
-#define I2C_PORT_PD_MCU 0
-
-/* Timer selection */
-
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-/* delay to turn on/off vconn */
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x500f
-#define CONFIG_USB_CONSOLE
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_COUNT 1
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_COUNT 2
-
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_VERSION,
- USB_STR_CONSOLE_NAME,
-
- USB_STR_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __BOARD_H */
diff --git a/board/pdeval-stm32f072/build.mk b/board/pdeval-stm32f072/build.mk
deleted file mode 100644
index ef1346d534..0000000000
--- a/board/pdeval-stm32f072/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o usb_pd_policy.o
diff --git a/board/pdeval-stm32f072/ec.tasklist b/board/pdeval-stm32f072/ec.tasklist
deleted file mode 100644
index 5003fc7ba1..0000000000
--- a/board/pdeval-stm32f072/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2015 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PDCMD, pd_command_task,NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/pdeval-stm32f072/gpio.inc b/board/pdeval-stm32f072/gpio.inc
deleted file mode 100644
index 5409077c34..0000000000
--- a/board/pdeval-stm32f072/gpio.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2015 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USER_BUTTON, PIN(A, 0), GPIO_INT_FALLING, button_event)
-GPIO_INT(PD_MCU_INT, PIN(A, 1), GPIO_INT_FALLING, alert_event)
-
-/* Outputs */
-GPIO(LED_U, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(LED_D, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(LED_L, PIN(C, 8), GPIO_OUT_LOW)
-GPIO(LED_R, PIN(C, 9), GPIO_OUT_LOW)
-GPIO(USB_C0_DVDDIO, PIN(C, 14), GPIO_OUT_HIGH)
-GPIO(USB_C0_AVDD33, PIN(C, 15), GPIO_OUT_HIGH)
-GPIO(VBUS_PMIC_CTRL, PIN(A, 4), GPIO_OUT_LOW)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C0_SCL, PIN(B, 6), GPIO_INPUT)
-GPIO(I2C0_SDA, PIN(B, 7), GPIO_INPUT)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_USART, 0) /* USART1: PA09/PA10 */
-ALTERNATE(PIN_MASK(A, 0xC000), 1, MODULE_UART, 0) /* USART2: PA14/PA15 */
-ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, 0) /* I2C MASTER:PB6/7 */
diff --git a/board/pdeval-stm32f072/openocd-flash.cfg b/board/pdeval-stm32f072/openocd-flash.cfg
deleted file mode 100644
index ec32416934..0000000000
--- a/board/pdeval-stm32f072/openocd-flash.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2014 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.
-
-source [find board/stm32f0discovery.cfg]
-
-# For flashing, force the board into reset on connect, this ensures that
-# code running on the core can't interfere with programming.
-reset_config connect_assert_srst
-
-gdb_port 0
-tcl_port 0
-telnet_port 0
-init
-reset init
-flash write_image erase $BUILD_DIR/ec.bin 0x08000000
-reset halt
-resume
-shutdown
diff --git a/board/pdeval-stm32f072/usb_pd_policy.c b/board/pdeval-stm32f072/usb_pd_policy.c
deleted file mode 100644
index 2f7941321b..0000000000
--- a/board/pdeval-stm32f072/usb_pd_policy.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/* Copyright 2015 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.
- */
-
-#include "common.h"
-#include "anx7447.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)
-
-/* Used to fake VBUS presence since no GPIO is available to read VBUS */
-static int vbus_present;
-
-const uint32_t pd_src_pdo[] = {
- PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS),
-};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 900, PDO_FIXED_FLAGS),
- PDO_BATT(5000, 21000, 30000),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-#if defined(CONFIG_USB_PD_TCPM_MUX) && defined(CONFIG_USB_PD_TCPM_ANX7447)
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &anx7447_usb_mux_driver,
- },
-};
-#endif
-
-#ifdef CONFIG_USB_PD_TCPM_ANX7447
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- anx7447_board_charging_enable(port, 0);
-
- /* Provide VBUS */
- gpio_set_level(GPIO_VBUS_PMIC_CTRL, 1);
- anx7447_set_power_supply_ready(port);
-
- /* notify host of power info change */
-
- CPRINTS("Enable VBUS, port%d", port);
-
- return EC_SUCCESS;
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- anx7447_power_supply_reset(port);
- gpio_set_level(GPIO_VBUS_PMIC_CTRL, 0);
- CPRINTS("Disable VBUS, port%d", port);
-
- /* Enable charging */
- anx7447_board_charging_enable(port, 1);
-}
-#else
-int pd_set_power_supply_ready(int port)
-{
- /* Turn on the "up" LED when we output VBUS */
- gpio_set_level(GPIO_LED_U, 1);
- CPRINTS("Power supply ready/%d", port);
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Turn off the "up" LED when we shutdown VBUS */
- gpio_set_level(GPIO_LED_U, 0);
- /* Disable VBUS */
- CPRINTS("Disable VBUS", port);
-}
-#endif /* CONFIG_USB_PD_TCPM_ANX7447 */
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- CPRINTS("USBPD current limit port %d max %d mA %d mV",
- port, max_ma, supply_voltage);
- /* do some LED coding of the power we can sink */
- if (max_ma) {
- if (supply_voltage > 6500)
- gpio_set_level(GPIO_LED_R, 1);
- else
- gpio_set_level(GPIO_LED_L, 1);
- } else {
- gpio_set_level(GPIO_LED_L, 0);
- gpio_set_level(GPIO_LED_R, 0);
- }
-}
-
-__override void typec_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- CPRINTS("TYPEC current limit port %d max %d mA %d mV",
- port, max_ma, supply_voltage);
- gpio_set_level(GPIO_LED_R, !!max_ma);
-}
-
-void button_event(enum gpio_signal signal)
-{
- vbus_present = !vbus_present;
- CPRINTS("VBUS %d", vbus_present);
-}
-
-static int command_vbus_toggle(int argc, char **argv)
-{
- vbus_present = !vbus_present;
- CPRINTS("VBUS %d", vbus_present);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(vbus, command_vbus_toggle,
- "",
- "Toggle VBUS detected");
-
-int pd_snk_is_vbus_provided(int port)
-{
- return vbus_present;
-}
-
-__override int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Always allow data swap */
- return 1;
-}
-
-#ifdef CONFIG_USBC_VCONN_SWAP
-int pd_check_vconn_swap(int port)
-{
- /*
- * Allow vconn swap as long as we are acting as a dual role device,
- * otherwise assume our role is fixed (not in S0 or console command
- * to fix our role).
- */
- return pd_get_dual_role(port) == PD_DRP_TOGGLE_ON;
-}
-#endif
-
-__override void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
-}
-
-__override void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
-}
-/* ----------------- Vendor Defined Messages ------------------ */
-const uint32_t vdo_idh = VDO_IDH(1, /* data caps as USB host */
- 0, /* data caps as USB device */
- IDH_PTYPE_PERIPH,
- 0, /* supports alt modes */
- 0x0000);
-
-const uint32_t vdo_product = VDO_PRODUCT(0x0000, 0x0000);
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- payload[VDO_I(IDH)] = vdo_idh;
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- return VDO_I(PRODUCT) + 1;
-}
-
-__override const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = NULL,
- .modes = NULL,
-};
-
-#ifdef CONFIG_USB_PD_ALT_MODE_DFP
-__override void svdm_safe_dp_mode(int port)
-{
- /* make DP interface safe until configure */
- dp_flags[port] = 0;
- /*
- * board_set_usb_mux(port, USB_PD_MUX_NONE,
- * polarity_rm_dts(pd_get_polarity(port)));
- */
-}
-
-__override int svdm_dp_config(int port, uint32_t *payload)
-{
- int opos = pd_alt_mode(port, TCPCI_MSG_SOP, USB_SID_DISPLAYPORT);
- int pin_mode = pd_dfp_dp_get_pin_mode(port, dp_status[port]);
- bool unused;
-#if defined(CONFIG_USB_PD_TCPM_MUX) && defined(CONFIG_USB_PD_TCPM_ANX7447)
- const struct usb_mux *mux = &usb_muxes[port];
-#endif
-
-#ifdef CONFIG_USB_PD_TCPM_ANX7447
- mux_state_t mux_state = USB_PD_MUX_NONE;
- if (polarity_rm_dts(pd_get_polarity(port)))
- mux_state |= USB_PD_MUX_POLARITY_INVERTED;
-#endif
-
- CPRINTS("pin_mode = %d", pin_mode);
- if (!pin_mode)
- return 0;
-
-#if defined(CONFIG_USB_PD_TCPM_MUX) && defined(CONFIG_USB_PD_TCPM_ANX7447)
- switch (pin_mode) {
- case MODE_DP_PIN_A:
- case MODE_DP_PIN_C:
- case MODE_DP_PIN_E:
- mux_state |= USB_PD_MUX_DP_ENABLED;
- /*
- * Note: Direct mux driver calls are deprecated. Calls
- * should go through the usb_mux APIs instead.
- */
- mux->driver->set(mux, mux_state, &unused);
- break;
- case MODE_DP_PIN_B:
- case MODE_DP_PIN_D:
- case MODE_DP_PIN_F:
- mux_state |= USB_PD_MUX_DOCK;
- mux->driver->set(mux, mux_state, &unused);
- break;
- }
-#endif
-
- /*
- * board_set_usb_mux(port, USB_PD_MUX_DP_ENABLED,
- * polarity_rm_dts(pd_get_polarity(port)));
- */
- payload[0] = VDO(USB_SID_DISPLAYPORT, 1,
- CMD_DP_CONFIG | VDO_OPOS(opos));
- payload[1] = VDO_DP_CFG(pin_mode, /* pin mode */
- 1, /* DPv1.3 signaling */
- 2); /* UFP connected */
- return 2;
-}
-
-__override void svdm_dp_post_config(int port)
-{
- const struct usb_mux *mux = &usb_muxes[port];
-
- dp_flags[port] |= DP_FLAGS_DP_ON;
- if (!(dp_flags[port] & DP_FLAGS_HPD_HI_PENDING))
- return;
-
- /* Note: Usage is deprecated, use usb_mux_hpd_update instead */
- if (IS_ENABLED(CONFIG_USB_PD_TCPM_ANX7447))
- anx7447_tcpc_update_hpd_status(mux, USB_PD_MUX_HPD_LVL |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-__override int svdm_dp_attention(int port, uint32_t *payload)
-{
-#ifdef CONFIG_USB_PD_TCPM_ANX7447
- int lvl = PD_VDO_DPSTS_HPD_LVL(payload[1]);
- int irq = PD_VDO_DPSTS_HPD_IRQ(payload[1]);
- const struct usb_mux *mux = &usb_muxes[port];
- mux_state_t mux_state = (lvl ? USB_PD_MUX_HPD_LVL :
- USB_PD_MUX_HPD_LVL_DEASSERTED) |
- (irq ? USB_PD_MUX_HPD_IRQ :
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-
- /* Note: Usage is deprecated, use usb_mux_hpd_update instead */
- CPRINTS("Attention: 0x%x", payload[1]);
- anx7447_tcpc_update_hpd_status(mux, mux_state);
-#endif
- dp_status[port] = payload[1];
-
- /* ack */
- return 1;
-}
-
-__override void svdm_exit_dp_mode(int port)
-{
-#ifdef CONFIG_USB_PD_TCPM_ANX7447
- anx7447_tcpc_clear_hpd_status(port);
-#endif
-}
-#endif /* CONFIG_USB_PD_ALT_MODE_DFP */
diff --git a/board/pdeval-stm32f072/vif_override.xml b/board/pdeval-stm32f072/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/pdeval-stm32f072/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/phaser/battery.c b/board/phaser/battery.c
deleted file mode 100644
index 2e1f77d552..0000000000
--- a/board/phaser/battery.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all phaser battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- /* SMP 5B10Q13163 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* LGC 5B10Q13162 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 181, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L18D3PG1 */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC;
diff --git a/board/phaser/board.c b/board/phaser/board.c
deleted file mode 100644
index 488880c1fc..0000000000
--- a/board/phaser/board.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Phaser board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/anx7447.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usbc_ppc.h"
-#include "util.h"
-#include "battery_smart.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX7447 0
-#define USB_PD_PORT_PS8751 1
-
-static uint8_t sku_id;
-static bool support_syv_ppc;
-
-/* Check PPC ID and board version to decide which one ppc is used. */
-static bool board_is_support_syv_ppc(void)
-{
- uint32_t board_version = 0;
-
- if (cbi_get_board_version(&board_version) != EC_SUCCESS)
- CPRINTSUSB("Get board version failed.");
-
- if ((board_version >= 5) && (gpio_get_level(GPIO_PPC_ID)))
- return true;
-
- return false;
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- if (support_syv_ppc)
- syv682x_interrupt(0);
- else
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- if (support_syv_ppc)
- syv682x_interrupt(1);
- else
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (1/10 voltage divider). */
- [ADC_VBUS_C0] = {
- "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- [ADC_VBUS_C1] = {
- "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate lid and base sensor into standard reference frame */
-const mat33_fp_t standard_rot_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = &standard_rot_ref,
- /* We only use 2g because its resolution is only 8-bits */
- .default_range = 2, /* g */
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &standard_rot_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &standard_rot_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static int board_is_convertible(void)
-{
- return sku_id == 2 || sku_id == 3 || sku_id == 4 || sku_id == 5 || \
- sku_id == 255;
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-static void cbi_init(void)
-{
- uint32_t val;
-
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- ccprints("SKU: 0x%04x", sku_id);
-
- board_update_sensor_config_from_sku();
-
- support_syv_ppc = board_is_support_syv_ppc();
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (board_is_convertible())
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-int board_is_lid_angle_tablet_mode(void)
-{
- return board_is_convertible();
-}
-
-/* Battery functions */
-#define SB_OPTIONALMFG_FUNCTION2 0x3e
-/* Optional mfg function2 */
-#define SMART_QUICK_CHARGE (1<<12)
-/* Quick charge support */
-#define MODE_QUICK_CHARGE_SUPPORT (1<<4)
-
-static void sb_quick_charge_mode(int enable)
-{
- int val, rv;
-
- rv = sb_read(SB_BATTERY_MODE, &val);
- if (rv || !(val & MODE_QUICK_CHARGE_SUPPORT))
- return;
-
- rv = sb_read(SB_OPTIONALMFG_FUNCTION2, &val);
- if (rv)
- return;
-
- if (enable)
- val |= SMART_QUICK_CHARGE;
- else
- val &= ~SMART_QUICK_CHARGE;
-
- sb_write(SB_OPTIONALMFG_FUNCTION2, val);
-}
-
-/* Called on AP S3/S0ix -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Normal charge current */
- sb_quick_charge_mode(0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3/S0ix transition */
-static void board_chipset_suspend(void)
-{
- /* Quick charge current */
- sb_quick_charge_mode(1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
-
-static const struct ppc_config_t ppc_syv682x_port0 = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-static const struct ppc_config_t ppc_syv682x_port1 = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
-};
-
-static void board_setup_ppc(void)
-{
- if (!support_syv_ppc)
- return;
-
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_0],
- &ppc_syv682x_port0,
- sizeof(struct ppc_config_t));
- memcpy(&ppc_chips[USB_PD_PORT_TCPC_1],
- &ppc_syv682x_port1,
- sizeof(struct ppc_config_t));
-
- gpio_set_flags(GPIO_USB_PD_C0_INT_ODL, GPIO_INT_BOTH);
- gpio_set_flags(GPIO_USB_PD_C1_INT_ODL, GPIO_INT_BOTH);
-}
-DECLARE_HOOK(HOOK_INIT, board_setup_ppc, HOOK_PRIO_INIT_I2C + 2);
-
-int ppc_get_alert_status(int port)
-{
- if (port == 0)
- return gpio_get_level(GPIO_USB_PD_C0_INT_ODL) == 0;
-
- return gpio_get_level(GPIO_USB_PD_C1_INT_ODL) == 0;
-}
diff --git a/board/phaser/board.h b/board/phaser/board.h
deleted file mode 100644
index 33a84373f6..0000000000
--- a/board/phaser/board.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Phaser board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-#define CONFIG_LED_COMMON
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* Sensors */
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Additional PPC second source */
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_DEDICATED_INT
-#undef CONFIG_SYV682X_HV_ILIM
-#define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_5_50
-/* SYV682 isn't connected to CC, so TCPC must provide VCONN */
-#define CONFIG_USBC_PPC_SYV682X_NO_CC
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_VBUS_C0, /* ADC9 */
- ADC_VBUS_C1, /* ADC4 */
- ADC_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_PANASONIC,
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/phaser/build.mk b/board/phaser/build.mk
deleted file mode 100644
index 3d04b75731..0000000000
--- a/board/phaser/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/phaser/ec.tasklist b/board/phaser/ec.tasklist
deleted file mode 100644
index d98db145e7..0000000000
--- a/board/phaser/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/phaser/gpio.inc b/board/phaser/gpio.inc
deleted file mode 100644
index 639ed914b6..0000000000
--- a/board/phaser/gpio.inc
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-/*
- * High-to-low transition on POWER_BUTTON_L is treated as a wake event from
- * hibernate. Absence of GPIO_HIB_WAKE_HIGH flag is treated as wake on
- * high-to-low edge.
- */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH, button_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_PD_RST, PIN(8, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* LED */
-GPIO(BAT_LED_RED_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_GREEN_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(PWR_LED_WHITE_L, PIN(D, 7), GPIO_OUT_HIGH) /* LED_3_L */
-
-/* Not implemented in hardware */
-UNIMPLEMENTED(KB_BL_PWR_EN)
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Camera */
-GPIO(EC_GPIO_03, PIN(0, 3), GPIO_INPUT) /* TP only */
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-/* Misc. */
-GPIO(CCD_MODE_EC_L, PIN(E, 3), GPIO_INPUT)
-GPIO(TRACKPAD_INT_1V8_ODL, PIN(9, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(PPC_ID, PIN(9, 7), GPIO_INPUT | GPIO_PULL_DOWN) /* PPC ID Pin */
-
-/* Unused pins */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT)
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT)
-GPIO(EC_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP) /* TP Only */
-GPIO(EC_I2S_SFRM, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_SCLK, PIN(A, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2S_TX_PCH_RX, PIN(B, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/phaser/led.c b/board/phaser/led.c
deleted file mode 100644
index 6ef2d786c0..0000000000
--- a/board/phaser/led.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Phaser
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_WHITE_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/phaser/vif_override.xml b/board/phaser/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/phaser/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/pico/battery.c b/board/pico/battery.c
deleted file mode 100644
index 6f6b49899a..0000000000
--- a/board/pico/battery.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Panasonic AP19B5K Battery Information */
- [BATTERY_PANASONIC_AP19B5K_KT00305011] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00305011",
- .device_name = "AP19B5K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP19B8K Battery Information */
- [BATTERY_LGC_AP19B8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G022",
- .device_name = "AP19B8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* COSMX AP20CBL Battery Information */
- [BATTERY_COSMX_AP20CBL] = {
- .fuel_gauge = {
- .manuf_name = "COSMX KT0030B002",
- .device_name = "AP20CBL",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* SMP AP18C7K Battery Information */
- [BATTERY_SMP_AP18C7K] = {
- .fuel_gauge = {
- .manuf_name = "SMP KT00307010",
- .device_name = "AP18C7K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC_AP18C8K;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/pico/board.c b/board/pico/board.c
deleted file mode 100644
index e930c7c998..0000000000
--- a/board/pico/board.c
+++ /dev/null
@@ -1,414 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#include "gpio_list.h"
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(-1), 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, enough to calculate lid angle. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static bool board_is_convertible(void)
-{
- int sku = system_get_sku_id();
-
- return sku == 1 || sku == 2;
-}
-
-int board_sensor_at_360(void)
-{
- if (board_is_convertible())
- return !gpio_get_level(GMR_TABLET_MODE_GPIO_L);
-
- return 0;
-}
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-/*
- * Map keyboard connector pins to EC GPIO pins for factory test.
- * Pins mapped to {-1, -1} are skipped.
- * The connector has 24 pins total, and there is no pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {GPIO_KSO_H, 4}, {GPIO_KSO_H, 0}, {GPIO_KSO_H, 1},
- {GPIO_KSO_H, 3}, {GPIO_KSO_H, 2}, {-1, -1}, {-1, -1},
- {GPIO_KSO_L, 5}, {GPIO_KSO_L, 6}, {-1, -1}, {GPIO_KSO_L, 3},
- {GPIO_KSO_L, 2}, {GPIO_KSI, 0}, {GPIO_KSO_L, 1}, {GPIO_KSO_L, 4},
- {GPIO_KSI, 3}, {GPIO_KSI, 2}, {GPIO_KSO_L, 0}, {GPIO_KSI, 5},
- {GPIO_KSI, 4}, {GPIO_KSO_L, 7}, {GPIO_KSI, 6}, {GPIO_KSI, 7},
- {GPIO_KSI, 1}, {-1, -1}, {GPIO_KSO_H, 5}, {-1, -1},
- {GPIO_KSO_H, 6}, {-1, -1}, {-1, -1},
-};
-
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH1},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH2},
- [ADC_VBUS] = {"VBUS", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", IT83XX_I2C_CH_C, 400, GPIO_I2C_C_SCL, GPIO_I2C_C_SDA},
- {"sensor", IT83XX_I2C_CH_B, 400, GPIO_I2C_B_SCL, GPIO_I2C_B_SDA},
- {"battery", IT83XX_I2C_CH_A, 100, GPIO_I2C_A_SCL, GPIO_I2C_A_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/******************************************************************************/
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so no i2c config needed */
- .drv = &it8xxx2_tcpm_drv,
- /* Alert is active-low, push-pull */
- .flags = 0,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-#define VBUS_THRESHOLD_MV 4200
-int pd_snk_is_vbus_provided(int port)
-{
- /* This board has only one port. */
- if (!port)
- return adc_read_channel(ADC_VBUS) > VBUS_THRESHOLD_MV ? 1 : 0;
- else
- return 0;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_motion_init(void)
-{
- if (!board_is_convertible()) {
- /* Disable motion sense. */
- motion_sensor_count = 0;
- gpio_disable_interrupt(GPIO_ACCEL_INT_ODL);
- gpio_set_flags(GPIO_ACCEL_INT_ODL, GPIO_INPUT);
- /* Disable tablet mode. */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- gmr_tablet_switch_disable();
- gpio_set_flags(GPIO_TABLET_MODE_L,
- GPIO_INPUT | GPIO_PULL_UP);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_motion_init, HOOK_PRIO_DEFAULT + 1);
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
diff --git a/board/pico/board.h b/board/pico/board.h
deleted file mode 100644
index ff02019f42..0000000000
--- a/board/pico/board.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_IT81202
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-/* TODO: remove me once we fix IT83XX_ILM_BLOCK_SIZE out of space issue */
-#undef CONFIG_LTO
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ALS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_GMR_TABLET_MODE_CUSTOM
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 IT83XX_I2C_CH_C
-#define I2C_PORT_TCPC0 IT83XX_I2C_CH_C
-#define I2C_PORT_USB_MUX IT83XX_I2C_CH_C
-#define I2C_PORT_CHARGER IT83XX_I2C_CH_A
-#define I2C_PORT_SENSORS IT83XX_I2C_CH_B
-#define I2C_PORT_ACCEL I2C_PORT_SENSORS
-#define I2C_PORT_BATTERY IT83XX_I2C_CH_A
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#define CONFIG_LED_ONOFF_STATES
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_VBUS,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_PANASONIC_AP19B5K_KT00305011,
- BATTERY_LGC_AP19B8K,
- BATTERY_COSMX_AP20CBL,
- BATTERY_SMP_AP18C7K,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* support factory keyboard test */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-extern const int keyboard_factory_scan_pins[][2];
-extern const int keyboard_factory_scan_pins_used;
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for AP jump to BL */
-void emmc_ap_jump_to_bl(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger/battery */
-int board_get_charger_i2c(void);
-int board_get_battery_i2c(void);
-
-/* Motion sensor interrupt */
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/pico/build.mk b/board/pico/build.mk
deleted file mode 100644
index 9ca7933e2a..0000000000
--- a/board/pico/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-#
-# IC is ITE IT81202
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202bx_1024
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/pico/ec.tasklist b/board/pico/ec.tasklist
deleted file mode 100644
index 5c272d04f4..0000000000
--- a/board/pico/ec.tasklist
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280)
diff --git a/board/pico/gpio.inc b/board/pico/gpio.inc
deleted file mode 100644
index 34ac5cf7af..0000000000
--- a/board/pico/gpio.inc
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(F, 3), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(D, 3), GPIO_INT_RISING | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(J, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- bmi160_interrupt)
-GPIO_INT_RO(BOOTBLOCK_EN_L, PIN(J, 1), GPIO_INT_RISING | GPIO_SEL_1P8V,
- emmc_ap_jump_to_bl)
-GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING,
- spi_event) /* SPI slave Chip Select -- AP_SPI_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(E, 5), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(J, 6), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 7), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- chipset_watchdog_interrupt)
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING,
- uart_deepsleep_interrupt) /* UART_DEBUG_TX_EC_RX */
-GPIO_INT(TABLET_MODE_L, PIN(J, 7), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-/* Unimplemented interrupts */
-GPIO(VOLUME_DOWN_L, PIN(D, 5), GPIO_INPUT)
-GPIO(VOLUME_UP_L, PIN(D, 6), GPIO_INPUT)
-GPIO(ALS_RGB_INT_ODL, PIN(F, 0), GPIO_INPUT)
-GPIO(LID_ACCEL_INT_ODL, PIN(J, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(B, 6), GPIO_OUT_LOW)
-/* 1.8V PP or 1.8V OD output with external 10K PU */
-GPIO(PMIC_WATCHDOG_L, PIN(H, 0), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-/* OD output with 5VT (there is 5V internal PU on PWRKEY of MT6358) */
-GPIO(PMIC_EN_ODL, PIN(E, 1), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-/* EC programming */
-GPIO(I2C_E_SCL, PIN(A, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_E_SDA, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-/* battery and charger */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT)
-/* sensor */
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-/* typec */
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT)
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT)
-
-/* Other input pins */
-/* TODO(WP_L): change to interrupt pin ? */
-GPIO(WP_L, PIN(I, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_FLASH_WP_ODL */
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EN_USBA_5V, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(H, 5), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(J, 0), GPIO_ODR_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(H, 3), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 1), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 2), GPIO_OUT_LOW)
-
-/* LEDs */
-GPIO(LED_BLUE, PIN(A, 2), GPIO_OUT_HIGH)
-GPIO(LED_GREEN, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(LED_ORANGE, PIN(A, 0), GPIO_OUT_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(D, 0), GPIO_OUT_LOW)
-
-/* Unimplemented Pins */
-GPIO(PG_PP5000_A_OD, PIN(A, 6), GPIO_INPUT)
-GPIO(USB_A0_OC_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(C, 3), GPIO_INPUT)
-GPIO(PMIC_FORCE_RESET_ODL, PIN(C, 6), GPIO_INPUT)
-GPIO(USB_C0_PD_INT_ODL, PIN(D, 1), GPIO_INPUT) /* no used on this board */
-GPIO(EN_PP5000A_USM, PIN(D, 7), GPIO_INPUT)
-GPIO(EN_USBC_CHARGE_L, PIN(F, 1), GPIO_INPUT)
-GPIO(EN_PP5000_USBC, PIN(H, 4), GPIO_INPUT)
-GPIO(PP1800_H1_PG, PIN(H, 6), GPIO_INPUT)
-
-/* NC pins, ensure they aren't in floating state. */
-GPIO(NC_GPA3, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPB2, PIN(B, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPD2, PIN(D, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPD4, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPE0, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPE3, PIN(E, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPE7, PIN(E, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-/*
- * ADC pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPI5, PIN(I, 5), GPIO_OUT_LOW)
-GPIO(NC_GPI7, PIN(I, 7), GPIO_OUT_LOW)
-
-GPIO(NC_GPJ4, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPJ5, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-/*
- * GPG3,4,5,7 don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(NC_GPG0, PIN(G, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-/* Don't touch GPG1 and GPG2 */
-GPIO(NC_GPG3, PIN(G, 3), GPIO_OUT_LOW)
-GPIO(EC_SPI_FLASH_MOSI, PIN(G, 4), GPIO_OUT_LOW)
-GPIO(EC_SPI_FLASH_MISO, PIN(G, 5), GPIO_OUT_LOW)
-GPIO(EC_SPI_FLASH_CLK, PIN(G, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_SPI_FLASH_CS_L, PIN(G, 7), GPIO_OUT_LOW)
-
-/* Alternate functions GPIO definitions */
-/* Keyboard */
-ALTERNATE(PIN_MASK(KSI, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSI0-7 */
-ALTERNATE(PIN_MASK(KSO_H, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO8-15 */
-ALTERNATE(PIN_MASK(KSO_L, 0xFB), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO0-1, 3-7 */
-GPIO(EC_KSO_02_INV, PIN(KSO_L, 2), GPIO_OUT_LOW) /* KSO2 inverted */
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C B */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C */
-/* ADC */
-ALTERNATE(PIN_MASK(I, 0x4F), 0, MODULE_ADC, 0) /* ADC 0,1,2,3,6 */
-/* UART */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* EC to Servo */
-/* EMMC SPI SLAVE M2:CLK, M3:CMD, M6:DATA0 */
-ALTERNATE(PIN_MASK(M, 0x4C), 0, MODULE_SPI_FLASH, 0)
-/* SPI */
-ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI for communication */
diff --git a/board/pico/led.c b/board/pico/led.c
deleted file mode 100644
index 076199b2ed..0000000000
--- a/board/pico/led.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Jacuzzi
- */
-#include "common.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_ORANGE, LED_ON_LVL);
- gpio_set_level(GPIO_LED_BLUE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_BLUE, LED_ON_LVL);
- gpio_set_level(GPIO_LED_ORANGE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_GREEN, LED_ON_LVL);
- gpio_set_level(GPIO_LED_BLUE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_ORANGE, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_GREEN, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_BLUE, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_ORANGE, LED_OFF_LVL);
- break;
- }
-}
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- }
-}
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/pico/vif_override.xml b/board/pico/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/pico/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/pirika/battery.c b/board/pirika/battery.c
deleted file mode 100644
index 2da3296106..0000000000
--- a/board/pirika/battery.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all waddledee battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /*COSMX CA14J43 Battery Information */
- [BATTERY_CA14J43] = {
- .fuel_gauge = {
- .manuf_name = "PG01LJ3353",
- .device_name = "CA14J43",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /*COSMX CA11J58 Battery Information */
- [BATTERY_CA11J58] = {
- .fuel_gauge = {
- .manuf_name = "PG01NL3353",
- .device_name = "CA11J58",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_CA14J43;
diff --git a/board/pirika/board.c b/board/pirika/board.c
deleted file mode 100644
index a17d19bf88..0000000000
--- a/board/pirika/board.c
+++ /dev/null
@@ -1,766 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledee board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-/* Use default keyboard scan config, because board didn't supply one */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * CONFIG_KEYBOARD_COL2_INVERTED is defined for passing the column 2
- * to H1 which inverts the signal. The signal passing through H1
- * adds more delay. Need a larger delay value. Otherwise, pressing
- * Refresh key will also trigger T key, which is in the next scanning
- * column line. See http://b/156007029.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xf6, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config pirika_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &pirika_kb;
-}
-
-static void notify_c0_chips(void)
-{
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-/* USB Retimer */
-enum tusb544_conf {
- USB_DP = 0,
- USB_DP_INV,
- USB,
- USB_INV,
- DP,
- DP_INV
-};
-
-static int board_tusb544_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
- enum tusb544_conf usb_mode = 0;
- /* USB */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* USB with DP */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_DP_INV
- : USB_DP;
- }
- /* USB without DP */
- else {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_INV
- : USB;
- }
- }
- /* DP without USB */
- else if (mux_state & USB_PD_MUX_DP_ENABLED) {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? DP_INV
- : DP;
- }
- /* Nothing enabled */
- else
- return EC_SUCCESS;
- /* Write the retimer config byte */
- if (usb_mode == USB_INV) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x15);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == USB) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x11);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == USB_DP_INV) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1F);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == USB_DP) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1B);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x33);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0x22);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0x22);
- } else if (usb_mode == DP_INV) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1E);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x99);
- } else if (usb_mode == DP) {
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1A);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x99);
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x99);
- }
-
- return rv;
-}
-
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS0,
- .driver = &tusb544_drv,
- .board_set = &board_tusb544_set,
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- },
-};
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- raa489000_hibernate(CHARGER_PRIMARY, true);
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(CHARGER_SECONDARY, true);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, !!enable);
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ? "en" : "dis");
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (port == i)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct kionix_accel_data g_kx022_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 2, /* g */
- /* We only use 2g because its resolution is only 8-bits */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Vcore",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_charger = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(50),
- },
-};
-const static struct ec_thermal_config thermal_vcore = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(53),
- },
-};
-const static struct ec_thermal_config thermal_ambient = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(50),
- },
-};
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1] = thermal_charger,
- [TEMP_SENSOR_2] = thermal_vcore,
- [TEMP_SENSOR_3] = thermal_ambient,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This cause Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
diff --git a/board/pirika/board.h b/board/pirika/board.h
deleted file mode 100644
index db119d5191..0000000000
--- a/board/pirika/board.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledee board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-/* System unlocked in early development */
-#undef CONFIG_SYSTEM_UNLOCKED
-
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000 /* C0 and C1: Charger */
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_OCPC
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_USB_C1_INT_ODL
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_THROTTLE_AP
-#define CONFIG_CHIPSET_CAN_THROTTLE
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-#define CONFIG_USBC_RETIMER_TUSB544 /* C1 Redriver: TUSB544 */
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_TEMP_SENSOR_3, /* ADC15 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_CA14J43,
- BATTERY_CA11J58,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/pirika/build.mk b/board/pirika/build.mk
deleted file mode 100644
index 8167ca9966..0000000000
--- a/board/pirika/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/pirika/cbi_ssfc.c b/board/pirika/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/pirika/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/pirika/cbi_ssfc.h b/board/pirika/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/pirika/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/pirika/ec.tasklist b/board/pirika/ec.tasklist
deleted file mode 100644
index d6fa610141..0000000000
--- a/board/pirika/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/pirika/gpio.inc b/board/pirika/gpio.inc
deleted file mode 100644
index 90e6de2607..0000000000
--- a/board/pirika/gpio.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(SUB_USB_C1_INT_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt)
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW) /* Board rev 1, NC board rev 0 */
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED_R_ODL, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(LED_G_ODL, PIN(A, 2), GPIO_OUT_HIGH)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOA0_NC, PIN(A, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOA3_NC, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOB5_NC, PIN(B, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC6_NC, PIN(C, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF1_NC, PIN(F, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ1_NC, PIN(J, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ3_NC, PIN(J, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(2)), 0, MODULE_ADC, 0) /* ADC15: TEMP_SENSOR_3 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
diff --git a/board/pirika/led.c b/board/pirika/led.c
deleted file mode 100644
index 2fe70f5fe8..0000000000
--- a/board/pirika/led.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {LED_OFF, 2 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_G_ODL, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_R_ODL, LED_ON_LVL);
- gpio_set_level(GPIO_LED_G_ODL, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_G_ODL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- /* Battery error LED behavior as below:
- * S0: Blinking Amber LED, 1s on/ 1s off
- * S3/S5: following S3/S5 behavior
- * Add function to let battery error LED follow S3/S5 behavior in S3/S5.
- */
-
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/pirika/usb_pd_policy.c b/board/pirika/usb_pd_policy.c
deleted file mode 100644
index b0e1098e4d..0000000000
--- a/board/pirika/usb_pd_policy.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/pirika/vif_override.xml b/board/pirika/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/pirika/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/plankton/board.c b/board/plankton/board.c
deleted file mode 100644
index a361f5fff3..0000000000
--- a/board/plankton/board.c
+++ /dev/null
@@ -1,798 +0,0 @@
-/* Copyright 2014 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.
- */
-/* Plankton board configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "ina2xx.h"
-#include "pca9534.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "util.h"
-
-void button_event(enum gpio_signal signal);
-void hpd_event(enum gpio_signal signal);
-void vbus_event(enum gpio_signal signal);
-#include "gpio_list.h"
-
-static volatile uint64_t hpd_prev_ts;
-static volatile int hpd_prev_level;
-static volatile int hpd_possible_irq;
-
-/* Detect the type of cable used (either single CC or double) */
-enum typec_cable {
- TYPEC_CABLE_NONE,
- TYPEC_CABLE_CHECK,
- TYPEC_CABLE_SINGLE_CC,
- TYPEC_CABLE_DOUBLE_CC
-};
-static enum typec_cable cable;
-
-static int active_cc;
-static int host_mode;
-static int drp_enable;
-
-static int sn75dp130_dpcd_init(void);
-
-/**
- * Hotplug detect deferred task
- *
- * Called after level change on hpd GPIO to evaluate (and debounce) what event
- * has occurred. There are 3 events that occur on HPD:
- * 1. low : downstream display sink is deattached
- * 2. high : downstream display sink is attached
- * 3. irq : downstream display sink signalling an interrupt.
- *
- * The debounce times for these various events are:
- * HPD_USTREAM_DEBOUNCE_LVL : min pulse width of level value.
- * HPD_USTREAM_DEBOUNCE_IRQ : min pulse width of IRQ low pulse.
- *
- * lvl(n-2) lvl(n-1) lvl prev_delta now_delta event
- * ----------------------------------------------------
- * 1 0 1 <IRQ n/a low glitch (ignore)
- * 1 0 1 >IRQ <LVL irq
- * x 0 1 n/a >LVL high
- * 0 1 0 <LVL n/a high glitch (ignore)
- * x 1 0 n/a >LVL low
- */
-
-void hpd_lvl_deferred(void)
-{
- int level = gpio_get_level(GPIO_DPSRC_HPD);
- int dp_mode = !gpio_get_level(GPIO_USBC_SS_USB_MODE);
-
- if (level != hpd_prev_level) {
- /* Stable level changed. Send HPD event */
- hpd_prev_level = level;
- if (dp_mode)
- pd_send_hpd(0, level ? hpd_high : hpd_low);
- /* Configure redriver's back side */
- if (level)
- sn75dp130_dpcd_init();
-
- }
-
- /* Send queued IRQ if the cable is attached */
- if (hpd_possible_irq && level && dp_mode)
- pd_send_hpd(0, hpd_irq);
- hpd_possible_irq = 0;
-
-}
-DECLARE_DEFERRED(hpd_lvl_deferred);
-
-void hpd_event(enum gpio_signal signal)
-{
- timestamp_t now = get_time();
- int level = gpio_get_level(signal);
- uint64_t cur_delta = now.val - hpd_prev_ts;
-
- /* Record low pulse */
- if (cur_delta >= HPD_USTREAM_DEBOUNCE_IRQ && level)
- hpd_possible_irq = 1;
-
- /* store current time */
- hpd_prev_ts = now.val;
-
- /* All previous hpd level events need to be re-triggered */
- hook_call_deferred(&hpd_lvl_deferred_data,
- HPD_USTREAM_DEBOUNCE_LVL);
-}
-
-/* Debounce time for voltage buttons */
-#define BUTTON_DEBOUNCE_US (100 * MSEC)
-
-static enum gpio_signal button_pressed;
-
-static int fake_pd_disconnected;
-static int fake_pd_host_mode;
-static int fake_pd_disconnect_duration_us;
-
-enum usbc_action {
- USBC_ACT_5V_TO_DUT,
- USBC_ACT_12V_TO_DUT,
- USBC_ACT_20V_TO_DUT,
- USBC_ACT_DEVICE,
- USBC_ACT_USBDP_TOGGLE,
- USBC_ACT_USB_EN,
- USBC_ACT_DP_EN,
- USBC_ACT_MUX_FLIP,
- USBC_ACT_CABLE_POLARITY0,
- USBC_ACT_CABLE_POLARITY1,
- USBC_ACT_CCD_EN,
- USBC_ACT_DRP_TOGGLE,
-
- /* Number of USBC actions */
- USBC_ACT_COUNT
-};
-
-enum board_src_cap src_cap_mapping[USBC_ACT_COUNT] =
-{
- [USBC_ACT_5V_TO_DUT] = SRC_CAP_5V,
- [USBC_ACT_12V_TO_DUT] = SRC_CAP_12V,
- [USBC_ACT_20V_TO_DUT] = SRC_CAP_20V,
-};
-
-/**
- * Set the active CC line. The non-active CC line will be left in
- * High-Z, and we will fake the ADC reading for it.
- */
-static void set_active_cc(int cc)
-{
- active_cc = cc;
-
- /*
- * If DRP mode is enabled, then set both CC lines based
- * on the current value of host_mode. If DRP mode is
- * disabled then only set the active CC line.
- */
- /* Pull-up on CC2 */
- gpio_set_flags(GPIO_USBC_CC2_HOST,
- ((cc || drp_enable) && host_mode) ?
- GPIO_OUT_HIGH : GPIO_INPUT);
- /* Pull-down on CC2 */
- gpio_set_flags(GPIO_USBC_CC2_DEVICE_ODL,
- ((cc || drp_enable) && !host_mode) ?
- GPIO_OUT_LOW : GPIO_INPUT);
- /* Pull-up on CC1 */
- gpio_set_flags(GPIO_USBC_CC1_HOST,
- ((!cc || drp_enable) && host_mode) ?
- GPIO_OUT_HIGH : GPIO_INPUT);
- /* Pull-down on CC1 */
- gpio_set_flags(GPIO_USBC_CC1_DEVICE_ODL,
- ((!cc || drp_enable) && !host_mode) ?
- GPIO_OUT_LOW : GPIO_INPUT);
-}
-
-/**
- * Detect type-C cable type. Toggle the active CC line until a type-C connection
- * is detected. If a type-C connection can be made in both polarities, then we
- * have a double CC cable, otherwise we have a single CC cable.
- */
-static void detect_cc_cable(void);
-DECLARE_DEFERRED(detect_cc_cable);
-
-static void detect_cc_cable(void)
-{
- /*
- * Delay long enough to guarantee a type-C disconnect will be seen and
- * a new connection will be made made.
- */
- hook_call_deferred(&detect_cc_cable_data,
- PD_T_CC_DEBOUNCE + PD_T_SAFE_0V);
-
- switch (cable) {
- case TYPEC_CABLE_NONE:
- /* When no cable attached, toggle active CC line */
- if (pd_is_connected(0))
- cable = TYPEC_CABLE_CHECK;
- set_active_cc(!active_cc);
- break;
- case TYPEC_CABLE_CHECK:
- /* If we still have a connection, we have a double CC cable */
- cable = pd_is_connected(0) ? TYPEC_CABLE_DOUBLE_CC :
- TYPEC_CABLE_SINGLE_CC;
- /* Flip back to original polarity and enable PD comms */
- set_active_cc(!active_cc);
- pd_comm_enable(0, 1);
- break;
- case TYPEC_CABLE_SINGLE_CC:
- case TYPEC_CABLE_DOUBLE_CC:
- /* Check for disconnection and disable PD comms */
- if (!pd_is_connected(0)) {
- cable = TYPEC_CABLE_NONE;
- pd_comm_enable(0, 0);
- }
- break;
- }
-}
-
-static void fake_disconnect_end(void)
-{
- fake_pd_disconnected = 0;
- board_pd_set_host_mode(fake_pd_host_mode);
-
- /* Restart CC cable detection */
- hook_call_deferred(&detect_cc_cable_data, 500*MSEC);
-}
-DECLARE_DEFERRED(fake_disconnect_end);
-
-static void fake_disconnect_start(void)
-{
- /* Cancel detection of CC cable */
- hook_call_deferred(&detect_cc_cable_data, -1);
-
- /* Record the current host mode */
- fake_pd_host_mode = !gpio_get_level(GPIO_USBC_CHARGE_EN);
- /* Disable VBUS */
- gpio_set_level(GPIO_VBUS_CHARGER_EN, 0);
- gpio_set_level(GPIO_USBC_VSEL_0, 0);
- gpio_set_level(GPIO_USBC_VSEL_1, 0);
- /* High Z for no pull-up or pull-down resistor on CC1 and CC2 */
- gpio_set_flags(GPIO_USBC_CC2_HOST, GPIO_INPUT);
- gpio_set_flags(GPIO_USBC_CC2_DEVICE_ODL, GPIO_INPUT);
- gpio_set_flags(GPIO_USBC_CC1_HOST, GPIO_INPUT);
- gpio_set_flags(GPIO_USBC_CC1_DEVICE_ODL, GPIO_INPUT);
-
- fake_pd_disconnected = 1;
-
- hook_call_deferred(&fake_disconnect_end_data,
- fake_pd_disconnect_duration_us);
-}
-DECLARE_DEFERRED(fake_disconnect_start);
-
-/**
- * Enable or disable dualrole mode operation. By default Plankton has
- * dualrole mode disabled and attempts to connect in a sink role. Console
- * commands/button presses can cause it to switch to source_only/sink_only
- * modes.
- */
-static void update_usbc_dual_role(int dual_role)
-{
- if (dual_role == PD_DRP_TOGGLE_ON) {
- drp_enable = 1;
- /*
- * Cable detect is not needed when operating in dualrole mode
- * since both CC lines are used and SRC/SNK changes are dictated
- * by the USB PD protocol state machine.
- */
- hook_call_deferred(&detect_cc_cable_data, -1);
- /* Need to make sure both CC lines are set for SNK or SRC. */
- set_active_cc(host_mode);
- /* Ensure that PD communication is enabled. */
- pd_comm_enable(0, 1);
- } else {
- drp_enable = 0;
- /*
- * Dualrole mode is not active, resume cable detect function
- * which controls which CC line is active.
- */
- hook_call_deferred(&detect_cc_cable_data, 0);
- }
- /* Update dual role setting used in USB PD protocol state machine */
- pd_set_dual_role(0, dual_role);
- cprintf(CC_USBPD, "DRP = %d, host_mode = %d\n", drp_enable, host_mode);
-}
-
-static void set_usbc_action(enum usbc_action act)
-{
- int need_soft_reset;
- int was_usb_mode;
-
- switch (act) {
- case USBC_ACT_5V_TO_DUT:
- case USBC_ACT_12V_TO_DUT:
- case USBC_ACT_20V_TO_DUT:
- need_soft_reset = gpio_get_level(GPIO_VBUS_CHARGER_EN);
- board_set_source_cap(src_cap_mapping[act]);
- update_usbc_dual_role(PD_DRP_FORCE_SOURCE);
- if (need_soft_reset)
- pd_soft_reset();
- break;
- case USBC_ACT_DEVICE:
- update_usbc_dual_role(PD_DRP_FORCE_SINK);
- break;
- case USBC_ACT_USBDP_TOGGLE:
- was_usb_mode = gpio_get_level(GPIO_USBC_SS_USB_MODE);
- gpio_set_level(GPIO_USBC_SS_USB_MODE, !was_usb_mode);
- gpio_set_level(GPIO_CASE_CLOSE_EN, !was_usb_mode);
- if (!gpio_get_level(GPIO_DPSRC_HPD))
- break;
- /*
- * DP cable is connected. Send HPD event according to USB/DP
- * mux state.
- */
- if (!was_usb_mode) {
- pd_send_hpd(0, hpd_low);
- } else {
- pd_send_hpd(0, hpd_high);
- pd_send_hpd(0, hpd_irq);
- }
- break;
- case USBC_ACT_USB_EN:
- gpio_set_level(GPIO_USBC_SS_USB_MODE, 1);
- break;
- case USBC_ACT_DP_EN:
- gpio_set_level(GPIO_USBC_SS_USB_MODE, 0);
- break;
- case USBC_ACT_MUX_FLIP:
- /*
- * For a single CC cable, send custom VDM to flip
- * USB polarity only. For double CC cable, actually
- * disconnect and reconnect with opposite polarity.
- */
- if (cable == TYPEC_CABLE_SINGLE_CC) {
- pd_send_vdm(0, USB_VID_GOOGLE, VDO_CMD_FLIP, NULL, 0);
- gpio_set_level(GPIO_USBC_POLARITY,
- !gpio_get_level(GPIO_USBC_POLARITY));
- } else if (cable == TYPEC_CABLE_DOUBLE_CC) {
- /*
- * Fake a disconnection for long enough to guarantee
- * that we disconnect.
- */
- hook_call_deferred(&fake_disconnect_start_data, -1);
- hook_call_deferred(&fake_disconnect_end_data, -1);
- fake_pd_disconnect_duration_us = PD_T_SAFE_0V;
- hook_call_deferred(&fake_disconnect_start_data, 0);
- set_active_cc(!active_cc);
- }
- break;
- case USBC_ACT_CABLE_POLARITY0:
- gpio_set_level(GPIO_USBC_POLARITY, 0);
- break;
- case USBC_ACT_CABLE_POLARITY1:
- gpio_set_level(GPIO_USBC_POLARITY, 1);
- break;
- case USBC_ACT_CCD_EN:
- pd_send_vdm(0, USB_VID_GOOGLE, VDO_CMD_CCD_EN, NULL, 0);
- /* Switch to USB mode when enable CCD. */
- gpio_set_level(GPIO_USBC_SS_USB_MODE, 1);
- /* Reset RFU polarity MUX */
- gpio_set_level(GPIO_CASE_CLOSE_EN, 0);
- gpio_set_level(GPIO_CASE_CLOSE_DFU_L, 0);
- gpio_set_level(GPIO_CASE_CLOSE_EN, 1);
- gpio_set_level(GPIO_CASE_CLOSE_DFU_L, 1);
- break;
- case USBC_ACT_DRP_TOGGLE:
- /* Toggle dualrole mode setting. */
- update_usbc_dual_role(drp_enable ?
- PD_DRP_TOGGLE_OFF : PD_DRP_TOGGLE_ON);
- break;
- default:
- break;
- }
-}
-
-/* has Pull-up */
-static int prev_dbg20v = 1;
-
-static void button_dbg20v_deferred(void);
-DECLARE_DEFERRED(button_dbg20v_deferred);
-
-static void enable_dbg20v_poll(void)
-{
- hook_call_deferred(&button_dbg20v_deferred_data, 10 * MSEC);
-}
-
-/* Handle debounced button press */
-static void button_deferred(void)
-{
- if (button_pressed == GPIO_DBG_20V_TO_DUT_L) {
- enable_dbg20v_poll();
- if (gpio_get_level(GPIO_DBG_20V_TO_DUT_L) == prev_dbg20v)
- return;
- else
- prev_dbg20v = !prev_dbg20v;
- }
- /* bounce ? */
- if (gpio_get_level(button_pressed) != 0)
- return;
-
- switch (button_pressed) {
- case GPIO_DBG_5V_TO_DUT_L:
- set_usbc_action(USBC_ACT_5V_TO_DUT);
- break;
- case GPIO_DBG_12V_TO_DUT_L:
- set_usbc_action(USBC_ACT_12V_TO_DUT);
- break;
- case GPIO_DBG_20V_TO_DUT_L:
- set_usbc_action(USBC_ACT_20V_TO_DUT);
- break;
- case GPIO_DBG_CHG_TO_DEV_L:
- set_usbc_action(USBC_ACT_DEVICE);
- break;
- case GPIO_DBG_USB_TOGGLE_L:
- set_usbc_action(USBC_ACT_USBDP_TOGGLE);
- if (gpio_get_level(GPIO_USBC_SS_USB_MODE))
- board_maybe_reset_usb_hub();
- break;
- case GPIO_DBG_MUX_FLIP_L:
- set_usbc_action(USBC_ACT_MUX_FLIP);
- break;
- case GPIO_DBG_CASE_CLOSE_EN_L:
- set_usbc_action(USBC_ACT_CCD_EN);
- break;
- default:
- break;
- }
-
- ccprintf("Button %d = %d\n",
- button_pressed, gpio_get_level(button_pressed));
-}
-DECLARE_DEFERRED(button_deferred);
-
-void button_event(enum gpio_signal signal)
-{
- button_pressed = signal;
- /* reset debounce time */
- hook_call_deferred(&button_deferred_data, BUTTON_DEBOUNCE_US);
-}
-
-static void button_dbg20v_deferred(void)
-{
- if (gpio_get_level(GPIO_DBG_20V_TO_DUT_L) == 0)
- button_event(GPIO_DBG_20V_TO_DUT_L);
- else
- enable_dbg20v_poll();
-}
-
-void vbus_event(enum gpio_signal signal)
-{
- ccprintf("VBUS! =%d\n", gpio_get_level(signal));
- task_wake(TASK_ID_PD_C0);
-}
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_CH_CC1_PD] = {"CC1_PD", 3300, 4096, 0, STM32_AIN(0)},
- [ADC_CH_CC2_PD] = {"CC2_PD", 3300, 4096, 0, STM32_AIN(4)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 100,
- GPIO_MASTER_I2C_SCL, GPIO_MASTER_I2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* 8-bit address */
-#define SN75DP130_I2C_ADDR_FLAGS 0x2e
-/*
- * Pin number for active-high reset from PCA9534 to CMOS pull-down to
- * SN75DP130's RSTN (active-low)
- */
-#define REDRIVER_RST_PIN 0x1
-
-static int sn75dp130_i2c_write(uint8_t index, uint8_t value)
-{
- return i2c_write8(I2C_PORT_MASTER, SN75DP130_I2C_ADDR_FLAGS,
- index, value);
-}
-
-/**
- * Reset redriver.
- *
- * Note, MUST set SW15 to 'PD' in order to control i2c from PD-MCU. This can
- * NOT be done via software.
- */
-static int sn75dp130_reset(void)
-{
- int rv;
-
- rv = pca9534_config_pin(I2C_PORT_MASTER, 0x20,
- REDRIVER_RST_PIN, PCA9534_OUTPUT);
- /* Assert (its active high) */
- rv |= pca9534_set_level(I2C_PORT_MASTER, 0x20,
- REDRIVER_RST_PIN, 1);
- /* datasheet recommends > 100usec */
- usleep(200);
-
- /* De-assert */
- rv |= pca9534_set_level(I2C_PORT_MASTER, 0x20,
- REDRIVER_RST_PIN, 0);
- /* datasheet recommends > 400msec */
- usleep(450 * MSEC);
- return rv;
-}
-
-static int sn75dp130_dpcd_init(void)
-{
- int i, rv;
-
- /* set upper & middle DPCD addr ... constant for writes below */
- rv = sn75dp130_i2c_write(0x1c, 0x0);
- rv |= sn75dp130_i2c_write(0x1d, 0x1);
-
- /* link_bw_set: 5.4gbps */
- rv |= sn75dp130_i2c_write(0x1e, 0x0);
- rv |= sn75dp130_i2c_write(0x1f, 0x14);
-
- /* lane_count_set: 4 */
- rv |= sn75dp130_i2c_write(0x1e, 0x1);
- rv |= sn75dp130_i2c_write(0x1f, 0x4);
-
- /*
- * Force Link voltage level & pre-emphasis by writing each of the lane's
- * DPCD config registers 103-106h accordingly.
- */
- for (i = 0x3; i < 0x7; i++) {
- rv |= sn75dp130_i2c_write(0x1e, i);
- rv |= sn75dp130_i2c_write(0x1f, 0x3);
- }
- return rv;
-}
-
-static int sn75dp130_redriver_init(void)
-{
- int rv;
-
- rv = sn75dp130_reset();
-
- /* Disable squelch detect */
- rv |= sn75dp130_i2c_write(0x3, 0x1a);
- /* Disable link training on re-driver source side */
- rv |= sn75dp130_i2c_write(0x4, 0x0);
-
- /* Can only configure DPCD portion of redriver in presence of an HPD */
- if (gpio_get_level(GPIO_DPSRC_HPD))
- sn75dp130_dpcd_init();
-
- return rv;
-}
-
-static int cmd_usbc_action(int argc, char *argv[])
-{
- enum usbc_action act;
-
- if (argc != 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "5v"))
- act = USBC_ACT_5V_TO_DUT;
- else if (!strcasecmp(argv[1], "12v"))
- act = USBC_ACT_12V_TO_DUT;
- else if (!strcasecmp(argv[1], "20v"))
- act = USBC_ACT_20V_TO_DUT;
- else if (!strcasecmp(argv[1], "ccd"))
- act = USBC_ACT_CCD_EN;
- else if (!strcasecmp(argv[1], "dev"))
- act = USBC_ACT_DEVICE;
- else if (!strcasecmp(argv[1], "usb"))
- act = USBC_ACT_USB_EN;
- else if (!strcasecmp(argv[1], "dp"))
- act = USBC_ACT_DP_EN;
- else if (!strcasecmp(argv[1], "flip"))
- act = USBC_ACT_MUX_FLIP;
- else if (!strcasecmp(argv[1], "pol0"))
- act = USBC_ACT_CABLE_POLARITY0;
- else if (!strcasecmp(argv[1], "pol1"))
- act = USBC_ACT_CABLE_POLARITY1;
- else if (!strcasecmp(argv[1], "drp"))
- act = USBC_ACT_DRP_TOGGLE;
- else
- return EC_ERROR_PARAM1;
-
- set_usbc_action(act);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(usbc_action, cmd_usbc_action,
- "<5v|12v|20v|ccd|dev|usb|dp|flip|pol0|pol1|drp>",
- "Set Plankton type-C port state");
-
-int board_in_hub_mode(void)
-{
- int ret;
- int level;
-
- ret = pca9534_config_pin(I2C_PORT_MASTER, 0x20,
- 6, PCA9534_INPUT);
- if (ret)
- return -1;
- ret = pca9534_get_level(I2C_PORT_MASTER, 0x20,
- 6, &level);
- if (ret)
- return -1;
- return level;
-}
-
-static int board_usb_hub_reset(void)
-{
- int ret;
-
- ret = pca9534_config_pin(I2C_PORT_MASTER, 0x20,
- 7, PCA9534_OUTPUT);
- if (ret)
- return ret;
- ret = pca9534_set_level(I2C_PORT_MASTER, 0x20,
- 7, 0);
- if (ret)
- return ret;
- usleep(100 * MSEC);
- return pca9534_set_level(I2C_PORT_MASTER, 0x20,
- 7, 1);
-}
-
-void board_maybe_reset_usb_hub(void)
-{
- if (board_in_hub_mode() == 1)
- board_usb_hub_reset();
-}
-
-static int cmd_usb_hub_reset(int argc, char *argv[])
-{
- return board_usb_hub_reset();
-}
-DECLARE_CONSOLE_COMMAND(hub_reset, cmd_usb_hub_reset,
- NULL, "Reset USB hub");
-
-static void board_usb_hub_reset_no_return(void)
-{
- board_usb_hub_reset();
-}
-DECLARE_DEFERRED(board_usb_hub_reset_no_return);
-
-static int board_pd_fake_disconnected(void)
-{
- return fake_pd_disconnected;
-}
-
-int board_fake_pd_adc_read(int cc)
-{
- if (fake_pd_disconnected) {
- /* Always disconnected */
- return fake_pd_host_mode ? 3000 : 0;
- } else {
- if (drp_enable) {
- /* Always read the req CC line when in drp mode */
- return adc_read_channel(cc ? ADC_CH_CC2_PD :
- ADC_CH_CC1_PD);
- } else {
- /*
- * Only read the active CC line, fake disconnected
- * on other CC line. */
- if (active_cc == cc)
- return adc_read_channel(cc ? ADC_CH_CC2_PD :
- ADC_CH_CC1_PD);
- else
- return host_mode ? 3000 : 0;
- }
- }
-}
-
-/* Set fake PD pull-up/pull-down */
-static void board_update_fake_adc_value(int host_mode)
-{
- fake_pd_host_mode = host_mode;
-}
-
-void board_pd_set_host_mode(int enable)
-{
- if (!drp_enable)
- cprintf(CC_USBPD, "Host mode: %d\n", enable);
-
- if (board_pd_fake_disconnected()) {
- board_update_fake_adc_value(enable);
- return;
- }
-
- /* if host mode changed, reset cable type */
- if (host_mode != enable) {
- host_mode = enable;
- cable = TYPEC_CABLE_NONE;
- }
-
- if (enable) {
- /* Source mode, disable charging */
- gpio_set_level(GPIO_USBC_CHARGE_EN, 0);
-
- /* Set CC lines */
- set_active_cc(active_cc);
- } else {
- /* Device mode, disable VBUS */
- gpio_set_level(GPIO_VBUS_CHARGER_EN, 0);
- gpio_set_level(GPIO_USBC_VSEL_0, 0);
- gpio_set_level(GPIO_USBC_VSEL_1, 0);
-
- /* Set CC lines */
- set_active_cc(active_cc);
-
- /* Enable charging */
- gpio_set_level(GPIO_USBC_CHARGE_EN, 1);
- }
-}
-
-static void board_init(void)
-{
- timestamp_t now = get_time();
- hpd_prev_level = gpio_get_level(GPIO_DPSRC_HPD);
- hpd_prev_ts = now.val;
- gpio_enable_interrupt(GPIO_DPSRC_HPD);
-
- /* Start up with dualrole mode off */
- drp_enable = 0;
-
- /* Enable interrupts on VBUS transitions. */
- gpio_enable_interrupt(GPIO_VBUS_WAKE);
-
- /* Enable button interrupts. */
- gpio_enable_interrupt(GPIO_DBG_5V_TO_DUT_L);
- gpio_enable_interrupt(GPIO_DBG_12V_TO_DUT_L);
- gpio_enable_interrupt(GPIO_DBG_CHG_TO_DEV_L);
- gpio_enable_interrupt(GPIO_DBG_USB_TOGGLE_L);
- gpio_enable_interrupt(GPIO_DBG_MUX_FLIP_L);
- gpio_enable_interrupt(GPIO_DBG_CASE_CLOSE_EN_L);
-
- /* TODO(crosbug.com/33761): poll DBG_20V_TO_DUT_L */
- enable_dbg20v_poll();
-
- ina2xx_init(0, 0x399f, INA2XX_CALIB_1MA(10 /* mOhm */));
- sn75dp130_redriver_init();
-
- /* Initialize USB hub */
- if (system_get_reset_flags() & EC_RESET_FLAG_POWER_ON)
- hook_call_deferred(&board_usb_hub_reset_no_return_data,
- 500 * MSEC);
-
- /* Start detecting CC cable type */
- hook_call_deferred(&detect_cc_cable_data, SECOND);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static int cmd_fake_disconnect(int argc, char *argv[])
-{
- int delay_ms, duration_ms;
- char *e;
-
- if (argc < 3)
- return EC_ERROR_PARAM_COUNT;
-
- delay_ms = strtoi(argv[1], &e, 0);
- if (*e || delay_ms < 0)
- return EC_ERROR_PARAM1;
- duration_ms = strtoi(argv[2], &e, 0);
- if (*e || duration_ms < 0)
- return EC_ERROR_PARAM2;
-
- /* Cancel any pending function calls */
- hook_call_deferred(&fake_disconnect_start_data, -1);
- hook_call_deferred(&fake_disconnect_end_data, -1);
-
- fake_pd_disconnect_duration_us = duration_ms * MSEC;
- hook_call_deferred(&fake_disconnect_start_data, delay_ms * MSEC);
-
- ccprintf("Fake disconnect for %d ms starting in %d ms.\n",
- duration_ms, delay_ms);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(fakedisconnect, cmd_fake_disconnect,
- "<delay_ms> <duration_ms>", NULL);
-
-static void trigger_dfu_release(void)
-{
- gpio_set_level(GPIO_CASE_CLOSE_DFU_L, 1);
- ccprintf("Deasserting CASE_CLOSE_DFU_L.\n");
-}
-DECLARE_DEFERRED(trigger_dfu_release);
-
-static int cmd_trigger_dfu(int argc, char *argv[])
-{
- gpio_set_level(GPIO_CASE_CLOSE_DFU_L, 0);
- ccprintf("Asserting CASE_CLOSE_DFU_L.\n");
- ccprintf("If you expect to see DFU debug but it doesn't show up,\n");
- ccprintf("try flipping the USB type-C cable.\n");
- hook_call_deferred(&trigger_dfu_release_data, 1500 * MSEC);
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(dfu, cmd_trigger_dfu, NULL, NULL);
diff --git a/board/plankton/board.h b/board/plankton/board.h
deleted file mode 100644
index 39ab706cd2..0000000000
--- a/board/plankton/board.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* Plankton board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART2 (PA14/PA15) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_COMM_DISABLED
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DYNAMIC_SRC_CAP
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_ADC
-#define CONFIG_HW_CRC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_INA219
-#define CONFIG_IO_EXPANDER_PCA9534
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_TASK_PROFILING
-
-/* I2C ports configuration */
-#define I2C_PORT_MASTER 1
-
-/* USB configuration */
-#define CONFIG_USB_PID 0x500c
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-#include "gpio_signal.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_CH_CC1_PD = 0,
- ADC_CH_CC2_PD,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum board_src_cap {
- SRC_CAP_5V = 0,
- SRC_CAP_12V,
- SRC_CAP_20V,
-};
-
-/* 3.0A Rp */
-#define PD_SRC_VNC PD_SRC_3_0_VNC_MV
-#define PD_SNK_RD_THRESHOLD PD_SRC_3_0_RD_THRESH_MV
-
-/* delay necessary for the voltage transition on the power supply */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 50000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 50000 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 5000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Set USB PD source capability */
-void board_set_source_cap(enum board_src_cap cap);
-
-/* Reset USB hub if USB hub is switched to type-C port */
-void board_maybe_reset_usb_hub(void);
-
-/* Get fake ADC reading */
-int board_fake_pd_adc_read(int cc);
-
-/* Set pull-up/pull-down on CC lines */
-void board_pd_set_host_mode(int enable);
-
-/*
- * Whether the board is in USB hub mode or not
- *
- * @return 1 when in hub mode, 0 when not, and -1 on error.
- */
-int board_in_hub_mode(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/plankton/build.mk b/board/plankton/build.mk
deleted file mode 100644
index 89a01e629b..0000000000
--- a/board/plankton/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072CBU6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/plankton/ec.tasklist b/board/plankton/ec.tasklist
deleted file mode 100644
index 41fc047d6a..0000000000
--- a/board/plankton/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/plankton/gpio.inc b/board/plankton/gpio.inc
deleted file mode 100644
index 9c618dbaa6..0000000000
--- a/board/plankton/gpio.inc
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(VBUS_WAKE, PIN(B, 5), GPIO_INT_BOTH, vbus_event)
-GPIO_INT(DPSRC_HPD, PIN(B, 13), GPIO_INT_BOTH, hpd_event)
-GPIO_INT(DBG_12V_TO_DUT_L, PIN(B, 14), GPIO_INT_FALLING, button_event)
-GPIO_INT(DBG_5V_TO_DUT_L, PIN(B, 8), GPIO_INT_FALLING, button_event)
-GPIO_INT(DBG_CHG_TO_DEV_L, PIN(F, 1), GPIO_INT_FALLING, button_event)
-GPIO_INT(DBG_USB_TOGGLE_L, PIN(F, 0), GPIO_INT_FALLING, button_event)
-GPIO_INT(DBG_CASE_CLOSE_EN_L, PIN(B, 12), GPIO_INT_FALLING, button_event)
-GPIO_INT(DBG_MUX_FLIP_L, PIN(B, 15), GPIO_INT_FALLING, button_event)
-
-/* TODO(crosbug.com/p/33761) : This interrupt is double booked w/ HPD */
-GPIO(DBG_20V_TO_DUT_L, PIN(C, 13), GPIO_INPUT)
-
-/* PD RX/TX */
-GPIO(USBC_PD_REF, PIN(A, 1), GPIO_ANALOG)
-GPIO(USBC_CC1_PD, PIN(A, 0), GPIO_ANALOG)
-GPIO(USBC_CC1_TX_EN, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(USBC_CC2_PD, PIN(A, 4), GPIO_ANALOG)
-GPIO(USBC_CC2_TX_EN, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(USBC_CC_TX_DATA, PIN(A, 6), GPIO_OUT_LOW)
-
-#if 0
-/* Alternate functions */
-GPIO(USBC_TX_CLKOUT, PIN(B, 9), GPIO_OUT_LOW)
-GPIO(USBC_TX_CLKIN, PIN(A, 5), GPIO_OUT_LOW)
-#endif
-
-/* USB-C Power and muxes control */
-GPIO(USBC_CHARGE_EN, PIN(A, 8), GPIO_OUT_HIGH)
-GPIO(USBC_CC1_DEVICE_ODL, PIN(A, 9), GPIO_OUT_LOW)
-GPIO(USBC_CC1_HOST, PIN(A, 2), GPIO_INPUT)
-GPIO(USBC_CC2_DEVICE_ODL, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(USBC_CC2_HOST, PIN(B, 6), GPIO_INPUT)
-GPIO(USBC_POLARITY, PIN(B, 1), GPIO_OUT_HIGH)
-GPIO(USBC_SS_USB_MODE, PIN(B, 3), GPIO_OUT_LOW)
-GPIO(USB_CC1_VCONN_EN_L, PIN(A, 11), GPIO_OUT_HIGH)
-GPIO(USB_CC2_VCONN_EN_L, PIN(A, 12), GPIO_OUT_HIGH)
-
-GPIO(VBUS_CHARGER_EN, PIN(B, 0), GPIO_OUT_LOW)
-/* VSEL_0/1: 0/0 = 5V, 1/0 = 12V, 1/1 = 20V */
-GPIO(USBC_VSEL_1, PIN(A, 10), GPIO_OUT_LOW)
-GPIO(USBC_VSEL_0, PIN(C, 14), GPIO_OUT_LOW)
-
-/* Case closed debugging */
-GPIO(CASE_CLOSE_EN, PIN(A, 7), GPIO_OUT_LOW)
-GPIO(CASE_CLOSE_DFU_L, PIN(A, 13), GPIO_OUT_HIGH)
-GPIO(DEBUG_TOGGLE, PIN(B, 4), GPIO_OUT_LOW)
-
-/* Alternate functions */
-#if 0
-GPIO(UART_TX, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(UART_RX, PIN(A, 15), GPIO_OUT_LOW)
-#endif
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(MASTER_I2C_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(MASTER_I2C_SDA, PIN(B, 11), GPIO_INPUT)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0020), 0, MODULE_USB_PD, 0) /* SPI1: SCK(PA5) */
-ALTERNATE(PIN_MASK(B, 0x0200), 2, MODULE_USB_PD, 0) /* TIM17_CH1: (PB9) */
-ALTERNATE(PIN_MASK(A, 0xC000), 1, MODULE_UART, 0) /* USART2: PA14/PA15 */
-ALTERNATE(PIN_MASK(B, 0x0C00), 1, MODULE_I2C, 0) /* I2C MASTER:PB10/11 */
diff --git a/board/plankton/usb_pd_config.h b/board/plankton/usb_pd_config.h
deleted file mode 100644
index fca6484069..0000000000
--- a/board/plankton/usb_pd_config.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-#include "board.h"
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_C0 17
-#define TIM_CLOCK_PD_RX_C0 1
-
-#define TIM_CLOCK_PD_TX(p) TIM_CLOCK_PD_TX_C0
-#define TIM_CLOCK_PD_RX(p) TIM_CLOCK_PD_RX_C0
-
-/* Timer channel */
-#define TIM_RX_CCR_C0 1
-#define TIM_TX_CCR_C0 1
-
-/* RX timer capture/compare register */
-#define TIM_CCR_C0 (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_C0, TIM_RX_CCR_C0))
-#define TIM_RX_CCR_REG(p) TIM_CCR_C0
-
-/* TX and RX timer register */
-#define TIM_REG_TX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_TX_C0))
-#define TIM_REG_RX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_RX_C0))
-#define TIM_REG_TX(p) TIM_REG_TX_C0
-#define TIM_REG_RX(p) TIM_REG_RX_C0
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* TX is using SPI1 on PA4-7 */
-#define SPI_REGS(p) STM32_SPI1_REGS
-
-static inline void spi_enable_clock(int port)
-{
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
-}
-
-#define DMAC_SPI_TX(p) STM32_DMAC_CH3
-
-/* RX is using COMP1 triggering TIM1 CH1 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM1_IC1
-#define CMP2OUTSEL 0
-
-#define TIM_TX_CCR_IDX(p) TIM_TX_CCR_C0
-#define TIM_RX_CCR_IDX(p) TIM_RX_CCR_C0
-#define TIM_CCR_CS 1
-#define EXTI_COMP_MASK(p) BIT(21)
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-#define DMAC_TIM_RX(p) STM32_DMAC_CH2
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- /* 40 MHz pin speed on SPI1 (PA5/6) and CC1_TX_EN (PA3) */
- STM32_GPIO_OSPEEDR(GPIO_A) |= 0x00003CC0;
- /* 40 MHz pin speed on TIM17_CH1 (PB9) and CC2_TX_EN (PB2) */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000C0030;
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
-}
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
- /* put SPI function on TX pin */
- /* PA6 is SPI1 MISO */
- gpio_set_alternate_function(GPIO_A, 0x0040, 0);
-
- /* set the polarity */
- gpio_set_level(GPIO_USBC_CC1_TX_EN, !polarity);
- gpio_set_level(GPIO_USBC_CC2_TX_EN, polarity);
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- /* output low on SPI TX to disable the FET */
- /* PA6 is SPI1_MISO */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- & ~(3 << (2*6)))
- | (1 << (2*6));
- /* put the low level reference in Hi-Z */
- gpio_set_level(GPIO_USBC_CC1_TX_EN, 0);
- gpio_set_level(GPIO_USBC_CC2_TX_EN, 0);
-}
-
-/* we know the plug polarity, do the right configuration */
-static inline void pd_select_polarity(int port, int polarity)
-{
- /* use the right comparator non inverted input for COMP1 */
- STM32_COMP_CSR = (STM32_COMP_CSR & ~STM32_COMP_CMP1INSEL_MASK)
- | STM32_COMP_CMP1EN
- | (polarity ?
- STM32_COMP_CMP1INSEL_INM4 :
- STM32_COMP_CMP1INSEL_INM6);
- gpio_set_level(GPIO_USBC_POLARITY, polarity);
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- /* Configure SCK pin */
- gpio_config_module(MODULE_USB_PD, 1);
-}
-
-static inline void pd_set_host_mode(int port, int enable)
-{
- board_pd_set_host_mode(enable);
-}
-
-/**
- * Initialize various GPIOs and interfaces to safe state at start of pd_task.
- *
- * These include:
- * VBUS, charge path based on power role.
- * Physical layer CC transmit.
- * VCONNs disabled.
- *
- * @param port USB-C port number
- * @param power_role Power role of device
- */
-static inline void pd_config_init(int port, uint8_t power_role)
-{
- /*
- * Set CC pull resistors, and charge_en and vbus_en GPIOs to match
- * the initial role.
- */
- pd_set_host_mode(port, power_role);
-
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
-
- gpio_set_level(GPIO_USB_CC1_VCONN_EN_L, 1);
- gpio_set_level(GPIO_USB_CC2_VCONN_EN_L, 1);
-}
-
-static inline int pd_adc_read(int port, int cc)
-{
- return board_fake_pd_adc_read(cc);
-}
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
diff --git a/board/plankton/usb_pd_policy.c b/board/plankton/usb_pd_policy.c
deleted file mode 100644
index 8cb24372a0..0000000000
--- a/board/plankton/usb_pd_policy.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "adc.h"
-#include "board.h"
-#include "common.h"
-#include "console.h"
-#include "cros_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* Acceptable margin between requested VBUS and measured value */
-#define MARGIN_MV 400 /* mV */
-
-#define PDO_FIXED_FLAGS (PDO_FIXED_DATA_SWAP | PDO_FIXED_UNCONSTRAINED |\
- PDO_FIXED_COMM_CAP)
-
-/* Source PDOs */
-const uint32_t pd_src_pdo[] = {
- PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS),
- PDO_FIXED(12000, 3000, PDO_FIXED_FLAGS),
- PDO_FIXED(20000, 3000, PDO_FIXED_FLAGS),
-};
-static const int pd_src_pdo_cnts[] = {
- [SRC_CAP_5V] = 1,
- [SRC_CAP_12V] = 2,
- [SRC_CAP_20V] = 3,
-};
-
-static int pd_src_pdo_idx;
-
-/* Fake PDOs : we just want our pre-defined voltages */
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, PDO_FIXED_FLAGS),
- PDO_FIXED(12000, 500, PDO_FIXED_FLAGS),
- PDO_FIXED(20000, 500, PDO_FIXED_FLAGS),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-/* Whether alternate mode has been entered or not */
-static int alt_mode;
-
-void board_set_source_cap(enum board_src_cap cap)
-{
- pd_src_pdo_idx = cap;
-}
-
-int charge_manager_get_source_pdo(const uint32_t **src_pdo, const int port)
-{
- *src_pdo = pd_src_pdo;
- return pd_src_pdo_cnts[pd_src_pdo_idx];
-}
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- /* No battery, nothing to do */
- return;
-}
-
-__override void pd_transition_voltage(int idx)
-{
- gpio_set_level(GPIO_USBC_VSEL_0, idx >= 2);
- gpio_set_level(GPIO_USBC_VSEL_1, idx >= 3);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Output the correct voltage */
- gpio_set_level(GPIO_VBUS_CHARGER_EN, 1);
-
- return EC_SUCCESS;
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Kill VBUS */
- gpio_set_level(GPIO_VBUS_CHARGER_EN, 0);
- gpio_set_level(GPIO_USBC_VSEL_0, 0);
- gpio_set_level(GPIO_USBC_VSEL_1, 0);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return gpio_get_level(GPIO_VBUS_WAKE);
-}
-
-__override int pd_board_checks(void)
-{
- static int was_connected = -1;
- if (was_connected != 1 && pd_is_connected(0))
- board_maybe_reset_usb_hub();
- was_connected = pd_is_connected(0);
- return EC_SUCCESS;
-}
-
-__override int pd_check_power_swap(int port)
-{
- /* Always allow power swap */
- return 1;
-}
-
-__override int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Always allow data swap */
- return 1;
-}
-
-__override void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
-}
-
-__override void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
- /* If Plankton is in USB hub mode, always act as UFP */
- if (board_in_hub_mode() && dr_role == PD_ROLE_DFP &&
- (flags & PD_FLAGS_PARTNER_DR_DATA))
- pd_request_data_swap(port);
-}
-
-/* ----------------- Vendor Defined Messages ------------------ */
-const uint32_t vdo_idh = VDO_IDH(0, /* data caps as USB host */
- 0, /* data caps as USB device */
- IDH_PTYPE_AMA, /* Alternate mode */
- 1, /* supports alt modes */
- USB_VID_GOOGLE);
-
-const uint32_t vdo_product = VDO_PRODUCT(CONFIG_USB_PID, CONFIG_USB_BCD_DEV);
-
-const uint32_t vdo_ama = VDO_AMA(CONFIG_USB_PD_IDENTITY_HW_VERS,
- CONFIG_USB_PD_IDENTITY_SW_VERS,
- 0, 0, 0, 0, /* SS[TR][12] */
- 0, /* Vconn power */
- 0, /* Vconn power required */
- 1, /* Vbus power required */
- AMA_USBSS_BBONLY /* USB SS support */);
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- payload[VDO_I(IDH)] = vdo_idh;
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- payload[VDO_I(AMA)] = vdo_ama;
- return VDO_I(AMA) + 1;
-}
-
-static int svdm_response_svids(int port, uint32_t *payload)
-{
- payload[1] = VDO_SVID(USB_SID_DISPLAYPORT, 0);
- return 2;
-}
-
-/*
- * Will only ever be a single mode for this UFP_D device as it has no real USB
- * support making it only PIN_E configureable
- */
-#define MODE_CNT 1
-#define OPOS 1
-
-const uint32_t vdo_dp_mode[MODE_CNT] = {
- VDO_MODE_DP(0, /* UFP pin cfg supported : none */
- MODE_DP_PIN_E, /* DFP pin cfg supported */
- 1, /* no usb2.0 signalling in AMode */
- CABLE_PLUG, /* its a plug */
- MODE_DP_V13, /* DPv1.3 Support, no Gen2 */
- MODE_DP_SNK) /* Its a sink only */
-};
-
-static int svdm_response_modes(int port, uint32_t *payload)
-{
- if (gpio_get_level(GPIO_USBC_SS_USB_MODE))
- return 0; /* nak */
-
- if (PD_VDO_VID(payload[0]) != USB_SID_DISPLAYPORT)
- return 0; /* nak */
-
- memcpy(payload + 1, vdo_dp_mode, sizeof(vdo_dp_mode));
- return MODE_CNT + 1;
-}
-
-static int dp_status(int port, uint32_t *payload)
-{
- int opos = PD_VDO_OPOS(payload[0]);
- int hpd = gpio_get_level(GPIO_DPSRC_HPD);
- if (opos != OPOS)
- return 0; /* nak */
-
- payload[1] = VDO_DP_STATUS(0, /* IRQ_HPD */
- (hpd == 1), /* HPD_HI|LOW */
- 0, /* request exit DP */
- 0, /* request exit USB */
- 0, /* MF pref */
- !gpio_get_level(GPIO_USBC_SS_USB_MODE),
- 0, /* power low */
- 0x2);
- return 2;
-}
-
-static int dp_config(int port, uint32_t *payload)
-{
- if (PD_DP_CFG_DPON(payload[1]))
- gpio_set_level(GPIO_USBC_SS_USB_MODE, 0);
- return 1;
-}
-
-int svdm_enter_mode(int port, uint32_t *payload)
-{
- int usb_mode = gpio_get_level(GPIO_USBC_SS_USB_MODE);
-
- /* SID & mode request is valid */
- if ((PD_VDO_VID(payload[0]) != USB_SID_DISPLAYPORT) ||
- (PD_VDO_OPOS(payload[0]) != OPOS))
- return 0; /* will generate NAK */
-
- if (usb_mode) {
- CPRINTS("Toggle USB_MODE if you want DP & re-connect");
- return 0;
- }
-
- alt_mode = OPOS;
- return 1;
-}
-
-int pd_alt_mode(int port, enum tcpci_msg_type type, uint16_t svid)
-{
- return alt_mode;
-}
-
-static int svdm_exit_mode(int port, uint32_t *payload)
-{
- alt_mode = 0;
- /*
- * Don't actually toggle GPIO_USBC_SS_USB_MODE since its manually
- * controlled by operator.
- */
- return 1; /* Must return ACK */
-}
-
-static struct amode_fx dp_fx = {
- .status = &dp_status,
- .config = &dp_config,
-};
-
-__override const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = &svdm_response_svids,
- .modes = &svdm_response_modes,
- .enter_mode = &svdm_enter_mode,
- .amode = &dp_fx,
- .exit_mode = &svdm_exit_mode,
-};
-
-__override int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- int cmd = PD_VDO_CMD(payload[0]);
- int rsize = 1;
- CPRINTF("VDM/%d [%d] %08x\n", cnt, cmd, payload[0]);
-
- *rpayload = payload;
- switch (cmd) {
- case VDO_CMD_VERSION:
- memcpy(payload + 1, &current_image_data.version, 24);
- rsize = 7;
- break;
- default:
- rsize = 0;
- }
-
- CPRINTS("DONE");
- /* respond (positively) to the request */
- payload[0] |= VDO_SRC_RESPONDER;
-
- return rsize;
-}
diff --git a/board/plankton/vif_override.xml b/board/plankton/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/plankton/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/polyberry/board.c b/board/polyberry/board.c
deleted file mode 100644
index 5bb811f82c..0000000000
--- a/board/polyberry/board.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2016 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.
- */
-/* Polyberry board configuration */
-
-#include "common.h"
-#include "dma.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "gpio_list.h"
-#include "hooks.h"
-#include "registers.h"
-#include "stm32-dma.h"
-#include "task.h"
-#include "update_fw.h"
-#include "usb_descriptor.h"
-#include "util.h"
-#include "usb_dwc_console.h"
-#include "usb_dwc_update.h"
-#include "usb_hw.h"
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Polyberry"),
- [USB_STR_SERIALNO] = USB_STRING_DESC("1234-a"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Polyberry EC Shell"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-struct dwc_usb usb_ctl = {
- .ep = {
- &ep0_ctl,
- &ep_console_ctl,
- &usb_update_ep_ctl,
- },
- .speed = USB_SPEED_FS,
- .phy_type = USB_PHY_ULPI,
- .dma_en = 1,
- .irq = STM32_IRQ_OTG_HS,
-};
-
-#define GPIO_SET_HS(bank, number) \
- (STM32_GPIO_OSPEEDR(GPIO_##bank) |= (0x3 << ((number) * 2)))
-
-void board_config_post_gpio_init(void)
-{
- /* We use MCO2 clock passthrough to provide a clock to USB HS */
- gpio_config_module(MODULE_MCO, 1);
- /* GPIO PC9 to high speed */
- GPIO_SET_HS(C, 9);
-
- if (usb_ctl.phy_type == USB_PHY_ULPI)
- gpio_set_level(GPIO_USB_MUX_SEL, 0);
- else
- gpio_set_level(GPIO_USB_MUX_SEL, 1);
-
- /* Set USB GPIO to high speed */
- GPIO_SET_HS(A, 11);
- GPIO_SET_HS(A, 12);
-
- GPIO_SET_HS(C, 3);
- GPIO_SET_HS(C, 2);
- GPIO_SET_HS(C, 0);
- GPIO_SET_HS(A, 5);
-
- GPIO_SET_HS(B, 5);
- GPIO_SET_HS(B, 13);
- GPIO_SET_HS(B, 12);
- GPIO_SET_HS(B, 2);
- GPIO_SET_HS(B, 10);
- GPIO_SET_HS(B, 1);
- GPIO_SET_HS(B, 0);
- GPIO_SET_HS(A, 3);
-}
-
-static void board_init(void)
-{
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/polyberry/board.h b/board/polyberry/board.h
deleted file mode 100644
index 8e55967bf5..0000000000
--- a/board/polyberry/board.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Polyberry configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define CONFIG_FLASH_WRITE_SIZE STM32_FLASH_WRITE_SIZE_3300
-
-/* Use external clock */
-#define CONFIG_STM32_CLOCK_HSE_HZ 24000000
-
-#define CONFIG_BOARD_POST_GPIO_INIT
-
-/* Enable console recasting of GPIO type. */
-#define CONFIG_CMD_GPIO_EXTENDED
-
-/* The UART console is on test points USART3 (PC10/PC11) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 3
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-/* Don't waste precious DMA channels on console. */
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-#define CONFIG_UART_TX_REQ_CH 4
-#define CONFIG_UART_RX_REQ_CH 4
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x5020
-#define CONFIG_USB_CONSOLE
-#define CONFIG_STREAM_USB
-#define CONFIG_USB_UPDATE
-
-#undef CONFIG_USB_MAXPOWER_MA
-#define CONFIG_USB_MAXPOWER_MA 100
-
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_UPDATE 1
-#define USB_IFACE_COUNT 2
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_UPDATE 2
-#define USB_EP_COUNT 3
-
-/* This is not actually a Chromium EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_WATCHDOG
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 5
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_CONSOLE_NAME,
- USB_STR_UPDATE_NAME,
- USB_STR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/polyberry/build.mk b/board/polyberry/build.mk
deleted file mode 100644
index 6b06f2bb8f..0000000000
--- a/board/polyberry/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-CHIP:=stm32
-CHIP_FAMILY:=stm32f4
-CHIP_VARIANT:=stm32f446
-
-board-y=board.o
diff --git a/board/polyberry/ec.tasklist b/board/polyberry/ec.tasklist
deleted file mode 100644
index c1fb169118..0000000000
--- a/board/polyberry/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/polyberry/gpio.inc b/board/polyberry/gpio.inc
deleted file mode 100644
index 536dccc5ff..0000000000
--- a/board/polyberry/gpio.inc
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Outputs */
-GPIO(PM_RESET_L, PIN(D, 0), GPIO_OUT_HIGH)
-GPIO(PM_KPD_PWR_L, PIN(D, 1), GPIO_OUT_HIGH)
-GPIO(AP_RESET_L, PIN(D, 2), GPIO_OUT_HIGH)
-GPIO(AP_FORCED_USB_BOOT, PIN(D, 3), GPIO_OUT_LOW)
-GPIO(AP_PS_HOLD, PIN(D, 4), GPIO_OUT_HIGH)
-
-GPIO(MUX_EN_L, PIN(A, 7), GPIO_INPUT)
-GPIO(USB_MUX_SEL, PIN(A, 6), GPIO_OUT_HIGH)
-GPIO(PHY_RESET, PIN(C, 4), GPIO_INPUT)
-GPIO(LED_BLUE, PIN(A, 2), GPIO_ODR_LOW)
-GPIO(LED_GRN, PIN(B, 8), GPIO_ODR_LOW)
-GPIO(LED_RED, PIN(B, 15), GPIO_ODR_LOW)
-
-/* Clock function */
-GPIO(MCU_TO_PHY_MCO, PIN(C, 9), GPIO_INPUT)
-
-
-/* These pin assignments aren't used as GPIO. Let's note them here
- * for readability but not initialize them.
- * USART1 TX/RX - AP
- * GPIO(MCU_UART1_TX, PIN(A, 9), GPIO_INPUT)
- * GPIO(MCU_UART1_RX, PIN(A, 10), GPIO_INPUT)
- * USART2 TX/RX - Sensor Hub
- * GPIO(MCU_UART2_TX, PIN(D, 5), GPIO_INPUT)
- * GPIO(MCU_UART2_RX, PIN(D, 6), GPIO_INPUT)
-
- * USART3 TX/RX - Console
- * GPIO(MCU_UART3_TX, PIN(C, 10), GPIO_INPUT)
- * GPIO(MCU_UART3_RX, PIN(C, 11), GPIO_INPUT)
- * USART5 TX/RX - SSC (?)
- * GPIO(MCU_UART5_TX, PIN(E, 7), GPIO_INPUT)
- * GPIO(MCU_UART5_RX, PIN(E, 8), GPIO_INPUT)
- */
-
-/* USB pins */
-GPIO(USB_FS_DM, PIN(A, 11), GPIO_INPUT)
-GPIO(USB_FS_DP, PIN(A, 12), GPIO_INPUT)
-
-GPIO(USB_HS_ULPI_NXT, PIN(C, 3), GPIO_INPUT)
-GPIO(USB_HS_ULPI_DIR, PIN(C, 2), GPIO_INPUT)
-GPIO(USB_HS_ULPI_STP, PIN(C, 0), GPIO_INPUT)
-GPIO(USB_HS_ULPI_CK, PIN(A, 5), GPIO_INPUT)
-
-GPIO(USB_HS_ULPI_D7, PIN(B, 5), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D6, PIN(B,13), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D5, PIN(B,12), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D4, PIN(B, 2), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D3, PIN(B,10), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D2, PIN(B, 1), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D1, PIN(B, 0), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D0, PIN(A, 3), GPIO_INPUT)
-
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-
-ALTERNATE(PIN_MASK(A, 0x0600), 7, MODULE_UART, 0) /* USART1: PA9/PA10 - AP */
-ALTERNATE(PIN_MASK(D, 0x0060), 7, MODULE_UART, 0) /* USART2: PD5/PD6 - SH */
-ALTERNATE(PIN_MASK(C, 0x0c00), 7, MODULE_UART, 0) /* USART3: PC10/PC11 - Console */
-ALTERNATE(PIN_MASK(D, 0x00c0), 8, MODULE_UART, 0) /* USART5: PE7/PE8 - SSC */
-
-/* OTG FS */
-ALTERNATE(PIN_MASK(A, 0x1800), 10, MODULE_USB, 0) /* DWC USB OTG: PA11/12 */
-
-/* OTG HS */
-ALTERNATE(PIN_MASK(A, 0x0028), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(B, 0x3427), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(C, 0x000d), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(C, 0x0200), 0, MODULE_MCO, 0) /* MCO2: PC9 */
diff --git a/board/pompom/battery.c b/board/pompom/battery.c
deleted file mode 100644
index 7ce8eec202..0000000000
--- a/board/pompom/battery.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_BYD] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_BYD;
diff --git a/board/pompom/board.c b/board/pompom/board.c
deleted file mode 100644
index 855a8c305d..0000000000
--- a/board/pompom/board.c
+++ /dev/null
@@ -1,644 +0,0 @@
-/* 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.
- */
-
-/* Pompom board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "pi3usb9201.h"
-#include "power.h"
-#include "power/qcom.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_ocp.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Forward declaration */
-static void tcpc_alert_event(enum gpio_signal signal);
-static void usb0_evt(enum gpio_signal signal);
-static void usba_oc_interrupt(enum gpio_signal signal);
-static void ppc_interrupt(enum gpio_signal signal);
-static void board_connect_c0_sbu(enum gpio_signal s);
-
-#include "gpio_list.h"
-
-/* GPIO Interrupt Handlers */
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void usba_oc_deferred(void)
-{
- /* Use next number after all USB-C ports to indicate the USB-A port */
- board_overcurrent_event(CONFIG_USB_PD_PORT_MAX_COUNT,
- !gpio_get_level(GPIO_USB_A0_OC_ODL));
-}
-DECLARE_DEFERRED(usba_oc_deferred);
-
-static void usba_oc_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&usba_oc_deferred_data, 0);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-static void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Use 80 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /*
- * Unmask 0x01 in [1] (KSO_01/KSI_00, the old location of Search key);
- * as it uses the new location (KSO_00/KSI_03). And T11 key, which maps
- * to KSO_01/KSI_00, is not there.
- */
- .actual_key_mask = {
- 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca
- },
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
-};
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 20000 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Initialize board. */
-static void board_init(void)
-{
- /*
- * The rev-2 hardware doesn't have the external pull-up fix for the bug
- * b/164256614. It requires rework to stuff the resistor. For people who
- * has difficulty to do the rework, this is a workaround, which makes
- * the GPIO push-pull, instead of open-drain.
- */
- if (system_get_board_version() == 2)
- gpio_set_flags(GPIO_HIBERNATE_L, GPIO_OUTPUT);
-
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
-
- /* Enable USB-A overcurrent interrupt */
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
-
- /* Enable interrupt for BMI160 sensor */
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- int i;
-
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_LID_ACCEL_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- /*
- * Board rev 2+ has the hardware fix. Don't need the following
- * workaround.
- */
- if (system_get_board_version() >= 2)
- return;
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
-
-__override uint16_t board_get_ps8xxx_product_id(int port)
-{
- /* Pompom rev 2+ changes TCPC from PS8805 to PS8755 */
- if (system_get_board_version() == 0)
- return PS8751_PRODUCT_ID;
- else if (system_get_board_version() == 1)
- return PS8805_PRODUCT_ID;
-
- return PS8755_PRODUCT_ID;
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_ON);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return gpio_get_level(GPIO_DA9313_GPIO0);
-}
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_ma = charge_ma * 95 / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-/* Mutexes */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct accelgyro_saved_data_t g_bma255_data;
-static struct stprivate_data g_lis2dwl_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t lis2dwl_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LIS2DWL_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-static void board_detect_motionsensor(void)
-{
- int val = 0;
-
- /*
- * BMA253 and LIS2DWL have same slave address, so we check the
- * LIS2DWL WHO AM I register to check the lid accel type
- */
- i2c_read8(I2C_PORT_SENSOR, LIS2DWL_ADDR0_FLAGS,
- LIS2DW12_WHO_AM_I_REG, &val);
-
- if (val == LIS2DW12_WHO_AM_I) {
- motion_sensors[LID_ACCEL] = lis2dwl_lid_accel;
- CPRINTS("Lid Accel: LIS2DWL");
- }
-}
-
-static void board_update_sensor_config_from_sku(void)
-{
- board_detect_motionsensor();
-}
-DECLARE_HOOK(HOOK_INIT, board_update_sensor_config_from_sku,
- HOOK_PRIO_INIT_I2C + 2);
diff --git a/board/pompom/board.h b/board/pompom/board.h
deleted file mode 100644
index 3f35d7ceab..0000000000
--- a/board/pompom/board.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* 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.
- */
-
-/* Pompom board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-#include "board_revs.h"
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_PWM_KBLIGHT
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TCPM_PS8755
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-
-/* USB-A */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* BMA253 lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_LID_360_L
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_EC_RST_ODL GPIO_EC_RST_ODL_GPIO02
-#define GPIO_PMIC_RESIN_L GPIO_PM7180_RESIN_D_L
-
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_DISPLIGHT,
- PWM_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_BYD,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/pompom/board_revs.h b/board/pompom/board_revs.h
deleted file mode 100644
index 1ac5ee1337..0000000000
--- a/board/pompom/board_revs.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_BOARD_REVS_H
-#define __CROS_EC_BOARD_REVS_H
-
-#define POMPOM_REV0 0
-#define POMPOM_REV1 1
-#define POMPOM_REV_LAST POMPOM_REV1
-#define POMPOM_REV_DEFAULT POMPOM_REV1
-
-#if !defined(BOARD_REV)
-#define BOARD_REV POMPOM_REV_DEFAULT
-#endif
-
-#if BOARD_REV < POMPOM_REV0 || BOARD_REV > POMPOM_REV_LAST
-#error "Board revision out of range"
-#endif
-
-
-#endif /* __CROS_EC_BOARD_REVS_H */
diff --git a/board/pompom/build.mk b/board/pompom/build.mk
deleted file mode 100644
index a044fa58cb..0000000000
--- a/board/pompom/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y=battery.o board.o led.o
diff --git a/board/pompom/ec.tasklist b/board/pompom/ec.tasklist
deleted file mode 100644
index 7ec8b46059..0000000000
--- a/board/pompom/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/pompom/gpio.inc b/board/pompom/gpio.inc
deleted file mode 100644
index 531452eae3..0000000000
--- a/board/pompom/gpio.inc
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_A0_OC_ODL, PIN(D, 1), GPIO_INT_BOTH | GPIO_PULL_UP, usba_oc_interrupt)
-
-/* System interrupts */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-/* Sensor interrupts */
-GPIO_INT(LID_360_L, PIN(7, 2), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, bmi160_interrupt) /* Accelerometer/gyro interrupt */
-
-/*
- * EC_RST_ODL acts as a wake source from hibernate mode. However, it does not
- * need to be an interrupt for normal EC operations. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL_GPIO02, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PM7180_RESIN_D_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-GPIO(QSIP_ON, PIN(5, 0), GPIO_OUT_LOW) /* Not used, for non-switchcap testing */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Sensors */
-GPIO(LID_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT) /* Lid accel sensor interrupt */
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(7, 4), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_OUT_HIGH) /* Port-0 TCPC chip reset */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* USB-A */
-GPIO(EN_USB_A_5V, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(USB_A_CDP_ILIM_EN, PIN(7, 5), GPIO_OUT_HIGH) /* H: CDP, L:SDP. Only one USB-A port, always CDP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C0, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C0, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(EC_PWR_LED_W, PIN(6, 0), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(KB_BL_PWM, PIN(8, 0), GPIO_INPUT) /* PWM3 */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Switchcap */
-/*
- * GPIO0 is configured as PVC_PG. When the chip in power down mode, it outputs
- * high-Z. Set pull-down to avoid floating.
- */
-GPIO(DA9313_GPIO0, PIN(E, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* Switchcap GPIO0 */
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(0, 4))
-UNUSED(PIN(C, 0))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(3, 7))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(C, 6))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(6, 2))
-UNUSED(PIN(E, 4))
-UNUSED(PIN(F, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(D, 3))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-
-/* Keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* Keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO10 (GPIO07), KSO11 (GPIO06), KSO12 (GPIO05) */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO03 (GPIO16), KSO04 (GPIO15), KSO05 (GPIO14), KSO06 (GPIO13), KSO07 (GPIO12), KSO08 (GPIO11), KSO09 (GPIO10) */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO00 (GPIO21), KSO01 (GPIO20) */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI2 (GPIO27), KSI3 (GPIO26), KSI4 (GPIO25), KSI5 (GPIO24), KSI6 (GPIO23), KSI7 (GPIO22) */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI0 (GPIO31), KSI1 (GPIO30) */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2) /* KSO02 (GPIO17) */
diff --git a/board/pompom/led.c b/board/pompom/led.c
deleted file mode 100644
index db571a067c..0000000000
--- a/board/pompom/led.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define LED_ON_LVL 1
-#define LED_OFF_LVL 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color_battery(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_Y_C0,
- (color == LED_AMBER) ? LED_ON_LVL : LED_OFF_LVL);
- gpio_set_level(GPIO_EC_CHG_LED_W_C0,
- (color == LED_WHITE) ? LED_ON_LVL : LED_OFF_LVL);
-}
-
-void led_set_color_power(enum led_color color)
-{
- gpio_set_level(GPIO_EC_PWR_LED_W,
- (color == LED_WHITE) ? LED_ON_LVL : LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LED_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(LED_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- int color = LED_OFF;
- int period = 0;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate amber on when charging. */
- color = LED_AMBER;
- break;
- case PWR_STATE_DISCHARGE:
- /* Discharging : off */
- color = LED_OFF;
- break;
- case PWR_STATE_ERROR:
- /* Battery error: Amber 1 sec, off 1 sec */
- period = (1 + 1);
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1)
- color = LED_AMBER;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- /* Full Charged: White on */
- color = LED_WHITE;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode: White 2 sec, Amber 2 sec */
- period = (2 + 2);
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2)
- color = LED_WHITE;
- else
- color = LED_AMBER;
- } else
- color = LED_WHITE;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color_battery(color);
-}
-
-static void board_led_set_power(void)
-{
- static int power_ticks;
- int color = LED_OFF;
- int period = 0;
-
- power_ticks++;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* S3: On 1 sec, Off 3 sec */
- period = (1 + 3);
- power_ticks = power_ticks % period;
- if (power_ticks < 1)
- color = LED_WHITE;
- else
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- /* S5: LED off */
- color = LED_OFF;
- } else if (chipset_in_state(CHIPSET_STATE_ON)) {
- /* S0: LED on */
- color = LED_WHITE;
- }
-
- led_set_color_power(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- board_led_set_power();
-}
-DECLARE_HOOK(HOOK_SECOND, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_WHITE : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color_battery(color);
-}
diff --git a/board/pompom/vif_override.xml b/board/pompom/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/pompom/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/poppy/analyzestack.yaml b/board/poppy/analyzestack.yaml
deleted file mode 100644
index 59e0f9de4c..0000000000
--- a/board/poppy/analyzestack.yaml
+++ /dev/null
@@ -1,230 +0,0 @@
-# Size of extra stack frame needed by exception context switch.
-# See core/cortex-m/switch.S
-exception_frame_size: 224
-# Add some missing calls.
-add:
- # TCPC stuff:
- tcpm_init.lto_priv.255[driver/tcpm/tcpm.h:77]:
- - anx74xx_tcpm_init
- - tcpci_tcpm_init
- tcpm_release[driver/tcpm/tcpm.h:90]:
- - anx74xx_tcpm_release
- - ps8xxx_tcpm_release
- tcpm_get_cc.lto_priv.246[driver/tcpm/tcpm.h:95]:
- - anx74xx_tcpm_get_cc
- - tcpci_tcpm_get_cc
- tcpm_select_rp_value[driver/tcpm/tcpm.h:105]:
- - anx74xx_tcpm_select_rp_value
- - tcpci_tcpm_select_rp_value
- tcpm_set_cc.lto_priv.239[driver/tcpm/tcpm.h:110]:
- - anx74xx_tcpm_set_cc
- - tcpci_tcpm_set_cc
- tcpm_set_polarity[driver/tcpm/tcpm.h:115]:
- - anx74xx_tcpm_set_polarity
- - tcpci_tcpm_set_polarity
- tcpm_set_vconn.lto_priv.249[driver/tcpm/tcpm.h:120]:
- - anx74xx_tcpm_set_vconn
- - tcpci_tcpm_set_vconn
- tcpm_set_msg_header[driver/tcpm/tcpm.h:125]:
- - anx74xx_tcpm_set_msg_header
- - tcpci_tcpm_set_msg_header
- tcpm_set_rx_enable.lto_priv.252[driver/tcpm/tcpm.h:131]:
- - anx74xx_tcpm_set_rx_enable
- - tcpci_tcpm_set_rx_enable
- tcpm_get_message[driver/tcpm/tcpm.h:136]:
- - anx74xx_tcpm_get_message
- - tcpci_tcpm_get_message
- tcpm_transmit[driver/tcpm/tcpm.h:142]:
- - anx74xx_tcpm_transmit
- - ps8xxx_tcpm_transmit
- tcpc_alert[driver/tcpm/tcpm.h:147]:
- - anx74xx_tcpc_alert
- - tcpci_tcpc_alert
- tcpc_discharge_vbus[driver/tcpm/tcpm.h:152]:
- - anx74xx_tcpc_discharge_vbus
- - tcpci_tcpc_discharge_vbus
- tcpm_set_drp_toggle[driver/tcpm/tcpm.h:163]:
- - anx74xx_tcpc_drp_toggle
- - tcpci_tcpc_drp_toggle
- tcpm_get_chip_info[driver/tcpm/tcpm.h:185]:
- - tcpci_get_chip_info
- board_tcpc_init[board/poppy/board.c:336]:
- - anx74xx_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- tcpci_tcpc_drp_toggle[driver/tcpm/tcpci.c:148]:
- - None
- # USB mux stuff
- usb_mux_init[driver/usb_mux.c:25]:
- - anx74xx_tcpm_mux_init
- - tcpci_tcpm_mux_init
- usb_mux_init[driver/usb_mux.c:31]:
- - None
- usb_mux_set[driver/usb_mux.c:52]:
- - anx74xx_tcpm_mux_set
- - tcpci_tcpm_mux_set
- usb_mux_get[driver/usb_mux.c:71]:
- - anx74xx_tcpm_mux_get
- - tcpci_tcpm_mux_get
- usb_mux_flip[driver/usb_mux.c:92]:
- - anx74xx_tcpm_mux_get
- - tcpci_tcpm_mux_get
- usb_mux_flip[driver/usb_mux.c:103]:
- - anx74xx_tcpm_mux_set
- - tcpci_tcpm_mux_set
- hc_usb_pd_mux_info[driver/usb_mux.c:169]:
- - anx74xx_tcpm_mux_get
- - tcpci_tcpm_mux_get
- svdm_dp_post_config.lto_priv.271[board/poppy/usb_pd_policy.c:364]:
- - anx74xx_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- svdm_dp_attention.lto_priv.272[board/poppy/usb_pd_policy.c:379]:
- - anx74xx_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- svdm_exit_dp_mode.lto_priv.273[board/poppy/usb_pd_policy.c:390]:
- - anx74xx_tcpc_update_hpd_status
- - ps8xxx_tcpc_update_hpd_status
- # pd_svdm
- pd_dfp_enter_mode[common/usb_pd_policy.c:459]:
- - svdm_enter_dp_mode
- dfp_consume_attention.lto_priv.259[common/usb_pd_policy.c:497]:
- - svdm_dp_attention
- pd_dfp_exit_mode[common/usb_pd_policy.c:563]:
- - svdm_exit_dp_mode
- pd_dfp_exit_mode[common/usb_pd_policy.c:580]:
- - svdm_exit_dp_mode
- pd_svdm[common/usb_pd_policy.c:767]:
- - svdm_dp_status
- pd_svdm[common/usb_pd_policy.c:778]:
- - svdm_dp_config
- pd_svdm[common/usb_pd_policy.c:784]:
- - svdm_dp_post_config
- # Motion sense
- queue_advance_head[common/queue.c:105]:
- - queue_action_null
- queue_advance_tail[common/queue.c:116]:
- - queue_action_null
- motion_sense_set_data_rate[common/motion_sense.c:270]:
- - set_data_rate[driver/accelgyro_bmi160.c]
- - opt3001_set_data_rate
- motion_sense_set_data_rate[common/motion_sense.c:289]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - opt3001_get_data_rate
- motion_sense_set_ec_rate_from_ap[common/motion_sense.c:308]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - opt3001_get_data_rate
- motion_sense_set_motion_intervals.lto_priv.303[common/motion_sense.c:414]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - opt3001_get_data_rate
- motion_sense_init[common/motion_sense.c:450]:
- - init[driver/accelgyro_bmi160.c]
- - opt3001_init
- sensor_init_done[common/motion_sense.c:471]:
- - set_range[driver/accelgyro_bmi160.c]
- - opt3001_set_range
- sensor_init_done[common/motion_sense.c:474]:
- - get_range[driver/accelgyro_bmi160.c]
- - opt3001_get_range
- motion_sense_process.isra.9[common/motion_sense.c:721]:
- - irq_handler[driver/accelgyro_bmi160.c]
- host_cmd_motion_sense[common/motion_sense.c:1251]:
- - set_range[driver/accelgyro_bmi160.c]
- - opt3001_set_range
- host_cmd_motion_sense[common/motion_sense.c:1259]:
- - get_range[driver/accelgyro_bmi160.c]
- - opt3001_get_range
- host_cmd_motion_sense[common/motion_sense.c:1274]:
- - set_offset[driver/accelgyro_bmi160.c]
- - opt3001_set_offset
- host_cmd_motion_sense[common/motion_sense.c:1297]:
- - perform_calib[driver/accelgyro_bmi160.c]
- host_cmd_motion_sense[common/motion_sense.c:1300]:
- - get_offset[driver/accelgyro_bmi160.c]
- - opt3001_get_offset
- command_accelrange[common/motion_sense.c:1515]:
- - set_range[driver/accelgyro_bmi160.c]
- - opt3001_set_range
- command_accelrange[common/motion_sense.c:1520]:
- - get_range[driver/accelgyro_bmi160.c]
- - opt3001_get_range
- host_cmd_motion_sense[common/motion_sense.c:1520]:
- - get_range[driver/accelgyro_bmi160.c]
- - opt3001_get_range
- command_accelresolution[common/motion_sense.c:1564]:
- - None
- command_accelresolution[common/motion_sense.c:1568]:
- - get_resolution[driver/accelgyro_bmi160.c]
- command_accel_data_rate[common/motion_sense.c:1623]:
- - get_data_rate[driver/accelgyro_bmi160.c]
- - opt3001_get_data_rate
- command_accel_read_xyz[common/motion_sense.c:1659]:
- - read[driver/accelgyro_bmi160.c]
- - opt3001_read_lux
- # Temp (see temp_sensors array in board file)
- temp_sensor_read[common/temp_sensor.c:26]:
- - charge_get_battery_temp
- - bd99992gw_get_val
- # Misc
- jump_to_image[common/system.c:568]:
- - None
- system_download_from_flash[chip/npcx/system-npcx5.c:257]:
- - None
- __hibernate_npcx_series[chip/npcx/system-npcx5.c:144]:
- - None
- handle_command[common/console.c:248]:
- - { name: __cmds, stride: 16, offset: 4 }
- hook_task[common/hooks.c:197]:
- - { name: __deferred_funcs, stride: 4, offset: 0 }
- - { name: __hooks_second, stride: 8, offset: 0 }
- - { name: __hooks_tick, stride: 8, offset: 0 }
- # Note: This assumes worse case, where all hook functions can be called from
- # any hook_notify call
- # Generate using `grep hooks_.*_end build/soraka/R*/ec.R*.smap |
- # sed -e 's/.*\(__hooks.*\)_end/ - { name: \1, stride: 8, offset: 0 }/' |
- # sort -u`
- hook_notify[common/hooks.c:127]:
- - { name: __hooks_ac_change, stride: 8, offset: 0 }
- - { name: __hooks_battery_soc_change, stride: 8, offset: 0 }
- - { name: __hooks_chipset_pre_init, stride: 8, offset: 0 }
- - { name: __hooks_chipset_reset, stride: 8, offset: 0 }
- - { name: __hooks_chipset_resume, stride: 8, offset: 0 }
- - { name: __hooks_chipset_shutdown, stride: 8, offset: 0 }
- - { name: __hooks_chipset_startup, stride: 8, offset: 0 }
- - { name: __hooks_chipset_suspend, stride: 8, offset: 0 }
- - { name: __hooks_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_lid_change, stride: 8, offset: 0 }
- - { name: __hooks_pre_freq_change, stride: 8, offset: 0 }
- - { name: __hooks_pwrbtn_change, stride: 8, offset: 0 }
- - { name: __hooks_sysjump, stride: 8, offset: 0 }
- - { name: __hooks_tablet_mode_change, stride: 8, offset: 0 }
- mkbp_get_next_event[common/mkbp_event.c:130]:
- - { name: __mkbp_evt_srcs, stride: 8, offset: 4 }
- host_send_response[common/host_command.c:153]:
- - lpc_send_response
- host_packet_respond[common/host_command.c:240]:
- - lpc_send_response
- host_command_process[common/host_command.c:704]:
- - { name: __hcmds, stride: 12, offset: 0 }
- # gpio_interrupt.lto_priv.407[chip/npcx/gpio.c:479]
- vfnprintf:
- # This covers all the addchar in vfnprintf, but stackanalyzer does not
- # realize that...
- - __tx_char
- i2c_command_passthru[common/i2c_master.c:597]:
- - None
-remove:
-# Remove all callsites pointing to panic_assert_fail.
-- panic_assert_fail
-# Remove hook paths that don't make sense
-- [ common_intel_x86_power_handle_state, hook_notify, powerbtn_x86_lid_change ]
-- [ base_disable, hook_notify, handle_pending_reboot.lto_priv.290 ]
-- [ system_common_shutdown, hook_notify, system_run_image_copy ]
-- [ base_detect_change, hook_notify, [ powerbtn_x86_lid_change, jump_to_image, power_up_inhibited_cb, motion_sense_shutdown, motion_sense_resume, system_common_shutdown, base_disable ] ]
-- [ jump_to_image, hook_notify, [ powerbtn_x86_lid_change, system_common_shutdown, power_up_inhibited_cb, motion_sense_shutdown, motion_sense_resume, base_disable ] ]
-- [ [ extpower_deferred, charger_task ], hook_notify, [ powerbtn_x86_lid_change, system_common_shutdown ] ]
-- [ common_intel_x86_power_handle_state, hook_notify, power_up_inhibited_cb ]
-# pd_request_power_swap calls set_state with either PD_STATE_SRC_SWAP_INIT or
-# PD_STATE_SNK_SWAP_INIT as parameters, which cannot call any of the
-# charge_manager functions.
-- [ [ pd_request_power_swap, pd_execute_hard_reset, pd_request_data_swap, pd_request_vconn_swap.lto_priv.237, pd_send_request_msg.lto_priv.250 ], set_state.lto_priv.236, [ typec_set_input_current_limit, charge_manager_update_charge, pd_power_supply_reset, pd_dfp_exit_mode, usb_mux_set ] ]
-# Debug prints that do not actually need a 64 uint division, of the time
-- [ [i2c_reset, i2c_abort_data, i2c_xfer], cprintf, vfnprintf, [uint64divmod.part.3.lto_priv.141, get_time] ]
diff --git a/board/poppy/base_detect_lux.c b/board/poppy/base_detect_lux.c
deleted file mode 100644
index c348eb681d..0000000000
--- a/board/poppy/base_detect_lux.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Lux base detection code */
-
-#include "adc.h"
-#include "board.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USB, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USB, format, ## args)
-
-/* Base detection and debouncing */
-#define BASE_DETECT_DEBOUNCE_US (20 * MSEC)
-
-/*
- * If the base status is unclear (i.e. not within expected ranges, read
- * the ADC value again every 500ms.
- */
-#define BASE_DETECT_RETRY_US (500 * MSEC)
-
-/*
- * When base is disconnected, and gets connected:
- * Lid has 1M pull-up, base has 200K pull-down, so the ADC
- * value should be around 200/(200+1000)*3300 = 550.
- *
- * Idle value should be ~3300: lid has 1M pull-up, and nothing else (i.e. ADC
- * maxing out at 2813).
- */
-#define BASE_DISCONNECTED_CONNECT_MIN_MV 450
-#define BASE_DISCONNECTED_CONNECT_MAX_MV 600
-
-#define BASE_DISCONNECTED_MIN_MV 2800
-#define BASE_DISCONNECTED_MAX_MV (ADC_MAX_VOLT+1)
-
-/*
- * When base is connected, then gets disconnected:
- * Lid has 1M pull-up, lid has 10.0K pull-down, so the ADC
- * value should be around 10.0/(10.0+1000)*3300 = 33.
- *
- * Idle level when connected should be:
- * Lid has 10K pull-down, base has 5.1K pull-up, so the ADC value should be
- * around 10.0/(10.0+5.1)*3300 = 2185 (actual value is 2153 as there is still
- * a 1M pull-up on lid, and 200K pull-down on base).
- */
-#define BASE_CONNECTED_DISCONNECT_MIN_MV 20
-#define BASE_CONNECTED_DISCONNECT_MAX_MV 40
-
-#define BASE_CONNECTED_MIN_MV 2050
-#define BASE_CONNECTED_MAX_MV 2300
-
-static uint64_t base_detect_debounce_time;
-
-static void base_detect_deferred(void);
-DECLARE_DEFERRED(base_detect_deferred);
-
-enum base_status {
- BASE_UNKNOWN = 0,
- BASE_DISCONNECTED = 1,
- BASE_CONNECTED = 2,
-};
-
-static enum base_status current_base_status;
-
-/**
- * Board-specific routine to indicate if the base is connected.
- */
-int board_is_base_connected(void)
-{
- return current_base_status == BASE_CONNECTED;
-}
-
-/**
- * Board-specific routine to enable power distribution between lid and base
- * (current can flow both ways).
- *
- * We only allow the base power to be enabled if the detection code knows that
- * the base is connected.
- */
-void board_enable_base_power(int enable)
-{
- gpio_set_level(GPIO_PPVAR_VAR_BASE,
- enable && current_base_status == BASE_CONNECTED);
-}
-
-/*
- * This function is called whenever there is a change in the base detect
- * status. Actions taken include:
- * 1. Enable/disable pull-down on half-duplex UART line
- * 2. Disable power transfer between lid and base when unplugged.
- * 3. Indicate mode change to host.
- * 4. Indicate tablet mode to host. Current assumption is that if base is
- * disconnected then the system is in tablet mode, else if the base is
- * connected, then the system is not in tablet mode.
- */
-static void base_detect_change(enum base_status status)
-{
- int connected = (status == BASE_CONNECTED);
-
- if (current_base_status == status)
- return;
-
- current_base_status = status;
-
- /* Enable pull-down if connected. */
- gpio_set_level(GPIO_EC_COMM_PD, !connected);
- /* Disable power to/from base as quickly as possible. */
- if (!connected)
- board_enable_base_power(0);
-
- /*
- * Wake the charger task (it is responsible for enabling power to the
- * base, and providing OTG power to the base if required).
- */
- task_wake(TASK_ID_CHARGER);
-
- tablet_set_mode(!connected, TABLET_TRIGGER_BASE);
-}
-
-static void print_base_detect_value(const char *str, int v)
-{
- CPRINTS("Base %s. ADC: %d", str, v);
-}
-
-static void base_detect_deferred(void)
-{
- uint64_t time_now = get_time().val;
- int v;
-
- if (base_detect_debounce_time > time_now) {
- hook_call_deferred(&base_detect_deferred_data,
- base_detect_debounce_time - time_now);
- return;
- }
-
- v = adc_read_channel(ADC_BASE_DET);
- if (v == ADC_READ_ERROR)
- goto retry;
-
- if (current_base_status == BASE_CONNECTED) {
- if (v >= BASE_CONNECTED_DISCONNECT_MIN_MV &&
- v <= BASE_CONNECTED_DISCONNECT_MAX_MV) {
- print_base_detect_value("disconnected", v);
- base_detect_change(BASE_DISCONNECTED);
- return;
- } else if (v >= BASE_CONNECTED_MIN_MV &&
- v <= BASE_CONNECTED_MAX_MV) {
- /* Still connected. */
- return;
- }
- } else { /* Disconnected or unknown. */
- if (v >= BASE_DISCONNECTED_CONNECT_MIN_MV &&
- v <= BASE_DISCONNECTED_CONNECT_MAX_MV) {
- print_base_detect_value("connected", v);
- base_detect_change(BASE_CONNECTED);
- return;
- } else if (v >= BASE_DISCONNECTED_MIN_MV &&
- v <= BASE_DISCONNECTED_MAX_MV) {
- if (current_base_status == BASE_UNKNOWN) {
- print_base_detect_value("disconnected", v);
- base_detect_change(BASE_DISCONNECTED);
- }
- /* Still disconnected. */
- return;
- }
- }
-
-retry:
- print_base_detect_value("status unclear", v);
- /* Unclear base status, schedule again in a while. */
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_RETRY_US);
-}
-
-void base_detect_interrupt(enum gpio_signal signal)
-{
- uint64_t time_now = get_time().val;
-
- if (base_detect_debounce_time <= time_now)
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_DEBOUNCE_US);
-
- base_detect_debounce_time = time_now + BASE_DETECT_DEBOUNCE_US;
-}
-
-void board_base_reset(void)
-{
- CPRINTS("Resetting base.");
- base_detect_change(BASE_UNKNOWN);
- hook_call_deferred(&base_detect_deferred_data, BASE_DETECT_RETRY_US);
-}
-
-static void base_init(void)
-{
- /*
- * Make sure base power and pull-down are off. This will reset the base
- * if it is already connected.
- */
- board_enable_base_power(0);
- gpio_set_level(GPIO_EC_COMM_PD, 1);
-
- /* Enable base detection interrupt. */
- hook_call_deferred(&base_detect_deferred_data, BASE_DETECT_DEBOUNCE_US);
- gpio_enable_interrupt(GPIO_BASE_DET_A);
-}
-DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT+1);
-
-void base_force_state(enum ec_set_base_state_cmd state)
-{
- if (state == EC_SET_BASE_STATE_ATTACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_A);
- base_detect_change(BASE_CONNECTED);
- CPRINTS("BD forced connected");
- } else if (state == EC_SET_BASE_STATE_DETACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_A);
- base_detect_change(BASE_DISCONNECTED);
- CPRINTS("BD forced disconnected");
- } else {
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_DEBOUNCE_US);
- gpio_enable_interrupt(GPIO_BASE_DET_A);
- CPRINTS("BD forced reset");
- }
-}
diff --git a/board/poppy/base_detect_poppy.c b/board/poppy/base_detect_poppy.c
deleted file mode 100644
index 0fde6fb8e6..0000000000
--- a/board/poppy/base_detect_poppy.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Poppy/Soraka base detection code */
-
-#include "acpi.h"
-#include "adc.h"
-#include "board.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USB, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USB, format, ## args)
-
-/* Base detection and debouncing */
-#define BASE_DETECT_DEBOUNCE_US (20 * MSEC)
-
-/*
- * If the base status is unclear (i.e. not within expected ranges, read
- * the ADC value again every 500ms.
- */
-#define BASE_DETECT_RETRY_US (500 * MSEC)
-
-/*
- * rev0: Lid has 100K pull-up, base has 5.1K pull-down, so the ADC
- * value should be around 5.1/(100+5.1)*3300 = 160.
- * >=rev1: Lid has 604K pull-up, base has 30.1K pull-down, so the
- * ADC value should be around 30.1/(604+30.1)*3300 = 156
- *
- * We add a significant marging on the maximum value, due to noise on the line,
- * especially when PWM is active. See b/64193554 for details.
- */
-#define BASE_DETECT_MIN_MV 120
-#define BASE_DETECT_MAX_MV 300
-
-/*
- * When the base is connected in reverse, it presents a 100K pull-down,
- * so the ADC value should be around 100/(604+100)*3300 = 469
- *
- * TODO(b:64370797): Do something with these values.
- */
-#define BASE_DETECT_REVERSE_MIN_MV 450
-#define BASE_DETECT_REVERSE_MAX_MV 500
-
-/* Minimum ADC value to indicate base is disconnected for sure */
-#define BASE_DETECT_DISCONNECT_MIN_MV 1500
-
-/*
- * Base EC pulses detection pin for 500 us to signal out of band USB wake (that
- * can be used to wake system from deep S3).
- */
-#define BASE_DETECT_PULSE_MIN_US 400
-#define BASE_DETECT_PULSE_MAX_US 650
-
-static uint64_t base_detect_debounce_time;
-
-static void base_detect_deferred(void);
-DECLARE_DEFERRED(base_detect_deferred);
-
-enum base_status {
- BASE_UNKNOWN = 0,
- BASE_DISCONNECTED = 1,
- BASE_CONNECTED = 2,
- BASE_CONNECTED_REVERSE = 3,
-};
-
-static enum base_status current_base_status;
-
-/*
- * This function is called whenever there is a change in the base detect
- * status. Actions taken include:
- * 1. Change in power to base
- * 2. Indicate mode change to host.
- * 3. Indicate tablet mode to host. Current assumption is that if base is
- * disconnected then the system is in tablet mode, else if the base is
- * connected, then the system is not in tablet mode.
- */
-static void base_detect_change(enum base_status status)
-{
- int connected = (status == BASE_CONNECTED);
-
- if (current_base_status == status)
- return;
-
- CPRINTS("Base %sconnected", connected ? "" : "not ");
- gpio_set_level(GPIO_PP3300_DX_BASE, connected);
- tablet_set_mode(!connected, TABLET_TRIGGER_BASE);
- current_base_status = status;
-
- if (connected)
- acpi_dptf_set_profile_num(DPTF_PROFILE_BASE_ATTACHED);
- else
- acpi_dptf_set_profile_num(DPTF_PROFILE_BASE_DETACHED);
-
-}
-
-/* Measure detection pin pulse duration (used to wake AP from deep S3). */
-static uint64_t pulse_start;
-static uint32_t pulse_width;
-
-static void print_base_detect_value(int v, int tmp_pulse_width)
-{
- CPRINTS("%s = %d (pulse %d)", adc_channels[ADC_BASE_DET].name,
- v, tmp_pulse_width);
-}
-
-static void base_detect_deferred(void)
-{
- uint64_t time_now = get_time().val;
- int v;
- uint32_t tmp_pulse_width = pulse_width;
- static int reverse_debounce = 1;
-
- if (base_detect_debounce_time > time_now) {
- hook_call_deferred(&base_detect_deferred_data,
- base_detect_debounce_time - time_now);
- return;
- }
-
- v = adc_read_channel(ADC_BASE_DET);
- if (v == ADC_READ_ERROR)
- return;
-
- print_base_detect_value(v, tmp_pulse_width);
-
- if (v >= BASE_DETECT_REVERSE_MIN_MV &&
- v <= BASE_DETECT_REVERSE_MAX_MV) {
- /*
- * If we are unlucky when we sample the ADC, we may think that
- * the base is connected in reverse, while this may just be a
- * transient. Force debouncing a little longer in that case.
- */
- if (current_base_status == BASE_CONNECTED_REVERSE)
- return;
-
- if (reverse_debounce == 0) {
- base_detect_change(BASE_CONNECTED_REVERSE);
- return;
- }
-
- reverse_debounce = 0;
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_DEBOUNCE_US);
- return;
- }
- /* Reset reverse debounce */
- reverse_debounce = 1;
-
- if (v >= BASE_DETECT_MIN_MV && v <= BASE_DETECT_MAX_MV) {
- if (current_base_status != BASE_CONNECTED) {
- base_detect_change(BASE_CONNECTED);
- } else if (tmp_pulse_width >= BASE_DETECT_PULSE_MIN_US &&
- tmp_pulse_width <= BASE_DETECT_PULSE_MAX_US) {
- CPRINTS("Sending event to AP");
- host_set_single_event(EC_HOST_EVENT_KEY_PRESSED);
- }
- return;
- }
-
- if (v >= BASE_DETECT_DISCONNECT_MIN_MV) {
- base_detect_change(BASE_DISCONNECTED);
- return;
- }
-
- /* Unclear base status, schedule again in a while. */
- hook_call_deferred(&base_detect_deferred_data, BASE_DETECT_RETRY_US);
-}
-
-static inline int detect_pin_connected(enum gpio_signal det_pin)
-{
- return gpio_get_level(det_pin) == 0;
-}
-
-void base_detect_interrupt(enum gpio_signal signal)
-{
- uint64_t time_now = get_time().val;
-
- if (base_detect_debounce_time <= time_now) {
- /*
- * Detect and measure detection pin pulse, when base is
- * connected. Only a single pulse is measured over a debounce
- * period. If no pulse, or multiple pulses are detected,
- * pulse_width is set to 0.
- */
- if (current_base_status == BASE_CONNECTED &&
- !detect_pin_connected(signal)) {
- pulse_start = time_now;
- } else {
- pulse_start = 0;
- }
- pulse_width = 0;
-
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_DEBOUNCE_US);
- } else {
- if (current_base_status == BASE_CONNECTED &&
- detect_pin_connected(signal) && !pulse_width &&
- pulse_start) {
- /* First pulse within period. */
- pulse_width = time_now - pulse_start;
- } else {
- pulse_start = 0;
- pulse_width = 0;
- }
- }
-
- base_detect_debounce_time = time_now + BASE_DETECT_DEBOUNCE_US;
-}
-
-static void base_enable(void)
-{
- /* Enable base detection interrupt. */
- base_detect_debounce_time = get_time().val;
- hook_call_deferred(&base_detect_deferred_data, 0);
- gpio_enable_interrupt(GPIO_BASE_DET_A);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, base_enable, HOOK_PRIO_DEFAULT);
-
-static void base_disable(void)
-{
- /* Disable base detection interrupt and disable power to base. */
- gpio_disable_interrupt(GPIO_BASE_DET_A);
- base_detect_change(BASE_DISCONNECTED);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, base_disable, HOOK_PRIO_DEFAULT);
-
-static void base_init(void)
-{
- /*
- * If we jumped to this image and chipset is already in S0, enable
- * base.
- */
- if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON))
- base_enable();
-}
-DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT+1);
-
-void base_force_state(enum ec_set_base_state_cmd state)
-{
- if (state == EC_SET_BASE_STATE_ATTACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_A);
- base_detect_change(BASE_CONNECTED);
- CPRINTS("BD forced connected");
- } else if (state == EC_SET_BASE_STATE_DETACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_A);
- base_detect_change(BASE_DISCONNECTED);
- CPRINTS("BD forced disconnected");
- } else {
- base_enable();
- CPRINTS("BD forced reset");
- }
-}
diff --git a/board/poppy/battery.c b/board/poppy/battery.c
deleted file mode 100644
index 3f6c4e273d..0000000000
--- a/board/poppy/battery.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* Copyright 2016 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.
- *
- * Placeholder values for temporary battery pack.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-
-/* Shutdown mode parameter to write to manufacturer access register */
-#define SB_SHIP_MODE_REG SB_MANUFACTURER_ACCESS
-#define SB_SHUTDOWN_DATA 0x0010
-#define SB_REVIVE_DATA 0x23a7
-
-#if defined(BOARD_SORAKA) || defined(BOARD_LUX)
-static const struct battery_info info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6100,
- /* Pre-charge values. */
- .precharge_current = 256, /* mA */
-
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
-};
-#elif defined(BOARD_POPPY)
-
-static const struct battery_info info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9100,
- /* Pre-charge values. */
- .precharge_current = 256, /* mA */
-
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-#else
-#error "Battery information not available for board"
-#endif
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_BATTERY_PRESENT_L) ? BP_NO : BP_YES;
-}
-
-static int battery_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- !!(batt_status & STATUS_INITIALIZED);
-}
-
-/*
- * Check for case where both XCHG and XDSG bits are set indicating that even
- * though the FG can be read from the battery, the battery is not able to be
- * charged or discharged. This situation will happen if a battery disconnect was
- * intiaited via H1 setting the DISCONN signal to the battery. This will put the
- * battery pack into a sleep state and when power is reconnected, the FG can be
- * read, but the battery is still not able to provide power to the system. The
- * calling function returns batt_pres = BP_NO, which instructs the charging
- * state machine to prevent powering up the AP on battery alone which could lead
- * to a brownout event when the battery isn't able yet to provide power to the
- * system. .
- */
-static int battery_check_disconnect(void)
-{
- int rv;
- uint8_t data[6];
-
- /* Check if battery charging + discharging is disabled. */
- rv = sb_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
-
- if ((data[3] & (BATTERY_DISCHARGING_DISABLED |
- BATTERY_CHARGING_DISABLED)) ==
- (BATTERY_DISCHARGING_DISABLED | BATTERY_CHARGING_DISABLED))
- return BATTERY_DISCONNECTED;
-
- return BATTERY_NOT_DISCONNECTED;
-}
-
-#ifdef BOARD_SORAKA
-/*
- * In case of soraka, battery enters an "emergency shutdown" mode when hardware
- * button combo is used to cutoff battery. In order to get out of this mode, EC
- * needs to send SB_REVIVE_DATA.
- *
- * Do not send revive data if:
- * 1. It has already been sent during this boot or
- * 2. Battery was/is in a state other than "BATTERY_DISCONNECTED".
- *
- * Try upto ten times to send the revive data command and if it fails every
- * single time, give up and continue booting on AC power.
- */
-static void battery_revive(void)
-{
-#define MAX_REVIVE_TRIES 10
- static int battery_revive_done;
- int tries = MAX_REVIVE_TRIES;
-
- if (battery_revive_done)
- return;
-
- battery_revive_done = 1;
-
- while (tries--) {
- if (battery_check_disconnect() != BATTERY_DISCONNECTED)
- return;
-
- CPRINTS("Battery is disconnected! Try#%d to revive",
- MAX_REVIVE_TRIES - tries);
-
- if (sb_write(SB_MANUFACTURER_ACCESS, SB_REVIVE_DATA) ==
- EC_SUCCESS)
- return;
- }
-
- if (battery_check_disconnect() == BATTERY_DISCONNECTED)
- CPRINTS("Battery is still disconnected! Giving up!");
-}
-#endif
-
-static enum battery_present battery_check_present_status(void)
-{
- enum battery_present batt_pres;
- int batt_disconnect_status;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * If the battery is not physically connected, then no need to perform
- * any more checks.
- */
- if (batt_pres != BP_YES)
- return batt_pres;
-
- /*
- * If the battery is present now and was present last time we checked,
- * return early.
- */
- if (batt_pres == batt_pres_prev)
- return batt_pres;
-
- /*
- * Check battery disconnect status. If we are unable to read battery
- * disconnect status, then return BP_NOT_SURE. Battery could be in ship
- * mode and might require pre-charge current to wake it up. BP_NO is not
- * returned here because charger state machine will not provide
- * pre-charge current assuming that battery is not present.
- */
- batt_disconnect_status = battery_check_disconnect();
- if (batt_disconnect_status == BATTERY_DISCONNECT_ERROR)
- return BP_NOT_SURE;
-
-#ifdef BOARD_SORAKA
- /*
- * Since battery just changed status to present and we are able to read
- * disconnect status, try reviving it if necessary.
- */
- battery_revive();
-#endif
-
- /*
- * Ensure that battery is:
- * 1. Not in cutoff
- * 2. Not disconnected
- * 3. Initialized
- */
- if (battery_is_cut_off() != BATTERY_CUTOFF_STATE_NORMAL ||
- batt_disconnect_status != BATTERY_NOT_DISCONNECTED ||
- battery_init() == 0) {
- batt_pres = BP_NO;
- }
-
- return batt_pres;
-}
-
-enum battery_present battery_is_present(void)
-{
- batt_pres_prev = battery_check_present_status();
- return batt_pres_prev;
-}
-
diff --git a/board/poppy/board.c b/board/poppy/board.c
deleted file mode 100644
index 2124faa421..0000000000
--- a/board/poppy/board.c
+++ /dev/null
@@ -1,894 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Poppy board-specific configuration */
-
-#include "adc.h"
-#include "als.h"
-#include "bd99992gw.h"
-#include "board_config.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_opt3001.h"
-#include "driver/baro_bmp280.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "driver/temp_sensor/bd99992gw.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_lid.h"
-#include "motion_sense.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-#include "espi.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define USB_PD_PORT_ANX74XX 0
-
-/* Minimum input current limit. */
-#define ILIM_MIN_MA 472
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- if ((signal == GPIO_USB_C0_PD_INT_ODL) &&
- !gpio_get_level(GPIO_USB_C0_PD_RST_L))
- return;
- else if ((signal == GPIO_USB_C1_PD_INT_ODL) &&
- !gpio_get_level(GPIO_USB_C1_PD_RST_L))
- return;
-
-#ifdef HAS_TASK_PDCMD
- /* Exchange status with TCPCs */
- host_command_pd_send_status(PD_CHARGE_NO_CHANGE);
-#endif
-}
-
-/* Set PD discharge whenever VBUS detection is high (i.e. below threshold). */
-static void vbus_discharge_handler(void)
-{
- if (system_get_board_version() >= 2) {
- pd_set_vbus_discharge(0,
- gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L));
- pd_set_vbus_discharge(1,
- gpio_get_level(GPIO_USB_C1_VBUS_WAKE_L));
- }
-}
-DECLARE_DEFERRED(vbus_discharge_handler);
-
-void vbus0_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(0, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C0);
-
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void vbus1_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(1, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C1);
-
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
-static void anx74xx_cable_det_handler(void)
-{
- int cable_det = gpio_get_level(GPIO_USB_C0_CABLE_DET);
- int reset_n = gpio_get_level(GPIO_USB_C0_PD_RST_L);
-
- /*
- * A cable_det low->high transition was detected. If following the
- * debounce time, cable_det is high, and reset_n is low, then ANX3429 is
- * currently in standby mode and needs to be woken up. Set the
- * TCPC_RESET event which will bring the ANX3429 out of standby
- * mode. Setting this event is gated on reset_n being low because the
- * ANX3429 will always set cable_det when transitioning to normal mode
- * and if in normal mode, then there is no need to trigger a tcpc reset.
- */
- if (cable_det && !reset_n)
- task_set_event(TASK_ID_PD_C0, PD_EVENT_TCPC_RESET);
-}
-DECLARE_DEFERRED(anx74xx_cable_det_handler);
-
-void anx74xx_cable_det_interrupt(enum gpio_signal signal)
-{
- /* debounce for 2 msec */
- hook_call_deferred(&anx74xx_cable_det_handler_data, (2 * MSEC));
-}
-#endif
-
-#include "gpio_list.h"
-
-/* Hibernate wake configuration */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Base detection */
- [ADC_BASE_DET] = {"BASE_DET", NPCX_ADC_CH0,
- ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- /* Vbus sensing (10x voltage divider). */
- [ADC_VBUS] = {"VBUS", NPCX_ADC_CH2, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {"AMON_BMON", NPCX_ADC_CH1, ADC_MAX_VOLT*1000/18,
- ADC_READ_MAX+1, 0},
-#ifdef BOARD_LUX
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 12.4K resistor, to read
- * 0.8V @ 45 W, i.e. 56250 uW/mV. Using ADC_MAX_VOLT*56250 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {"PSYS", NPCX_ADC_CH3,
- ADC_MAX_VOLT*56250*2/(ADC_READ_MAX+1), 2, 0},
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc", NPCX_I2C_PORT0_0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
- {"als", NPCX_I2C_PORT0_1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
- {"charger", NPCX_I2C_PORT1, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"pmic", NPCX_I2C_PORT2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"accelgyro", NPCX_I2C_PORT3, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = ANX74XX_I2C_ADDR1_FLAGS,
- },
- .drv = &anx74xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &anx74xx_tcpm_usb_mux_driver,
- .hpd_update = &anx74xx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-struct pi3usb9281_config pi3usb9281_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_CHARGER_0,
- .mux_lock = NULL,
- },
- {
- .i2c_port = I2C_PORT_USB_CHARGER_1,
- .mux_lock = NULL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
- CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT);
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-
-/**
- * Power on (or off) a single TCPC.
- * minimum on/off delays are included.
- *
- * @param port Port number of TCPC.
- * @param mode 0: power off, 1: power on.
- */
-void board_set_tcpc_power_mode(int port, int mode)
-{
- if (port != USB_PD_PORT_ANX74XX)
- return;
-
- if (mode) {
- gpio_set_level(GPIO_USB_C0_TCPC_PWR, 1);
- msleep(ANX74XX_PWR_H_RST_H_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- } else {
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- msleep(ANX74XX_RST_L_PWR_L_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_TCPC_PWR, 0);
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- }
-}
-
-void board_reset_pd_mcu(void)
-{
- /* Assert reset */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
-
- msleep(MAX(1, ANX74XX_RST_L_PWR_L_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
- /* Disable TCPC0 (anx3429) power */
- gpio_set_level(GPIO_USB_C0_TCPC_PWR, 0);
-
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- board_set_tcpc_power_mode(USB_PD_PORT_ANX74XX, 1);
-}
-
-void board_tcpc_init(void)
-{
- int reg;
-
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- gpio_set_level(GPIO_PP3300_USB_PD, 1);
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- msleep(10);
- board_reset_pd_mcu();
- }
-
- /*
- * TODO: Remove when Poppy is updated with PS8751 A3.
- *
- * Force PS8751 A2 to wake from low power mode.
- * If PS8751 remains in low power mode after sysjump,
- * TCPM_INIT will fail due to not able to access PS8751.
- *
- * NOTE: PS8751 A3 will wake on any I2C access.
- */
- i2c_read8(NPCX_I2C_PORT0_1, 0x08, 0xA0, &reg);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
- /* Enable CABLE_DET interrupt for ANX3429 wake from standby */
- gpio_enable_interrupt(GPIO_USB_C0_CABLE_DET);
-#endif
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0},
-
- /* These BD99992GW temp sensors are only readable in S0 */
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM0},
- {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM1},
- {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM2},
- {"eMMC", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Check if PMIC fault registers indicate VR fault. If yes, print out fault
- * register info to console. Additionally, set panic reason so that the OS can
- * check for fault register info by looking at offset 0x14(PWRSTAT1) and
- * 0x15(PWRSTAT2) in cros ec panicinfo.
- */
-static void board_report_pmic_fault(const char *str)
-{
- int vrfault, pwrstat1 = 0, pwrstat2 = 0;
- uint32_t info;
-
- /* RESETIRQ1 -- Bit 4: VRFAULT */
- if (i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, &vrfault)
- != EC_SUCCESS)
- return;
-
- if (!(vrfault & BIT(4)))
- return;
-
- /* VRFAULT has occurred, print VRFAULT status bits. */
-
- /* PWRSTAT1 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, &pwrstat1);
-
- /* PWRSTAT2 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, &pwrstat2);
-
- CPRINTS("PMIC VRFAULT: %s", str);
- CPRINTS("PMIC VRFAULT: PWRSTAT1=0x%02x PWRSTAT2=0x%02x", pwrstat1,
- pwrstat2);
-
- /* Clear all faults -- Write 1 to clear. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, BIT(4));
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, pwrstat1);
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, pwrstat2);
-
- /*
- * Status of the fault registers can be checked in the OS by looking at
- * offset 0x14(PWRSTAT1) and 0x15(PWRSTAT2) in cros ec panicinfo.
- */
- info = ((pwrstat2 & 0xFF) << 8) | (pwrstat1 & 0xFF);
- panic_set_reason(PANIC_SW_PMIC_FAULT, info, 0);
-}
-
-static void board_pmic_disable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (0) - Disable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (00) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x3a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x2a);
-
- /*
- * V100ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (01) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x37, 0x1a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x3a);
-}
-
-static void board_pmic_enable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (1) - Enable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (00) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x7a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x6a);
-
- /*
- * V100ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (01) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x37, 0x5a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x7a);
-}
-
-__override void power_board_handle_host_sleep_event(
- enum host_sleep_event state)
-{
- if (state == HOST_SLEEP_EVENT_S0IX_SUSPEND)
- board_pmic_enable_slp_s0_vr_decay();
- else if (state == HOST_SLEEP_EVENT_S0IX_RESUME)
- board_pmic_disable_slp_s0_vr_decay();
-}
-
-static void board_pmic_init(void)
-{
- board_report_pmic_fault("SYSJUMP");
-
- if (system_jumped_late())
- return;
-
- /* DISCHGCNT3 - enable 100 ohm discharge on V1.00A */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3e, 0x04);
-
- board_pmic_disable_slp_s0_vr_decay();
-
- /* VRMODECTRL - disable low-power mode for all rails */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3b, 0x1f);
-
- /* Disable power button shutdown timer. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x14, 0x00);
-}
-DECLARE_DEFERRED(board_pmic_init);
-
-/* Initialize board. */
-static void board_init(void)
-{
- /*
- * This enables pull-down on F_DIO1 (SPI MISO), and F_DIO0 (SPI MOSI),
- * whenever the EC is not doing SPI flash transactions. This avoids
- * floating SPI buffer input (MISO), which causes power leakage (see
- * b/64797021).
- */
- NPCX_PUPD_EN1 |= BIT(NPCX_DEVPU1_F_SPI_PUD_EN);
-
- /* Provide AC status to the PCH */
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-
- /* Enable sensors power supply */
- gpio_set_level(GPIO_PP1800_DX_SENSOR, 1);
- gpio_set_level(GPIO_PP3300_DX_SENSOR, 1);
-
- /* Enable VBUS interrupt */
- if (system_get_board_version() == 0) {
- /*
- * crosbug.com/p/61929: rev0 does not have VBUS detection,
- * force detection on both ports.
- */
- gpio_set_flags(GPIO_USB_C0_VBUS_WAKE_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_USB_C1_VBUS_WAKE_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- vbus0_evt(GPIO_USB_C0_VBUS_WAKE_L);
- vbus1_evt(GPIO_USB_C1_VBUS_WAKE_L);
- } else {
- gpio_enable_interrupt(GPIO_USB_C0_VBUS_WAKE_L);
- gpio_enable_interrupt(GPIO_USB_C1_VBUS_WAKE_L);
- }
-
- /* Enable pericom BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /*
- * Set unused GPIO_LED_YELLO_C0[_OLD] as INPUT | PULL_UP
- * for better S0ix/S3 power
- */
- if (system_get_board_version() >= 5)
- gpio_set_flags(GPIO_LED_YELLOW_C0_OLD,
- GPIO_INPUT | GPIO_PULL_UP);
- else
- gpio_set_flags(GPIO_LED_YELLOW_C0,
- GPIO_INPUT | GPIO_PULL_UP);
-
-#ifdef BOARD_SORAKA
- /*
- * TODO(b/64503543): Add proper options(#ifdef ) for Non-LTE SKU
- * Set unused LTE related pins as INPUT | PULL_UP
- * for better S0ix/S3 power
- */
- if (system_get_board_version() >= 4) {
- gpio_set_flags(GPIO_WLAN_PE_RST,
- GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags(GPIO_PP3300_DX_LTE,
- GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags(GPIO_LTE_GPS_OFF_L,
- GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags(GPIO_LTE_BODY_SAR_L,
- GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags(GPIO_LTE_WAKE_L,
- GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags(GPIO_LTE_OFF_ODL,
- GPIO_INPUT | GPIO_PULL_UP);
- }
-#endif
-
-#ifndef BOARD_LUX
- /*
- * see (b/111215677): setting the internal PU/PD of the unused pin
- * GPIO10 affects the ball K10 when it is selected to CR_SIN.
- * Disabing the WKINEN bit of GPIO10 insteading setting its PU/PD to
- * bypass this issue.
- */
- NPCX_WKINEN(MIWU_TABLE_1, MIWU_GROUP_2) &= 0xFE;
-#endif
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_ACCELGYRO3_INT_L);
-
- /* Initialize PMIC */
- hook_call_deferred(&board_pmic_init_data, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/**
- * Buffer the AC present GPIO to the PCH.
- */
-static void board_extpower(void)
-{
- gpio_set_level(GPIO_PCH_ACOK, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are source VBUS on the port */
- int source = gpio_get_level(charge_port == 0 ? GPIO_USB_C0_5V_EN :
- GPIO_USB_C1_5V_EN);
-
- if (is_real_port && source) {
- CPRINTF("Skip enable p%d", charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTF("New chg p%d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable both ports */
- gpio_set_level(GPIO_USB_C0_CHARGE_L, 1);
- gpio_set_level(GPIO_USB_C1_CHARGE_L, 1);
- } else {
-#ifdef BOARD_LUX
- /* Disable cross-power with base, charger task will reenable. */
- board_enable_base_power(0);
-#endif
- /* Make sure non-charging port is disabled */
- gpio_set_level(charge_port ? GPIO_USB_C0_CHARGE_L :
- GPIO_USB_C1_CHARGE_L, 1);
- /* Enable charging port */
- gpio_set_level(charge_port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Adjust ILIM according to measurements to eliminate overshoot. */
- charge_ma = (charge_ma - 500) * 31 / 32 + 472;
- /* 5V is significantly more accurate than other voltages. */
- if (charge_mv > 5000)
- charge_ma -= 52;
-
- charge_set_input_current_limit(MAX(charge_ma, ILIM_MIN_MA), charge_mv);
-}
-
-void board_hibernate(void)
-{
- CPRINTS("Triggering PMIC shutdown.");
- uart_flush_output();
-
- /* Trigger PMIC shutdown. */
- if (i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS,
- 0x49, 0x01)) {
- /*
- * If we can't tell the PMIC to shutdown, instead reset
- * and don't start the AP. Hopefully we'll be able to
- * communicate with the PMIC next time.
- */
- CPRINTS("PMIC i2c failed.");
- system_reset(SYSTEM_RESET_LEAVE_AP_OFF);
- }
-
- /* Await shutdown. */
- while (1)
- ;
-}
-
-int board_get_version(void)
-{
- static int ver = -1;
- uint8_t id4;
-
- if (ver != -1)
- return ver;
-
- ver = 0;
-
- /* First 3 strappings are binary. */
- if (gpio_get_level(GPIO_BOARD_VERSION1))
- ver |= 0x01;
- if (gpio_get_level(GPIO_BOARD_VERSION2))
- ver |= 0x02;
- if (gpio_get_level(GPIO_BOARD_VERSION3))
- ver |= 0x04;
-
- /*
- * 4th bit is using tristate strapping, ternary encoding:
- * Hi-Z (id4=2) => 0, (id4=0) => 1, (id4=1) => 2
- */
- id4 = gpio_get_ternary(GPIO_BOARD_VERSION4);
- ver |= ((id4 + 1) % 3) * 0x08;
-
- CPRINTS("Board ID = %d", ver);
-
- return ver;
-}
-
-/* Lid Sensor mutex */
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct opt3001_drv_data_t g_opt3001_data = {
- .scale = 1,
- .uscale = 0,
- .offset = 0,
-};
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t mag_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-#ifdef BOARD_SORAKA
-const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- {FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* For rev3 and older */
-const mat33_fp_t lid_standard_ref_old = {
- {FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-#else
-const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-#endif
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [LID_GYRO] = {
- .name = "Lid Gyro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
- [LID_MAG] = {
- .name = "Lid Mag",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_MAG,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = BIT(11), /* 16LSB / uT, fixed */
- .rot_standard_ref = &mag_standard_ref,
- .min_frequency = BMM150_MAG_MIN_FREQ,
- .max_frequency = BMM150_MAG_MAX_FREQ(SPECIAL),
- },
- [LID_ALS] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_OPT3001,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &opt3001_drv,
- .drv_data = &g_opt3001_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = OPT3001_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1; uscale = 0 */
- .min_frequency = OPT3001_LIGHT_MIN_FREQ,
- .max_frequency = OPT3001_LIGHT_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[LID_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-#ifdef BOARD_SORAKA
-static void board_sensor_init(void)
-{
- /* Old soraka use a different reference matrix */
- if (system_get_board_version() <= 3) {
- motion_sensors[LID_ACCEL].rot_standard_ref =
- &lid_standard_ref_old;
- motion_sensors[LID_GYRO].rot_standard_ref =
- &lid_standard_ref_old;
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_sensor_init, HOOK_PRIO_DEFAULT);
-#endif
-
-static void board_chipset_reset(void)
-{
- board_report_pmic_fault("CHIPSET RESET");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESET, board_chipset_reset, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-int board_has_working_reset_flags(void)
-{
- int version = system_get_board_version();
-
- /* Boards Rev1 and Rev2 will lose reset flags on power cycle. */
- if ((version == 1) || (version == 2))
- return 0;
-
- /* All other board versions should have working reset flags */
- return 1;
-}
diff --git a/board/poppy/board.h b/board/poppy/board.h
deleted file mode 100644
index bf4acfe8ff..0000000000
--- a/board/poppy/board.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Eve board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands.
- * TODO: Remove this config before production.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_BOARD_FORCE_RESET_PIN
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-#define CONFIG_DETACHABLE_BASE
-#define CONFIG_DPTF
-#ifndef BOARD_LUX
-#define CONFIG_DPTF_MULTI_PROFILE
-#endif
-#define CONFIG_EMULATED_SYSRQ
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25X40
-#define CONFIG_VBOOT_HASH
-#define CONFIG_SHA256_UNROLLED
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
-#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_DX_WLAN
-#define WIRELESS_GPIO_WWAN GPIO_PP3300_DX_LTE
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BUTTON
-
-/* Port80 */
-#undef CONFIG_PORT80_HISTORY_LEN
-#define CONFIG_PORT80_HISTORY_LEN 256
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-
-/* Battery */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-
-#ifdef BOARD_LUX
-#define CONFIG_UART_PAD_SWITCH
-
-#define CONFIG_EC_EC_COMM_CLIENT
-#define CONFIG_EC_EC_COMM_BATTERY
-#define CONFIG_CRC8
-#endif
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_HW /* This, or just RAMP? */
-
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_ISL9238
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_PSYS
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#ifdef BOARD_LUX
-#define CONFIG_CHARGER_OTG
-#define CONFIG_CHARGER_PSYS_READ
-#endif
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* Sensor */
-#define CONFIG_ALS
-#define CONFIG_ALS_OPT3001
-#define ALS_COUNT 1
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_BD99992GW
-#define CONFIG_THERMISTOR_NCP15WB
-
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_MAG_BMI_BMM150
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define CONFIG_ACCELGYRO_SEC_ADDR_FLAGS BMM150_ADDR0_FLAGS
-#define CONFIG_MAG_CALIBRATE
-/* Lower maximal ODR to 100Hz */
-#define CONFIG_EC_MAX_SENSOR_FREQ_MILLIHZ 100000
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 2048
-
-/* USB */
-#define CONFIG_USB_CHARGER
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_ANX3429
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* BC 1.2 charger */
-#define CONFIG_BC12_DETECT_PI3USB9281
-#define CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT 2
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT0_0
-#define I2C_PORT_TCPC1 NPCX_I2C_PORT0_0
-#define I2C_PORT_ALS NPCX_I2C_PORT0_1
-#define I2C_PORT_USB_CHARGER_1 NPCX_I2C_PORT0_1
-#define I2C_PORT_USB_CHARGER_0 NPCX_I2C_PORT1
-#define I2C_PORT_CHARGER NPCX_I2C_PORT1
-#define I2C_PORT_BATTERY NPCX_I2C_PORT1
-#define I2C_PORT_PMIC NPCX_I2C_PORT2
-#define I2C_PORT_MP2949 NPCX_I2C_PORT2
-#define I2C_PORT_GYRO NPCX_I2C_PORT3
-#define I2C_PORT_BARO NPCX_I2C_PORT3
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-#define I2C_PORT_THERMAL I2C_PORT_PMIC
-
-/* I2C addresses */
-#define I2C_ADDR_BD99992_FLAGS 0x30
-#define I2C_ADDR_MP2949_FLAGS 0x20
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY, /* BD99956GW TSENSE */
- TEMP_SENSOR_AMBIENT, /* BD99992GW SYSTHERM0 */
- TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_EMMC, /* BD99992GW SYSTHERM3 */
- TEMP_SENSOR_COUNT
-};
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- LID_MAG,
- LID_ALS,
- SENSOR_COUNT,
-};
-
-enum adc_channel {
- ADC_BASE_DET,
- ADC_VBUS,
- ADC_AMON_BMON,
-#ifdef BOARD_LUX
- ADC_PSYS,
-#endif
- ADC_CH_COUNT
-};
-
-/* TODO(crosbug.com/p/61098): Verify the numbers below. */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Board specific handlers */
-int board_get_version(void);
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-void base_detect_interrupt(enum gpio_signal signal);
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ALS)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/poppy/build.mk b/board/poppy/build.mk
deleted file mode 100644
index df32a7ca8f..0000000000
--- a/board/poppy/build.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_LED_COMMON)+=led.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
-board-$(BOARD_LUX)+=base_detect_lux.o
-board-$(BOARD_POPPY)+=base_detect_poppy.o
-board-$(BOARD_SORAKA)+=base_detect_poppy.o
diff --git a/board/poppy/ec.tasklist b/board/poppy/ec.tasklist
deleted file mode 100644
index 7591137bc9..0000000000
--- a/board/poppy/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 800) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, 800) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, 800) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, 800) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, 768) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, 800) \
- TASK_NOTEST(PDCMD, pd_command_task, NULL, 880) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 840) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, 960) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, 800) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1000) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, 1000)
diff --git a/board/poppy/gpio.inc b/board/poppy/gpio.inc
deleted file mode 100644
index 286085d39c..0000000000
--- a/board/poppy/gpio.inc
+++ /dev/null
@@ -1,174 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(C, 5), GPIO_INT_FALLING, tcpc_alert_event)
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#ifdef BOARD_LUX
-GPIO_INT(PCH_SLP_S3_L, PIN(2, 2), GPIO_INT_BOTH, power_signal_interrupt)
-#else
-GPIO_INT(PCH_SLP_S3_L, PIN(7, 3), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#endif /* CONFIG_HOSTCMD_ESPI_VW_SLP_S3 */
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PCH_SLP_SUS_L, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PMIC_DPWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(6, 7), GPIO_INT_BOTH, lid_interrupt)
-/* TODO(b/35585396): Make use of reverse dock signal. */
-GPIO_INT(REVERSE_DOCK, PIN(B, 7), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(8, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(WP_L, PIN(4, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(USB_C0_VBUS_WAKE_L, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, vbus0_evt)
-GPIO_INT(USB_C1_VBUS_WAKE_L, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, vbus1_evt)
-GPIO_INT(USB_C0_BC12_INT_L, PIN(D, 3), GPIO_INT_FALLING, usb0_evt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(3, 3), GPIO_INT_FALLING, usb1_evt)
-#ifdef BOARD_LUX
-GPIO_INT(ACCELGYRO3_INT_L, PIN(7, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-#else
-GPIO_INT(ACCELGYRO3_INT_L, PIN(3, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-#endif
-GPIO_INT(BASE_DET_A, PIN(4, 5), GPIO_INT_BOTH, base_detect_interrupt)
-GPIO_INT(USB_C0_CABLE_DET, PIN(D, 2), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-#ifdef BOARD_LUX
-GPIO_INT(UART_MAIN_RX, PIN(6, 4), GPIO_INT_FALLING, uart_default_pad_rx_interrupt)
-#endif
-
-GPIO(PCH_RTCRST, PIN(2, 7), GPIO_OUT_LOW) /* RTCRST# to SOC (>= rev4) */
-GPIO(ENABLE_BACKLIGHT, PIN(2, 6), GPIO_OUT_LOW) /* Enable Backlight */
-GPIO(WLAN_OFF_L, PIN(7, 2), GPIO_OUT_LOW) /* Disable WLAN */
-GPIO(PP3300_DX_WLAN, PIN(A, 7), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(CPU_PROCHOT, PIN(8, 1), GPIO_OUT_HIGH) /* PROCHOT# to SOC */
-GPIO(PCH_ACOK, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(4, 1), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(EC_PLATFORM_RST, PIN(A, 6), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(PMIC_SLP_SUS_L, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(BATTERY_PRESENT_L, PIN(3, 4), GPIO_INPUT) /* Battery Present */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_HAVEN_RESET_ODL, PIN(0, 2), GPIO_INPUT | GPIO_PULL_UP) /* H1 Reset (unused) */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(PMIC_INT_L, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP) /* PMIC interrupt */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(7, 5), GPIO_INPUT)
-#endif
-
-/* Sensor interrupts, not implemented yet */
-GPIO(ALS_INT_L, PIN(2, 5), GPIO_INPUT)
-
-/* TODO(b/35585396): Make use of these GPIOs */
-GPIO(PP1800_DX_SENSOR, PIN(1, 4), GPIO_OUTPUT)
-GPIO(PP3300_DX_SENSOR, PIN(2, 1), GPIO_OUTPUT)
-GPIO(PP3300_USB_PD, PIN(2, 0), GPIO_OUTPUT)
-/* end of TODO */
-
-GPIO(PP3300_DX_LTE, PIN(0, 5), GPIO_OUT_LOW)
-
-#ifndef BOARD_LUX
-GPIO(WLAN_PE_RST, PIN(1, 2), GPIO_OUTPUT)
-GPIO(LTE_GPS_OFF_L, PIN(0, 0), GPIO_ODR_HIGH)
-GPIO(LTE_BODY_SAR_L, PIN(0, 1), GPIO_ODR_HIGH)
-GPIO(LTE_OFF_ODL, PIN(8, 0), GPIO_ODR_LOW)
-GPIO(LTE_WAKE_L, PIN(7, 1), GPIO_INPUT)
-#endif
-
-#ifdef BOARD_LUX
-GPIO(WFCAM_VSYNC, PIN(7, 1), GPIO_INPUT)
-#endif
-
-/* Set unused pins as Input+PU */
-#ifdef BOARD_LUX
-GPIO(TP_EC_GPIO_00, PIN(0, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_01, PIN(0, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_36, PIN(3, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_80, PIN(8, 0), GPIO_INPUT | GPIO_PULL_UP)
-#else
-GPIO(TP_EC_GPIO_06, PIN(0, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_22, PIN(2, 2), GPIO_INPUT | GPIO_PULL_UP)
-#endif
-GPIO(TP_EC_GPIO_16, PIN(1, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_23, PIN(2, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_B6, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-#ifdef BOARD_LUX
-GPIO(UART_ALT_RX, PIN(1, 0), GPIO_INPUT)
-GPIO(UART_ALT_TX, PIN(1, 1), GPIO_INPUT)
-GPIO(EC_COMM_PD, PIN(1, 5), GPIO_ODR_HIGH)
-GPIO(EC_COMM_PU, PIN(0, 7), GPIO_INPUT)
-GPIO(PPVAR_VAR_BASE, PIN(1, 2), GPIO_OUT_LOW)
-#else
-GPIO(PP3300_DX_BASE, PIN(1, 1), GPIO_OUT_LOW)
-GPIO(TP_EC_GPIO_07, PIN(0, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(TP_EC_GPIO_10, PIN(1, 0), GPIO_INPUT)
-GPIO(TP_EC_GPIO_15, PIN(1, 5), GPIO_INPUT | GPIO_PULL_UP)
-#endif
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C0_1_3V3_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C0_1_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C1_3V3_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C1_3V3_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SDA */
-
-#ifdef BOARD_LUX
-GPIO(USB_C0_5V_EN, PIN(0, 6), GPIO_OUT_LOW) /* C0 5V Enable */
-#else
-GPIO(USB_C0_5V_EN, PIN(4, 2), GPIO_OUT_LOW) /* C0 5V Enable */
-#endif
-GPIO(USB_C0_3A_EN, PIN(6, 6), GPIO_OUT_LOW) /* C0 Enable 3A */
-GPIO(USB_C0_CHARGE_L, PIN(C, 0), GPIO_OUT_LOW) /* C0 Charge enable */
-GPIO(USB_C1_5V_EN, PIN(B, 1), GPIO_OUT_LOW) /* C1 5V Enable */
-GPIO(USB_C1_3A_EN, PIN(3, 5), GPIO_OUT_LOW) /* C1 3A Enable */
-GPIO(USB_C1_CHARGE_L, PIN(C, 3), GPIO_OUT_LOW) /* C1 Charge enable */
-GPIO(USB_C0_PD_RST_L, PIN(0, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(7, 4), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(A, 5), GPIO_INPUT) /* C1 DP Hotplug Detect */
-GPIO(USB_C0_TCPC_PWR, PIN(8, 4), GPIO_OUT_LOW) /* Enable C0 TCPC Power */
-GPIO(USB2_OTG_ID, PIN(A, 1), GPIO_OUT_LOW) /* OTG ID */
-GPIO(USB2_OTG_VBUSSENSE, PIN(9, 5), GPIO_OUT_LOW) /* OTG VBUS Sense */
-
-/* LEDs (2 colors on each port) */
-GPIO(LED_YELLOW_C0, PIN(2, 4), GPIO_OUT_LOW) /* This is from rev5 */
-GPIO(LED_YELLOW_C0_OLD, PIN(3, 2), GPIO_OUT_LOW) /* This is for rev1 to rev4 */
-GPIO(LED_WHITE_C0, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(LED_YELLOW_C1, PIN(3, 1), GPIO_OUT_LOW)
-GPIO(LED_WHITE_C1, PIN(3, 0), GPIO_OUT_LOW)
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 4), GPIO_INPUT) /* Board ID bit0 */
-GPIO(BOARD_VERSION2, PIN(C, 2), GPIO_INPUT) /* Board ID bit1 */
-GPIO(BOARD_VERSION3, PIN(1, 3), GPIO_INPUT) /* Board ID bit2 */
-GPIO(BOARD_VERSION4, PIN(1, 7), GPIO_INPUT) /* Board ID strap 3 (ternary) */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 */ /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 */ /* EC_I2C1_3V3_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 */ /* EC_I2C1_3V3_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 */ /* EC_I2C2_PMIC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 */ /* EC_I2C0_0_USBC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 */ /* EC_I2C0_1_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 */ /* EC_I2C3_SENSOR_1V8_SDA/SCL */
diff --git a/board/poppy/led.c b/board/poppy/led.c
deleted file mode 100644
index 0c2d7f1832..0000000000
--- a/board/poppy/led.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void side_led_set_color(int port, enum led_color color)
-{
- int yellow_c0 = (system_get_board_version() >= 5) ?
- GPIO_LED_YELLOW_C0 : GPIO_LED_YELLOW_C0_OLD;
- gpio_set_level(port ? GPIO_LED_YELLOW_C1 : yellow_c0,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(port ? GPIO_LED_WHITE_C1 : GPIO_LED_WHITE_C0,
- (color == LED_WHITE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- int port;
-
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- port = 0;
- break;
- case EC_LED_ID_RIGHT_LED:
- port = 1;
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- side_led_set_color(port, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- side_led_set_color(port, LED_AMBER);
- else
- side_led_set_color(port, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- side_led_set_color(0, (port == 0) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- side_led_set_color(1, (port == 1) ? color : LED_OFF);
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED)) {
- if (charge_get_percent() <= 10)
- side_led_set_color(0,
- (battery_ticks & 0x4) ? LED_WHITE : LED_OFF);
- else
- side_led_set_color(0, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- side_led_set_color(1, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks & 0x4) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_LEFT_LED, 1);
- led_auto_control(EC_LED_ID_RIGHT_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_WHITE : LED_OFF;
-
- led_auto_control(EC_LED_ID_LEFT_LED, 0);
- led_auto_control(EC_LED_ID_RIGHT_LED, 0);
-
- side_led_set_color(0, color);
- side_led_set_color(1, color);
-}
diff --git a/board/poppy/usb_pd_policy.c b/board/poppy/usb_pd_policy.c
deleted file mode 100644
index a32b77bbe7..0000000000
--- a/board/poppy/usb_pd_policy.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio_5v_en = port ? GPIO_USB_C1_5V_EN :
- GPIO_USB_C0_5V_EN;
- enum gpio_signal gpio_3a_en = port ? GPIO_USB_C1_3A_EN :
- GPIO_USB_C0_3A_EN;
-
- if (system_get_board_version() >= 1) {
- /*
- * For rev1 and beyond, 1.5 vs 3.0 A limit is controlled by a
- * dedicated gpio where high = 3.0A and low = 1.5A. VBUS on/off
- * is controlled by GPIO_USB_C0/1_5V_EN. Both of these signals
- * can remain outputs.
- */
- gpio_set_level(gpio_3a_en, vbus_rp[port] == TYPEC_RP_3A0 ?
- 1 : 0);
- gpio_set_level(gpio_5v_en, vbus_en[port]);
- } else {
- /*
- * Driving USB_Cx_5V_EN high, actually put a 16.5k resistance
- * (2x 33k in parallel) on the NX5P3290 load switch ILIM pin,
- * setting a minimum OCP current of 3186 mA.
- * Putting an internal pull-up on USB_Cx_5V_EN, effectively put
- * a 33k resistor on ILIM, setting a minimum OCP current of
- * 1505 mA.
- */
- int flags = (vbus_rp[port] == TYPEC_RP_1A5 && vbus_en[port]) ?
- (GPIO_INPUT | GPIO_PULL_UP) :
- (GPIO_OUTPUT | GPIO_PULL_UP);
- gpio_set_level(gpio_5v_en, vbus_en[port]);
- gpio_set_flags(gpio_5v_en, flags);
- }
-}
-
-void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(port ? GPIO_USB_C1_CHARGE_L :
- GPIO_USB_C0_CHARGE_L, 1);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- if (system_get_board_version() >= 2)
- pd_set_vbus_discharge(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (system_get_board_version() >= 2 && prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return !gpio_get_level(port ? GPIO_USB_C1_VBUS_WAKE_L :
- GPIO_USB_C0_VBUS_WAKE_L);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_PMIC_SLP_SUS_L);
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Only port 0 supports device mode. */
- if (port != 0)
- return;
-
- gpio_set_level(GPIO_USB2_OTG_ID,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
- gpio_set_level(GPIO_USB2_OTG_VBUSSENSE,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
-}
diff --git a/board/poppy/vif_override.xml b/board/poppy/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/poppy/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/primus/battery.c b/board/primus/battery.c
deleted file mode 100644
index e9e822f2e8..0000000000
--- a/board/primus/battery.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "compile_time_macros.h"
-
-/*
- * Battery info for all Primus battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "LNV-5B11F21946",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 251, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "LNV-5B11F21953",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 250, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- [BATTERY_CELXPERT] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "LNV-5B11F21941",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 487, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SUNWODA;
diff --git a/board/primus/board.c b/board/primus/board.c
deleted file mode 100644
index 0881ab1c86..0000000000
--- a/board/primus/board.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "common.h"
-#include "charge_state_v2.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "keyboard_8042_sharedlib.h"
-#include "lid_switch.h"
-#include "power_button.h"
-#include "power.h"
-#include "pwm.h"
-#include "registers.h"
-#include "switch.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-#define KBLIGHT_LED_ON_LVL 100
-#define KBLIGHT_LED_OFF_LVL 0
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-__override void board_cbi_init(void)
-{
- config_usb_db_type();
-}
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
- pwm_set_duty(PWM_CH_KBLIGHT, KBLIGHT_LED_ON_LVL);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
- pwm_set_duty(PWM_CH_KBLIGHT, KBLIGHT_LED_OFF_LVL);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_CHARGE_RAMP_SW
-
-/*
- * TODO(b/181508008): tune this threshold
- */
-
-#define BC12_MIN_VOLTAGE 4400
-
-/**
- * Return true if VBUS is too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- if (voltage == 0) {
- CPRINTS("%s: must be disconnected", __func__);
- return 1;
- }
-
- if (voltage < BC12_MIN_VOLTAGE) {
- CPRINTS("%s: port %d: vbus %d lower than %d", __func__,
- port, voltage, BC12_MIN_VOLTAGE);
- return 1;
- }
-
- return 0;
-}
-
-#endif /* CONFIG_CHARGE_RAMP_SW */
-
-enum battery_present battery_hw_present(void)
-{
- enum gpio_signal batt_pres;
-
- batt_pres = GPIO_EC_BATT_PRES_ODL;
-
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(batt_pres) ? BP_NO : BP_YES;
-}
-
-static void keyboard_init(void)
-{
- /*
- * Set T15(KSI0/KSO11) to Lock key(KSI3/KSO9)
- */
- set_scancode_set2(0, 11, get_scancode_set2(3, 9));
-}
-DECLARE_HOOK(HOOK_INIT, keyboard_init, HOOK_PRIO_DEFAULT);
-
-__override void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Follow OEM request to limit the input current to
- * 97% negotiated limit.
- */
- charge_ma = charge_ma * 97 / 100;
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
diff --git a/board/primus/board.h b/board/primus/board.h
deleted file mode 100644
index 96562ec7a4..0000000000
--- a/board/primus/board.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Primus board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_SYSTEM_UNLOCKED
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-#define CONFIG_MP2964
-
-/* Sensors */
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_TABLET_MODE_SWITCH
-#undef CONFIG_GMR_TABLET_MODE
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#undef CONFIG_USB_PD_TCPM_NCT38XX
-#define CONFIG_USB_PD_TCPM_RT1715
-#define CONFIG_USBC_RETIMER_INTEL_BB
-
-#define CONFIG_USBC_PPC_SYV682X
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-#define GPIO_ID_1_EC_KB_BL_EN GPIO_EC_BATT_PRES_ODL
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* I2C Bus Configuration */
-
-#define I2C_PORT_USB_C0_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-#define I2C_PORT_USB_C0_C1_PPC_BC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C0_C1_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C0_C1_RT NPCX_I2C_PORT3_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_USB_A0_A1_MIX NPCX_I2C_PORT6_1
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define I2C_ADDR_MP2964_FLAGS 0x20
-
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x56
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x57
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-/* Retimer */
-#define CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* LED */
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 91
-
-#define CONFIG_FANS FAN_CH_COUNT
-
-/* Charger defines */
-#define CONFIG_CHARGER_BQ25720
-#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* PS2 defines */
-#define CONFIG_8042_AUX
-#define CONFIG_PS2
-#define CONFIG_CMD_PS2
-/* Button */
-#undef CONFIG_VOLUME_BUTTONS
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR_SOC,
- ADC_TEMP_SENSOR_2_SSD,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_TEMP_SENSOR_4_MEMORY,
- ADC_TEMP_SENSOR_5_USBC,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR_SOC,
- TEMP_SENSOR_2_SSD,
- TEMP_SENSOR_3_CHARGER,
- TEMP_SENSOR_4_MEMORY,
- TEMP_SENSOR_5_USBC,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT
-};
-
-enum battery_type {
- BATTERY_SUNWODA,
- BATTERY_SMP,
- BATTERY_CELXPERT,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED2_WHITE = 0, /* PWM0 (white charger) */
- PWM_CH_TKP_A_LED_N, /* PWM1 (LOGO led on A cover) */
- PWM_CH_LED1_AMBER, /* PWM2 (orange charger) */
- PWM_CH_KBLIGHT, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_LED4, /* PWM7 (power) */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/primus/build.mk b/board/primus/build.mk
deleted file mode 100644
index d6fe9b4808..0000000000
--- a/board/primus/build.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Primus board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=ps2.o
-board-y+=sensors.o
-board-y+=usbc_config.o
diff --git a/board/primus/charger.c b/board/primus/charger.c
deleted file mode 120000
index 476ce97df2..0000000000
--- a/board/primus/charger.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/brya/charger_bq25720.c \ No newline at end of file
diff --git a/board/primus/ec.tasklist b/board/primus/ec.tasklist
deleted file mode 100644
index c0a5194e89..0000000000
--- a/board/primus/ec.tasklist
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) \
- TASK_NOTEST(LOGOLED, logoled_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/primus/fans.c b/board/primus/fans.c
deleted file mode 100644
index d966056331..0000000000
--- a/board/primus/fans.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * TOOD(b/180681346): need to update for real fan
- *
- * Prototype fan spins at about 7200 RPM at 100% PWM.
- * Set minimum at around 30% PWM.
- */
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 7200,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-#ifndef CONFIG_FANS
-
-/*
- * TODO(b/181271666): use static fan speeds until fan and sensors are
- * tuned. for now, use:
- *
- * AP off: 33%
- * AP on: 100%
- */
-
-static void fan_slow(void)
-{
- const int duty_pct = 33;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-static void fan_max(void)
-{
- const int duty_pct = 100;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-DECLARE_HOOK(HOOK_INIT, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_RESET, fan_max, HOOK_PRIO_FIRST);
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, fan_max, HOOK_PRIO_DEFAULT);
-
-#endif /* CONFIG_FANS */
diff --git a/board/primus/fw_config.c b/board/primus/fw_config.c
deleted file mode 100644
index 9506e778b5..0000000000
--- a/board/primus/fw_config.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union primus_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for primus if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union primus_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PS8815,
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Primus FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-
- if (get_board_id() == 0) {
- /*
- * Early boards have a zero'd out FW_CONFIG, so replace
- * it with a sensible default value. If DB_USB_ABSENT2
- * was used as an alternate encoding of DB_USB_ABSENT to
- * avoid the zero check, then fix it.
- */
- if (fw_config.raw_value == 0) {
- CPRINTS("CBI: FW_CONFIG is zero, using board defaults");
- fw_config = fw_config_defaults;
- } else if (fw_config.usb_db == DB_USB_ABSENT2) {
- fw_config.usb_db = DB_USB_ABSENT;
- }
- }
-}
-
-union primus_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void)
-{
- return fw_config.usb_db;
-}
diff --git a/board/primus/fw_config.h b/board/primus/fw_config.h
deleted file mode 100644
index cbccbd07a9..0000000000
--- a/board/primus/fw_config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_PRIMUS_FW_CONFIG_H_
-#define __BOARD_PRIMUS_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for Primus board.
- *
- * Source of truth is the project/brya/primus/config.star configuration file.
- */
-
-enum ec_cfg_usb_db_type {
- DB_USB_ABSENT = 0,
- DB_USB3_PS8815 = 1,
- DB_USB_ABSENT2 = 15
-};
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-union primus_cbi_fw_config {
- struct {
- enum ec_cfg_usb_db_type usb_db : 4;
- uint32_t sd_db : 2;
- uint32_t lte_db : 1;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union primus_cbi_fw_config get_fw_config(void);
-
-/**
- * Get the USB daughter board type from FW_CONFIG.
- *
- * @return the USB daughter board type.
- */
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void);
-
-#endif /* __BOARD_PRIMUS_FW_CONFIG_H_ */
diff --git a/board/primus/gpio.inc b/board/primus/gpio.inc
deleted file mode 100644
index 4aa00b9ac0..0000000000
--- a/board/primus/gpio.inc
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(A, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_RT_INT_ODL, PIN(B, 1), GPIO_INT_FALLING, retimer_interrupt)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt)
-/* USB C1 gpio pins are mapped to schematic USB C2 */
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(0, 2), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(7, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_RT_INT_ODL, PIN(9, 7), GPIO_INT_FALLING, retimer_interrupt)
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(7, 3), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(KBD_BL_DTCT_N, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C1_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C1_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C1_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_C1_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_A1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_A1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(5, 7), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(9, 5), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C0_RT_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(PDEV_STP_N, PIN(9, 6), GPIO_ODR_HIGH)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_RST_ODL, PIN(5, 0), GPIO_ODR_LOW)
-GPIO(USB_C0_FRS_EN, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(USB_A_LOW_PWR_OD, PIN(B, 5), GPIO_ODR_LOW)
-GPIO(TBT_PWR_EN, PIN(D, 4), GPIO_OUT_LOW)
-GPIO(TP4_RESET, PIN(9, 3), GPIO_ODR_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(FAN_ID, PIN(4, 1), GPIO_INPUT)
-GPIO(USB_C0_OC_ODL, PIN(5, 6), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(B, 4), GPIO_ODR_HIGH)
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(6, 0x01), 0, MODULE_PWM, 0) /* GPIO60/PWM7 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-ALTERNATE(PIN_MASK(C, 0x1c), 0, MODULE_PWM, 0) /* GPIOC4/PWM2, GPIOC3/PWM0, GPIOC2/PWM1/I2C6_SCL0 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x3C), 0, MODULE_ADC, 0) /* GPIO45/ADC0, GPIO44/ADC1, GPIO43/ADC2, GPIO42/ADC3/RI_L */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* GPIOF0/ADC9 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* PS2 function */
-/* PS/2 channel 1 for aux device */
-ALTERNATE(PIN_MASK(6, 0x0C), 0, MODULE_PS2, 0) /* PS2_CLK1/GPIO62, PS2_DAT1/GPIO63 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(8, 1)) /* GPIO81/PECI_DATA */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS# */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST# */
-UNUSED(PIN(6, 6)) /* GPO66/ARM#_X86 */
-UNUSED(PIN(8, 6)) /* GPIO86/TXD/CR_SOUT2 */
-/* Pre-configured PSL balls: J8 K6 */
-
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
diff --git a/board/primus/i2c.c b/board/primus/i2c.c
deleted file mode 100644
index 3a4fe69b0c..0000000000
--- a/board/primus/i2c.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C1
- * TODO(b/191178381) Need to check the signals with a scope
- * before raising to 1MHz.
- */
- .name = "tcpc0",
- .port = I2C_PORT_USB_C0_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C0_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0,1",
- .port = I2C_PORT_USB_C0_C1_PPC_BC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C1_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C1_PPC_BC_SDA,
- },
- {
- /* I2C3 */
- .name = "retimer0,2",
- .port = I2C_PORT_USB_C0_C1_RT,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_C1_RT_SCL,
- .sda = GPIO_EC_I2C_USB_C0_C1_RT_SDA,
- },
- {
- /* I2C4
- * TODO(b/191178381) Need to check the signals with a scope
- * before raising to 1MHz.
- */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C6 */
- .name = "usb_mix0,1",
- .port = I2C_PORT_USB_A0_A1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C_USB_A0_A1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_A0_A1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/primus/keyboard.c b/board/primus/keyboard.c
deleted file mode 100644
index 5b45b60b19..0000000000
--- a/board/primus/keyboard.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfb, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config primus_kb = {
- .num_top_row_keys = 14,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_PREV_TRACK, /* T8 */
- TK_PLAY_PAUSE, /* T9 */
- TK_NEXT_TRACK, /* T10 */
- TK_MICMUTE, /* T11 */
- TK_VOL_MUTE, /* T12 */
- TK_VOL_DOWN, /* T13 */
- TK_VOL_UP, /* T14 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config *
-board_vivaldi_keybd_config(void)
-{
- return &primus_kb;
-}
diff --git a/board/primus/led.c b/board/primus/led.c
deleted file mode 100644
index 3a8da5ac32..0000000000
--- a/board/primus/led.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Primus specific PWM LED settings. */
-
-#include <stdint.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "power.h"
-#include "pwm.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#define CPRINTS(format, args...) cprints(CC_LOGOLED, format, ## args)
-
-#define LED_ON_LVL 100
-#define LED_OFF_LVL 0
-#define LED_BAT_S3_OFF_TIME_MS 3000
-#define LED_BAT_S3_TICK_MS 50
-#define LED_BAT_S3_PWM_RESCALE 5
-#define LED_TOTAL_TICKS 6
-#define TICKS_STEP1_BRIGHTER 0
-#define TICKS_STEP2_DIMMER (1000 / LED_BAT_S3_TICK_MS)
-#define TICKS_STEP3_OFF (2 * TICKS_STEP2_DIMMER)
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-#define LED_LOGO_TICK_SEC (LED_ONE_SEC / 4)
-/* Total on/off duration in a period */
-#define PERIOD (LED_LOGO_TICK_SEC * 2)
-#define LED_ON 1
-#define LED_OFF EC_LED_COLOR_COUNT
-#define LED_EVENT_SUSPEND TASK_EVENT_CUSTOM_BIT(0)
-#define LED_EVENT_200MS_TICK TASK_EVENT_CUSTOM_BIT(1)
-
-static int tick;
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-static void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- pwm_set_duty(PWM_CH_LED1_AMBER, LED_ON_LVL);
- pwm_set_duty(PWM_CH_LED2_WHITE, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- pwm_set_duty(PWM_CH_LED2_WHITE, LED_ON_LVL);
- pwm_set_duty(PWM_CH_LED1_AMBER, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- pwm_set_duty(PWM_CH_LED1_AMBER, LED_OFF_LVL);
- pwm_set_duty(PWM_CH_LED2_WHITE, LED_OFF_LVL);
- break;
- }
-}
-
-static void led_set_battery(void)
-{
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- led_set_color_battery(EC_LED_COLOR_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- led_set_color_battery(LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(EC_LED_COLOR_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-void led_set_color_power(int onoff_status)
-{
- /* primus logo led and power led have same behavior. */
- if (onoff_status == LED_ON) {
- pwm_set_duty(PWM_CH_TKP_A_LED_N, LED_ON_LVL);
- pwm_set_duty(PWM_CH_LED4, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- pwm_set_duty(PWM_CH_TKP_A_LED_N, LED_OFF_LVL);
- pwm_set_duty(PWM_CH_LED4, LED_OFF_LVL);
- }
-}
-
-#define AC_DISCONNECTED (-1)
-
-static void led_set_power(void)
-{
- static int plug_ac_countdown;
- static int ticks;
-
- if (plug_ac_countdown > 0) {
- ticks = (ticks + 1) % PERIOD;
- plug_ac_countdown--;
- if (ticks < LED_LOGO_TICK_SEC)
- led_set_color_power(LED_OFF);
- else
- led_set_color_power(LED_ON);
- } else if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_ON);
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_set_color_power(LED_OFF);
-
- /* Check AC_PRESENT */
- if (!extpower_is_present())
- plug_ac_countdown = AC_DISCONNECTED;
- else if (plug_ac_countdown == AC_DISCONNECTED)
- /* AC power was plugged in (previous state was "disconnected"),
- * set plug_ac_countdown for amount of ticks left
- */
- plug_ac_countdown = LED_TOTAL_TICKS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_power(LED_ON);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-/* Called by hook task every 200 ms */
-static void led_tick(void)
-{
- task_set_event(TASK_ID_LOGOLED, LED_EVENT_200MS_TICK);
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-static void suspend_led_update(void)
-{
- while (1) {
- tick++;
-
- /* HOOK_CHIPSET_SUSPEND will be called when POWER_S0S0ix,
- * if we are not transitioning to suspend, we should break here.
- */
- if (!chipset_in_or_transitioning_to_state(
- CHIPSET_STATE_ANY_SUSPEND))
- break;
-
- /* 1s gradual on, 1s gradual off, 3s off */
- if (tick <= TICKS_STEP2_DIMMER) {
- /* increase 5 duty every 50ms until PWM=100
- * enter here 20 times, total duartion is 1sec
- * A-cover and power button led are shared same
- * behavior.
- */
- pwm_set_duty(PWM_CH_TKP_A_LED_N,
- tick * LED_BAT_S3_PWM_RESCALE);
- pwm_set_duty(PWM_CH_LED4,
- tick * LED_BAT_S3_PWM_RESCALE);
- msleep(LED_BAT_S3_TICK_MS);
- } else if (tick <= TICKS_STEP3_OFF) {
- /* decrease 5 duty every 50ms until PWM=0
- * enter here 20 times, total duartion is 1sec
- * A-cover and power button led are shared same
- * behavior.
- */
- pwm_set_duty(PWM_CH_TKP_A_LED_N, (TICKS_STEP3_OFF
- - tick) * LED_BAT_S3_PWM_RESCALE);
- pwm_set_duty(PWM_CH_LED4, (TICKS_STEP3_OFF
- - tick) * LED_BAT_S3_PWM_RESCALE);
- msleep(LED_BAT_S3_TICK_MS);
- } else {
- tick = TICKS_STEP1_BRIGHTER;
- msleep(LED_BAT_S3_OFF_TIME_MS);
- }
- }
-}
-
-static void suspend_led_init(void)
-{
- task_set_event(TASK_ID_LOGOLED, LED_EVENT_SUSPEND);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, suspend_led_init, HOOK_PRIO_DEFAULT);
-
-void logoled_task(void *u)
-{
- uint32_t evt;
-
- while (1) {
- evt = task_wait_event(-1);
-
- if (evt & LED_EVENT_SUSPEND) {
- tick = TICKS_STEP2_DIMMER;
- suspend_led_update();
- }
-
- if (evt & LED_EVENT_200MS_TICK) {
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
- }
- }
-}
diff --git a/board/primus/ps2.c b/board/primus/ps2.c
deleted file mode 100644
index 2a605b37e5..0000000000
--- a/board/primus/ps2.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "hooks.h"
-#include "keyboard_8042.h"
-#include "ps2_chip.h"
-
-void send_aux_data_to_device(uint8_t data)
-{
- ps2_transmit_byte(NPCX_PS2_CH1, data);
-}
-
-static void board_init(void)
-{
- ps2_enable_channel(NPCX_PS2_CH1, 1, send_aux_data_to_host_interrupt);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/primus/pwm.c b/board/primus/pwm.c
deleted file mode 100644
index 6529443651..0000000000
--- a/board/primus/pwm.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED2_WHITE] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_TKP_A_LED_N] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED1_AMBER] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_LED4] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_pwm_init(void)
-{
- /*
- * Turn off LOGO/power/battery led
- */
- pwm_enable(PWM_CH_LED1_AMBER, 1);
- pwm_set_duty(PWM_CH_LED1_AMBER, 0);
- pwm_enable(PWM_CH_LED2_WHITE, 1);
- pwm_set_duty(PWM_CH_LED2_WHITE, 0);
- pwm_enable(PWM_CH_TKP_A_LED_N, 1);
- pwm_set_duty(PWM_CH_TKP_A_LED_N, 0);
- pwm_enable(PWM_CH_LED4, 1);
- pwm_set_duty(PWM_CH_LED4, 0);
-
- pwm_enable(PWM_CH_KBLIGHT, 1);
- /* TODO(b/190518315)
- * Check if need to turn to 100% after with chassis.
- */
- pwm_set_duty(PWM_CH_KBLIGHT, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT);
diff --git a/board/primus/sensors.c b/board/primus/sensors.c
deleted file mode 100644
index 33ea302a2a..0000000000
--- a/board/primus/sensors.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "adc_chip.h"
-#include "hooks.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR_SOC] = {
- .name = "TEMP_DDR_SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_SSD] = {
- .name = "TEMP_SSD",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_4_MEMORY] = {
- .name = "TEMP_MEMORY",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_5_USBC] = {
- .name = "TEMP_USBC",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR_SOC] = {
- .name = "DDR and SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR_SOC
- },
- [TEMP_SENSOR_2_SSD] = {
- .name = "SSD",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_SSD
- },
- [TEMP_SENSOR_3_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3_CHARGER
- },
- [TEMP_SENSOR_4_MEMORY] = {
- .name = "MEMORY",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4_MEMORY
- },
- [TEMP_SENSOR_5_USBC] = {
- .name = "USBC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_5_USBC
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/195901486): update for Alder Lake/primus
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-static const struct ec_thermal_config thermal_ssd = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(92),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/*
- * TODO(b/195901486): update for Alder Lake/primus
- *
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-static const struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/*
- * TODO(b/195901486): Thermal table need to be fine tuned.
- */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_2_SSD] = thermal_ssd,
- [TEMP_SENSOR_3_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_4_MEMORY] = thermal_inductor,
- [TEMP_SENSOR_5_USBC] = thermal_inductor,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/primus/usbc_config.c b/board/primus/usbc_config.c
deleted file mode 100644
index 6e5c14bb0d..0000000000
--- a/board/primus/usbc_config.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/* Copyright 2021 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.
- */
-
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_TCPC,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C1_PPC_BC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C0_C1_PPC_BC,
- .i2c_addr_flags = SYV682X_ADDR2_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-static const struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-static const struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_C1_RT,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc0_tcss_usb_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_C1_RT,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc1_tcss_usb_mux,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_C1_PPC_BC,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C0_C1_PPC_BC,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_1_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-void config_usb_db_type(void)
-{
- enum ec_cfg_usb_db_type db_type = ec_cfg_usb_db_type();
-
- /*
- * TODO(b/180434685): implement multiple DB types
- */
-
- CPRINTS("Configured USB DB type number is %d", db_type);
-}
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- enum ioex_signal rst_signal;
-
- if (me->usb_port == USBC_PORT_C0) {
- rst_signal = GPIO_USB_C0_RT_RST_ODL;
- } else if (me->usb_port == USBC_PORT_C1) {
- rst_signal = GPIO_USB_C1_RT_RST_ODL;
- } else {
- return EC_ERROR_INVAL;
- }
-
- /*
- * We do not have a load switch for the burnside bridge chips,
- * so we only need to sequence reset.
- */
-
- if (enable) {
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- gpio_set_level(rst_signal, 1);
- /*
- * Allow 1ms time for the retimer to power up lc_domain
- * which powers I2C controller within retimer
- */
- msleep(1);
-
- /* This will allow power saving on BB retimer */
- gpio_set_level(GPIO_TBT_PWR_EN, 1);
- } else {
- gpio_set_level(rst_signal, 0);
- msleep(1);
- gpio_set_level(GPIO_TBT_PWR_EN, 0);
- }
- return EC_SUCCESS;
-}
-
-__override int bb_retimer_reset(const struct usb_mux *me)
-{
- /*
- * TODO(b/200194309): Remove this once transition to
- * QS Silicon is complete
- */
- bb_retimer_power_enable(me, false);
- msleep(5);
- bb_retimer_power_enable(me, true);
- msleep(25);
-
- return EC_SUCCESS;
-}
-
-void board_reset_pd_mcu(void)
-{
- /* Using RT1716, no reset available for TCPC on port 0/ port 2 */
-}
-
-static void board_tcpc_init(void)
-{
-
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C1)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- return 0;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
diff --git a/board/primus/usbc_config.h b/board/primus/usbc_config.h
deleted file mode 100644
index 8bc1918c02..0000000000
--- a/board/primus/usbc_config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Primus board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void config_usb_db_type(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/primus/vif_override.xml b/board/primus/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/primus/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/puff/board.c b/board/puff/board.c
deleted file mode 100644
index b71d6670aa..0000000000
--- a/board/puff/board.c
+++ /dev/null
@@ -1,937 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Puff board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "chipset.h"
-#include "common.h"
-#include "core/cortex-m/cpu.h"
-#include "cros_board_info.h"
-#include "driver/ina3221.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/cometlake-discrete.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_common.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void power_monitor(void);
-DECLARE_DEFERRED(power_monitor);
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- if (signal == GPIO_USB_C0_TCPPC_INT_ODL)
- sn5s330_interrupt(0);
-}
-
-int ppc_get_alert_status(int port)
-{
- return gpio_get_level(GPIO_USB_C0_TCPPC_INT_ODL) == 0;
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- if (signal == GPIO_USB_C0_TCPC_INT_ODL)
- schedule_deferred_pd_interrupt(0);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int level;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- level = !!(tcpc_config[USB_PD_PORT_TCPC_0].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST) != level)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- return status;
-}
-
-/* Called when the charge manager has switched to a new port. */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Blink alert if insufficient power per system_can_boot_ap(). */
- int insufficient_power =
- (charge_ma * charge_mv) <
- (CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON * 1000);
- led_alert(insufficient_power);
-}
-
-static uint8_t usbc_overcurrent;
-static int32_t base_5v_power;
-
-/*
- * Power usage for each port as measured or estimated.
- * Units are milliwatts (5v x ma current)
- */
-#define PWR_BASE_LOAD (5*1335)
-#define PWR_FRONT_HIGH (5*1603)
-#define PWR_FRONT_LOW (5*963)
-#define PWR_REAR (5*1075)
-#define PWR_HDMI (5*562)
-#define PWR_C_HIGH (5*3740)
-#define PWR_C_LOW (5*2090)
-#define PWR_MAX (5*10000)
-
-/*
- * Update the 5V power usage, assuming no throttling,
- * and invoke the power monitoring.
- */
-static void update_5v_usage(void)
-{
- int front_ports = 0;
- /*
- * Recalculate the 5V load, assuming no throttling.
- */
- base_5v_power = PWR_BASE_LOAD;
- if (!gpio_get_level(GPIO_USB_A0_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- if (!gpio_get_level(GPIO_USB_A1_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- /*
- * Only 1 front port can run higher power at a time.
- */
- if (front_ports > 0)
- base_5v_power += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!gpio_get_level(GPIO_USB_A2_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_USB_A3_OC_ODL))
- base_5v_power += PWR_REAR;
- if (ec_config_get_usb4_present() && !gpio_get_level(GPIO_USB_A4_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_HDMI_CONN0_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (!gpio_get_level(GPIO_HDMI_CONN1_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (usbc_overcurrent)
- base_5v_power += PWR_C_HIGH;
- /*
- * Invoke the power handler immediately.
- */
- hook_call_deferred(&power_monitor_data, 0);
-}
-DECLARE_DEFERRED(update_5v_usage);
-/*
- * Start power monitoring after ADCs have been initialised.
- */
-DECLARE_HOOK(HOOK_INIT, update_5v_usage, HOOK_PRIO_INIT_ADC + 1);
-
-static void port_ocp_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&update_5v_usage_data, 0);
-}
-
-/******************************************************************************/
-/*
- * Barrel jack power supply handling
- *
- * EN_PPVAR_BJ_ADP_L must default active to ensure we can power on when the
- * barrel jack is connected, and the USB-C port can bring the EC up fine in
- * dead-battery mode. Both the USB-C and barrel jack switches do reverse
- * protection, so we're safe to turn one on then the other off- but we should
- * only do that if the system is off since it might still brown out.
- */
-
-/*
- * Barrel-jack power adapter ratings.
- */
-static const struct {
- int voltage;
- int current;
-} bj_power[] = {
- { /* 0 - 65W (also default) */
- .voltage = 19000,
- .current = 3420
- },
- { /* 1 - 90W */
- .voltage = 19000,
- .current = 4740
- },
-};
-
-#define ADP_DEBOUNCE_MS 1000 /* Debounce time for BJ plug/unplug */
-/* Debounced connection state of the barrel jack */
-static int8_t adp_connected = -1;
-static void adp_connect_deferred(void)
-{
- struct charge_port_info pi = { 0 };
- int connected = !gpio_get_level(GPIO_BJ_ADP_PRESENT_L);
-
- /* Debounce */
- if (connected == adp_connected)
- return;
- if (connected) {
- unsigned int bj = ec_config_get_bj_power();
-
- pi.voltage = bj_power[bj].voltage;
- pi.current = bj_power[bj].current;
- }
- charge_manager_update_charge(CHARGE_SUPPLIER_DEDICATED,
- DEDICATED_CHARGE_PORT, &pi);
- adp_connected = connected;
-}
-DECLARE_DEFERRED(adp_connect_deferred);
-
-/* IRQ for BJ plug/unplug. It shouldn't be called if BJ is the power source. */
-void adp_connect_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&adp_connect_deferred_data, ADP_DEBOUNCE_MS * MSEC);
-}
-
-static void adp_state_init(void)
-{
- /*
- * Initialize all charge suppliers to 0. The charge manager waits until
- * all ports have reported in before doing anything.
- */
- for (int i = 0; i < CHARGE_PORT_COUNT; i++) {
- for (int j = 0; j < CHARGE_SUPPLIER_COUNT; j++)
- charge_manager_update_charge(j, i, NULL);
- }
-
- /* Report charge state from the barrel jack. */
- adp_connect_deferred();
-}
-DECLARE_HOOK(HOOK_INIT, adp_state_init, HOOK_PRIO_CHARGE_MANAGER_INIT + 1);
-
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_LED_RED] = { .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW |
- PWM_CONFIG_DSLEEP,
- .freq = 2000 },
- [PWM_CH_LED_GREEN] = { .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW |
- PWM_CONFIG_DSLEEP,
- .freq = 2000 },
-};
-
-/******************************************************************************/
-/* USB-C TCPC Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
-};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
-};
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {"ina", I2C_PORT_INA, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"ppc0", I2C_PORT_PPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"power", I2C_PORT_POWER, 400, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct adc_t adc_channels[] = {
- [ADC_SNS_PP3300] = {
- /*
- * 4700/5631 voltage divider: can take the value out of range
- * for 32-bit signed integers, so truncate to 470/563 yielding
- * <0.1% error and a maximum intermediate value of 1623457792,
- * which comfortably fits in int32.
- */
- .name = "SNS_PP3300",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT * 563,
- .factor_div = (ADC_READ_MAX + 1) * 470,
- },
- [ADC_SNS_PP1050] = {
- .name = "SNS_PP1050",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_VBUS] = { /* 5/39 voltage divider */
- .name = "VBUS",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT * 39,
- .factor_div = (ADC_READ_MAX + 1) * 5,
- },
- [ADC_PPVAR_IMON] = { /* 500 mV/A */
- .name = "PPVAR_IMON",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT * 2, /* Milliamps */
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR_1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CORE] = {
- .name = "Core",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* Wake up pins */
-const enum gpio_signal hibernate_wake_pins[] = {
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 2400,
- .rpm_max = 4300,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* Thermal control; drive fan based on temperature sensors. */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- [EC_TEMP_THRESH_HALT] = C_TO_K(78),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(58),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(41),
- .temp_fan_max = C_TO_K(72),
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_CORE] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Power sensors */
-const struct ina3221_t ina3221[] = {
- { I2C_PORT_INA, 0x40, { "PP3300_G", "PP5000_A", "PP3300_WLAN" } },
- { I2C_PORT_INA, 0x42, { "PP3300_A", "PP3300_SSD", "PP3300_LAN" } },
- { I2C_PORT_INA, 0x43, { NULL, "PP1200_U", "PP2500_DRAM" } }
-};
-const unsigned int ina3221_count = ARRAY_SIZE(ina3221);
-
-static uint16_t board_version;
-static uint32_t sku_id;
-static uint32_t fw_config;
-
-static void cbi_init(void)
-{
- /*
- * Load board info from CBI to control per-device configuration.
- *
- * If unset it's safe to treat the board as a proto, just C10 gating
- * won't be enabled.
- */
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- if (cbi_get_fw_config(&val) == EC_SUCCESS)
- fw_config = val;
- CPRINTS("Board Version: %d, SKU ID: 0x%08x, F/W config: 0x%08x",
- board_version, sku_id, fw_config);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_init(void)
-{
- uint8_t *memmap_batt_flags;
-
- /* Override some GPIO interrupt priorities.
- *
- * These interrupts are timing-critical for AP power sequencing, so we
- * increase their NVIC priority from the default of 3. This affects
- * whole MIWU groups of 8 GPIOs since they share an IRQ.
- *
- * Latency at the default priority level can be hundreds of
- * microseconds while other equal-priority IRQs are serviced, so GPIOs
- * requiring faster response must be higher priority.
- */
- /* CPU_C10_GATE_L on GPIO6.7: must be ~instant for ~60us response. */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTH_1, 1);
- /*
- * slp_s3_interrupt (GPIOA.5 on WKINTC_0) must respond within 200us
- * (tPLT18); less critical than the C10 gate.
- */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTC_0, 2);
-
- gpio_enable_interrupt(GPIO_BJ_ADP_PRESENT_L);
-
- /* Always claim AC is online, because we don't have a battery. */
- memmap_batt_flags = host_get_memmap(EC_MEMMAP_BATT_FLAG);
- *memmap_batt_flags |= EC_BATT_FLAG_AC_PRESENT;
- /*
- * For board version < 2, the directly connected recovery
- * button is not available.
- */
- if (board_version < 2)
- button_disable_gpio(GPIO_EC_RECOVERY_BTN_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_startup(void)
-{
- /*
- * Workaround to restore VBUS on PPC.
- * PP1 is sourced from PP5000_A, and when the CPU shuts down and
- * this rail drops, the PPC will internally turn off PP1_EN.
- * When the CPU starts again, and the rail is restored, the PPC
- * does not turn PP1_EN on again, causing VBUS to stay turned off.
- * The workaround is to check whether the PPC is sourcing VBUS, and
- * if so, make sure it is enabled.
- */
- if (ppc_is_sourcing_vbus(0))
- ppc_vbus_source_enable(0, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
- HOOK_PRIO_DEFAULT);
-/******************************************************************************/
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USB-A port control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USB_VBUS,
-};
-
-/* Power Delivery and charging functions */
-static void board_tcpc_init(void)
-{
- /*
- * Reset TCPC if we have had a system reset.
- * With EFSv2, it is possible to be in RW without
- * having reset the TCPC.
- */
- if (system_get_reset_flags() & EC_RESET_FLAG_POWER_ON)
- board_reset_pd_mcu();
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- /* Enable other overcurrent interrupts */
- gpio_enable_interrupt(GPIO_HDMI_CONN0_OC_ODL);
- gpio_enable_interrupt(GPIO_HDMI_CONN1_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A1_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A2_OC_ODL);
- gpio_enable_interrupt(GPIO_USB_A3_OC_ODL);
- if (ec_config_get_usb4_present()) {
- /*
- * By default configured as output low.
- */
- gpio_set_flags(GPIO_USB_A4_OC_ODL,
- GPIO_INPUT | GPIO_INT_BOTH);
- gpio_enable_interrupt(GPIO_USB_A4_OC_ODL);
- } else {
- /* Ensure no interrupts from pin */
- gpio_disable_interrupt(GPIO_USB_A4_OC_ODL);
- }
-
-}
-/* Make sure this is called after fw_config is initialised */
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 2);
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-void board_reset_pd_mcu(void)
-{
- int level = !!(tcpc_config[USB_PD_PORT_TCPC_0].flags &
- TCPC_FLAGS_RESET_ACTIVE_HIGH);
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST, level);
- msleep(BOARD_TCPC_C0_RESET_HOLD_DELAY);
- gpio_set_level(GPIO_USB_C0_TCPC_RST, !level);
- if (BOARD_TCPC_C0_RESET_POST_DELAY)
- msleep(BOARD_TCPC_C0_RESET_POST_DELAY);
-}
-
-int board_set_active_charge_port(int port)
-{
- CPRINTS("Requested charge port change to %d", port);
-
- /*
- * The charge manager may ask us to switch to no charger if we're
- * running off USB-C only but upstream doesn't support PD. It requires
- * that we accept this switch otherwise it triggers an assert and EC
- * reset; it's not possible to boot the AP anyway, but we want to avoid
- * resetting the EC so we can continue to do the "low power" LED blink.
- */
- if (port == CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- if (port < 0 || CHARGE_PORT_COUNT <= port)
- return EC_ERROR_INVAL;
-
- if (port == charge_manager_get_active_charge_port())
- return EC_SUCCESS;
-
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(port))
- return EC_ERROR_INVAL;
-
- if (!chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- int bj_active, bj_requested;
-
- if (charge_manager_get_active_charge_port() != CHARGE_PORT_NONE)
- /* Change is only permitted while the system is off */
- return EC_ERROR_INVAL;
-
- /*
- * Current setting is no charge port but the AP is on, so the
- * charge manager is out of sync (probably because we're
- * reinitializing after sysjump). Reject requests that aren't
- * in sync with our outputs.
- */
- bj_active = !gpio_get_level(GPIO_EN_PPVAR_BJ_ADP_L);
- bj_requested = port == CHARGE_PORT_BARRELJACK;
- if (bj_active != bj_requested)
- return EC_ERROR_INVAL;
- }
-
- CPRINTS("New charger p%d", port);
-
- switch (port) {
- case CHARGE_PORT_TYPEC0:
- /* TODO(b/143975429) need to touch the PD controller? */
- gpio_set_level(GPIO_EN_PPVAR_BJ_ADP_L, 1);
- break;
- case CHARGE_PORT_BARRELJACK:
- /* Make sure BJ adapter is sourcing power */
- if (gpio_get_level(GPIO_BJ_ADP_PRESENT_L))
- return EC_ERROR_INVAL;
- /* TODO(b/143975429) need to touch the PD controller? */
- gpio_set_level(GPIO_EN_PPVAR_BJ_ADP_L, 0);
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
- usbc_overcurrent = is_overcurrented;
- update_5v_usage();
-}
-
-int extpower_is_present(void)
-{
- return adp_connected;
-}
-
-int board_is_c10_gate_enabled(void)
-{
- /*
- * Puff proto drives EN_PP5000_HDMI from EN_S0_RAILS so we cannot gate
- * core rails while in S0 because HDMI should remain powered.
- * EN_PP5000_HDMI is a separate EC output on all other boards.
- */
- return board_version != 0;
-}
-
-void board_enable_s0_rails(int enable)
-{
- /* This output isn't connected on protos; safe to set anyway. */
- gpio_set_level(GPIO_EN_PP5000_HDMI, enable);
-}
-
-unsigned int ec_config_get_bj_power(void)
-{
- unsigned int bj =
- (fw_config & EC_CFG_BJ_POWER_MASK) >> EC_CFG_BJ_POWER_L;
- /* Out of range value defaults to 0 */
- if (bj >= ARRAY_SIZE(bj_power))
- bj = 0;
- return bj;
-}
-
-int ec_config_get_usb4_present(void)
-{
- return !(fw_config & EC_CFG_NO_USB4_MASK);
-}
-
-unsigned int ec_config_get_thermal_solution(void)
-{
- return (fw_config & EC_CFG_THERMAL_MASK) >> EC_CFG_THERMAL_L;
-}
-
-static void setup_thermal(void)
-{
- unsigned int table = ec_config_get_thermal_solution();
- /* Configure Fan */
- switch (table) {
- /* Default and table0 use single fan */
- case 0:
- default:
- thermal_params[TEMP_SENSOR_CORE] = thermal_a;
- break;
- /* Table1 is fanless */
- case 1:
- fan_set_count(0);
- thermal_params[TEMP_SENSOR_CORE] = thermal_b;
- break;
- }
-}
-/* fan_set_count should be called before HOOK_INIT/HOOK_PRIO_DEFAULT */
-DECLARE_HOOK(HOOK_INIT, setup_thermal, HOOK_PRIO_DEFAULT - 1);
-
-/*
- * Power monitoring and management.
- *
- * The overall goal is to gracefully manage the power demand so that
- * the power budgets are met without letting the system fall into
- * power deficit (perhaps causing a brownout).
- *
- * There are 2 power budgets that need to be managed:
- * - overall system power as measured on the main power supply rail.
- * - 5V power delivered to the USB and HDMI ports.
- *
- * The actual system power demand is calculated from the VBUS voltage and
- * the input current (read from a shunt), averaged over 5 readings.
- * The power budget limit is from the charge manager.
- *
- * The 5V power cannot be read directly. Instead, we rely on overcurrent
- * inputs from the USB and HDMI ports to indicate that the port is in use
- * (and drawing maximum power).
- *
- * There are 3 throttles that can be applied (in priority order):
- *
- * - Type A BC1.2 front port restriction (3W)
- * - Type C PD (throttle to 1.5A if sourcing)
- * - Turn on PROCHOT, which immediately throttles the CPU.
- *
- * The first 2 throttles affect both the system power and the 5V rails.
- * The third is a last resort to force an immediate CPU throttle to
- * reduce the overall power use.
- *
- * The strategy is to determine what the state of the throttles should be,
- * and to then turn throttles off or on as needed to match this.
- *
- * This function runs on demand, or every 2 ms when the CPU is up,
- * and continually monitors the power usage, applying the
- * throttles when necessary.
- *
- * All measurements are in milliwatts.
- */
-#define THROT_TYPE_A BIT(0)
-#define THROT_TYPE_C BIT(1)
-#define THROT_PROCHOT BIT(2)
-
-/*
- * Power gain if front USB A ports are limited.
- */
-#define POWER_GAIN_TYPE_A 3200
-/*
- * Power gain if Type C port is limited.
- */
-#define POWER_GAIN_TYPE_C 8800
-/*
- * Power is averaged over 10 ms, with a reading every 2 ms.
- */
-#define POWER_DELAY_MS 2
-#define POWER_READINGS (10/POWER_DELAY_MS)
-
-static void power_monitor(void)
-{
- static uint32_t current_state;
- static uint32_t history[POWER_READINGS];
- static uint8_t index;
- int32_t delay;
- uint32_t new_state = 0, diff;
- int32_t headroom_5v = PWR_MAX - base_5v_power;
-
- /*
- * If CPU is off or suspended, no need to throttle
- * or restrict power.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
- CHIPSET_STATE_SUSPEND)) {
- /*
- * Slow down monitoring, assume no throttling required.
- */
- delay = 20 * MSEC;
- /*
- * Clear the first entry of the power table so that
- * it is re-initilalised when the CPU starts.
- */
- history[0] = 0;
- } else {
- int32_t charger_mw;
-
- delay = POWER_DELAY_MS * MSEC;
- /*
- * Get current charger limit (in mw).
- * If not configured yet, skip.
- */
- charger_mw = charge_manager_get_power_limit_uw() / 1000;
- if (charger_mw != 0) {
- int32_t gap, total, max, power;
- int i;
-
- /*
- * Read power usage.
- */
- power = (adc_read_channel(ADC_VBUS) *
- adc_read_channel(ADC_PPVAR_IMON)) /
- 1000;
- /* Init power table */
- if (history[0] == 0) {
- for (i = 0; i < POWER_READINGS; i++)
- history[i] = power;
- }
- /*
- * Update the power readings and
- * calculate the average and max.
- */
- history[index] = power;
- index = (index + 1) % POWER_READINGS;
- total = 0;
- max = history[0];
- for (i = 0; i < POWER_READINGS; i++) {
- total += history[i];
- if (history[i] > max)
- max = history[i];
- }
- /*
- * For Type-C power supplies, there is
- * less tolerance for exceeding the rating,
- * so use the max power that has been measured
- * over the measuring period.
- * For barrel-jack supplies, the rating can be
- * exceeded briefly, so use the average.
- */
- if (charge_manager_get_supplier() ==
- CHARGE_SUPPLIER_PD)
- power = max;
- else
- power = total / POWER_READINGS;
- /*
- * Calculate gap, and if negative, power
- * demand is exceeding configured power budget, so
- * throttling is required to reduce the demand.
- */
- gap = charger_mw - power;
- /*
- * Limiting type-A power.
- */
- if (gap <= 0) {
- new_state |= THROT_TYPE_A;
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!(current_state & THROT_TYPE_A))
- gap += POWER_GAIN_TYPE_A;
- }
- /*
- * If the type-C port is sourcing power,
- * check whether it should be throttled.
- */
- if (ppc_is_sourcing_vbus(0) && gap <= 0) {
- new_state |= THROT_TYPE_C;
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- if (!(current_state & THROT_TYPE_C))
- gap += POWER_GAIN_TYPE_C;
- }
- /*
- * As a last resort, turn on PROCHOT to
- * throttle the CPU.
- */
- if (gap <= 0)
- new_state |= THROT_PROCHOT;
- }
- }
- /*
- * Check the 5v power usage and if necessary,
- * adjust the throttles in priority order.
- *
- * Either throttle may have already been activated by
- * the overall power control.
- *
- * We rely on the overcurrent detection to inform us
- * if the port is in use.
- *
- * - If type C not already throttled:
- * * If not overcurrent, prefer to limit type C [1].
- * * If in overcurrentuse:
- * - limit type A first [2]
- * - If necessary, limit type C [3].
- * - If type A not throttled, if necessary limit it [2].
- */
- if (headroom_5v < 0) {
- /*
- * Check whether type C is not throttled,
- * and is not overcurrent.
- */
- if (!((new_state & THROT_TYPE_C) || usbc_overcurrent)) {
- /*
- * [1] Type C not in overcurrent, throttle it.
- */
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- new_state |= THROT_TYPE_C;
- }
- /*
- * [2] If type A not already throttled, and power still
- * needed, limit type A.
- */
- if (!(new_state & THROT_TYPE_A) && headroom_5v < 0) {
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- new_state |= THROT_TYPE_A;
- }
- /*
- * [3] If still under-budget, limit type C.
- * No need to check if it is already throttled or not.
- */
- if (headroom_5v < 0)
- new_state |= THROT_TYPE_C;
- }
- /*
- * Turn the throttles on or off if they have changed.
- */
- diff = new_state ^ current_state;
- current_state = new_state;
- if (diff & THROT_PROCHOT) {
- int prochot = (new_state & THROT_PROCHOT) ? 0 : 1;
-
- gpio_set_level(GPIO_EC_PROCHOT_ODL, prochot);
- }
- if (diff & THROT_TYPE_C) {
- enum tcpc_rp_value rp = (new_state & THROT_TYPE_C)
- ? TYPEC_RP_1A5 : TYPEC_RP_3A0;
-
- ppc_set_vbus_source_current_limit(0, rp);
- tcpm_select_rp_value(0, rp);
- pd_update_contract(0);
- }
- if (diff & THROT_TYPE_A) {
- int typea_bc = (new_state & THROT_TYPE_A) ? 1 : 0;
-
- gpio_set_level(GPIO_USB_A_LOW_PWR_OD, typea_bc);
- }
- hook_call_deferred(&power_monitor_data, delay);
-}
diff --git a/board/puff/board.h b/board/puff/board.h
deleted file mode 100644
index fedba00f7a..0000000000
--- a/board/puff/board.h
+++ /dev/null
@@ -1,289 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Puff board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* NPCX7 config */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-#define NPCX_UART_MODULE2 1 /* GPIO64/65 are used as UART pins. */
-
-/* Internal SPI flash on NPCX796FC is 512 kB */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-/* EC Defines */
-#define CONFIG_ADC
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_DEDICATED_RECOVERY_BUTTON_2
-#define CONFIG_BUTTONS_RUNTIME_CONFIG
-#define CONFIG_BOARD_RESET_AFTER_POWER_ON
-/* TODO: (b/143496253) re-enable CEC */
-/* #define CONFIG_CEC */
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_KEYBOARD_BOOT_KEYS
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#undef CONFIG_KEYBOARD_RUNTIME_KEYS
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_LED_COMMON
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LTO
-#define CONFIG_PWM
-#define CONFIG_VBOOT_EFS2
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_SHA256
-
-/* EC Commands */
-#define CONFIG_CMD_BUTTON
-/* Include CLI command needed to support CCD testing. */
-#define CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_KEYBOARD
-#define CONFIG_HOSTCMD_PD_CONTROL
-#undef CONFIG_CMD_PWR_AVG
-#define CONFIG_CMD_PPC_DUMP
-#define CONFIG_CMD_TCPC_DUMP
-#ifdef SECTION_IS_RO
-/* Reduce RO size by removing less-relevant commands. */
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_HCDEBUG
-#undef CONFIG_CMD_MMAPINFO
-#endif
-
-#undef CONFIG_CONSOLE_CMDHELP
-
-/* Don't generate host command debug by default */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Enable AP Reset command for TPM with old firmware version to detect it. */
-#define CONFIG_CMD_AP_RESET_LOG
-#define CONFIG_HOSTCMD_AP_RESET
-
-/* Chipset config */
-#define CONFIG_CHIPSET_COMETLAKE_DISCRETE
-/* check */
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-
-/* Dedicated barreljack charger port */
-#undef CONFIG_DEDICATED_CHARGE_PORT_COUNT
-#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 1
-#define DEDICATED_CHARGE_PORT 1
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_BUTTON_X86
-/* Check: */
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-#define CONFIG_POWER_PP5000_CONTROL
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_SLEEP_FAILURE_DETECTION
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_INA3221
-
-/* b/143501304 */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 4000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 2000 /* us */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 8000 /* us */
-
-#define PD_OPERATING_POWER_MW CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define PD_MAX_POWER_MW 100000
-#define PD_MAX_CURRENT_MA 5000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Fan and temp. */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 0
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_ROA_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-#define CONFIG_THROTTLE_AP
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-/* Less than this much blocks AP power-on. */
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 30000
-#undef CONFIG_CHARGE_MANAGER_SAFE_MODE
-
-/* USB type C */
-#define CONFIG_USB_PD_TCPMV2 /* Use TCPMv2 */
-#define CONFIG_USB_PD_REV30 /* Enable PD 3.0 functionality */
-#define CONFIG_USB_PD_DECODE_SOP
-#undef CONFIG_USB_CHARGER
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PID 0x5040
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DISCHARGE_PPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_VBUS_DETECT_PPC
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USBC_PPC_DEDICATED_INT
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-#define USB_PD_PORT_TCPC_0 0
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_DUMB
-/* There are five ports, but power enable is ganged across all of them. */
-#define USB_PORT_COUNT 1
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_INA NPCX_I2C_PORT0_0
-#define I2C_PORT_PPC0 NPCX_I2C_PORT1_0
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define PP5000_PGOOD_POWER_SIGNAL_MASK POWER_SIGNAL_MASK(PP5000_A_PGOOD)
-
-/* Include math_util for bitmask_uint64 used in pd_timers */
-#define CONFIG_MATH_UTIL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum charge_port {
- CHARGE_PORT_TYPEC0,
- CHARGE_PORT_BARRELJACK,
-};
-
-enum adc_channel {
- ADC_SNS_PP3300, /* ADC2 */
- ADC_SNS_PP1050, /* ADC7 */
- ADC_VBUS, /* ADC4 */
- ADC_PPVAR_IMON, /* ADC9 */
- ADC_TEMP_SENSOR_1, /* ADC0 */
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CORE,
- TEMP_SENSOR_COUNT
-};
-
-
-/* Board specific handlers */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-void led_alert(int enable);
-void show_critical_error(void);
-
-/*
- * firmware config fields
- */
-/*
- * Barrel-jack power (4 bits).
- */
-#define EC_CFG_BJ_POWER_L 0
-#define EC_CFG_BJ_POWER_H 3
-#define EC_CFG_BJ_POWER_MASK GENMASK(EC_CFG_BJ_POWER_H, EC_CFG_BJ_POWER_L)
-/*
- * USB Connector 4 not present (1 bit).
- */
-#define EC_CFG_NO_USB4_L 4
-#define EC_CFG_NO_USB4_H 4
-#define EC_CFG_NO_USB4_MASK GENMASK(EC_CFG_NO_USB4_H, EC_CFG_NO_USB4_L)
-/*
- * Thermal solution config (3 bits).
- */
-#define EC_CFG_THERMAL_L 5
-#define EC_CFG_THERMAL_H 7
-#define EC_CFG_THERMAL_MASK GENMASK(EC_CFG_THERMAL_H, EC_CFG_THERMAL_L)
-
-unsigned int ec_config_get_bj_power(void);
-int ec_config_get_usb4_present(void);
-unsigned int ec_config_get_thermal_solution(void);
-
-#endif /* !__ASSEMBLER__ */
-
-/* Pin renaming */
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PP5000_A_PG_OD GPIO_PG_PP5000_A_OD
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_RECOVERY_L GPIO_EC_RECOVERY_BTN_ODL
-#define GPIO_RECOVERY_L_2 GPIO_H1_EC_RECOVERY_BTN_ODL
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_AC_PRESENT GPIO_BJ_ADP_PRESENT_L
-
-/*
- * There is no RSMRST input, so alias it to the output. This short-circuits
- * common_intel_x86_handle_rsmrst.
- */
-#define GPIO_RSMRST_L_PGOOD GPIO_PCH_RSMRST_L
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/puff/build.mk b/board/puff/build.mk
deleted file mode 100644
index e9968d5710..0000000000
--- a/board/puff/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
-board-y+=led.o
diff --git a/board/puff/ec.tasklist b/board/puff/ec.tasklist
deleted file mode 100644
index ae10417dff..0000000000
--- a/board/puff/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE)
diff --git a/board/puff/gpio.inc b/board/puff/gpio.inc
deleted file mode 100644
index 7e62488cee..0000000000
--- a/board/puff/gpio.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Pin names follow the schematic, and are aliased to other names if necessary.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Latency on this interrupt is extremely critical, so it comes first to ensure
- * it gets placed first in gpio_wui_table so gpio_interrupt() needs to do
- * minimal scanning. */
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, c10_gate_interrupt)
-
-/* Wake Source interrupts */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_PP5000_A_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1800_A_OD, PIN(3, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VPRIM_CORE_A_OD, PIN(2, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1050_A_OD, PIN(2, 2), GPIO_INT_BOTH, power_signal_interrupt)
-/* EC output, but also interrupt so this can be polled as a power signal */
-GPIO_INT(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUTPUT | GPIO_INT_F_RISING | GPIO_INT_F_FALLING, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_PP2500_DRAM_U_OD, PIN(2, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1200_U_OD, PIN(2, 1), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, slp_s3_interrupt)
-#endif
-GPIO_INT(PG_PP950_VCCIO_OD, PIN(1, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(IMVP8_VRRDY_OD, PIN(1, 6), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Other interrupts */
-GPIO_INT(USB_C0_TCPPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-/*
- * Directly connected recovery button (not available on some boards).
- */
-GPIO_INT(EC_RECOVERY_BTN_ODL, PIN(F, 1), GPIO_INT_BOTH, button_interrupt)
-/*
- * Recovery button input from H1.
- */
-GPIO_INT(H1_EC_RECOVERY_BTN_ODL, PIN(2, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(BJ_ADP_PRESENT_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, adp_connect_interrupt)
-
-/* Port power control interrupts */
-GPIO_INT(HDMI_CONN0_OC_ODL, PIN(0, 7), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(HDMI_CONN1_OC_ODL, PIN(0, 6), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A0_OC_ODL, PIN(E, 4), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A1_OC_ODL, PIN(A, 2), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A2_OC_ODL, PIN(F, 5), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A3_OC_ODL, PIN(0, 3), GPIO_INT_BOTH, port_ocp_interrupt)
-/* May be reconfigured as input */
-GPIO_INT(USB_A4_OC_ODL, PIN(B, 0), GPIO_OUT_LOW | GPIO_INT_BOTH, port_ocp_interrupt)
-
-/* PCH/CPU signals */
-GPIO(EC_PCH_PWROK, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_ODR_HIGH)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* Power control outputs */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_INA_H1_EC_ODL, PIN(5, 7), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_A, PIN(1, 5), GPIO_OUT_LOW)
-GPIO(VCCST_PG_OD, PIN(1, 4), GPIO_ODR_LOW)
-GPIO(EN_S0_RAILS, PIN(1, 1), GPIO_OUT_LOW)
-GPIO(EN_ROA_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP950_VCCIO, PIN(1, 0), GPIO_OUT_LOW)
-GPIO(EC_IMVP8_PE, PIN(A, 7), GPIO_OUT_LOW)
-GPIO(EN_IMVP8_VR, PIN(F, 4), GPIO_OUT_LOW)
-
-/* Barreljack */
-GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 4), GPIO_OUT_LOW)
-
-/* USB type A */
-GPIO(EN_PP5000_USB_VBUS, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(USB_A2_STATUS_L, PIN(6, 1), GPIO_INPUT)
-GPIO(USB_A3_STATUS_L, PIN(C, 7), GPIO_INPUT)
-
-/* USB type C */
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-
-/* Misc. */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-GPIO(EN_PP_MST_OD, PIN(9, 6), GPIO_ODR_HIGH)
-GPIO(PACKET_MODE_EN, PIN(7, 5), GPIO_OUT_LOW)
-
-/* HDMI/CEC */
-GPIO(EN_PP5000_HDMI, PIN(5, 0), GPIO_OUT_LOW)
-GPIO(HDMI_CONN0_CEC_OUT, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN0_CEC_IN, PIN(4, 0), GPIO_INPUT)
-GPIO(HDMI_CONN1_CEC_OUT, PIN(9, 5), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN1_CEC_IN, PIN(D, 3), GPIO_INPUT)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_INA_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_INA_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_IMVP8_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_IMVP8_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x08), 0, MODULE_PWM, 0) /* PWM0 - Red Led */
-ALTERNATE(PIN_MASK(C, 0x10), 0, MODULE_PWM, 0) /* PWM2 - Green Led */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - Fan 1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x2A), 0, MODULE_ADC, 0) /* ADC0, ADC2, ADC4 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* ADC7 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Unused pins */
-UNUSED(PIN(1, 3)) /* EC_GP_SEL1_ODL */
-UNUSED(PIN(F, 2)) /* EC_I2C_RFU_SDA */
-UNUSED(PIN(F, 3)) /* EC_I2C_RFU_SCL */
-UNUSED(PIN(C, 0)) /* FAN_PWM_2 */
-UNUSED(PIN(8, 0)) /* LED_BLUE_L */
-UNUSED(PIN(4, 4)) /* ADC1/TEMP_SENSOR_2 */
-UNUSED(PIN(4, 2)) /* ADC3/TEMP_SENSOR_3 */
-UNUSED(PIN(C, 2)) /* A12 NC */
-UNUSED(PIN(9, 2)) /* K8 NC */
-UNUSED(PIN(9, 1)) /* L8 NC */
-UNUSED(PIN(1, 2)) /* C6 NC */
-UNUSED(PIN(6, 6)) /* H4 NC */
-UNUSED(PIN(8, 1)) /* L6 NC */
-UNUSED(PIN(C, 6)) /* B11 NC */
-UNUSED(PIN(E, 2)) /* B8 NC */
-UNUSED(PIN(8, 5)) /* L7 NC */
-UNUSED(PIN(0, 0)) /* D11 NC */
-UNUSED(PIN(3, 2)) /* E5 NC */
-UNUSED(PIN(D, 6)) /* F6 NC */
-UNUSED(PIN(3, 5)) /* F5 NC */
-UNUSED(PIN(5, 6)) /* M2 NC */
-UNUSED(PIN(D, 2)) /* C11 NC */
-UNUSED(PIN(8, 6)) /* J8 NC */
-UNUSED(PIN(9, 3)) /* M11 NC */
-UNUSED(PIN(7, 2)) /* H6 NC */
diff --git a/board/puff/led.c b/board/puff/led.c
deleted file mode 100644
index ba87f05460..0000000000
--- a/board/puff/led.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power LED control for Puff.
- * Solid green - active power
- * Green flashing - suspended
- * Red flashing - alert
- * Solid red - critical
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
-
-/*
- * Due to the CSME-Lite processing, upon startup the CPU transitions through
- * S0->S3->S5->S3->S0, causing the LED to turn on/off/on, so
- * delay turning off the LED during suspend/shutdown.
- */
-#define LED_CPU_DELAY_MS (2000 * MSEC)
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_AMBER,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int green = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_GREEN:
- green = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- case LED_AMBER:
- green = 1;
- red = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (green)
- pwm_set_duty(PWM_CH_LED_GREEN, duty);
- else
- pwm_set_duty(PWM_CH_LED_GREEN, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec. */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIG_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIG_TICK(LED_PULSE_TICK_US, LED_GREEN);
- led_tick();
-}
-DECLARE_DEFERRED(led_suspend);
-
-static void led_shutdown(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_DEFERRED(led_shutdown);
-
-static void led_shutdown_hook(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown_hook, HOOK_PRIO_DEFAULT);
-
-static void led_suspend_hook(void)
-{
- hook_call_deferred(&led_shutdown_data, -1);
- hook_call_deferred(&led_suspend_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend_hook, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task. */
- hook_call_deferred(&led_tick_data, -1);
- /*
- * Avoid invoking the suspend/shutdown delayed hooks.
- */
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_GREEN, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_GREEN, 1);
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_INIT_PWM + 1);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend_hook();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown_hook();
- }
-}
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "green")) {
- set_color(id, LED_GREEN, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|green|amber|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_GREEN])
- return set_color(id, LED_GREEN, brightness[EC_LED_COLOR_GREEN]);
- else if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/puff/usb_pd_policy.c b/board/puff/usb_pd_policy.c
deleted file mode 100644
index 9b0a372400..0000000000
--- a/board/puff/usb_pd_policy.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Shared USB-C policy for Puff boards */
-
-#include "charge_manager.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "system.h"
-#include "tcpm/tcpci.h"
-#include "tcpm/tcpm.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-
-int pd_check_vconn_swap(int port)
-{
- /* Only allow vconn swap if pp5000_A rail is enabled */
- return gpio_get_level(GPIO_EN_PP5000_A);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = ppc_is_sourcing_vbus(port);
-
- /* Disable VBUS. */
- ppc_vbus_source_enable(port, 0);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- /* Disable charging. */
- rv = ppc_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- pd_set_vbus_discharge(port, 0);
-
- /* Provide Vbus. */
- rv = ppc_vbus_source_enable(port, 1);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-#ifdef CONFIG_USB_PD_VBUS_DETECT_PPC
-int pd_snk_is_vbus_provided(int port)
-{
- return ppc_is_vbus_present(port);
-}
-#endif
-
-int board_vbus_source_enabled(int port)
-{
- /* Ignore non-PD ports (the barrel jack). */
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return 0;
- return ppc_is_sourcing_vbus(port);
-}
diff --git a/board/puff/vif_override.xml b/board/puff/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/puff/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/quiche/board.c b/board/quiche/board.c
deleted file mode 100644
index e49b2e1b1a..0000000000
--- a/board/quiche/board.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/* 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.
- */
-
-/* Quiche board-specific configuration */
-
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/stm32gx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/ps8822.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "uart.h"
-#include "usb_descriptor.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "usb_pd_dp_ufp.h"
-#include "usb_pe_sm.h"
-#include "usb_prl_sm.h"
-#include "usb_tc_sm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-#define QUICHE_PD_DEBUG_LVL 1
-
-#ifdef SECTION_IS_RW
-#define CROS_EC_SECTION "RW"
-#else
-#define CROS_EC_SECTION "RO"
-#endif
-
-#ifdef SECTION_IS_RW
-static int pd_dual_role_init[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- PD_DRP_TOGGLE_ON,
- PD_DRP_FORCE_SOURCE,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_HOST_USBC_PPC_INT_ODL:
- sn5s330_interrupt(USB_PD_PORT_HOST);
- break;
- case GPIO_USBC_DP_PPC_INT_ODL:
- sn5s330_interrupt(USB_PD_PORT_DP);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal s)
-{
- int port = -1;
-
- switch (s) {
- case GPIO_USBC_DP_MUX_ALERT_ODL:
- port = USB_PD_PORT_DP;
- break;
- default:
- return;
- }
- schedule_deferred_pd_interrupt(port);
-}
-
-void hpd_interrupt(enum gpio_signal signal)
-{
- usb_pd_hpd_edge_event(signal);
-}
-
-static void board_uf_manage_vbus_interrupt(enum gpio_signal signal)
-{
- baseboard_usb3_check_state();
-}
-
-static void board_pwr_btn_interrupt(enum gpio_signal signal)
-{
- baseboard_power_button_evt(gpio_get_level(signal));
-}
-
-static void board_usbc_usb3_interrupt(enum gpio_signal signal)
-{
- baseboard_usbc_usb3_irq();
-}
-#endif /* SECTION_IS_RW */
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/*
- * Table GPIO signals control both power rails and reset lines to various chips
- * on the board. The order the signals are changed and the delay between GPIO
- * signals is driven by USB/MST hub power sequencing requirements.
- */
-const struct power_seq board_power_seq[] = {
- {GPIO_EN_AC_JACK, 1, 20},
- {GPIO_EC_DFU_MUX_CTRL, 0, 0},
- {GPIO_EN_PP5000_A, 1, 31},
- {GPIO_MST_LP_CTL_L, 1, 0},
- {GPIO_EN_PP3300_B, 1, 1},
- {GPIO_EN_PP1100_A, 1, 100+30},
- {GPIO_EN_BB, 1, 30},
- {GPIO_EN_PP1050_A, 1, 30},
- {GPIO_EN_PP1200_A, 1, 20},
- {GPIO_EN_PP5000_C, 1, 20},
- {GPIO_EN_PP5000_HSPORT, 1, 31},
- {GPIO_EN_DP_SINK, 1, 80},
- {GPIO_MST_RST_L, 1, 61},
- {GPIO_EC_HUB2_RESET_L, 1, 41},
- {GPIO_EC_HUB3_RESET_L, 1, 33},
- {GPIO_DP_SINK_RESET, 1, 100},
- {GPIO_USBC_DP_PD_RST_L, 1, 100},
- {GPIO_USBC_UF_RESET_L, 1, 33},
- {GPIO_DEMUX_DUAL_DP_PD_N, 1, 100},
- {GPIO_DEMUX_DUAL_DP_RESET_N, 1, 100},
- {GPIO_DEMUX_DP_HDMI_PD_N, 1, 10},
- {GPIO_DEMUX_DUAL_DP_MODE, 1, 10},
- {GPIO_DEMUX_DP_HDMI_MODE, 1, 5},
-};
-const size_t board_power_seq_count = ARRAY_SIZE(board_power_seq);
-
-/*
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Quiche"),
- [USB_STR_SERIALNO] = 0,
- [USB_STR_VERSION] =
- USB_STRING_DESC(CROS_EC_SECTION ":" CROS_EC_VERSION32),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-#ifndef SECTION_IS_RW
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[] = {
- [USB_PD_PORT_HOST] = {
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- },
-};
-#endif
-
-#ifdef SECTION_IS_RW
-/*
- * PS8802 set mux board tuning.
- * Adds in board specific gain and DP lane count configuration
- */
-static int board_ps8822_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- /* DP specific config */
- if (mux_state & USB_PD_MUX_DP_ENABLED)
- rv = ps8822_set_dp_rx_eq(me, PS8822_DPEQ_LEVEL_UP_20DB);
-
- return rv;
-}
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &stm32gx_tcpm_drv,
- },
- [USB_PD_PORT_DP] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_I2C1,
- .addr_flags = PS8751_I2C_ADDR2_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .usb_port = USB_PD_PORT_HOST,
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = PS8822_I2C_ADDR3_FLAG,
- .driver = &ps8822_usb_mux_driver,
- .board_set = &board_ps8822_mux_set,
- },
- [USB_PD_PORT_DP] = {
- .usb_port = USB_PD_PORT_DP,
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = PS8751_I2C_ADDR2_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
-};
-
-/* USB-C PPC Configuration */
-struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_HOST] = {
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- [USB_PD_PORT_DP] = {
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = SN5S330_ADDR2_FLAGS,
- .drv = &sn5s330_drv
- },
- [USB_PD_PORT_USB3] = {
- .i2c_port = I2C_PORT_I2C3,
- .i2c_addr_flags = SN5S330_ADDR1_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-const struct hpd_to_pd_config_t hpd_config = {
- .port = USB_PD_PORT_HOST,
- .signal = GPIO_DDI_MST_IN_HPD,
-};
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_SYSTEM, "Resetting TCPCs...");
- cflush();
- gpio_set_level(GPIO_USBC_DP_PD_RST_L, 0);
- gpio_set_level(GPIO_USBC_UF_RESET_L, 0);
- msleep(PS8805_FW_INIT_DELAY_MS);
- gpio_set_level(GPIO_USBC_DP_PD_RST_L, 1);
- gpio_set_level(GPIO_USBC_UF_RESET_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-void board_enable_usbc_interrupts(void)
-{
- /* Enable C0 PPC interrupt */
- gpio_enable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
- /* Enable C1 PPC interrupt */
- gpio_enable_interrupt(GPIO_USBC_DP_PPC_INT_ODL);
- /* Enable C0 HPD interrupt */
- gpio_enable_interrupt(GPIO_DDI_MST_IN_HPD);
- /* Enable C1 TCPC interrupt */
- gpio_enable_interrupt(GPIO_USBC_DP_MUX_ALERT_ODL);
-}
-
-void board_disable_usbc_interrupts(void)
-{
- /* Disable C0 PPC interrupt */
- gpio_disable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
- /* Disable C1 PPC interrupt */
- gpio_disable_interrupt(GPIO_USBC_DP_PPC_INT_ODL);
- /* Disable C0 HPD interrupt */
- gpio_disable_interrupt(GPIO_DDI_MST_IN_HPD);
- /* Disable C1 TCPC interrupt */
- gpio_disable_interrupt(GPIO_USBC_DP_MUX_ALERT_ODL);
- /* Disable VBUS control interrupt for C2 */
- gpio_disable_interrupt(GPIO_USBC_UF_MUX_VBUS_EN);
-}
-
-void board_tcpc_init(void)
-{
- board_reset_pd_mcu();
-
- /* Enable board usbc interrupts */
- board_enable_usbc_interrupts();
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 2);
-
-enum pd_dual_role_states board_tc_get_initial_drp_mode(int port)
-{
- return pd_dual_role_init[port];
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- /*
- * CONFIG_USB_PD_PORT_MAX_COUNT must be defined to account for C0, C1,
- * and C2, but TCPMv2 only knows about C0 and C1, as C2 is a type-c only
- * port that is managed directly by the PS8803 TCPC.
- */
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USB_PD_PORT_HOST)
- return gpio_get_level(GPIO_HOST_USBC_PPC_INT_ODL) == 0;
- else if (port == USB_PD_PORT_DP)
- return gpio_get_level(GPIO_USBC_DP_PPC_INT_ODL) == 0;
-
- return 0;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USBC_DP_MUX_ALERT_ODL) &&
- gpio_get_level(GPIO_USBC_DP_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-static void board_usb_pd_dp_ocp_reset(void)
-{
- gpio_set_level(GPIO_USBC_ALTMODE_OCP_NOTIFY, 1);
-}
-DECLARE_DEFERRED(board_usb_pd_dp_ocp_reset);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- if (port == USB_PD_PORT_DP) {
- gpio_set_level(GPIO_USBC_ALTMODE_OCP_NOTIFY, !is_overcurrented);
- hook_call_deferred(&board_usb_pd_dp_ocp_reset_data,
- USB_HUB_OCP_RESET_MSEC);
- }
-}
-
-int dock_get_mf_preference(void)
-{
- int rv;
- uint32_t fw_config;
- int mf = MF_OFF;
-
- /*
- * MF (multi function) preferece is indicated by bit 0 of the fw_config
- * data field. If this data field does not exist, then default to 4 lane
- * mode.
- */
- rv = cbi_get_fw_config(&fw_config);
- if (!rv)
- mf = CBI_FW_MF_PREFERENCE(fw_config);
-
- return mf;
-}
-
-#endif /* SECTION_IS_RW */
-
-static void board_init(void)
-{
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_debug_gpio_1_pulse(void)
-{
- gpio_set_level(GPIO_TRIGGER_1, 0);
-}
-DECLARE_DEFERRED(board_debug_gpio_1_pulse);
-
-static void board_debug_gpio_2_pulse(void)
-{
- gpio_set_level(GPIO_TRIGGER_2, 0);
-}
-DECLARE_DEFERRED(board_debug_gpio_2_pulse);
-
-void board_debug_gpio(enum debug_gpio trigger, int level, int pulse_usec)
-{
- switch (trigger) {
- case TRIGGER_1:
- gpio_set_level(GPIO_TRIGGER_1, level);
- if (pulse_usec)
- hook_call_deferred(&board_debug_gpio_1_pulse_data,
- pulse_usec);
- break;
- case TRIGGER_2:
- gpio_set_level(GPIO_TRIGGER_2, level);
- if (pulse_usec)
- hook_call_deferred(&board_debug_gpio_2_pulse_data,
- pulse_usec);
- break;
- default:
- CPRINTS("bad debug gpio selection");
- break;
- }
-}
-
-static int command_dplane(int argc, char **argv)
-{
- char *e;
- int lane;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- lane = strtoi(argv[1], &e, 10);
-
- if ((lane != 2) && (lane != 4))
- return EC_ERROR_PARAM1;
-
- /* put MST into reset */
- gpio_set_level(GPIO_MST_RST_L, 0);
- msleep(1);
- /* Set lane control to requested level */
- gpio_set_level(GPIO_MST_HUB_LANE_SWITCH, lane == 2 ? 1 : 0);
- msleep(1);
- /* Take MST out of reset */
- gpio_set_level(GPIO_MST_RST_L, 1);
-
- ccprintf("MST lane set: %s, lane_ctrl = %d\n",
- lane == 2 ? "2 lane" : "4 lane",
- gpio_get_level(GPIO_MST_HUB_LANE_SWITCH));
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(dplane, command_dplane,
- "<2 | 4>",
- "MST lane control.");
diff --git a/board/quiche/board.h b/board/quiche/board.h
deleted file mode 100644
index 98feab31f6..0000000000
--- a/board/quiche/board.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* 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.
- */
-
-/* Quiche board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-/*
- * For MP release, CONFIG_SYSTEM_UNLOCKED must be undefined, and
- * CONFIG_FLASH_PSTATE_LOCKED must be defined in order to enable write protect
- * using option bytes WRP registers.
- */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-#undef CONFIG_FLASH_PSTATE_LOCKED
-
-
-/* USB Type C and USB PD defines */
-#define USB_PD_PORT_HOST 0
-#define USB_PD_PORT_DP 1
-#define USB_PD_PORT_USB3 2
-
-/*
- * The host (C0) and display (C1) usbc ports are usb-pd capable. There is
- * also a type-c only port (C2). C2 must be accounted for in PORT_MAX_COUNT so
- * the PPC config table is correctly sized and the PPC driver can be used to
- * control VBUS on/off.
- */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 3
-#define CONFIG_USB_MUX_PS8822
-
-#define CONFIG_USB_PID 0x5048
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-
-/* I2C port names */
-#define I2C_PORT_I2C1 0
-#define I2C_PORT_I2C2 1
-#define I2C_PORT_I2C3 2
-
-/* Required symbolic I2C port names */
-#define I2C_PORT_MP4245 I2C_PORT_I2C3
-#define I2C_PORT_EEPROM I2C_PORT_I2C3
-#define MP4245_I2C_ADDR_FLAGS MP4245_I2C_ADDR_0_FLAGS
-
-/* Include math_util for bitmask_uint64 used in pd_timers */
-#define CONFIG_MATH_UTIL
-
-#ifndef __ASSEMBLER__
-
-#include "registers.h"
-
-#define GPIO_DP_HPD GPIO_DDI_MST_IN_HPD
-#define GPIO_USBC_UF_ATTACHED_SRC GPIO_USBC_UF_MUX_VBUS_EN
-#define GPIO_BPWR_DET GPIO_TP73
-#define GPIO_USB_HUB_OCP_NOTIFY GPIO_USBC_DATA_OCP_NOTIFY
-#define GPIO_UFP_PLUG_DET GPIO_MST_UFP_PLUG_DET
-#define GPIO_PWR_BUTTON_RED GPIO_EC_STATUS_LED1
-#define GPIO_PWR_BUTTON_GREEN GPIO_EC_STATUS_LED2
-
-#define BUTTON_PRESSED_LEVEL 1
-#define BUTTON_RELEASED_LEVEL 0
-
-#define GPIO_TRIGGER_1 GPIO_EC_STATUS_LED1
-#define GPIO_TRIGGER_2 GPIO_EC_STATUS_LED2
-
-enum debug_gpio {
- TRIGGER_1 = 0,
- TRIGGER_2,
-};
-
-/*
- * Function used to control GPIO signals as a timing marker. This is intended to
- * be used for development/debugging purposes.
- *
- * @param trigger GPIO debug signal selection
- * @param level desired level of the debug gpio signal
- * @param pulse_usec pulse width if non-zero
- */
-void board_debug_gpio(enum debug_gpio trigger, int level, int pulse_usec);
-
-/*
- * Function called in power on case to enable usbc related interrupts
- */
-void board_enable_usbc_interrupts(void);
-
-/*
- * Function called in power off case to disable usbc related interrupts
- */
-void board_disable_usbc_interrupts(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/quiche/build.mk b/board/quiche/build.mk
deleted file mode 100644
index 1a8ec0d625..0000000000
--- a/board/quiche/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=stm32
-CHIP_FAMILY:=stm32g4
-CHIP_VARIANT:=stm32g473xc
-BASEBOARD:=honeybuns
-
-board-y=board.o
diff --git a/board/quiche/dev_key.pem b/board/quiche/dev_key.pem
deleted file mode 100644
index 4897ceb44e..0000000000
--- a/board/quiche/dev_key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG4wIBAAKCAYEAyiT9PsD2wW3mhfuxMtihnLDKC+PY9l6j+j405G5Wd3BBtLLl
-2uEoSD8cFQfnVTeFH7wggVf+SMAP3Y2aTnXIfdTX3N0skAdq/kYNUlQAK0xsa3Z7
-bRZ8puvzu+XNqsSS/tvsdYbNE5WC5sXtt7Wkm3mKn7PAti7oQrKbW1beFD0FgdAq
-JoweIdpkuOwDYtFBcF92LWWGziDcEXlc2v5Xj3qvixMLnhy+Ny1Byr2ApVaYZ56H
-JfjHKxbirNj4IrgmhdzfBIKxDf4mGibG0K1aC1io+SixtRV1cS6JRB0D+GS4QIcq
-y9bCMkBeVQLHhSo1UYZqbB7Qef0blQ2sxsXklo8Q5EIQOd6yiXiTelApOWDn3zTi
-uTkUo+99SPDLw/S3sR3uESxt+OYO2Yt6BWe2JSYBhHWB0Xc0PGItq7DUpm2cEWke
-vS91I/lBfqhOxQOvnEx5NM97/RBQMa3jJ5Jv/72X5oU6OcGmaliBJy3Tv0CSiI06
-qgRgWxMym/XA0ui/AgEDAoIBgQCGw1N/K08rnpmup8t3OxZoddwH7TtO6cKm1CNC
-9Dmk9YEjIe6R63AwKhK4r++OJQNqfWsA5VQwgAqTs7w0ToWpOI/ok3MKr5yphAjh
-jVVyMvLyTvzzZFMZ8qJ9Q95x2GH/PUhOWd4NDldEg/PPzm28+7G/zSskH0WBzGeS
-Oeli01kBNXFvCBQWkZh7SAJB4NZK6k7I7lnewJK2UOiR/uUKUcpct10UEyl6Hivc
-flXDjxBFFFoZUITHZJcd5frB0Bh+EiqJ3CnkSIjD4sTnZs/TP8CKhmYriabfBHdH
-j6ffcr5y8VhqDJK/ISSmWQO1c/rSziJLhx/ZrWvWp1FAbRg+kdh+RmV8hYIdEOq8
-PYOiERihd+eHVhtzsc74+cRGxPbaFJ2rpuJt+xk1Zp7IfGyyPWDmvXFKZgX+vo2s
-vJL6q9pPR57uUHL0xsxDrMH3HFxkl1ta5PsiBGXs+zG0EUzNKGtoRTCi176xUWyo
-NG+eWiL9ddeZVBzWeKfJGfwQ53sCgcEA+JE2E5kjvVCasSqERfDfIkSeOKoqWdZ2
-sAvTHibq6+vMBkRubNA0glHcUrMEBblDg3ds2z1A9YvwjwEUq9UFpVH3qfX9vaTX
-lLYFRZjcA3PkCJvFAt5eIlVXp+vgaEo6OcodLjDiqkYKzbMC13k5uM1wsEEwo2vI
-38vhHQlH1PHVTd8pt2Y7mOpDgxOOJLrvwuew7Lj9QSBRZ0EJxqv+1QA4EQ1cPr1H
-hGqggtL0ChLRV7KBHiLz9ggS5vHTEkFNAoHBANAwaSIfTnpAvkMoGy+iQyw0afC0
-7hnwhHKcAzqenT1Mzo3Yt7/zsZE8ywjKPe9C+ZHZyh+W373tCUQRnjpNOpNiVHzi
-ekFxl8kpLhpbB8LTXuRlQmtZjVQPbyuORPGDCzA05GGBN6mnXju+iQEz2WD8f3oY
-Jz5yYl54eAuMsFl5/0yehqBQjRvky5YRna2eNUKBvz+/BgjpZeb0DtLMffcAvrkQ
-FQbAwNvzvagMOEemjLSp9iXjQSNWJAdc86dMOwKBwQCltiQNEMJ+Nbx2HFguoJTB
-gxQlxsbmjvnKsoy+xJydR91ZgvRIis2sNpLhzK1ZJi0CT53nfitOXUsKALhyjgPD
-i/pxTqkpGI+4eVjZEJKs9+1bEoNXPulsOOUanUBFhtF73BN0IJccLrHed1c6UNEl
-3ksgK3XCR9s/3UC+Bi/jS+OJP3Ek7tJl8YJXYl7DJ0qB78tIe1OAwDZE1gaEcqnj
-VXq2COgp04UC8cBXN01cDIuPzFYUF01OsAyZ9oy21jMCgcEAisrwwWo0UYB+13AS
-H8GCHXhGoHieu/Wtob1XfGm+KN3fCTslKqJ2YNMyBdwpSiymYTvcFQ8/0/NbgrZp
-fDN8YkGNqJb8K6EP23DJZudageI/Qu4sR5EI4rT0x7Qt9ldcys3tllYlG8TpfSmw
-q3fmQKhU/BAaKaGW6aWlXQh1kPv/iGmvFYsIvUMyZAu+c77OLFZ/f9SusJuZRKK0
-jIhT+gB/Jgq4rysrPU0pGrLQL8RdzcakGUIrbOQYBOiib4gnAoHAVrvbmZGxyeeA
-oDE2QlXXmd1higPaQe3u+7vmh6itVpJ71n9wmu9xei7IiTOtGDYjHLXa8Qg0y37/
-FVCUiFxhOz05hpnB1ts70tuIWUJbWttMnhZPTpKa1dzZFB6qrlk2o/ONaSfNzpOZ
-FgKxBURFVzNMTlIh7QOZGoOeRg5BkFG5z21g8egYQ/1cY61BhaxJTz93HGKb0jYn
-QnC0WfVF9amWNGwocKATkwjoSVC7rQRsB2FMbY/WCqgE92lXsU9W
------END RSA PRIVATE KEY-----
diff --git a/board/quiche/ec.tasklist b/board/quiche/ec.tasklist
deleted file mode 100644
index cc36bf5a74..0000000000
--- a/board/quiche/ec.tasklist
+++ /dev/null
@@ -1,18 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(POWER_BUTTON, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_INT_C1, pd_interrupt_handler_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(UCPD, ucpd_task, 0, LARGER_TASK_STACK_SIZE)
diff --git a/board/quiche/gpio.inc b/board/quiche/gpio.inc
deleted file mode 100644
index 9514858ca7..0000000000
--- a/board/quiche/gpio.inc
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-#ifdef SECTION_IS_RW
-GPIO_INT(HOST_USBC_PPC_INT_ODL, PIN(D, 9), GPIO_INT_FALLING | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(USBC_DP_MUX_ALERT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-GPIO_INT(USBC_DP_PPC_INT_ODL, PIN(E, 7), GPIO_INT_FALLING | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(DDI_MST_IN_HPD, PIN(C, 14), GPIO_INT_BOTH, hpd_interrupt)
-GPIO_INT(USBC_UF_MUX_VBUS_EN, PIN(C, 12), GPIO_INT_BOTH, board_uf_manage_vbus_interrupt)
-GPIO_INT(PWR_BTN, PIN(A, 0), GPIO_INT_BOTH, board_pwr_btn_interrupt)
-GPIO_INT(USBC_UF_PPC_INT_ODL, PIN(B, 5), GPIO_INT_FALLING | GPIO_PULL_UP, board_usbc_usb3_interrupt)
-#endif
-
-/* Power sequencing signals */
-GPIO(EN_AC_JACK, PIN(A, 1), GPIO_OUT_LOW)
-GPIO(EN_BB, PIN(A, 8), GPIO_OUT_LOW)
-GPIO(EN_PP3300_B, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(EN_PP1200_A, PIN(E, 8), GPIO_OUT_LOW)
-GPIO(EN_PP1100_A, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(EN_PP1050_A, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(EN_PP5000_C, PIN(D, 1), GPIO_OUT_LOW)
-GPIO(EN_PP5000_HSPORT, PIN(D, 0), GPIO_OUT_LOW)
-
-/* MST Hub signals */
-GPIO(MST_LP_CTL_L, PIN(D, 10), GPIO_ODR_LOW)
-GPIO(MST_RST_L, PIN(E, 14), GPIO_ODR_LOW)
-GPIO(MST_HUB_LANE_SWITCH, PIN(C, 15), GPIO_OUT_HIGH)
-GPIO(MST_UFP_PLUG_DET, PIN(B, 12), GPIO_OUT_HIGH)
-
-/* Display Demux signals */
-GPIO(DEMUX_DUAL_DP_MODE, PIN(B, 0), GPIO_OUT_LOW)
-GPIO(DEMUX_DP_HDMI_MODE, PIN(E, 15), GPIO_OUT_LOW)
-GPIO(DEMUX_DUAL_DP_RESET_N, PIN(E, 13), GPIO_ODR_LOW)
-GPIO(DEMUX_DUAL_DP_PD_N, PIN(E, 12), GPIO_ODR_LOW)
-GPIO(DEMUX_DP_HDMI_PD_N, PIN(B, 13), GPIO_ODR_LOW)
-
-/* USBC Mux and Demux Signals */
-GPIO(EN_DP_SINK, PIN(B, 14), GPIO_OUT_LOW)
-GPIO(DP_SINK_RESET, PIN(B, 15), GPIO_OUT_LOW)
-GPIO(USBC_DP_PD_RST_L, PIN(E, 9), GPIO_ODR_LOW)
-GPIO(USBC_UF_RESET_L, PIN(D, 2), GPIO_ODR_LOW)
-
-/* USB Hubs signals */
-GPIO(EC_HUB2_RESET_L, PIN(C, 5), GPIO_ODR_LOW)
-GPIO(EC_HUB3_RESET_L, PIN(B, 10), GPIO_ODR_LOW)
-GPIO(USBC_ALTMODE_OCP_NOTIFY, PIN(F, 0), GPIO_OUT_HIGH)
-GPIO(USBC_DATA_OCP_NOTIFY, PIN(F, 1), GPIO_OUT_HIGH)
-
-/* USB-A Current limit switches, set default to 1.5A */
-GPIO(TP73, PIN(C, 0), GPIO_OUT_LOW)
-GPIO(EC_DFU_MUX_CTRL, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(EC_STATUS_LED1, PIN(C, 1), GPIO_OUT_HIGH)
-GPIO(EC_STATUS_LED2, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(USB3_A5_CDP_EN, PIN(B, 9), GPIO_OUT_LOW)
-GPIO(USB3_A6_CDP_EN, PIN(C, 13), GPIO_OUT_LOW)
-
-/* Write protect */
-GPIO(EC_FLASH_WP_ODL, PIN(A, 3), GPIO_ODR_HIGH)
-GPIO(EC_WP_L, PIN(E, 11), GPIO_INT_BOTH)
-
-/* UART Bus */
-GPIO(EC_UART_TX, PIN(C, 10), GPIO_INT_BOTH)
-GPIO(EC_UART_RX, PIN(C, 11), GPIO_INT_BOTH)
-
-/*
- * I2C SCL/SDA pins. These will normally be under control of the peripheral from
- * alt fucntion setting below. But if a port gets wedged, the unwedge code uses
- * these signals as regular GPIOs.
- */
-GPIO(EC_I2C1_SCL, PIN(A, 15), GPIO_ODR_HIGH)
-GPIO(EC_I2C1_SDA, PIN(B, 7), GPIO_ODR_HIGH)
-GPIO(EC_I2C3_SCL, PIN(C, 8), GPIO_ODR_HIGH)
-GPIO(EC_I2C3_SDA, PIN(C, 9), GPIO_ODR_HIGH)
-
-/* misc signals */
-GPIO(BOOT0, PIN(B, 8), GPIO_INPUT)
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-
-/* USART3_TX/RX GPIOC 10-11*/
-ALTERNATE(PIN_MASK(C, 0x0C00), 7, MODULE_UART, GPIO_PULL_UP)
-/* I2C Ports
- * I2C1: SDA/SCL -> PB7/PA15
- * I2C2: SDA/SCL -> PA8/PA9
- * I2C3: SDA/SCL -> PC8/PC9
- */
-ALTERNATE(PIN_MASK(B, 0x0080), 4, MODULE_I2C, GPIO_OPEN_DRAIN)
-ALTERNATE(PIN_MASK(A, 0X8000), 4, MODULE_I2C, GPIO_OPEN_DRAIN)
-ALTERNATE(PIN_MASK(C, 0x0300), 8, MODULE_I2C, GPIO_OPEN_DRAIN)
-/* GPIOA4-7: SPI Signals */
-ALTERNATE(PIN_MASK(A, 0x00F0), 5, MODULE_SPI, 0)
diff --git a/board/rainier/board.c b/board/rainier/board.c
deleted file mode 100644
index 0f9c388399..0000000000
--- a/board/rainier/board.c
+++ /dev/null
@@ -1,438 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "chipset.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/baro_bmp280.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "timer.h"
-#include "thermal.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-static void overtemp_interrupt(enum gpio_signal signal)
-{
- CPRINTS("AP wants shutdown");
- chipset_force_shutdown(CHIPSET_SHUTDOWN_THERMAL);
-}
-
-static void warm_reset_request_interrupt(enum gpio_signal signal)
-{
- CPRINTS("AP wants warm reset");
- chipset_reset(CHIPSET_RESET_AP_REQ);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 16, 4096, 0, STM32_AIN(10)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_PP1250_S3_PG, POWER_SIGNAL_ACTIVE_HIGH, "PP1250_S3_PWR_GOOD"},
- {GPIO_PP900_S0_PG, POWER_SIGNAL_ACTIVE_HIGH, "PP900_S0_PWR_GOOD"},
- {GPIO_AP_CORE_PG, POWER_SIGNAL_ACTIVE_HIGH, "AP_PWR_GOOD"},
- {GPIO_AP_EC_S3_S0_L, POWER_SIGNAL_ACTIVE_LOW, "SUSPEND_DEASSERTED"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-#ifdef CONFIG_TEMP_SENSOR_TMP432
-/* Temperature sensors data; must be in same order as enum temp_sensor_id. */
-const struct temp_sensor_t temp_sensors[] = {
- {"TMP432_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_LOCAL, 4},
- {"TMP432_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE1, 4},
- {"TMP432_Sensor_2", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE2, 4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Thermal limits for each temp sensor. All temps are in degrees K. Must be in
- * same order as enum temp_sensor_id. To always ignore any temp, use 0.
- */
-struct ec_thermal_config thermal_params[] = {
- {{0, 0, 0}, 0, 0}, /* TMP432_Internal */
- {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_1 */
- {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_2 */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-#endif
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 1, GPIO_SPI_ACCEL_CS_L },
- { CONFIG_SPI_ACCEL_PORT, 1, GPIO_SPI_BARO_CS_L },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* Wake-up pins for hibernate */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_POWER_BUTTON_L, GPIO_CHARGER_INT_L
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
-};
-
-void board_reset_pd_mcu(void)
-{
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_L))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-int board_set_active_charge_port(int charge_port)
-{
- /*
- * NOP because there is no internal power therefore no charging.
- * Placeholder so common/charge_manager.c is built.
- */
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * NOP because there is no internal power therefore no charging.
- * Placeholder so common/charge_manager.c is built.
- */
-}
-
-int extpower_is_present(void)
-{
- /* There is no internal power on this board. */
- return 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* Must be, if we're at a stage where this function is called. */
- return 1;
-}
-
-static void board_spi_enable(void)
-{
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- spi_enable(&spi_devices[0], 0);
-
- /* Disable clocks to SPI2 module */
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-
-static void board_init(void)
-{
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_L);
-
- /* Enable reboot / shutdown control inputs from AP */
- gpio_enable_interrupt(GPIO_WARM_RESET_REQ);
- gpio_enable_interrupt(GPIO_AP_OVERTEMP);
-
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_L);
-
- /* Set SPI2 pins to high speed */
- /* pins D0/D1/D3/D4 */
- STM32_GPIO_OSPEEDR(GPIO_D) |= 0x000003cf;
-
- /* Sensor Init */
- if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON))
- board_spi_enable();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_config_pre_init(void)
-{
- STM32_RCC_AHBENR |= STM32_RCC_HB_DMA1;
- /*
- * Remap USART1 and SPI2 DMA:
- *
- * Ch4: USART1_TX / Ch5: USART1_RX (1000)
- * Ch6: SPI2_RX / Ch7: SPI2_TX (0011)
- */
- STM32_DMA_CSELR(STM32_DMAC_CH4) = (8 << 12) | (8 << 16) |
- (3 << 20) | (3 << 24);
-}
-
-void board_hibernate(void)
-{
- int rv;
-
- /*
- * Disable the power enables for the TCPCs since we're going into
- * hibernate. The charger VBUS interrupt will wake us up and reset the
- * EC. Upon init, we'll reinitialize the TCPCs to be at full power.
- */
- CPRINTS("Set TCPCs to low power");
- rv = tcpc_write(0, TCPC_REG_POWER, TCPC_REG_POWER_PWR_LOW);
- if (rv)
- CPRINTS("Error setting TCPC %d", 0);
-
- cflush();
-}
-
-enum rainier_board_version {
- BOARD_VERSION_UNKNOWN = -1,
- BOARD_VERSION_REV0 = 0,
- BOARD_VERSION_REV1 = 1,
- BOARD_VERSION_REV2 = 2,
- BOARD_VERSION_REV3 = 3,
- BOARD_VERSION_REV4 = 4,
- BOARD_VERSION_REV5 = 5,
- BOARD_VERSION_REV6 = 6,
- BOARD_VERSION_REV7 = 7,
- BOARD_VERSION_REV8 = 8,
- BOARD_VERSION_REV9 = 9,
- BOARD_VERSION_REV10 = 10,
- BOARD_VERSION_REV11 = 11,
- BOARD_VERSION_REV12 = 12,
- BOARD_VERSION_REV13 = 13,
- BOARD_VERSION_REV14 = 14,
- BOARD_VERSION_REV15 = 15,
- BOARD_VERSION_COUNT,
-};
-
-struct {
- enum rainier_board_version version;
- int expect_mv;
-} const rainier_boards[] = {
- { BOARD_VERSION_REV0, 109 }, /* 51.1K , 2.2K(gru 3.3K) ohm */
- { BOARD_VERSION_REV1, 211 }, /* 51.1k , 6.8K ohm */
- { BOARD_VERSION_REV2, 319 }, /* 51.1K , 11K ohm */
- { BOARD_VERSION_REV3, 427 }, /* 56K , 17.4K ohm */
- { BOARD_VERSION_REV4, 542 }, /* 51.1K , 22K ohm */
- { BOARD_VERSION_REV5, 666 }, /* 51.1K , 30K ohm */
- { BOARD_VERSION_REV6, 781 }, /* 51.1K , 39.2K ohm */
- { BOARD_VERSION_REV7, 900 }, /* 56K , 56K ohm */
- { BOARD_VERSION_REV8, 1023 }, /* 47K , 61.9K ohm */
- { BOARD_VERSION_REV9, 1137 }, /* 47K , 80.6K ohm */
- { BOARD_VERSION_REV10, 1240 }, /* 56K , 124K ohm */
- { BOARD_VERSION_REV11, 1343 }, /* 51.1K , 150K ohm */
- { BOARD_VERSION_REV12, 1457 }, /* 47K , 200K ohm */
- { BOARD_VERSION_REV13, 1576 }, /* 47K , 330K ohm */
- { BOARD_VERSION_REV14, 1684 }, /* 47K , 680K ohm */
- { BOARD_VERSION_REV15, 1800 }, /* 56K , NC */
-};
-BUILD_ASSERT(ARRAY_SIZE(rainier_boards) == BOARD_VERSION_COUNT);
-
-#define THRESHOLD_MV 56 /* Simply assume 1800/16/2 */
-
-int board_get_version(void)
-{
- static int version = BOARD_VERSION_UNKNOWN;
- int mv;
- int i;
-
- if (version != BOARD_VERSION_UNKNOWN)
- return version;
-
- gpio_set_level(GPIO_EC_BOARD_ID_EN_L, 0);
- /* Wait to allow cap charge */
- msleep(10);
- mv = adc_read_channel(ADC_BOARD_ID);
-
- if (mv == ADC_READ_ERROR)
- mv = adc_read_channel(ADC_BOARD_ID);
-
- gpio_set_level(GPIO_EC_BOARD_ID_EN_L, 1);
-
- for (i = 0; i < BOARD_VERSION_COUNT; ++i) {
- if (mv < rainier_boards[i].expect_mv + THRESHOLD_MV) {
- version = rainier_boards[i].version;
- break;
- }
- }
-
- return version;
-}
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_base_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static struct bmp280_drv_data_t bmp280_drv_data;
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* Enable accel in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [LID_BARO] = {
- .name = "Baro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMP280,
- .type = MOTIONSENSE_TYPE_BARO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmp280_drv,
- .drv_data = &bmp280_drv_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = BIT(18), /* 1bit = 4 Pa, 16bit ~= 2600 hPa */
- .min_frequency = BMP280_BARO_MIN_FREQ,
- .max_frequency = BMP280_BARO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-int board_allow_i2c_passthru(int port)
-{
- /*
- * Battery port is the only port passthru is allowed on and this board
- * does not have a battery, therefore always return false.
- */
- return 0;
-}
-
-int charge_prevent_power_on(int power_button_pressed)
-{
- /* Assume there is always sufficient power from charger to power on. */
- return 0;
-}
diff --git a/board/rainier/board.h b/board/rainier/board.h
deleted file mode 100644
index a323a90889..0000000000
--- a/board/rainier/board.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Configuration for Rainier */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Optional modules */
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-#define CONFIG_CHIPSET_RK3399
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_RTC
-#define CONFIG_HOSTCMD_RTC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_I2C_PASSTHRU_RESTRICTED
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_STM_HWTIMER32
-/* Source RTCCLK from external 32.768kHz source on PC15/OSC32_IN. */
-#define CONFIG_STM32_CLOCK_LSE
-#define CONFIG_SWITCH
-#define CONFIG_WATCHDOG_HELP
-
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands for testing */
-
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-
-/* Region sizes are no longer a power of 2 so we can't enable MPU */
-#undef CONFIG_MPU
-
-/* Enable a different power-on sequence than the one on gru */
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-/* Optional features */
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-#define CONFIG_CHARGER_ILIM_PIN_DISABLED
-#define CONFIG_FORCE_CONSOLE_RESUME
-#define CONFIG_HOST_COMMAND_STATUS
-
-/* By default, set hcdebug to off */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_LTO
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VOLUME_BUTTONS
-
-#define CONFIG_USB_MUX_VIRTUAL
-
-/* Increase tx buffer size, as we'd like to stream EC log to AP. */
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Motion Sensors */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define CONFIG_BARO_BMP280
-
-/* To be able to indicate the device is in tablet mode. */
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs. */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensors without hardware FIFO are in forced mode. */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_BARO)
-
-/* USB PD config */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-#define CONFIG_USB_PD_COMM_LOCKED
-
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW ((PD_MAX_VOLTAGE_MV * PD_MAX_CURRENT_MA) / 1000)
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 12850
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 50000 /* us */
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 7
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Optional for testing */
-#undef CONFIG_PECI
-#undef CONFIG_PSTORE
-
-#define CONFIG_TASK_PROFILING
-
-#define I2C_PORT_TCPC0 1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-/* Define the host events which are allowed to wakeup AP in S3. */
-#define CONFIG_MKBP_HOST_EVENT_WAKEUP_MASK \
- (EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_RTC))
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- PP1250_S3_PWR_GOOD = 0,
- PP900_S0_PWR_GOOD,
- AP_PWR_GOOD,
- SUSPEND_DEASSERTED,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- LID_BARO,
- SENSOR_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/rainier/build.mk b/board/rainier/build.mk
deleted file mode 100644
index b77a900d56..0000000000
--- a/board/rainier/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-
-board-y=board.o usb_pd_policy.o
diff --git a/board/rainier/ec.tasklist b/board/rainier/ec.tasklist
deleted file mode 100644
index ed574a1d6a..0000000000
--- a/board/rainier/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE)
-
diff --git a/board/rainier/gpio.inc b/board/rainier/gpio.inc
deleted file mode 100644
index f5a4f360b3..0000000000
--- a/board/rainier/gpio.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH,
- spi_event)
-GPIO_INT(USB_C0_PD_INT_L, PIN(C, 13), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(VOLUME_UP_L, PIN(D, 10), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(E, 11), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt)
-GPIO_INT(PP1250_S3_PG, PIN(D, 8), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_signal_interrupt)
-GPIO_INT(PP900_S0_PG, PIN(D, 9), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_signal_interrupt)
-GPIO_INT(AP_EC_S3_S0_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(E, 1), GPIO_INT_RISING | GPIO_PULL_DOWN,
- warm_reset_request_interrupt)
-GPIO_INT(AP_OVERTEMP, PIN(E, 4), GPIO_INT_RISING | GPIO_PULL_DOWN,
- overtemp_interrupt)
-GPIO_INT(ACCEL_INT_L, PIN(D, 14), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- bmi160_interrupt)
-
-/* Voltage rails control pins */
-GPIO(PP1800_S0_EN, PIN(D, 11), GPIO_OUT_LOW)
-GPIO(AP_CORE_EN, PIN(C, 1), GPIO_OUT_LOW)
-GPIO(PP3300_S0_EN, PIN(E, 12), GPIO_OUT_LOW)
-GPIO(PP1800_USB_EN, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(PP900_S0_EN, PIN(E, 8), GPIO_OUT_LOW)
-GPIO(PP1250_S3_EN, PIN(D, 13), GPIO_OUT_LOW)
-GPIO(PP1800_S3_EN, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(PP3300_S3_EN, PIN(E, 2), GPIO_OUT_LOW)
-GPIO(PP900_S3_EN, PIN(E, 10), GPIO_OUT_LOW)
-
-GPIO(PP3300_REDUCE_EFF_L, PIN(D, 12), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C0_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C0_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C1_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 11), GPIO_INPUT)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-
-/* SPI sensors */
-GPIO(SPI_BARO_CS_L, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(SPI_ACCEL_CS_L, PIN(D, 0), GPIO_OUT_HIGH)
-
-/* Other input pins */
-GPIO(WP_L, PIN(E, 5), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(C, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(CHARGER_INT_L, PIN(E, 6), GPIO_INPUT | GPIO_PULL_UP)
-/* Non-INT power signal pin */
-GPIO(AP_CORE_PG, PIN(D, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-
-
-/* Other output pins */
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH)
-GPIO(SYS_RST_L, PIN(C, 8), GPIO_ODR_HIGH)
-GPIO(EC_INT_L, PIN(E, 3), GPIO_ODR_HIGH)
-GPIO(EC_BOARD_ID_EN_L, PIN(F, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_DISCHARGE, PIN(A, 11), GPIO_OUT_LOW)
-GPIO(PCA9468_EN, PIN(E, 15), GPIO_OUT_LOW)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, 0)
-/* I2C MASTER: PB10/11 */
-ALTERNATE(PIN_MASK(B, 0x0c00), 1, MODULE_I2C, 0)
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-/* SPI MASTER: PD1/3/4 */
-ALTERNATE(PIN_MASK(D, 0x001a), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/rainier/usb_pd_policy.c b/board/rainier/usb_pd_policy.c
deleted file mode 100644
index 6de1dc9271..0000000000
--- a/board/rainier/usb_pd_policy.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "atomic.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en;
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en;
-}
-
-int pd_set_power_supply_ready(int port)
-{
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en = 1;
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en;
- /* Disable VBUS */
- vbus_en = 0;
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /*
- * VCONN is provided directly by the battery (PPVAR_SYS)
- * but use the same rules as power swap.
- */
- return pd_get_dual_role(port) == PD_DRP_TOGGLE_ON ? 1 : 0;
-}
diff --git a/board/rainier/vif_override.xml b/board/rainier/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/rainier/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/rammus/battery.c b/board/rammus/battery.c
deleted file mode 100644
index 916aac5fd3..0000000000
--- a/board/rammus/battery.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Copyright 2018 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.
- *
- * Placeholder values for temporary battery pack.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "util.h"
-
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-
-/* Shutdown mode parameters to write to manufacturer access register */
-#define SB_SHIP_MODE_REG SB_MANUFACTURER_ACCESS
-#define SB_SHUTDOWN_DATA 0x0010
-
-static const struct battery_info info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- /* Pre-charge values. */
- .precharge_current = 256, /* mA */
-
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-const struct battery_info *battery_get_info(void)
-{
- return &info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(SB_SHIP_MODE_REG, SB_SHUTDOWN_DATA);
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_BATT_PRES_L) ? BP_NO : BP_YES;
-}
-
-static int battery_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- !!(batt_status & STATUS_INITIALIZED);
-}
-
-/*
- * Check for case where both XCHG and XDSG bits are set indicating that even
- * though the FG can be read from the battery, the battery is not able to be
- * charged or discharged. This situation will happen if a battery disconnect was
- * intiaited via H1 setting the DISCONN signal to the battery. This will put the
- * battery pack into a sleep state and when power is reconnected, the FG can be
- * read, but the battery is still not able to provide power to the system. The
- * calling function returns batt_pres = BP_NO, which instructs the charging
- * state machine to prevent powering up the AP on battery alone which could lead
- * to a brownout event when the battery isn't able yet to provide power to the
- * system. .
- */
-static int battery_check_disconnect(void)
-{
- int rv;
- uint8_t data[6];
-
- /* Check if battery charging + discharging is disabled. */
- rv = sb_read_mfgacc(PARAM_OPERATION_STATUS,
- SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data));
- if (rv)
- return BATTERY_DISCONNECT_ERROR;
-
- if ((data[3] & (BATTERY_DISCHARGING_DISABLED |
- BATTERY_CHARGING_DISABLED)) ==
- (BATTERY_DISCHARGING_DISABLED | BATTERY_CHARGING_DISABLED))
- return BATTERY_DISCONNECTED;
-
- return BATTERY_NOT_DISCONNECTED;
-}
-
-enum battery_present battery_is_present(void)
-{
- enum battery_present batt_pres;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * Make sure battery status is implemented, I2C transactions are
- * successful & the battery status is initialized to find out if it
- * is a working battery and it is not in the cut-off mode.
- *
- * If battery I2C fails but VBATT is high, battery is booting from
- * cut-off mode.
- *
- * FETs are turned off after Power Shutdown time.
- * The device will wake up when a voltage is applied to PACK.
- * Battery status will be inactive until it is initialized.
- */
- if (batt_pres == BP_YES && batt_pres_prev != batt_pres &&
- (battery_is_cut_off() != BATTERY_CUTOFF_STATE_NORMAL ||
- battery_check_disconnect() != BATTERY_NOT_DISCONNECTED ||
- battery_init() == 0)) {
- batt_pres = BP_NO;
- }
-
- batt_pres_prev = batt_pres;
- return batt_pres;
-}
-
diff --git a/board/rammus/board.c b/board/rammus/board.c
deleted file mode 100644
index c4e32a9791..0000000000
--- a/board/rammus/board.c
+++ /dev/null
@@ -1,837 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Rammus board-specific configuration */
-
-#include "adc.h"
-#include "anx7447.h"
-#include "bd99992gw.h"
-#include "board_config.h"
-#include "button.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "driver/temp_sensor/bd99992gw.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_lid.h"
-#include "motion_sense.h"
-#include "pi3usb9281.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-#include "espi.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-#define USB_PD_PORT_PS8751 1
-#define USB_PD_PORT_ANX7447 0
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-/* Set PD discharge whenever VBUS detection is high (i.e. below threshold). */
-static void vbus_discharge_handler(void)
-{
- pd_set_vbus_discharge(0, gpio_get_level(GPIO_USB_C0_VBUS_DET_L));
- pd_set_vbus_discharge(1, gpio_get_level(GPIO_USB_C1_VBUS_DET_L));
-}
-DECLARE_DEFERRED(vbus_discharge_handler);
-
-void vbus0_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(0, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C0);
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void vbus1_evt(enum gpio_signal signal)
-{
- /* VBUS present GPIO is inverted */
- usb_charger_vbus_change(1, !gpio_get_level(signal));
- task_wake(TASK_ID_PD_C1);
- hook_call_deferred(&vbus_discharge_handler_data, 0);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-#include "gpio_list.h"
-
-/* Hibernate wake configuration */
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Vbus sensing (10x voltage divider). */
- [ADC_VBUS] = {"VBUS", NPCX_ADC_CH2, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0},
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {"AMON_BMON", NPCX_ADC_CH1, ADC_MAX_VOLT*1000/18,
- ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"i2c_0_0", NPCX_I2C_PORT0_0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
- {"i2c_0_1", NPCX_I2C_PORT0_1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
- {"i2c_1", NPCX_I2C_PORT1, 100, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"i2c_2", NPCX_I2C_PORT2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"i2c_3", NPCX_I2C_PORT3, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Charger Chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPC mux configuration */
-struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_PS8751] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- [USB_PD_PORT_ANX7447] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- /* Verified on v1.1 */
- .addr_flags = AN7447_TCPC3_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_PS8751] = {
- .usb_port = USB_PD_PORT_PS8751,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_ANX7447] = {
- .usb_port = USB_PD_PORT_ANX7447,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- }
-};
-
-struct pi3usb9281_config pi3usb9281_chips[] = {
- [USB_PD_PORT_PS8751] = {
- .i2c_port = I2C_PORT_USB_CHARGER_1,
- .mux_lock = NULL,
- },
- [USB_PD_PORT_ANX7447] = {
- .i2c_port = I2C_PORT_USB_CHARGER_0,
- .mux_lock = NULL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
- CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT);
-
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-void board_reset_pd_mcu(void)
-{
- /* Assert reset */
- gpio_set_level(GPIO_USB_PD_RST_C0, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 0);
- msleep(1);
- gpio_set_level(GPIO_USB_PD_RST_C0, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 1);
- /* After TEST_R release, anx7447/3447 needs 2ms to finish eFuse
- * loading.
- */
- msleep(2);
-}
-
-/*
- * Read CBI data from EEPROM via i2c and remap the ps8751 i2c port
- */
-static void ps8751_i2c_remap(void)
-{
- uint32_t board_version;
-
- if (cbi_get_board_version(&board_version) != EC_SUCCESS ||
- board_version > 1)
- return;
- /*
- * Due to b/118063849, we separate the ps8751 and anx3447 to
- * different i2c bus which start from board_version >= 2.
- * For the board_version <= 1, the ps8751 and anx3447 TCPC
- * use the same i2c bus. Thus, reconfig the ps8751 i2c port
- * to i2c_0_0.
- */
- tcpc_config[USB_PD_PORT_PS8751].i2c_info.port = I2C_PORT_TCPC0;
-}
-
-void board_tcpc_init(void)
-{
- ps8751_i2c_remap();
-
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
- }
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (!gpio_get_level(GPIO_USB_PD_RST_C0))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0},
-
- /* These BD99992GW temp sensors are only readable in S0 */
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM0},
- {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM1},
- {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM2},
- {"eMMC", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
- BD99992GW_ADC_CHANNEL_SYSTHERM3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Check if PMIC fault registers indicate VR fault. If yes, print out fault
- * register info to console. Additionally, set panic reason so that the OS can
- * check for fault register info by looking at offset 0x14(PWRSTAT1) and
- * 0x15(PWRSTAT2) in cros ec panicinfo.
- */
-static void board_report_pmic_fault(const char *str)
-{
- int vrfault, pwrstat1 = 0, pwrstat2 = 0;
- uint32_t info;
-
- /* RESETIRQ1 -- Bit 4: VRFAULT */
- if (i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, &vrfault)
- != EC_SUCCESS)
- return;
-
- if (!(vrfault & BIT(4)))
- return;
-
- /* VRFAULT has occurred, print VRFAULT status bits. */
-
- /* PWRSTAT1 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, &pwrstat1);
-
- /* PWRSTAT2 */
- i2c_read8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, &pwrstat2);
-
- CPRINTS("PMIC VRFAULT: %s", str);
- CPRINTS("PMIC VRFAULT: PWRSTAT1=0x%02x PWRSTAT2=0x%02x", pwrstat1,
- pwrstat2);
-
- /* Clear all faults -- Write 1 to clear. */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x8, BIT(4));
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x16, pwrstat1);
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x17, pwrstat2);
-
- /*
- * Status of the fault registers can be checked in the OS by looking at
- * offset 0x14(PWRSTAT1) and 0x15(PWRSTAT2) in cros ec panicinfo.
- */
- info = ((pwrstat2 & 0xFF) << 8) | (pwrstat1 & 0xFF);
- panic_set_reason(PANIC_SW_PMIC_FAULT, info, 0);
-}
-
-static void board_pmic_disable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (0) - Disable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x3a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x2a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (00) - Disable low power mode on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x3a);
-}
-
-static void board_pmic_enable_slp_s0_vr_decay(void)
-{
- /*
- * VCCIOCNT:
- * Bit 6 (1) - Enable decay of VCCIO on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal output voltage: 0.850V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x30, 0x7a);
-
- /*
- * V18ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (10) - Nominal voltage set to 1.8V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x34, 0x6a);
-
- /*
- * V085ACNT:
- * Bits 7:6 (01) - Enable low power mode on SLP_S0# assertion
- * Bits 5:4 (11) - Nominal voltage 1.0V
- * Bits 3:2 (10) - VR set to AUTO on SLP_S0# de-assertion
- * Bits 1:0 (10) - VR set to AUTO operating mode
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x38, 0x7a);
-}
-
-__override void power_board_handle_host_sleep_event(
- enum host_sleep_event state)
-{
- if (state == HOST_SLEEP_EVENT_S0IX_SUSPEND)
- board_pmic_enable_slp_s0_vr_decay();
- else if (state == HOST_SLEEP_EVENT_S0IX_RESUME)
- board_pmic_disable_slp_s0_vr_decay();
-}
-
-static void board_pmic_init(void)
-{
- board_report_pmic_fault("SYSJUMP");
-
- if (system_jumped_late())
- return;
-
- /*
- * DISCHGCNT2 - enable 100 ohm discharge on
- * V5A_DS3/V33A_DSW/V33A_PCH/V1.8A
- */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3d, 0x55);
- /* DISCHGCNT3 - enable 100 ohm discharge on V1.8U_25U/V1.00A */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3e, 0x44);
- /* DISCHGCNT4 - enable 100 ohm discharge on v1.8S */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3f, 0x04);
-
- board_pmic_disable_slp_s0_vr_decay();
-
- /* VRMODECTRL - disable low-power mode for all rails */
- i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x3b, 0x1f);
-}
-DECLARE_DEFERRED(board_pmic_init);
-
-/* Initialize board. */
-static void board_init(void)
-{
- /*
- * This enables pull-down on F_DIO1 (SPI MISO), and F_DIO0 (SPI MOSI),
- * whenever the EC is not doing SPI flash transactions. This avoids
- * floating SPI buffer input (MISO), which causes power leakage (see
- * b/64797021).
- */
- NPCX_PUPD_EN1 |= BIT(NPCX_DEVPU1_F_SPI_PUD_EN);
-
- /* Provide AC status to the PCH */
- gpio_set_level(GPIO_PCH_ACPRESENT, extpower_is_present());
-
- /* Enable sensors power supply */
- gpio_set_level(GPIO_EN_PP1800_DX_SENSOR, 1);
-
- /* Enable VBUS interrupt */
- gpio_enable_interrupt(GPIO_USB_C0_VBUS_DET_L);
- gpio_enable_interrupt(GPIO_USB_C1_VBUS_DET_L);
-
- /* Enable pericom BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Initialize PMIC */
- hook_call_deferred(&board_pmic_init_data, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void usb_charge_mode_init(void)
-{
- /*
- * By default, turn the charging off when system suspends.
- * If system power on with connecting a USB device,
- * the OS must send an event to EC to clear the
- * inhibit_charging_in_suspend.
- */
- usb_charge_set_mode(0, CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE,
- USB_DISALLOW_SUSPEND_CHARGE);
-}
-DECLARE_HOOK(HOOK_INIT, usb_charge_mode_init, HOOK_PRIO_DEFAULT + 1);
-
-/**
- * Buffer the AC present GPIO to the PCH.
- */
-static void board_extpower(void)
-{
- gpio_set_level(GPIO_PCH_ACPRESENT, extpower_is_present());
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- /* charge port is a physical port */
- int is_real_port = (charge_port >= 0 &&
- charge_port < CONFIG_USB_PD_PORT_MAX_COUNT);
- /* check if we are source VBUS on the port */
- int source = gpio_get_level(charge_port == 0 ? GPIO_USB_C0_5V_EN :
- GPIO_USB_C1_5V_EN);
-
- if (is_real_port && source) {
- CPRINTF("Skip enable p%d", charge_port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTF("New chg p%d", charge_port);
-
- if (charge_port == CHARGE_PORT_NONE) {
- /* Disable both ports */
- gpio_set_level(GPIO_EN_USB_C0_CHARGE_EC_L, 1);
- gpio_set_level(GPIO_EN_USB_C1_CHARGE_EC_L, 1);
- } else {
- /* Make sure non-charging port is disabled */
- gpio_set_level(charge_port ? GPIO_EN_USB_C0_CHARGE_EC_L :
- GPIO_EN_USB_C1_CHARGE_EC_L, 1);
- /* Enable charging port */
- gpio_set_level(charge_port ? GPIO_EN_USB_C1_CHARGE_EC_L :
- GPIO_EN_USB_C0_CHARGE_EC_L, 0);
- }
-
- return EC_SUCCESS;
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Limit the input current to 96% negotiated limit,
- * to account for the charger chip margin.
- */
- charge_ma = charge_ma * 96 / 100;
- charge_set_input_current_limit(
- MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-void board_hibernate(void)
-{
- CPRINTS("Triggering PMIC shutdown.");
- uart_flush_output();
-
- /* Trigger PMIC shutdown. */
- if (i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992_FLAGS, 0x49, 0x01)) {
- /*
- * If we can't tell the PMIC to shutdown, instead reset
- * and don't start the AP. Hopefully we'll be able to
- * communicate with the PMIC next time.
- */
- CPRINTS("PMIC i2c failed.");
- system_reset(SYSTEM_RESET_LEAVE_AP_OFF);
- }
-
- /* Await shutdown. */
- while (1)
- ;
-}
-
-const struct pwm_t pwm_channels[] = {
- /*
- * 1.2kHz is a multiple of both 50 and 60. So a video recorder
- * (generally designed to ignore either 50 or 60 Hz flicker) will not
- * alias with refresh rate.
- */
- [PWM_CH_KBLIGHT] = { 4, 0, 1200 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Lid Sensor mutex */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-static struct kionix_accel_data g_kx022_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0 },
- { 0, FLOAT_TO_FP(-1), 0 },
- { 0, 0, FLOAT_TO_FP(-1) }
-};
-
-const mat33_fp_t base_standard_ref_icm = {
- { 0, FLOAT_TO_FP(1), 0 },
- { FLOAT_TO_FP(1), 0, 0 },
- { 0, 0, FLOAT_TO_FP(-1) }
-};
-
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0 },
- { 0, FLOAT_TO_FP(1), 0 },
- { 0, 0, FLOAT_TO_FP(-1) }
-};
-
-struct motion_sensor_t base_accel_icm = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-struct motion_sensor_t base_gyro_icm = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t lid_accel_kx022 = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-static void board_detect_motionsense(void)
-{
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LID_KX022) {
- motion_sensors[LID_ACCEL] = lid_accel_kx022;
- ccprints("LID_ACCEL is KX022");
- } else
- ccprints("LID_ACCEL is BMA253");
-
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX) {
- motion_sensors[BASE_ACCEL] = base_accel_icm;
- motion_sensors[BASE_GYRO] = base_gyro_icm;
- ccprints("BASE_ACCEL is ICM426XX");
- } else
- ccprints("BASE_ACCEL is BMI160");
-}
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsense, HOOK_PRIO_DEFAULT);
-
-/* Enable or disable input devices, based on chipset state and tablet mode */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /* If the lid is in 360 position, ignore the lid angle,
- * which might be faulty. Disable keyboard.
- */
- if (tablet_get_mode() || chipset_in_state(CHIPSET_STATE_ANY_OFF))
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-static void board_chipset_reset(void)
-{
- board_report_pmic_fault("CHIPSET RESET");
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESET, board_chipset_reset, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- gpio_set_level(GPIO_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- gpio_set_level(GPIO_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_PP3300_TRACKPAD, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_PP3300_TRACKPAD, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
diff --git a/board/rammus/board.h b/board/rammus/board.h
deleted file mode 100644
index dc2ae71de8..0000000000
--- a/board/rammus/board.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Rammus board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_BOARD_FORCE_RESET_PIN
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_DPTF
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#undef CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_CHIP_PANIC_BACKUP
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25X40
-#define CONFIG_VBOOT_HASH
-#define CONFIG_SHA256_UNROLLED
-#define CONFIG_VOLUME_BUTTONS
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_WATCHDOG_HELP
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND \
- (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
-#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
-#define WIRELESS_GPIO_WLAN_POWER GPIO_EN_PP3300_DX_WLAN
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BUTTON
-
-/* Port80 */
-#undef CONFIG_PORT80_HISTORY_LEN
-#define CONFIG_PORT80_HISTORY_LEN 256
-
-/* SOC */
-#define CONFIG_CHIPSET_SKYLAKE
-#define CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-#define CONFIG_HOSTCMD_FLASH_SPI_INFO
-
-/* Battery */
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_SMART
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_HW /* This, or just RAMP? */
-
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_ISL9238
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_PSYS
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_INVERTED
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A_CHARGE_EN_L
-
-/* Sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_BD99992GW
-#define CONFIG_THERMISTOR_NCP15WB
-
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_KX022
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#undef CONFIG_SENSOR_TIGHT_TIMESTAMPS
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 1024
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE
-
-/* USB */
-#define CONFIG_USB_CHARGER
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-/* TODO(b:121222079): Remove the config before FSI */
-#define CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#define CONFIG_USB_PD_TCPM_MUX
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_OCM_ERASE_COMMAND
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* BC 1.2 charger */
-#define CONFIG_BC12_DETECT_PI3USB9281
-#define CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT 2
-
-/* Optional feature to configure npcx chip */
-#define NPCX_UART_MODULE2 1 /* 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 as JTAG */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT0_0
-#define I2C_PORT_TCPC1 NPCX_I2C_PORT0_1
-#define I2C_PORT_USB_CHARGER_1 NPCX_I2C_PORT0_1
-#define I2C_PORT_USB_CHARGER_0 NPCX_I2C_PORT1
-#define I2C_PORT_CHARGER NPCX_I2C_PORT1
-#define I2C_PORT_EEPROM NPCX_I2C_PORT0_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT1
-#define I2C_PORT_PMIC NPCX_I2C_PORT2
-#define I2C_PORT_MP2949 NPCX_I2C_PORT2
-#define I2C_PORT_GYRO NPCX_I2C_PORT3
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-#define I2C_PORT_THERMAL I2C_PORT_PMIC
-
-/* I2C addresses */
-#define I2C_ADDR_BD99992_FLAGS 0x30
-#define I2C_ADDR_MP2949_FLAGS 0x20
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-/* Rename GPIOs */
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_SUS_L GPIO_SLP_SUS_L_PCH
-#define GPIO_RSMRST_L_PGOOD GPIO_ROP_EC_RSMRST_L
-#define GPIO_PMIC_DPWROK GPIO_ROP_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_PWR_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN
-#define GPIO_AC_PRESENT GPIO_ROP_EC_ACOK
-#define GPIO_ENABLE_BACKLIGHT GPIO_BL_DISABLE_L
-#define GPIO_CPU_PROCHOT GPIO_PCH_PROCHOT
-#define GPIO_PCH_PWRBTN_L GPIO_PCH_PWR_BTN_L
-#define GPIO_EC_PLATFORM_RST GPIO_PLATFORM_RST
-#define GPIO_PMIC_SLP_SUS_L GPIO_SLP_SUS_L_PMIC
-#define GPIO_USB_C0_5V_EN GPIO_EN_USB_C0_5V_OUT
-#define GPIO_USB_C1_5V_EN GPIO_EN_USB_C1_5V_OUT
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY, /* Smart Battery Temperature */
- TEMP_SENSOR_AMBIENT, /* BD99992GW SYSTHERM0 */
- TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
- TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
- TEMP_SENSOR_EMMC, /* BD99992GW SYSTHERM3 */
- TEMP_SENSOR_COUNT
-};
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-/* TODO(crosbug.com/p/61098): Verify the numbers below. */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Board specific handlers */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-void motion_interrupt(enum gpio_signal signal);
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/rammus/build.mk b/board/rammus/build.mk
deleted file mode 100644
index 5a9cabdcae..0000000000
--- a/board/rammus/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o cbi_ssfc.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_LED_COMMON)+=led.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/rammus/cbi_ssfc.c b/board/rammus/cbi_ssfc.c
deleted file mode 100644
index e1f6fa4bd2..0000000000
--- a/board/rammus/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union rammus_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_INIT_I2C+1);
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return cached_ssfc.lid_sensor;
-}
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return cached_ssfc.base_sensor;
-}
diff --git a/board/rammus/cbi_ssfc.h b/board/rammus/cbi_ssfc.h
deleted file mode 100644
index 2ca20f2376..0000000000
--- a/board/rammus/cbi_ssfc.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _RAMMUS_CBI_SSFC__H_
-#define _RAMMUS_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Rammus CBI Second Source Factory Cache
- */
-
-/*
- * Lid Sensor (Bits 2-0)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_LID_BMA255 = 1,
- SSFC_SENSOR_LID_KX022 = 2
-};
-
-/*
- * Base Sensor (Bits 5-3)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BASE_BMI160 = 1,
- SSFC_SENSOR_BASE_ICM426XX = 2,
-};
-
-union rammus_cbi_ssfc {
- struct {
- enum ec_ssfc_lid_sensor lid_sensor : 3;
- enum ec_ssfc_base_sensor base_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-/**
- * Get the base sensor type form SSFC_CONFIG.
- *
- * @return the base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-#endif /* _RAMMUS_CBI_SSFC__H_ */
diff --git a/board/rammus/ec.tasklist b/board/rammus/ec.tasklist
deleted file mode 100644
index f708a41386..0000000000
--- a/board/rammus/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/rammus/gpio.inc b/board/rammus/gpio.inc
deleted file mode 100644
index 1e05cbe9a7..0000000000
--- a/board/rammus/gpio.inc
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(C, 5), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L_PCH, PIN(6, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ROP_EC_RSMRST_L, PIN(B, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ROP_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PWR_BTN_ODL, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(6, 7), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(VOLDN_BTN, PIN(8, 3), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(VOLUP_BTN, PIN(3, 6), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(WP_L, PIN(4, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(ROP_EC_ACOK, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt)
-GPIO_INT(USB_C0_VBUS_DET_L, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, vbus0_evt)
-GPIO_INT(USB_C1_VBUS_DET_L, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, vbus1_evt)
-GPIO_INT(USB_C0_BC12_INT_L, PIN(D, 3), GPIO_INT_FALLING, usb0_evt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(3, 3), GPIO_INT_FALLING, usb1_evt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(7, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(TABLET_MODE, PIN(C, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO(EN_PP3300_TRACKPAD, PIN(4, 5), GPIO_OUT_LOW) /* Enable TouchPad */
-GPIO(PCH_RTCRST, PIN(8, 2), GPIO_OUT_LOW) /* RTCRST# to SOC */
-GPIO(BL_DISABLE_L, PIN(5, 6), GPIO_OUT_LOW) /* Enable Backlight */
-GPIO(WLAN_OFF_L, PIN(7, 2), GPIO_OUT_LOW) /* Disable WLAN */
-GPIO(EN_PP3300_DX_WLAN, PIN(A, 7), GPIO_OUT_LOW) /* Enable WLAN 3.3V Power */
-GPIO(PCH_PROCHOT, PIN(8, 1), GPIO_OUT_HIGH) /* PROCHOT# to SOC */
-GPIO(PCH_ACPRESENT, PIN(5, 0), GPIO_ODR_LOW) /* ACOK to SOC */
-GPIO(PCH_WAKE_L, PIN(A, 3), GPIO_ODR_HIGH) /* Wake SOC */
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWR_BTN_L, PIN(C, 4), GPIO_ODR_HIGH) /* Power Button to SOC */
-GPIO(PLATFORM_RST, PIN(A, 6), GPIO_OUT_LOW) /* EC Reset to LDO_EN */
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(SLP_SUS_L_PMIC, PIN(8, 5), GPIO_OUT_LOW) /* SLP_SUS# to PMIC */
-GPIO(BATT_PRES_L, PIN(3, 4), GPIO_INPUT) /* Battery Present */
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC Entering RW */
-GPIO(ROP_EC_INT_L, PIN(6, 0), GPIO_INPUT) /* PMIC interrupt */
-GPIO(KB_BL_EN, PIN(7, 1), GPIO_OUT_LOW) /* Keyboard backlight enable */
-#ifndef CONFIG_POWER_S0IX
-GPIO(SLP_S0_L, PIN(7, 5), GPIO_INPUT)
-#endif
-
-/* Sensor Power */
-GPIO(EN_PP1800_DX_SENSOR, PIN(E, 7), GPIO_OUT_LOW)
-
-/* Reserved, no function */
-GPIO(EN_PP3300_USB_PD, PIN(0, 1), GPIO_INPUT)
-/* Reserved, output low to disable Board ID ADC by default */
-GPIO(BRD_ID_EN, PIN(0, 2), GPIO_OUT_LOW) /* Enable for board ID ADC */
-/* Reserved, for the lid accelerator interrupt */
-GPIO(LID_ACCEL_INT_L, PIN(D, 2), GPIO_INPUT | GPIO_SEL_1P8V | GPIO_PULL_UP) /* LID Accelerator interrupt */
-/* Reserved, changing touchpad interrupt behavior for wakeup */
-GPIO(TP_INT_CONN, PIN(C, 2), GPIO_INPUT) /* Touchpad interrupt */
-/* Reserved, output low to enable touchpad interrupt by default */
-GPIO(TP_INT_EN, PIN(A, 1), GPIO_OUT_LOW) /* Enable Touchpad interrupt */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SCL */
-GPIO(I2C0_0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C0_0_USBC_3V3_SDA */
-GPIO(I2C0_1_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C0_1_USBC_3V3_SCL */
-GPIO(I2C0_1_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C0_1_USBC_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C1_3V3_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C1_3V3_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C2_PMIC_3V3_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C3_SENSOR_1V8_SDA */
-
-/* rev0: 5V enables: INPUT=1.5A, OUT_LOW=OFF, OUT_HIGH=3A */
-GPIO(EN_USB_C0_5V_OUT, PIN(3, 2), GPIO_OUT_LOW) /* C0 5V Enable */
-GPIO(EN_USB_C0_3A, PIN(6, 6), GPIO_OUT_LOW) /* C0 Enable 3A */
-GPIO(EN_USB_C0_CHARGE_EC_L, PIN(C, 0), GPIO_OUT_LOW) /* C0 Charge enable */
-GPIO(EN_USB_C1_5V_OUT, PIN(B, 1), GPIO_OUT_LOW) /* C1 5V Enable */
-GPIO(EN_USB_C1_3A, PIN(3, 5), GPIO_OUT_LOW) /* C1 3A Enable */
-GPIO(EN_USB_C1_CHARGE_EC_L, PIN(C, 3), GPIO_OUT_LOW) /* C1 Charge enable */
-GPIO(USB_PD_RST_C0, PIN(0, 3), GPIO_OUT_LOW) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 4), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_DP_HPD, PIN(9, 4), GPIO_INPUT) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(A, 5), GPIO_INPUT) /* C1 DP Hotplug Detect */
-GPIO(USB2_ID2, PIN(9, 5), GPIO_OUT_LOW) /* USB OTG ID */
-
-/* USB Type-A control */
-GPIO(USB_A_CHARGE_EN_L, PIN(0, 0), GPIO_OUT_LOW)
-GPIO(EN_USB_A_5V, PIN(8, 4), GPIO_OUT_LOW)
-
-/* LEDs */
-GPIO(CHG_LED1, PIN(8, 0), GPIO_OUT_LOW)
-GPIO(CHG_LED2, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(PWR_LED, PIN(8, 6), GPIO_OUT_LOW)
-
-/* Alternate functions GPIO definitions */
-/* UART pins */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64-65 */ /* UART from EC to Servo */
-
-/* I2C pins */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 */ /* EC_I2C1_3V3_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 */ /* EC_I2C1_3V3_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO91-92 */ /* EC_I2C2_PMIC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB4-B5 */ /* EC_I2C0_0_USBC_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB2-B3 */ /* EC_I2C0_1_3V3_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD0-D1 */ /* EC_I2C3_SENSOR_1V8_SDA/SCL */
-
-/* PWM pins */
-ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0) /* GPIOB6 */ /* PWM KB Backlight */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* GPIO30-31 */ /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* GPIO22-27 */ /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* GPIO20-21 */ /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* GPIO10-16 */ /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xe0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* GPIO05-07 */ /* KSO_10-12 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* EC_KSO_02_INV */
diff --git a/board/rammus/led.c b/board/rammus/led.c
deleted file mode 100644
index a86e11e3a0..0000000000
--- a/board/rammus/led.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define LED_ON 1
-#define LED_OFF 0
-#define LED_TOTAL_TICKS 20
-#define LED_CHARGE_PULSE 10
-#define LED_POWER_PULSE 15
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_charge_state {
- LED_STATE_DISCHARGE = 0,
- LED_STATE_CHARGE,
- LED_STATE_FULL,
- LED_STATE_ERROR_PHASE0,
- LED_STATE_ERROR_PHASE1,
- LED_CHARGE_STATE_COUNT
-};
-
-enum led_power_state {
- LED_STATE_S0 = 0,
- LED_STATE_S3_PHASE0,
- LED_STATE_S3_PHASE1,
- LED_STATE_S5,
- LED_POWER_STATE_COUNT
-};
-
-static const struct {
- uint8_t led1:1;
- uint8_t led2:1;
-} led_chg_state_table[] = {
- [LED_STATE_DISCHARGE] = {LED_OFF, LED_OFF},
- [LED_STATE_CHARGE] = {LED_OFF, LED_ON},
- [LED_STATE_FULL] = {LED_ON, LED_OFF},
- [LED_STATE_ERROR_PHASE0] = {LED_OFF, LED_OFF},
- [LED_STATE_ERROR_PHASE1] = {LED_OFF, LED_ON}
-};
-
-static const struct {
- uint8_t led:1;
-} led_pwr_state_table[] = {
- [LED_STATE_S0] = {LED_ON},
- [LED_STATE_S3_PHASE0] = {LED_OFF},
- [LED_STATE_S3_PHASE1] = {LED_ON},
- [LED_STATE_S5] = {LED_OFF}
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- gpio_set_level(GPIO_PWR_LED, brightness[EC_LED_COLOR_WHITE]);
- gpio_set_level(GPIO_CHG_LED1, brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_CHG_LED2, brightness[EC_LED_COLOR_AMBER]);
-
- return EC_SUCCESS;
-}
-
-void config_power_led(enum led_power_state state)
-{
- gpio_set_level(GPIO_PWR_LED, led_pwr_state_table[state].led);
-}
-
-void config_battery_led(enum led_charge_state state)
-{
- gpio_set_level(GPIO_CHG_LED1, led_chg_state_table[state].led1);
- gpio_set_level(GPIO_CHG_LED2, led_chg_state_table[state].led2);
-}
-
-static void rammus_led_set_power(void)
-{
- static unsigned int power_ticks;
- int chipset_state;
-
- chipset_state = chipset_in_state(CHIPSET_STATE_HARD_OFF) |
- (chipset_in_state(CHIPSET_STATE_SOFT_OFF) << 1) |
- (chipset_in_state(CHIPSET_STATE_SUSPEND) << 2) |
- (chipset_in_state(CHIPSET_STATE_ON) << 3) |
- (chipset_in_state(CHIPSET_STATE_STANDBY) << 4);
-
- switch (chipset_state) {
- case CHIPSET_STATE_ON:
- config_power_led(LED_STATE_S0);
- power_ticks = 0;
- break;
- case CHIPSET_STATE_SUSPEND:
- case CHIPSET_STATE_STANDBY:
- if ((power_ticks++ % LED_TOTAL_TICKS) < LED_POWER_PULSE)
- config_power_led(LED_STATE_S3_PHASE0);
- else
- config_power_led(LED_STATE_S3_PHASE1);
- break;
- case CHIPSET_STATE_HARD_OFF:
- case CHIPSET_STATE_SOFT_OFF:
- config_power_led(LED_STATE_S5);
- power_ticks = 0;
- break;
- default:
- break;
- }
-}
-
-static void rammus_led_set_battery(void)
-{
- enum charge_state chg_state = charge_get_state();
- int charge_percent = charge_get_percent();
- static unsigned int charge_ticks;
-
- /* CHIPSET_STATE_OFF */
- switch (chg_state) {
- case PWR_STATE_DISCHARGE:
- if ((charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER) &&
- charge_percent >= BATTERY_LEVEL_NEAR_FULL)
- config_battery_led(LED_STATE_FULL);
- else
- config_battery_led(LED_STATE_DISCHARGE);
- charge_ticks = 0;
- break;
- case PWR_STATE_CHARGE:
- config_battery_led(LED_STATE_CHARGE);
- charge_ticks = 0;
- break;
- case PWR_STATE_ERROR:
- if ((charge_ticks++ % LED_TOTAL_TICKS) < LED_CHARGE_PULSE)
- config_battery_led(LED_STATE_ERROR_PHASE0);
- else
- config_battery_led(LED_STATE_ERROR_PHASE1);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- case PWR_STATE_IDLE:
- if(charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER)
- config_battery_led(LED_STATE_FULL);
- else
- config_battery_led(LED_STATE_OFF);
- charge_ticks = 0;
- break;
- default:
- break;
- }
-}
-
-/**
- * Called by hook task every 200 ms
- */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- rammus_led_set_power();
-
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- rammus_led_set_battery();
-}
-
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/rammus/usb_pd_policy.c b/board/rammus/usb_pd_policy.c
deleted file mode 100644
index 652c9bb259..0000000000
--- a/board/rammus/usb_pd_policy.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2018 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- gpio_set_level(port ? GPIO_EN_USB_C1_3A : GPIO_EN_USB_C0_3A,
- vbus_rp[port] == TYPEC_RP_3A0 ? 1 : 0);
- gpio_set_level(port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN,
- vbus_en[port]);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable charging */
- gpio_set_level(port ? GPIO_EN_USB_C1_CHARGE_EC_L :
- GPIO_EN_USB_C0_CHARGE_EC_L, 1);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- pd_set_vbus_discharge(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return !gpio_get_level(port ? GPIO_USB_C1_VBUS_DET_L :
- GPIO_USB_C0_VBUS_DET_L);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_SLP_SUS_L_PMIC);
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Only port 0 supports device mode. */
- if (port != 0)
- return;
-
- gpio_set_level(GPIO_USB2_ID2,
- (data_role == PD_ROLE_UFP) ? 1 : 0);
-}
diff --git a/board/rammus/vif_override.xml b/board/rammus/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/rammus/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/redrix/battery.c b/board/redrix/battery.c
deleted file mode 100644
index 4e74b92acb..0000000000
--- a/board/redrix/battery.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "compile_time_macros.h"
-
-/*
- * Battery info for all Redrix battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* DynaPack CosMX Battery Information */
- [BATTERY_DYNAPACK_COS] = {
- .fuel_gauge = {
- .manuf_name = "333-2C-14-A",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0006,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_DYNAPACK_COS;
diff --git a/board/redrix/board.c b/board/redrix/board.c
deleted file mode 100644
index 3c0f48f2bd..0000000000
--- a/board/redrix/board.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/als_tcs3400.h"
-#include "fw_config.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "peripheral_charger.h"
-#include "power_button.h"
-#include "power.h"
-#include "registers.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/* PCHG control */
-#ifdef SECTION_IS_RW
-extern struct pchg_drv ctn730_drv;
-
-struct pchg pchgs[] = {
- [0] = {
- .cfg = &(const struct pchg_config) {
- .drv = &ctn730_drv,
- .i2c_port = I2C_PORT_WLC,
- .irq_pin = GPIO_PEN_INT_ODL,
- .full_percent = 96,
- .block_size = 128,
- },
- .events = QUEUE_NULL(PCHG_EVENT_QUEUE_SIZE, enum pchg_event),
- },
-};
-const int pchg_count = ARRAY_SIZE(pchgs);
-#endif
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/redrix/board.h b/board/redrix/board.h
deleted file mode 100644
index 091d4e7318..0000000000
--- a/board/redrix/board.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Redrix board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-/* Sensors */
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-/* Sensor console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* WLC pins */
-#ifdef SECTION_IS_RW
-#define CONFIG_PERIPHERAL_CHARGER
-#define CONFIG_DEVICE_EVENT
-#define CONFIG_CTN730
-#endif
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_NCT38XX
-#define CONFIG_IO_EXPANDER_PORT_COUNT 2
-
-#define CONFIG_USBC_RETIMER_INTEL_BB
-
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_NX20P3483
-
-/* TODO: b/193452481 - measure and check these values on redrix */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-#define GPIO_WLC_NRST_CONN GPIO_PEN_RST_L
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* I2C Bus Configuration */
-
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-
-#define I2C_PORT_USB_C0_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-
-#define I2C_PORT_USB_C0_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1
-
-#define I2C_PORT_USB_C0_MUX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1
-
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_WLC NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-/*
- * see b/174768555#comment22
- */
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x56
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x58
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-/* Retimer */
-#define CONFIG_USBC_RETIMER_FW_UPDATE
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* Fan features */
-#define CONFIG_FANS FAN_CH_COUNT
-#define CONFIG_CUSTOM_FAN_CONTROL
-#define RPM_DEVIATION 1
-
-/* Charger defines */
-#define CONFIG_CHARGER_BQ25720
-#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
-#define CONFIG_CHARGE_RAMP_HW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR,
- ADC_TEMP_SENSOR_2_SOC,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_TEMP_SENSOR_4_REGULATOR,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR,
- TEMP_SENSOR_2_SOC,
- TEMP_SENSOR_3_CHARGER,
- TEMP_SENSOR_4_REGULATOR,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT38XX = 0,
- IOEX_C1_NCT38XX,
- IOEX_PORT_COUNT
-};
-
-enum battery_type {
- BATTERY_DYNAPACK_COS,
- BATTERY_TYPE_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_FAN2, /* PWM7 */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_1,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_1,
- MFT_CH_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/redrix/build.mk b/board/redrix/build.mk
deleted file mode 100644
index 0c5e8e6182..0000000000
--- a/board/redrix/build.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Redrix board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=thermal.o
-board-y+=usbc_config.o
diff --git a/board/redrix/charger.c b/board/redrix/charger.c
deleted file mode 120000
index 476ce97df2..0000000000
--- a/board/redrix/charger.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/brya/charger_bq25720.c \ No newline at end of file
diff --git a/board/redrix/ec.tasklist b/board/redrix/ec.tasklist
deleted file mode 100644
index 937fe97ae0..0000000000
--- a/board/redrix/ec.tasklist
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(LED, led_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PCHG, pchg_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/redrix/fans.c b/board/redrix/fans.c
deleted file mode 100644
index afa735e929..0000000000
--- a/board/redrix/fans.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
- [MFT_CH_1] = {
- .module = NPCX_MFT_MODULE_2,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN2,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-static const struct fan_conf fan_conf_1 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_1, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN2,
-};
-
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 2900,
- .rpm_max = 7300,
-};
-
-static const struct fan_rpm fan_rpm_1 = {
- .rpm_min = 1900,
- .rpm_start = 2900,
- .rpm_max = 7300,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
- [FAN_CH_1] = {
- .conf = &fan_conf_1,
- .rpm = &fan_rpm_1,
- },
-};
-
diff --git a/board/redrix/fw_config.c b/board/redrix/fw_config.c
deleted file mode 100644
index e59688b17d..0000000000
--- a/board/redrix/fw_config.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union redrix_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for redrix if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union redrix_cbi_fw_config fw_config_defaults = {
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Redrix FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-
- if (get_board_id() == 0) {
- /*
- * Early boards have a zero'd out FW_CONFIG, so replace
- * it with a sensible default value.
- */
- if (fw_config.raw_value == 0) {
- CPRINTS("CBI: FW_CONFIG is zero, using board defaults");
- fw_config = fw_config_defaults;
- }
- }
-}
-
-union redrix_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-bool ec_cfg_has_eps(void)
-{
- return (fw_config.eps == EPS_ENABLED);
-}
diff --git a/board/redrix/fw_config.h b/board/redrix/fw_config.h
deleted file mode 100644
index 6480f07b35..0000000000
--- a/board/redrix/fw_config.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_BRYA_FW_CONFIG_H_
-#define __BOARD_BRYA_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for Redrix board.
- *
- * Source of truth is the project/brya/redrix/config.star configuration file.
- */
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-enum ec_cfg_eps_type {
- EPS_DISABLED = 0,
- EPS_ENABLED = 1
-};
-
-union redrix_cbi_fw_config {
- struct {
- uint32_t sd_db : 2;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t lte_db : 2;
- uint32_t ufc : 2;
- enum ec_cfg_eps_type eps : 1;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union redrix_cbi_fw_config get_fw_config(void);
-
-/**
- * Check if the FW_CONFIG has enabled privacy screen.
- *
- * @return true if board supports privacy screen, false if the board
- * doesn't support it.
- */
-bool ec_cfg_has_eps(void);
-
-#endif /* __BOARD_BRYA_FW_CONFIG_H_ */
diff --git a/board/redrix/gpio.inc b/board/redrix/gpio.inc
deleted file mode 100644
index 21f8b51ee1..0000000000
--- a/board/redrix/gpio.inc
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_ALS_RGB_INT_R_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(EC_IMU_INT_R_L, PIN(5, 6), GPIO_SEL_1P8V | GPIO_INT_FALLING, lsm6dsm_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_RT_INT_ODL, PIN(B, 1), GPIO_INT_FALLING, retimer_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(8, 3), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(7, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_RT_INT_ODL, PIN(4, 1), GPIO_INT_FALLING, retimer_interrupt)
-
-/* WLC interrupt. GPIO_PULL_DOWN ensures no IRQ when WLC chip is off. */
-#ifdef SECTION_IS_RW
-GPIO_INT(PEN_INT_ODL, PIN(F, 5), GPIO_INT_RISING | GPIO_PULL_DOWN, pchg_irq)
-#endif
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_FAN2, PIN(5, 0), GPIO_OUT_HIGH)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(4, 3), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(A, 0), GPIO_ODR_LOW)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-GPIO(PEN_RST_L, PIN(0, 2), GPIO_ODR_HIGH)
-
-/* LED */
-GPIO(C0_CHARGE_LED_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH) /* Amber C0 port */
-GPIO(C0_CHARGE_LED_WHITE_L, PIN(C, 3), GPIO_OUT_HIGH) /* White C0 port */
-GPIO(C1_CHARGE_LED_AMBER_L, PIN(5, 7), GPIO_OUT_HIGH) /* Amber C1 port */
-GPIO(C1_CHARGE_LED_WHITE_L, PIN(9, 4), GPIO_OUT_HIGH) /* White C1 port */
-GPIO(PWR_LED_WHITE_L, PIN(C, 2), GPIO_OUT_HIGH) /* Power LED */
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, GPIO_SEL_1P8V) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* GPIO73/TA2 */
-ALTERNATE(PIN_MASK(6, 0x01), 0, MODULE_PWM, 0) /* GPIO60/PWM7 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* Unused Pins */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(6, 6)) /* GPO66/ARM_L_x86 */
-
-/* Pre-configured PSL balls: J8 K6 */
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-
-IOEX(USB_C0_OC_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C0_FRS_EN, EXPIN(IOEX_C0_NCT38XX, 0, 6), GPIO_LOW)
-IOEX(USB_C0_RT_RST_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 7), GPIO_ODR_LOW)
-
-IOEX(USB_C1_OC_ODL, EXPIN(IOEX_C1_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C1_FRS_EN, EXPIN(IOEX_C1_NCT38XX, 0, 6), GPIO_LOW)
-IOEX(USB_C1_RT_RST_ODL, EXPIN(IOEX_C1_NCT38XX, 0, 7), GPIO_ODR_LOW)
diff --git a/board/redrix/i2c.c b/board/redrix/i2c.c
deleted file mode 100644
index b993a7978e..0000000000
--- a/board/redrix/i2c.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C0 */
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C_SENSOR_SCL,
- .sda = GPIO_EC_I2C_SENSOR_SDA,
- },
- {
- /* I2C1 */
- .name = "tcpc0",
- .port = I2C_PORT_USB_C0_TCPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0",
- .port = I2C_PORT_USB_C0_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_PPC_BC_SDA,
- },
- {
- /* I2C3 */
- .name = "retimer0",
- .port = I2C_PORT_USB_C0_MUX,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_RT_SCL,
- .sda = GPIO_EC_I2C_USB_C0_RT_SDA,
- },
- {
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C6 */
- .name = "ppc1,retimer1",
- .port = I2C_PORT_USB_C1_PPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_C1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/redrix/keyboard.c b/board/redrix/keyboard.c
deleted file mode 100644
index 90506163d9..0000000000
--- a/board/redrix/keyboard.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config keybd1 = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_KBD_BKLIGHT_TOGGLE, /* T8 */
- TK_PLAY_PAUSE, /* T9 */
- TK_MICMUTE, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config keybd2 = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_PRIVACY_SCRN_TOGGLE, /* T8 */
- TK_KBD_BKLIGHT_TOGGLE, /* T9 */
- TK_MICMUTE, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config *
-board_vivaldi_keybd_config(void)
-{
- if (ec_cfg_has_eps() == 0)
- return &keybd1;
- else
- return &keybd2;
-}
diff --git a/board/redrix/led.c b/board/redrix/led.c
deleted file mode 100644
index bd088bfe97..0000000000
--- a/board/redrix/led.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Redrix
- */
-
-#include <stdint.h>
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "task.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define POWER_LED_ON 0
-#define POWER_LED_OFF 1
-
-#define LED_TICK_INTERVAL_MS (500 * MSEC)
-#define LED_CYCLE_TIME_MS (2000 * MSEC)
-#define LED_TICKS_PER_CYCLE (LED_CYCLE_TIME_MS / LED_TICK_INTERVAL_MS)
-#define LED_ON_TIME_MS (1000 * MSEC)
-#define LED_ON_TICKS (LED_ON_TIME_MS / LED_TICK_INTERVAL_MS)
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_LEFT_LED,
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-enum led_port {
- LEFT_PORT = 0,
- RIGHT_PORT
-};
-
-static void led_set_color_battery(int port, enum led_color color)
-{
- enum gpio_signal amber_led, white_led;
-
- amber_led = (port == RIGHT_PORT ? GPIO_C1_CHARGE_LED_AMBER_L :
- GPIO_C0_CHARGE_LED_AMBER_L);
- white_led = (port == RIGHT_PORT ? GPIO_C1_CHARGE_LED_WHITE_L :
- GPIO_C0_CHARGE_LED_WHITE_L);
-
- switch (color) {
- case LED_WHITE:
- gpio_set_level(white_led, BAT_LED_ON);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_ON);
- break;
- case LED_OFF:
- gpio_set_level(white_led, BAT_LED_OFF);
- gpio_set_level(amber_led, BAT_LED_OFF);
- break;
- default:
- break;
- }
-}
-
-void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_OFF);
- break;
- case LED_WHITE:
- gpio_set_level(GPIO_PWR_LED_WHITE_L, POWER_LED_ON);
- break;
- default:
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_RIGHT_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- break;
- case EC_LED_ID_POWER_LED:
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- break;
- default:
- break;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- switch (led_id) {
- case EC_LED_ID_LEFT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(LEFT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(LEFT_PORT, LED_AMBER);
- else
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case EC_LED_ID_RIGHT_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(RIGHT_PORT, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(RIGHT_PORT, LED_AMBER);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- break;
- case EC_LED_ID_POWER_LED:
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(LED_WHITE);
- else
- led_set_color_power(LED_OFF);
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- led_set_color_battery(RIGHT_PORT,
- (port == RIGHT_PORT) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT,
- (port == LEFT_PORT) ? color : LED_OFF);
-}
-
-static void led_set_battery(void)
-{
- static unsigned int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() < 10)
- led_set_color_battery(RIGHT_PORT,
- (battery_ticks % LED_TICKS_PER_CYCLE
- < LED_ON_TICKS) ? LED_WHITE : LED_OFF);
- else
- led_set_color_battery(RIGHT_PORT, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- led_set_color_battery(LEFT_PORT, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x1) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-static void led_set_power(void)
-{
- static unsigned int power_tick;
-
- power_tick++;
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_set_color_power(LED_WHITE);
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_set_color_power((power_tick %
- LED_TICKS_PER_CYCLE < LED_ON_TICKS) ?
- LED_WHITE : LED_OFF);
- else
- led_set_color_power(LED_OFF);
-}
-
-void led_task(void *u)
-{
- uint32_t start_time;
- uint32_t task_duration;
-
- while (1) {
- start_time = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- led_set_power();
-
- led_set_battery();
-
- /* Compute time for this iteration */
- task_duration = get_time().le.lo - start_time;
- /*
- * Compute wait time required to for next desired LED tick. If
- * the duration exceeds the tick time, then don't sleep.
- */
- if (task_duration < LED_TICK_INTERVAL_MS)
- usleep(LED_TICK_INTERVAL_MS - task_duration);
- }
-}
diff --git a/board/redrix/pwm.c b/board/redrix/pwm.c
deleted file mode 100644
index 8e3d9c4022..0000000000
--- a/board/redrix/pwm.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_FAN2] = {
- .channel = 7,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
diff --git a/board/redrix/sensors.c b/board/redrix/sensors.c
deleted file mode 100644
index f720a7cd32..0000000000
--- a/board/redrix/sensors.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "accelgyro.h"
-#include "adc_chip.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/als_tcs3400_public.h"
-#include "hooks.h"
-#include "motion_sense.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR] = {
- .name = "TEMP_DDR",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_SOC] = {
- .name = "TEMP_SOC",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_4_REGULATOR] = {
- .name = "TEMP_REGULATOR",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-K_MUTEX_DEFINE(g_lid_accel_mutex);
-K_MUTEX_DEFINE(g_base_accel_mutex);
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/184702900 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void board_sensors_init(void)
-{
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_R_L);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_sensors_init, HOOK_PRIO_INIT_I2C + 1);
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR] = {
- .name = "DDR",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR
- },
- [TEMP_SENSOR_2_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_SOC
- },
- [TEMP_SENSOR_3_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3_CHARGER
- },
- [TEMP_SENSOR_4_REGULATOR] = {
- .name = "Regulator",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4_REGULATOR
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- */
-static const struct ec_thermal_config thermal_ddr = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to SOC, so we need to use the lower
- * SOC temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- */
-static const struct ec_thermal_config thermal_charger = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/*
- * TODO(b/195673113): Need to update for Alder Lake/redrix
- */
-static const struct ec_thermal_config thermal_regulator = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/* this should really be "const" */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR] = thermal_ddr,
- [TEMP_SENSOR_2_SOC] = thermal_cpu,
- [TEMP_SENSOR_3_CHARGER] = thermal_charger,
- [TEMP_SENSOR_4_REGULATOR] = thermal_regulator,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/redrix/thermal.c b/board/redrix/thermal.c
deleted file mode 100644
index 39d9a49c3a..0000000000
--- a/board/redrix/thermal.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "fan.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "tablet_mode.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-/* Console output macros */
-#define CPUTS(outstr) cputs(CC_THERMAL, outstr)
-#define CPRINTS(format, args...) cprints(CC_THERMAL, format, ## args)
-
-struct fan_step {
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t on[TEMP_SENSOR_COUNT];
-
- /*
- * Sensor 1~4 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t off[TEMP_SENSOR_COUNT];
-
- /* Fan 1~2 rpm */
- uint16_t rpm[FAN_CH_COUNT];
-};
-
-static const struct fan_step *fan_step_table;
-
-static const struct fan_step fan_table_clamshell[] = {
- {
- /* level 0 */
- .on = {44, 46, 0, -1},
- .off = {99, 99, 99, -1},
- .rpm = {0, 0},
- },
- {
- /* level 1 */
- .on = {45, 47, 0, -1},
- .off = {44, 46, 99, -1},
- .rpm = {3400, 3900},
- },
- {
- /* level 2 */
- .on = {46, 48, 0, -1},
- .off = {45, 47, 99, -1},
- .rpm = {3700, 4200},
- },
- {
- /* level 3 */
- .on = {47, 49, 0, -1},
- .off = {46, 48, 99, -1},
- .rpm = {4100, 4500},
- },
- {
- /* level 4 */
- .on = {48, 50, 50, -1},
- .off = {47, 49, 48, -1},
- .rpm = {4200, 4600},
- },
- {
- /* level 5 */
- .on = {49, 51, 52, -1},
- .off = {48, 50, 50, -1},
- .rpm = {4600, 4900},
- },
- {
- /* level 6 */
- .on = {100, 100, 100, -1},
- .off = {49, 51, 52, -1},
- .rpm = {4900, 5200},
- },
-};
-
-static const struct fan_step fan_table_tablet[] = {
- {
- /* level 0 */
- .on = {44, 46, 0, -1},
- .off = {99, 99, 99, -1},
- .rpm = {0, 0},
- },
- {
- /* level 1 */
- .on = {45, 47, 0, -1},
- .off = {44, 46, 99, -1},
- .rpm = {3400, 3900},
- },
- {
- /* level 2 */
- .on = {46, 48, 0, -1},
- .off = {45, 47, 99, -1},
- .rpm = {3700, 4200},
- },
- {
- /* level 3 */
- .on = {47, 49, 0, -1},
- .off = {46, 48, 99, -1},
- .rpm = {4100, 4500},
- },
- {
- /* level 4 */
- .on = {48, 50, 50, -1},
- .off = {47, 49, 48, -1},
- .rpm = {4200, 4600},
- },
- {
- /* level 5 */
- .on = {49, 51, 52, -1},
- .off = {48, 50, 50, -1},
- .rpm = {4600, 4900},
- },
- {
- /* level 6 */
- .on = {100, 100, 100, -1},
- .off = {49, 51, 52, -1},
- .rpm = {4900, 5200},
- },
-};
-
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_table_clamshell)
-
-BUILD_ASSERT(ARRAY_SIZE(fan_table_clamshell) ==
- ARRAY_SIZE(fan_table_tablet));
-
-int fan_table_to_rpm(int fan, int *temp)
-{
- static int current_level;
- static int prev_tmp[TEMP_SENSOR_COUNT];
- int new_rpm = 0;
- int i;
-
- if (tablet_get_mode())
- fan_step_table = fan_table_tablet;
- else
- fan_step_table = fan_table_clamshell;
-
- /*
- * Compare the current and previous temperature, we have
- * the three paths :
- * 1. decreasing path. (check the release point)
- * 2. increasing path. (check the trigger point)
- * 3. invariant path. (return the current RPM)
- */
- if (temp[TEMP_SENSOR_1_DDR] < prev_tmp[TEMP_SENSOR_1_DDR] ||
- temp[TEMP_SENSOR_2_SOC] < prev_tmp[TEMP_SENSOR_2_SOC] ||
- temp[TEMP_SENSOR_3_CHARGER] < prev_tmp[TEMP_SENSOR_3_CHARGER]) {
- for (i = current_level; i > 0; i--) {
- if (temp[TEMP_SENSOR_1_DDR] <
- fan_step_table[i].off[TEMP_SENSOR_1_DDR] &&
- temp[TEMP_SENSOR_3_CHARGER] <
- fan_step_table[i].off[TEMP_SENSOR_3_CHARGER] &&
- temp[TEMP_SENSOR_2_SOC] <
- fan_step_table[i].off[TEMP_SENSOR_2_SOC])
- current_level = i - 1;
- else
- break;
- }
- } else if (temp[TEMP_SENSOR_1_DDR] > prev_tmp[TEMP_SENSOR_1_DDR] ||
- temp[TEMP_SENSOR_2_SOC] > prev_tmp[TEMP_SENSOR_2_SOC] ||
- temp[TEMP_SENSOR_3_CHARGER] >
- prev_tmp[TEMP_SENSOR_3_CHARGER]) {
- for (i = current_level; i < NUM_FAN_LEVELS; i++) {
- if ((temp[TEMP_SENSOR_1_DDR] >
- fan_step_table[i].on[TEMP_SENSOR_1_DDR] &&
- temp[TEMP_SENSOR_3_CHARGER] >
- fan_step_table[i].on[TEMP_SENSOR_3_CHARGER]) ||
- temp[TEMP_SENSOR_2_SOC] >
- fan_step_table[i].on[TEMP_SENSOR_2_SOC])
- current_level = i + 1;
- else
- break;
- }
- }
-
- if (current_level < 0)
- current_level = 0;
-
- for (i = 0; i < TEMP_SENSOR_COUNT; ++i)
- prev_tmp[i] = temp[i];
-
- ASSERT(current_level < NUM_FAN_LEVELS);
-
- switch (fan) {
- case FAN_CH_0:
- new_rpm = fan_step_table[current_level].rpm[FAN_CH_0];
- break;
- case FAN_CH_1:
- new_rpm = fan_step_table[current_level].rpm[FAN_CH_1];
- break;
- default:
- break;
- }
-
- return new_rpm;
-}
-
-void board_override_fan_control(int fan, int *tmp)
-{
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND)) {
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan),
- fan_table_to_rpm(fan, tmp));
- }
-}
diff --git a/board/redrix/usbc_config.c b/board/redrix/usbc_config.c
deleted file mode 100644
index 73a7b402cc..0000000000
--- a/board/redrix/usbc_config.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_4_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = SYV682X_ADDR2_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-static const struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-static const struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C0_MUX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc0_tcss_usb_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_C1_MUX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- .next_mux = &usbc1_tcss_usb_mux,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_1_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/*
- * USB C0 and C1 uses burnside bridge chips and have their reset
- * controlled by their respective TCPC chips acting as GPIO expanders.
- *
- * ioex_init() is normally called before we take the TCPCs out of
- * reset, so we need to start in disabled mode, then explicitly
- * call ioex_init().
- */
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
- [IOEX_C1_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C1_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_4_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- enum ioex_signal rst_signal;
-
- if (me->usb_port == USBC_PORT_C0) {
- rst_signal = IOEX_USB_C0_RT_RST_ODL;
- } else if (me->usb_port == USBC_PORT_C1) {
- rst_signal = IOEX_USB_C1_RT_RST_ODL;
- } else {
- return EC_ERROR_INVAL;
- }
-
- /*
- * We do not have a load switch for the burnside bridge chips,
- * so we only need to sequence reset.
- */
-
- if (enable) {
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- ioex_set_level(rst_signal, 1);
- /*
- * Allow 1ms time for the retimer to power up lc_domain
- * which powers I2C controller within retimer
- */
- msleep(1);
- } else {
- ioex_set_level(rst_signal, 0);
- msleep(1);
- }
- return EC_SUCCESS;
-}
-
-void board_reset_pd_mcu(void)
-{
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 0);
- gpio_set_level(GPIO_USB_C1_TCPC_RST_ODL, 0);
-
- /*
- * delay for power-on to reset-off and min. assertion time
- */
- msleep(NCT38XX_RESET_HOLD_DELAY_MS);
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 1);
- gpio_set_level(GPIO_USB_C1_TCPC_RST_ODL, 1);
-
- nct38xx_reset_notify(USBC_PORT_C0);
- nct38xx_reset_notify(USBC_PORT_C1);
-
- /* wait for chips to come up */
- if (NCT3807_RESET_POST_DELAY_MS != 0)
- msleep(NCT3807_RESET_POST_DELAY_MS);
-}
-
-static void board_tcpc_init(void)
-{
- int i;
-
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
-
- for (i = 0; i < CONFIG_IO_EXPANDER_PORT_COUNT; ++i) {
- ioex_config[i].flags &= ~IOEX_FLAGS_DISABLED;
- ioex_init(i);
- }
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void retimer_interrupt(enum gpio_signal signal)
-{
- /*
- * TODO(b/179513527): add USB-C support
- */
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
diff --git a/board/redrix/usbc_config.h b/board/redrix/usbc_config.h
deleted file mode 100644
index dcaa52d7a9..0000000000
--- a/board/redrix/usbc_config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Redrix board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/redrix/vif_override.xml b/board/redrix/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/redrix/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/reef/battery.c b/board/reef/battery.c
deleted file mode 100644
index 83a3679b26..0000000000
--- a/board/reef/battery.c
+++ /dev/null
@@ -1,692 +0,0 @@
-/* Copyright 2016 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "bd9995x.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger_profile_override.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-enum battery_type {
- BATTERY_SONY_CORP,
- BATTERY_PANASONIC,
- BATTERY_SMP_COS4870,
- BATTERY_SMP_C22N1626,
- BATTERY_CPT_C22N1626,
- BATTERY_TYPE_COUNT,
-};
-
-enum fast_chg_voltage_ranges {
- VOLTAGE_RANGE_0,
- VOLTAGE_RANGE_1,
- VOLTAGE_RANGE_2,
-};
-
-enum temp_range {
- TEMP_RANGE_0,
- TEMP_RANGE_1,
- TEMP_RANGE_2,
- TEMP_RANGE_3,
- TEMP_RANGE_4,
-};
-
-struct ship_mode_info {
- const int ship_mode_reg;
- const int ship_mode_data;
- int (*batt_init)(void);
-};
-
-struct board_batt_params {
- const char *manuf_name;
- const struct ship_mode_info *ship_mode_inf;
- const struct battery_info *batt_info;
- const struct fast_charge_params *fast_chg_params;
-};
-
-#define DEFAULT_BATTERY_TYPE BATTERY_SONY_CORP
-#define SONY_DISCHARGE_DISABLE_FET_BIT (0x01 << 13)
-#define PANASONIC_DISCHARGE_ENABLE_FET_BIT (0x01 << 14)
-#define C22N1626_DISCHARGE_ENABLE_FET_BIT (0x01 << 0)
-
-/* keep track of previous charge profile info */
-static const struct fast_charge_profile *prev_chg_profile_info;
-
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-
-static enum battery_type board_battery_type = BATTERY_TYPE_COUNT;
-
-static const struct fast_charge_profile fast_charge_smp_cos4870_info[] = {
- /* < 0C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(-1),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-
- /* 0C >= && <=15C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(15),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 944,
- [VOLTAGE_RANGE_1] = 472,
- },
- },
-
- /* 15C > && <=20C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(20),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1416,
- [VOLTAGE_RANGE_1] = 1416,
- },
- },
-
- /* 20C > && <=45C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 3300,
- [VOLTAGE_RANGE_1] = 3300,
- },
- },
-
- /* > 45C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_smp_cos4870 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_smp_cos4870_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_smp_cos4870_info[0],
-};
-
-const struct battery_info batt_info_smp_cos4870 = {
- .voltage_max = TARGET_WITH_MARGIN(8700, 5),
- .voltage_normal = 7600,
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static const struct fast_charge_profile fast_charge_sonycorp_info[] = {
- /* < 10C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(9),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1200,
- [VOLTAGE_RANGE_1] = 1200,
- },
- },
-
- /* >= 10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2250,
- [VOLTAGE_RANGE_1] = 2250,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_sonycorp = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_sonycorp_info),
- .default_temp_range_profile = TEMP_RANGE_1,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_sonycorp_info[0],
-};
-
-const struct battery_info batt_info_sonycorp = {
- .voltage_max = TARGET_WITH_MARGIN(8700, 5),
- .voltage_normal = 7600,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
-};
-
-static const struct fast_charge_profile fast_charge_panasonic_info[] = {
- /* < 0C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(-1),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-
- /* 0C >= && <= 60C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 3072,
- [VOLTAGE_RANGE_1] = 3072,
- },
- },
-
- /* > 60C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_panasonic = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_panasonic_info),
- .default_temp_range_profile = TEMP_RANGE_1,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_panasonic_info[0],
-};
-
-const struct battery_info batt_info_panasoic = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5),
- .voltage_normal = 7700,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
-};
-
-static const struct fast_charge_profile fast_charge_smp_c22n1626_info[] = {
- /* < 1C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(0),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >=1C && <=10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(10),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1752,
- [VOLTAGE_RANGE_1] = 1752,
- [VOLTAGE_RANGE_2] = 1752,
- },
- },
-
- /* 10C > && <=45C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 4672,
- [VOLTAGE_RANGE_1] = 4672,
- [VOLTAGE_RANGE_2] = 2920,
- },
- },
-
- /* 45C > && <=60C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2920,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* > 60C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_smp_c22n1626 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_smp_c22n1626_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8200,
- [VOLTAGE_RANGE_1] = 8500,
- [VOLTAGE_RANGE_2] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_smp_c22n1626_info[0],
-};
-
-static const struct fast_charge_profile fast_charge_cpt_c22n1626_info[] = {
- /* < 1C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(0),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >=1C && <=10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(10),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1752,
- [VOLTAGE_RANGE_1] = 1752,
- [VOLTAGE_RANGE_2] = 1752,
- },
- },
-
- /* 10C > && <=45C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 4600,
- [VOLTAGE_RANGE_1] = 4600,
- [VOLTAGE_RANGE_2] = 2920,
- },
- },
-
- /* 45C > && <=60C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2920,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >60C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_cpt_c22n1626 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_cpt_c22n1626_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8200,
- [VOLTAGE_RANGE_1] = 8500,
- [VOLTAGE_RANGE_2] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_cpt_c22n1626_info[0],
-};
-
-const struct battery_info batt_info_c22n1626 = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5),
- .voltage_normal = 7700,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static int batt_smp_cos4870_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- batt_status & STATUS_INITIALIZED;
-}
-
-static int batt_sony_corp_init(void)
-{
- int batt_status;
-
- /*
- * SB_MANUFACTURER_ACCESS:
- * [13] : Discharging Disabled
- * : 0b - Allowed to Discharge
- * : 1b - Not Allowed to Discharge
- */
- return sb_read(SB_MANUFACTURER_ACCESS, &batt_status) ? 0 :
- !(batt_status & SONY_DISCHARGE_DISABLE_FET_BIT);
-}
-
-static int batt_panasonic_init(void)
-{
- int batt_status;
-
- /*
- * SB_MANUFACTURER_ACCESS:
- * [14] : Discharging Disabled
- * : 0b - Not Allowed to Discharge
- * : 1b - Allowed to Discharge
- */
- return sb_read(SB_MANUFACTURER_ACCESS, &batt_status) ? 0 :
- !!(batt_status & PANASONIC_DISCHARGE_ENABLE_FET_BIT);
-}
-
-static int batt_c22n1626_init(void)
-{
- int batt_status;
-
- /*
- * SB_PACK_STATUS:
- * [0] : Discharging Enabled
- * : 0b - Not Allowed to Discharge
- * : 1b - Allowed to Discharge
- */
- return sb_read(SB_PACK_STATUS, &batt_status) ? 0 :
- !!(batt_status & C22N1626_DISCHARGE_ENABLE_FET_BIT);
-}
-
-static const struct ship_mode_info ship_mode_info_smp_cos4870 = {
- .ship_mode_reg = 0x00,
- .ship_mode_data = 0x0010,
- .batt_init = batt_smp_cos4870_init,
-};
-
-static const struct ship_mode_info ship_mode_info_sonycorp = {
- .ship_mode_reg = 0x3A,
- .ship_mode_data = 0xC574,
- .batt_init = batt_sony_corp_init,
-};
-
-static const struct ship_mode_info ship_mode_info_panasonic = {
- .ship_mode_reg = 0x3A,
- .ship_mode_data = 0xC574,
- .batt_init = batt_panasonic_init,
-};
-
-static const struct ship_mode_info ship_mode_info_c22n1626= {
- .ship_mode_reg = 0x00,
- .ship_mode_data = 0x0010,
- .batt_init = batt_c22n1626_init,
-};
-
-static const struct board_batt_params info[] = {
- /* BQ40Z555 SONY CORP BATTERY battery specific configurations */
- [BATTERY_SONY_CORP] = {
- .manuf_name = "SONYCorp",
- .ship_mode_inf = &ship_mode_info_sonycorp,
- .fast_chg_params = &fast_chg_params_sonycorp,
- .batt_info = &batt_info_sonycorp,
- },
-
- /* RAJ240045 Panasoic battery specific configurations */
- [BATTERY_PANASONIC] = {
- .manuf_name = "PANASONIC",
- .ship_mode_inf = &ship_mode_info_panasonic,
- .fast_chg_params = &fast_chg_params_panasonic,
- .batt_info = &batt_info_panasoic,
- },
-
- /* BQ40Z55 SMP COS4870 BATTERY battery specific configurations */
- [BATTERY_SMP_COS4870] = {
- .manuf_name = "SMP-COS4870",
- .ship_mode_inf = &ship_mode_info_smp_cos4870,
- .fast_chg_params = &fast_chg_params_smp_cos4870,
- .batt_info = &batt_info_smp_cos4870,
- },
-
- /* BQ40Z55 SMP C22N1626 BATTERY battery specific configurations */
- [BATTERY_SMP_C22N1626] = {
- .manuf_name = "AS1FNZD3KD",
- .ship_mode_inf = &ship_mode_info_c22n1626,
- .fast_chg_params = &fast_chg_params_smp_c22n1626,
- .batt_info = &batt_info_c22n1626,
- },
-
- /* BQ40Z55 CPT C22N1626 BATTERY battery specific configurations */
- [BATTERY_CPT_C22N1626] = {
- .manuf_name = "AS1FOAD3KD",
- .ship_mode_inf = &ship_mode_info_c22n1626,
- .fast_chg_params = &fast_chg_params_cpt_c22n1626,
- .batt_info = &batt_info_c22n1626,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(info) == BATTERY_TYPE_COUNT);
-
-static inline const struct board_batt_params *board_get_batt_params(void)
-{
- return &info[board_battery_type == BATTERY_TYPE_COUNT ?
- DEFAULT_BATTERY_TYPE : board_battery_type];
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_EC_BATT_PRES_L) ? BP_NO : BP_YES;
-}
-
-/* Get type of the battery connected on the board */
-static int board_get_battery_type(void)
-{
- const struct fast_charge_params *chg_params;
- char name[32];
- int i;
-
- if (!battery_manufacturer_name(name, sizeof(name))) {
- for (i = 0; i < BATTERY_TYPE_COUNT; i++) {
- if (!strcasecmp(name, info[i].manuf_name)) {
- board_battery_type = i;
- break;
- }
- }
- }
-
- /* Initialize fast charging parameters */
- chg_params = board_get_batt_params()->fast_chg_params;
- prev_chg_profile_info = &chg_params->chg_profile_info[
- chg_params->default_temp_range_profile];
-
- return board_battery_type;
-}
-
-/*
- * Initialize the battery type for the board.
- *
- * Very first battery info is called by the charger driver to initialize
- * the charger parameters hence initialize the battery type for the board
- * as soon as the I2C is initialized.
- */
-static void board_init_battery_type(void)
-{
- if (board_get_battery_type() != BATTERY_TYPE_COUNT)
- CPRINTS("found batt:%s", info[board_battery_type].manuf_name);
- else
- CPRINTS("battery not found");
-}
-DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1);
-
-const struct battery_info *battery_get_info(void)
-{
- return board_get_batt_params()->batt_info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
- const struct ship_mode_info *ship_mode_inf =
- board_get_batt_params()->ship_mode_inf;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(ship_mode_inf->ship_mode_reg,
- ship_mode_inf->ship_mode_data);
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(ship_mode_inf->ship_mode_reg,
- ship_mode_inf->ship_mode_data);
-}
-
-static int charger_should_discharge_on_ac(struct charge_state_data *curr)
-{
- /* can not discharge on AC without battery */
- if (curr->batt.is_present != BP_YES)
- return 0;
-
- /* Do not discharge on AC if the battery is still waking up */
- if (!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- !(curr->batt.status & STATUS_FULLY_CHARGED))
- return 0;
-
- /*
- * In light load (<450mA being withdrawn from VSYS) the DCDC of the
- * charger operates intermittently i.e. DCDC switches continuously
- * and then stops to regulate the output voltage and current, and
- * sometimes to prevent reverse current from flowing to the input.
- * This causes a slight voltage ripple on VSYS that falls in the
- * audible noise frequency (single digit kHz range). This small
- * ripple generates audible noise in the output ceramic capacitors
- * (caps on VSYS and any input of DCDC under VSYS).
- *
- * To overcome this issue enable the battery learning operation
- * and suspend USB charging and DC/DC converter.
- */
- if (!battery_is_cut_off() &&
- !(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- (curr->batt.status & STATUS_FULLY_CHARGED))
- return 1;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and charge
- * detect delay has passed.
- */
- if (!chg_ramp_is_detected() && curr->batt.state_of_charge > 2)
- return 1;
-
- return 0;
-}
-
-/*
- * This can override the smart battery's charging profile. To make a change,
- * modify one or more of requested_voltage, requested_current, or state.
- * Leave everything else unchanged.
- *
- * Return the next poll period in usec, or zero to use the default (which is
- * state dependent).
- */
-int charger_profile_override(struct charge_state_data *curr)
-{
- int disch_on_ac = charger_should_discharge_on_ac(curr);
-
- charger_discharge_on_ac(disch_on_ac);
-
- if (disch_on_ac) {
- curr->state = ST_DISCHARGE;
- return 0;
- }
-
- return charger_profile_override_common(curr,
- board_get_batt_params()->fast_chg_params,
- &prev_chg_profile_info,
- board_get_batt_params()->batt_info->voltage_max);
-}
-
-/*
- * Physical detection of battery.
- */
-enum battery_present battery_is_present(void)
-{
- enum battery_present batt_pres;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * Make sure battery status is implemented, I2C transactions are
- * success & the battery status is Initialized to find out if it
- * is a working battery and it is not in the cut-off mode.
- *
- * If battery I2C fails but VBATT is high, battery is booting from
- * cut-off mode.
- *
- * FETs are turned off after Power Shutdown time.
- * The device will wake up when a voltage is applied to PACK.
- * Battery status will be inactive until it is initialized.
- */
- if (batt_pres == BP_YES && batt_pres_prev != batt_pres &&
- !battery_is_cut_off()) {
- /* Re-init board battery if battery presence status changes */
- if (board_get_battery_type() == BATTERY_TYPE_COUNT) {
- if (bd9995x_get_battery_voltage() >=
- board_get_batt_params()->batt_info->voltage_min)
- batt_pres = BP_NO;
- } else if (!board_get_batt_params()->ship_mode_inf->batt_init())
- batt_pres = BP_NO;
- }
-
- batt_pres_prev = batt_pres;
-
- return batt_pres;
-}
-
-int board_battery_initialized(void)
-{
- return battery_hw_present() == batt_pres_prev;
-}
diff --git a/board/reef/board.c b/board/reef/board.c
deleted file mode 100644
index ed8e83d0a8..0000000000
--- a/board/reef/board.c
+++ /dev/null
@@ -1,932 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Reef board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/als_opt3001.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/baro_bmp280.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_angle.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_sense.h"
-#include "motion_lid.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define IN_ALL_SYS_PG POWER_SIGNAL_MASK(X86_ALL_SYS_PG)
-#define IN_PGOOD_PP3300 POWER_SIGNAL_MASK(X86_PGOOD_PP3300)
-#define IN_PGOOD_PP5000 POWER_SIGNAL_MASK(X86_PGOOD_PP5000)
-
-#define USB_PD_PORT_ANX74XX 0
-#define USB_PD_PORT_PS8751 1
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
-static void anx74xx_cable_det_handler(void)
-{
- int cable_det = gpio_get_level(GPIO_USB_C0_CABLE_DET);
- int reset_n = gpio_get_level(GPIO_USB_C0_PD_RST_L);
-
- /*
- * A cable_det low->high transition was detected. If following the
- * debounce time, cable_det is high, and reset_n is low, then ANX3429 is
- * currently in standby mode and needs to be woken up. Set the
- * TCPC_RESET event which will bring the ANX3429 out of standby
- * mode. Setting this event is gated on reset_n being low because the
- * ANX3429 will always set cable_det when transitioning to normal mode
- * and if in normal mode, then there is no need to trigger a tcpc reset.
- */
- if (cable_det && !reset_n)
- task_set_event(TASK_ID_PD_C0, PD_EVENT_TCPC_RESET);
-}
-DECLARE_DEFERRED(anx74xx_cable_det_handler);
-
-void anx74xx_cable_det_interrupt(enum gpio_signal signal)
-{
- /* debounce for 2 msec */
- hook_call_deferred(&anx74xx_cable_det_handler_data, (2 * MSEC));
-}
-#endif
-
-/*
- * enable_input_devices() is called by the tablet_mode ISR, but changes the
- * state of GPIOs, so its definition must reside after including gpio_list.
- * Use DECLARE_DEFERRED to generate enable_input_devices_data.
- */
-static void enable_input_devices(void);
-DECLARE_DEFERRED(enable_input_devices);
-
-#define LID_DEBOUNCE_US (30 * MSEC) /* Debounce time for lid switch */
-void tablet_mode_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&enable_input_devices_data, LID_DEBOUNCE_US);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Vfs = Vref = 2.816V, 10-bit unsigned reading */
- [ADC_TEMP_SENSOR_CHARGER] = {
- "CHARGER", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
- [ADC_TEMP_SENSOR_AMB] = {
- "AMBIENT", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
- [ADC_BOARD_ID] = {
- "BRD_ID", NPCX_ADC_CH2, ADC_MAX_VOLT, ADC_READ_MAX + 1, 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED_GREEN] = { 2, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_LED_RED] = { 3, PWM_CONFIG_DSLEEP, 100 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc0", NPCX_I2C_PORT0_0, 400,
- GPIO_EC_I2C_USB_C0_PD_SCL, GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", NPCX_I2C_PORT0_1, 400,
- GPIO_EC_I2C_USB_C1_PD_SCL, GPIO_EC_I2C_USB_C1_PD_SDA},
- {"accelgyro", I2C_PORT_GYRO, 400,
- GPIO_EC_I2C_GYRO_SCL, GPIO_EC_I2C_GYRO_SDA},
- {"sensors", NPCX_I2C_PORT2, 400,
- GPIO_EC_I2C_SENSOR_SCL, GPIO_EC_I2C_SENSOR_SDA},
- {"batt", NPCX_I2C_PORT3, 100,
- GPIO_EC_I2C_POWER_SCL, GPIO_EC_I2C_POWER_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#ifdef CONFIG_CMD_I2C_STRESS_TEST
-struct i2c_stress_test i2c_stress_tests[] = {
-/* NPCX_I2C_PORT0_0 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC
- {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = ANX74XX_I2C_ADDR1_FLAGS,
- .i2c_test = &anx74xx_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT0_1 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC
- {
- .port = NPCX_I2C_PORT0_1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- .i2c_test = &ps8xxx_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT1 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ACCEL
- {
- .port = I2C_PORT_GYRO,
- .addr_flags = BMI160_ADDR0_FLAGS,
- .i2c_test = &bmi160_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT2 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ACCEL
- {
- .port = I2C_PORT_BARO,
- .addr_flags = BMP280_I2C_ADDRESS1_FLAGS,
- .i2c_test = &bmp280_i2c_stress_test_dev,
- },
- {
- .port = I2C_PORT_LID_ACCEL,
- .addr_flags = KX022_ADDR1_FLAGS,
- .i2c_test = &kionix_i2c_stress_test_dev,
- },
-#endif
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ALS
- {
- .port = I2C_PORT_ALS,
- .addr_flags = OPT3001_I2C_ADDR1_FLAGS,
- .i2c_test = &opt3001_i2c_stress_test_dev,
- },
-#endif
-
-/* NPCX_I2C_PORT3 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_BATTERY
- {
- .i2c_test = &battery_i2c_stress_test_dev,
- },
-#endif
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_CHARGER
- {
- .i2c_test = &bd9995x_i2c_stress_test_dev,
- },
-#endif
-};
-const int i2c_test_dev_used = ARRAY_SIZE(i2c_stress_tests);
-#endif /* CONFIG_CMD_I2C_STRESS_TEST */
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ANX74XX] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_0,
- .addr_flags = ANX74XX_I2C_ADDR1_FLAGS,
- },
- .drv = &anx74xx_tcpm_drv,
- },
- [USB_PD_PORT_PS8751] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = NPCX_I2C_PORT0_1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = BD9995X_ADDR_FLAGS,
- .drv = &bd9995x_drv,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-static int ps8751_tune_mux(const struct usb_mux *me)
-{
- /* 0x98 sets lower EQ of DP port (4.5db) */
- mux_write(me, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
- return EC_SUCCESS;
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ANX74XX] = {
- .usb_port = USB_PD_PORT_ANX74XX,
- .driver = &anx74xx_tcpm_usb_mux_driver,
- .hpd_update = &anx74xx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_PS8751] = {
- .usb_port = USB_PD_PORT_PS8751,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .board_init = &ps8751_tune_mux,
- }
-};
-
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_USB1_ENABLE,
-};
-
-/**
- * Power on (or off) a single TCPC.
- * minimum on/off delays are included.
- *
- * @param port Port number of TCPC.
- * @param mode 0: power off, 1: power on.
- */
-void board_set_tcpc_power_mode(int port, int mode)
-{
- if (port != USB_PD_PORT_ANX74XX)
- return;
-
- switch (mode) {
- case ANX74XX_NORMAL_MODE:
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 1);
- msleep(ANX74XX_PWR_H_RST_H_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- break;
- case ANX74XX_STANDBY_MODE:
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- msleep(ANX74XX_RST_L_PWR_L_DELAY_MS);
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 0);
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- break;
- default:
- break;
- }
-}
-
-/**
- * Reset all system PD/TCPC MCUs -- currently only called from
- * handle_pending_reboot() in common/power.c just before hard
- * resetting the system. This logic is likely not needed as the
- * PP3300_A rail should be dropped on EC reset.
- */
-void board_reset_pd_mcu(void)
-{
- /* Assert reset to TCPC1 (ps8751) */
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 0);
-
- /* Assert reset to TCPC0 (anx3429) */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- /* TCPC1 (ps8751) requires 1ms reset down assertion */
- msleep(MAX(1, ANX74XX_RST_L_PWR_L_DELAY_MS));
-
- /* Deassert reset to TCPC1 */
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 1);
- /* Disable TCPC0 power */
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 0);
-
- /*
- * anx3429 requires 10ms reset/power down assertion
- */
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- board_set_tcpc_power_mode(USB_PD_PORT_ANX74XX, 1);
-}
-
-void board_tcpc_init(void)
-{
- int reg;
-
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /*
- * TODO: Remove when Reef is updated with PS8751 A3.
- *
- * Force PS8751 A2 to wake from low power mode.
- * If PS8751 remains in low power mode after sysjump,
- * TCPM_INIT will fail due to not able to access PS8751.
- *
- * NOTE: PS8751 A3 will wake on any I2C access.
- */
- i2c_read8(NPCX_I2C_PORT0_1, 0x08, 0xA0, &reg);
-
- /* Enable TCPC0 interrupt */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable TCPC1 interrupt */
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
- /* Enable CABLE_DET interrupt for ANX3429 wake from standby */
- gpio_enable_interrupt(GPIO_USB_C0_CABLE_DET);
-#endif
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Called by APL power state machine when transitioning from G3 to S5 */
-void chipset_pre_init_callback(void)
-{
- /*
- * No need to re-init PMIC since settings are sticky across sysjump.
- * However, be sure to check that PMIC is already enabled. If it is
- * then there's no need to re-sequence the PMIC.
- */
- if (system_jumped_to_this_image() && gpio_get_level(GPIO_PMIC_EN))
- return;
-
- /* Enable PP5000 before PP3300 due to NFC: chrome-os-partner:50807 */
- gpio_set_level(GPIO_EN_PP5000, 1);
- while (!gpio_get_level(GPIO_PP5000_PG))
- ;
-
- /*
- * To prevent SLP glitches, PMIC_EN (V5A_EN) should be enabled
- * at the same time as PP3300 (chrome-os-partner:51323).
- */
- /* Enable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 1);
- while (!gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /* Enable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 1);
-}
-
-static void board_set_tablet_mode(void)
-{
- tablet_set_mode(!gpio_get_level(GPIO_TABLET_MODE_L),
- TABLET_TRIGGER_LID);
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Ensure tablet mode is initialized according to the hardware state
- * so that the cached state reflects reality. */
- board_set_tablet_mode();
-
- gpio_enable_interrupt(GPIO_TABLET_MODE_L);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_L);
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-}
-/* PP3300 needs to be enabled before TCPC init hooks */
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_FIRST);
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port != 0 && port != 1)
- panic("Invalid charge port\n");
-
- return bd9995x_is_vbus_provided(port);
-}
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- enum bd9995x_charge_port bd9995x_port;
- int bd9995x_port_select = 1;
-
- switch (charge_port) {
- case USB_PD_PORT_ANX74XX:
- case USB_PD_PORT_PS8751:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
-
- bd9995x_port = charge_port;
- break;
- case CHARGE_PORT_NONE:
- bd9995x_port_select = 0;
- bd9995x_port = BD9995X_CHARGE_PORT_BOTH;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and
- * charge detect delay has passed.
- */
- if (charge_get_percent() > 2)
- charger_discharge_on_ac(1);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- CPRINTS("New chg p%d", charge_port);
-
- return bd9995x_select_input_port(bd9995x_port, bd9995x_port_select);
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Enable charging trigger by BC1.2 detection */
- int bc12_enable = (supplier == CHARGE_SUPPLIER_BC12_CDP ||
- supplier == CHARGE_SUPPLIER_BC12_DCP ||
- supplier == CHARGE_SUPPLIER_BC12_SDP ||
- supplier == CHARGE_SUPPLIER_OTHER);
-
- if (bd9995x_bc12_enable_charging(port, bc12_enable))
- return;
-
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-/**
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < BD9995X_BC12_MIN_VOLTAGE;
-}
-
-static void enable_input_devices(void)
-{
- /* We need to turn on tablet mode for motion sense */
- board_set_tablet_mode();
-
- /* Then, we disable peripherals only when the lid reaches 360 position.
- * (It's probably already disabled by motion_sense_task.)
- * We deliberately do not enable peripherals when the lid is leaving
- * 360 position. Instead, we let motion_sense_task enable it once it
- * reaches laptop zone (180 or less). */
- if (tablet_get_mode())
- lid_angle_peripheral_enable(0);
-}
-
-/* Enable or disable input devices, based on chipset state and tablet mode */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /* If the lid is in 360 position, ignore the lid angle,
- * which might be faulty. Disable keyboard.
- */
- if (tablet_get_mode() || chipset_in_state(CHIPSET_STATE_ANY_OFF))
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- /* Enable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 1);
-
- /* Enable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 0);
-
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Disable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 0);
-
- /* Disable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 1);
-
- hook_call_deferred(&enable_input_devices_data, 0);
- /* FIXME(dhendrix): Drive USB_PD_RST_ODL low to prevent
- leakage? (see comment in schematic) */
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-/* FIXME(dhendrix): Add CHIPSET_RESUME and CHIPSET_SUSPEND
- hooks to enable/disable sensors? */
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*
- * FIXME(dhendrix): Weak symbol hack until we can get a better solution for
- * both Amenia and Reef.
- */
-void chipset_do_shutdown(void)
-{
- /* Disable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 0);
-
- /*Disable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 0);
- while (gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /*Disable 5V rail */
- gpio_set_level(GPIO_EN_PP5000, 0);
- while (gpio_get_level(GPIO_PP5000_PG))
- ;
-}
-
-void board_hibernate_late(void)
-{
- int i;
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs in hibernate */
- {GPIO_BAT_LED_BLUE, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_AMBER, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_LID_OPEN, GPIO_INT_RISING | GPIO_PULL_DOWN},
-
- /*
- * BD99956 handles charge input automatically. We'll disable
- * charge output in hibernate. Charger will assert ACOK_OD
- * when VBUS or VCC are plugged in.
- */
- {GPIO_USB_C0_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- {GPIO_USB_C1_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- };
-
- /* Change GPIOs' state in hibernate for better power consumption */
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-
- gpio_config_module(MODULE_KEYBOARD_SCAN, 0);
-
- /*
- * Calling gpio_config_module sets disabled alternate function pins to
- * GPIO_INPUT. But to prevent keypresses causing leakage currents
- * while hibernating we want to enable GPIO_PULL_UP as well.
- */
- gpio_set_flags_by_mask(0x2, 0x03, GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags_by_mask(0x1, 0x7F, GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags_by_mask(0x0, 0xE0, GPIO_INPUT | GPIO_PULL_UP);
- /* KBD_KSO2 needs to have a pull-down enabled instead of pull-up */
- gpio_set_flags_by_mask(0x1, 0x80, GPIO_INPUT | GPIO_PULL_DOWN);
-}
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t mag_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct bmp280_drv_data_t bmp280_drv_data;
-static struct opt3001_drv_data_t g_opt3001_data = {
- .scale = 1,
- .uscale = 0,
- .offset = 0,
-};
-
-/* FIXME(dhendrix): Copied from Amenia, probably need to tweak for Reef */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_LID_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [BASE_MAG] = {
- .name = "Base Mag",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_MAG,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = BIT(11), /* 16LSB / uT, fixed */
- .rot_standard_ref = &mag_standard_ref,
- .min_frequency = BMM150_MAG_MIN_FREQ,
- .max_frequency = BMM150_MAG_MAX_FREQ(SPECIAL),
- },
- [BASE_BARO] = {
- .name = "Base Baro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMP280,
- .type = MOTIONSENSE_TYPE_BARO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmp280_drv,
- .drv_data = &bmp280_drv_data,
- .port = I2C_PORT_BARO,
- .i2c_spi_addr_flags = BMP280_I2C_ADDRESS1_FLAGS,
- .default_range = BIT(18), /* 1bit = 4 Pa, 16bit ~= 2600 hPa */
- .min_frequency = BMP280_BARO_MIN_FREQ,
- .max_frequency = BMP280_BARO_MAX_FREQ,
- },
- [LID_ALS] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_OPT3001,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &opt3001_drv,
- .drv_data = &g_opt3001_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = OPT3001_I2C_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1; uscale = 0 */
- .min_frequency = OPT3001_LIGHT_MIN_FREQ,
- .max_frequency = OPT3001_LIGHT_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[LID_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-void board_hibernate(void)
-{
- /*
- * To support hibernate called from console commands, ectool commands
- * and key sequence, shutdown the AP before hibernating.
- */
- chipset_do_shutdown();
-
- /* Added delay to allow AP to settle down */
- msleep(100);
-
- /* Enable both the VBUS & VCC ports before entering PG3 */
- bd9995x_select_input_port(BD9995X_CHARGE_PORT_BOTH, 1);
-
- /* Turn BGATE OFF for saving the power */
- bd9995x_set_power_save_mode(BD9995X_PWR_SAVE_MAX);
-}
-
-struct {
- enum reef_board_version version;
- int thresh_mv;
-} const reef_board_versions[] = {
- /* Vin = 3.3V, R1 = 46.4K, R2 values listed below */
- { BOARD_VERSION_1, 328 * 1.03 }, /* 5.11 Kohm */
- { BOARD_VERSION_2, 670 * 1.03 }, /* 11.8 Kohm */
- { BOARD_VERSION_3, 1012 * 1.03 }, /* 20.5 Kohm */
- { BOARD_VERSION_4, 1357 * 1.03 }, /* 32.4 Kohm */
- { BOARD_VERSION_5, 1690 * 1.03 }, /* 48.7 Kohm */
- { BOARD_VERSION_6, 2020 * 1.03 }, /* 73.2 Kohm */
- { BOARD_VERSION_7, 2352 * 1.03 }, /* 115 Kohm */
- { BOARD_VERSION_8, 2802 * 1.03 }, /* 261 Kohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(reef_board_versions) == BOARD_VERSION_COUNT);
-
-int board_get_version(void)
-{
- static int version = BOARD_VERSION_UNKNOWN;
- int mv, i;
-
- if (version != BOARD_VERSION_UNKNOWN)
- return version;
-
- /* FIXME(dhendrix): enable ADC */
- gpio_set_flags(GPIO_EC_BRD_ID_EN_ODL, GPIO_ODR_HIGH);
- gpio_set_level(GPIO_EC_BRD_ID_EN_ODL, 0);
- /* Wait to allow cap charge */
- msleep(1);
- mv = adc_read_channel(ADC_BOARD_ID);
- /* FIXME(dhendrix): disable ADC */
- gpio_set_level(GPIO_EC_BRD_ID_EN_ODL, 1);
- gpio_set_flags(GPIO_EC_BRD_ID_EN_ODL, GPIO_INPUT);
-
- if (mv == ADC_READ_ERROR) {
- version = BOARD_VERSION_UNKNOWN;
- return version;
- }
-
- for (i = 0; i < BOARD_VERSION_COUNT; i++) {
- if (mv < reef_board_versions[i].thresh_mv) {
- version = reef_board_versions[i].version;
- break;
- }
- }
-
- CPRINTS("Board version: %d", version);
- return version;
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/reef/board.h b/board/reef/board.h
deleted file mode 100644
index cc599ce1ba..0000000000
--- a/board/reef/board.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Reef board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BATT_MFG_ACCESS
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define BD9995X_IOUT_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_IOUT_GAIN_SET_20V
-
-#define CONFIG_CHARGER_PSYS_READ
-#define BD9995X_PSYS_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_PMON_GAIN_SET_02UAW
-
-#define CONFIG_CMD_I2C_STRESS_TEST
-#define CONFIG_CMD_I2C_STRESS_TEST_ACCEL
-#define CONFIG_CMD_I2C_STRESS_TEST_ALS
-#define CONFIG_CMD_I2C_STRESS_TEST_BATTERY
-#define CONFIG_CMD_I2C_STRESS_TEST_CHARGER
-#define CONFIG_CMD_I2C_STRESS_TEST_TCPC
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_BD9995X
-#define CONFIG_CHARGER_BD9995X_CHGEN
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 1
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 18000
-#define CONFIG_CHARGER_MAINTAIN_VBAT
-#undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
-#define CONFIG_USB_CHARGER
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_PROFILE_OVERRIDE_COMMON
-#undef CONFIG_CHARGER_PROFILE_VOLTAGE_RANGES
-#define CONFIG_CHARGER_PROFILE_VOLTAGE_RANGES 3
-#define CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_SIMPLE
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A_CHARGE_EN_L
-#define GPIO_USB_CTL1 GPIO_EN_PP5000
-
-#define CONFIG_TABLET_MODE
-
-/* USB PD config */
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX /* for both PS8751 and ANX3429 */
-#define CONFIG_USB_PD_TCPM_ANX3429
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_COMM_LOCKED
-
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* SoC / PCH */
-#define CONFIG_HOSTCMD_LPC
-#define CONFIG_CHIPSET_APOLLOLAKE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_FPU
-#define CONFIG_HOSTCMD_FLASH_SPI_INFO
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_PWM
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_DPTF
-#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define CONFIG_VBOOT_HASH
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND EC_WIRELESS_SWITCH_WLAN_POWER
-#define CONFIG_WLAN_POWER_ACTIVE_LOW
-#define WIRELESS_GPIO_WLAN_POWER GPIO_WIRELESS_GPIO_WLAN_POWER
-#define CONFIG_PWR_STATE_DISCHARGE_FULL
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 512
-
-/*
- * During shutdown sequence TPS65094x PMIC turns off the sensor rails
- * asynchronously to the EC. If we access the sensors when the sensor power
- * rails are off we get I2C errors. To avoid this issue, defer switching
- * the sensors rate if in S3. By the time deferred function is serviced if
- * the chipset is in S5 we can back out from switching the sensor rate.
- *
- * Time taken by V1P8U rail to go down from S3 is 30ms to 60ms hence defer
- * the sensor switching after 60ms.
- */
-#undef CONFIG_MOTION_SENSE_SUSPEND_DELAY_US
-#define CONFIG_MOTION_SENSE_SUSPEND_DELAY_US (MSEC * 60)
-
-#define CONFIG_FLASH_SIZE_BYTES 524288
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q40 /* FIXME: Should be GD25LQ40? */
-
-/*
- * Enable 1 slot of secure temporary storage to support
- * suspend/resume with read/write memory training.
- */
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-/* Optional feature - used by nuvoton */
-#define NPCX_UART_MODULE2 1 /* 0:GPIO10/11 1:GPIO64/65 as UART */
-#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 1:GPIOD5/E2/D4/E5 as JTAG*/
-/* FIXME(dhendrix): these pins are just normal GPIOs on Reef. Do we need
- * to change some other setting to put them in GPIO mode? */
-#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */
-
-/* I2C ports */
-#define I2C_PORT_GYRO NPCX_I2C_PORT1
-#define I2C_PORT_LID_ACCEL NPCX_I2C_PORT2
-#define I2C_PORT_ALS NPCX_I2C_PORT2
-#define I2C_PORT_BARO NPCX_I2C_PORT2
-#define I2C_PORT_BATTERY NPCX_I2C_PORT3
-#define I2C_PORT_CHARGER NPCX_I2C_PORT3
-/* Accelerometer and Gyroscope are the same device. */
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-
-/* Sensors */
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_MAG_BMI_BMM150
-#define CONFIG_ACCELGYRO_SEC_ADDR_FLAGS BMM150_ADDR0_FLAGS
-#define CONFIG_MAG_CALIBRATE
-#define CONFIG_ACCEL_KX022
-#define CONFIG_ALS_OPT3001
-#define CONFIG_BARO_BMP280
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER, /* ADC0 */
- ADC_TEMP_SENSOR_AMB, /* ADC1 */
- ADC_BOARD_ID, /* ADC2 */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED_GREEN = 0,
- PWM_CH_LED_RED,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY = 0,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-/*
- * For backward compatibility, to report ALS via ACPI,
- * Define the number of ALS sensors: motion_sensor copy the data to the ALS
- * memmap region.
- */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- BASE_MAG,
- BASE_BARO,
- LID_ALS,
- SENSOR_COUNT,
-};
-
-enum reef_board_version {
- BOARD_VERSION_UNKNOWN = -1,
- BOARD_VERSION_1,
- BOARD_VERSION_2,
- BOARD_VERSION_3,
- BOARD_VERSION_4,
- BOARD_VERSION_5,
- BOARD_VERSION_6,
- BOARD_VERSION_7,
- BOARD_VERSION_8,
- BOARD_VERSION_COUNT,
-};
-
-/* TODO: determine the following board specific type-C power constants */
-/* FIXME(dhendrix): verify all of the below PD_* numbers */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Reset PD MCU */
-void board_reset_pd_mcu(void);
-
-int board_get_version(void);
-
-void board_set_tcpc_power_mode(int port, int mode);
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(BASE_BARO) | BIT(LID_ALS))
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/reef/build.mk b/board/reef/build.mk
deleted file mode 100644
index 728d027803..0000000000
--- a/board/reef/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2015 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_VARIANT:=npcx5m6g
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/reef/ec.tasklist b/board/reef/ec.tasklist
deleted file mode 100644
index eeebc0cc59..0000000000
--- a/board/reef/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/reef/gpio.inc b/board/reef/gpio.inc
deleted file mode 100644
index 5bf83f88bc..0000000000
--- a/board/reef/gpio.inc
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(CHARGER_INT_L, PIN(3, 3), GPIO_INT_FALLING, bd9995x_vbus_interrupt) /* CHARGER_EC_INT_ODL from BD99956 */
-/*
- * TODO: The pull ups for Parade TCPC interrupt line can be removed in versions
- * of board following EVT in which daughter card (which has an external pull up)
- * will always be inserted.
- */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(3, 7), GPIO_INT_FALLING, tcpc_alert_event) /* from Analogix TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event) /* from Parade TCPC */
-
-GPIO_INT(USB_C0_CABLE_DET, PIN(C, 5), GPIO_INT_RISING, anx74xx_cable_det_interrupt) /* CABLE_DET from ANX3429 */
-
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(7, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(7, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(7, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(6, 0), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(5, 0), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-GPIO_INT(AC_PRESENT, PIN(C, 1), GPIO_INT_BOTH, extpower_interrupt) /* ACOK_OD from BD99956 */
-/* TODO: We might remove external pull-up for POWER_BUTTON_L in EVT */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(LID_OPEN, PIN(6, 7), GPIO_INT_BOTH, lid_interrupt)
-/* Volume up and down buttons need to be swapped. The one closer to the hinge
- * should be volume up and the one closer to the user should be volume down.
- * (cros.bug/p/60057) */
-GPIO_INT(EC_VOLDN_BTN_ODL_SWAPPED, PIN(8, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL_SWAPPED, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-#define GPIO_EC_VOLDN_BTN_ODL GPIO_EC_VOLUP_BTN_ODL_SWAPPED
-#define GPIO_EC_VOLUP_BTN_ODL GPIO_EC_VOLDN_BTN_ODL_SWAPPED
-/* Tablet switch is active-low. L: lid is attached (360 position) H: detached */
-GPIO_INT(TABLET_MODE_L, PIN(3, 6), GPIO_INT_BOTH, tablet_mode_interrupt)
-
-GPIO_INT(WP_L, PIN(4, 0), GPIO_INT_BOTH | GPIO_SEL_1P8V, switch_interrupt) /* EC_WP_ODL */
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(9, 3), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- bmi160_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(C, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* I2C GPIOs will be set to alt. function later. */
-GPIO(EC_I2C_GYRO_SDA, PIN(8, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_GYRO_SCL, PIN(9, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(9, 1), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SCL, PIN(9, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(D, 1), GPIO_INPUT)
-
-/*
- * LPC:
- * Pins 46, 47, 51, 52, 53, 54, 55, default to LPC mode.
- * Pin 56 (CLKRUN#) defaults to GPIO mode.
- * Pin 57 (SER_IRQ) defaults to LPC mode, but we also have EC_PCH_KB_INT_ODL
- * (Pin B0) in case it doesn't work (Set CONFIG_KEYBOARD_IRQ_GPIO in this case).
- *
- * See also the NO_LPC_ESPI bit in DEVALT1 and the CONFIG_HOSTCMD_SHI option.
- */
-
-GPIO(PCH_SMI_L, PIN(A, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SMI_ODL */
-GPIO(PCH_SCI_L, PIN(A, 7), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SCI_ODL */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(7, 5), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * BRD_ID1 is a an ADC pin which will be used to measure multiple values.
- * Assert EC_BRD_ID_EN_ODL and then read BRD_ID1.
- */
-ALTERNATE(PIN_MASK(4, 0x08), 1, MODULE_ADC, 0)
-GPIO(EC_BRD_ID_EN_ODL, PIN(3, 5), GPIO_INPUT)
-
-GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT)
-GPIO(EC_HAVEN_RESET_ODL, PIN(0, 2), GPIO_ODR_HIGH)
-GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUTPUT) /* EC_ENTERING_RW */
-
-GPIO(PCH_RSMRST_L, PIN(7, 0), GPIO_OUT_LOW)
-GPIO(EC_BATT_PRES_L, PIN(3, 4), GPIO_INPUT)
-GPIO(PMIC_EN, PIN(8, 5), GPIO_OUT_LOW)
-GPIO(EN_PP3300, PIN(C, 2), GPIO_OUT_LOW)
-GPIO(PP3300_PG, PIN(6, 2), GPIO_INPUT)
-GPIO(EN_PP5000, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(PP5000_PG, PIN(7, 1), GPIO_INPUT)
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 2), GPIO_ODR_LOW)
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(A, 1), GPIO_OUT_LOW)
-GPIO(PCH_SYS_PWROK, PIN(E, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK */
-GPIO(ENABLE_BACKLIGHT, PIN(9, 7), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-
-GPIO(WIRELESS_GPIO_WLAN_POWER, PIN(6, 6), GPIO_ODR_HIGH) /* EN_PP3300_WLAN_ODL */
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(A, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-GPIO(PCH_PWRBTN_L, PIN(0, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-GPIO(PCH_WAKE_L, PIN(8, 1), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(USB_C0_HPD_1P8_ODL, PIN(9, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(USB_C1_HPD_1P8_ODL, PIN(A, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-
-GPIO(USB2_OTG_VBUSSENSE, PIN(9, 5), GPIO_OUTPUT)
-
-/* EC_PCH_RTCRST is a sledgehammer for resetting SoC state and should rarely
- * be used. Set as input for now, we'll set it as an output when we want to use
- * it. Has external pull-down resistor. */
-GPIO(EC_PCH_RTCRST, PIN(B, 7), GPIO_INPUT)
-GPIO(SYS_RESET_L, PIN(6, 1), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-
-/* FIXME: What, if anything, to do about EC_RST_ODL on VCC1_RST#? */
-
-GPIO(CHARGER_RST_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(USB_A_CHARGE_EN_L, PIN(4, 2), GPIO_OUT_LOW)
-GPIO(EN_USB_TCPC_PWR, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(USB1_ENABLE, PIN(4, 1), GPIO_OUT_LOW)
-
-GPIO(USB_C0_PD_RST_L, PIN(0, 3), GPIO_OUT_LOW) /* USB_C0_PD_RST_L */
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 4), GPIO_ODR_LOW)
-
-/*
- * Configure as input to enable @ 1.5A, output-low to turn off, or output-high
- * to enable @ 3A.
- */
-GPIO(USB_C0_5V_EN, PIN(D, 3), GPIO_OUT_LOW | GPIO_PULL_UP) /* EN_USB_C0_5V_OUT, Enable C0 */
-GPIO(USB_C1_5V_EN, PIN(D, 2), GPIO_OUT_LOW | GPIO_PULL_UP) /* EN_USB_C1_5V_OUT, Enable C1 */
-
-/* Clear for non-HDI breakout, must be pulled high */
-GPIO(NC1, PIN(0, 0), GPIO_INPUT | GPIO_PULL_UP | GPIO_SEL_1P8V)
-GPIO(NC2, PIN(8, 4), GPIO_INPUT | GPIO_PULL_UP | GPIO_SEL_1P8V)
-
-GPIO(ENG_STRAP, PIN(B, 6), GPIO_INPUT)
-
-GPIO(BAT_LED_BLUE, PIN(8, 0), GPIO_OUT_HIGH)
-GPIO(BAT_LED_AMBER, PIN(C, 4), GPIO_OUT_HIGH)
-
-/*
- * Alternate function pins
- */
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(0, 0xe0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_KB_OUTPUT_COL2)
-
-ALTERNATE(PIN(4, 4), 6, MODULE_ADC, 0) /* TEMP_SENSOR_AMB (FIXME: alt function 6?) */
-ALTERNATE(PIN(4, 5), 6, MODULE_ADC, 0) /* TEMP_SENSOR_CHARGER (FIXME: alt function?) */
-
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* GPIO87 for EC_I2C_GYRO_SDA */
-ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* GPIO90 for EC_I2C_GYRO_SCL */
-ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* GPIO92-91 for EC_I2C_SENSOR_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB5-B4 for EC_I2C_USB_C0_PD_SDA/SCL */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB3-B2 for EC_I2C_USB_C1_PD_SDA/SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD1-D0 for EC_I2C_POWER_SDA/SCL */
-
-/* FIXME: Make UART RX an interrupt? */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
diff --git a/board/reef/led.c b/board/reef/led.c
deleted file mode 100644
index 807b1c109c..0000000000
--- a/board/reef/led.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright 2016 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.
- *
- * Power and battery LED control for Reef
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "util.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define CRITICAL_LOW_BATTERY_PERCENTAGE 3
-#define LOW_BATTERY_PERCENTAGE 10
-
-#define LED_TOTAL_4SECS_TICKS 4
-#define LED_TOTAL_2SECS_TICKS 2
-#define LED_ON_1SEC_TICKS 1
-#define LED_ON_2SECS_TICKS 2
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_BLUE,
- LED_AMBER,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_OFF);
- break;
- case LED_BLUE:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color(led_id, LED_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int suspend_ticks;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_BLUE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE /* and PWR_STATE_DISCHARGE_FULL */:
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- led_set_color_battery(LED_BLUE);
- } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Blink once every four seconds. */
- led_set_color_battery(
- (suspend_ticks % LED_TOTAL_4SECS_TICKS)
- < LED_ON_1SEC_TICKS ? LED_AMBER : LED_OFF);
- } else {
- led_set_color_battery(LED_OFF);
- }
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks % LED_TOTAL_2SECS_TICKS <
- LED_ON_1SEC_TICKS) ? LED_AMBER : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_BLUE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (charge_get_flags() & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks % LED_TOTAL_4SECS_TICKS <
- LED_ON_2SECS_TICKS) ? LED_AMBER : LED_BLUE);
- else
- led_set_color_battery(LED_BLUE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
- battery_ticks++;
- suspend_ticks++;
-}
-
-/* Called by hook task every 1 sec */
-static void led_second(void)
-{
- /*
- * Reference board only has one LED, so overload it to act as both
- * power LED and battery LED.
- */
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
diff --git a/board/reef/usb_pd_policy.c b/board/reef/usb_pd_policy.c
deleted file mode 100644
index 2d2ef416b2..0000000000
--- a/board/reef/usb_pd_policy.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio = port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN;
- int flags = (vbus_rp[port] == TYPEC_RP_1A5 && vbus_en[port]) ?
- (GPIO_INPUT | GPIO_PULL_UP) : (GPIO_OUTPUT | GPIO_PULL_UP);
-
- /*
- * Driving USB_Cx_5V_EN high, actually put a 16.5k resistance
- * (2x 33k in parallel) on the NX5P3290 load switch ILIM pin,
- * setting a minimum OCP current of 3186 mA.
- * Putting an internal pull-up on USB_Cx_5V_EN, effectively put a 33k
- * resistor on ILIM, setting a minimum OCP current of 1505 mA.
- */
- gpio_set_level(gpio, vbus_en[port]);
- gpio_set_flags(gpio, flags);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Ensure we're not charging from this port */
- bd9995x_select_input_port(port, 0);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_EN_PP5000);
-}
diff --git a/board/reef/vif_override.xml b/board/reef/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/reef/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/reef_it8320/battery.c b/board/reef_it8320/battery.c
deleted file mode 100644
index 1b16a672b2..0000000000
--- a/board/reef_it8320/battery.c
+++ /dev/null
@@ -1,692 +0,0 @@
-/* Copyright 2017 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "bd9995x.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger_profile_override.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-enum battery_type {
- BATTERY_SONY_CORP,
- BATTERY_PANASONIC,
- BATTERY_SMP_COS4870,
- BATTERY_SMP_C22N1626,
- BATTERY_CPT_C22N1626,
- BATTERY_TYPE_COUNT,
-};
-
-enum fast_chg_voltage_ranges {
- VOLTAGE_RANGE_0,
- VOLTAGE_RANGE_1,
- VOLTAGE_RANGE_2,
-};
-
-enum temp_range {
- TEMP_RANGE_0,
- TEMP_RANGE_1,
- TEMP_RANGE_2,
- TEMP_RANGE_3,
- TEMP_RANGE_4,
-};
-
-struct ship_mode_info {
- const int ship_mode_reg;
- const int ship_mode_data;
- int (*batt_init)(void);
-};
-
-struct board_batt_params {
- const char *manuf_name;
- const struct ship_mode_info *ship_mode_inf;
- const struct battery_info *batt_info;
- const struct fast_charge_params *fast_chg_params;
-};
-
-#define DEFAULT_BATTERY_TYPE BATTERY_SONY_CORP
-#define SONY_DISCHARGE_DISABLE_FET_BIT (0x01 << 13)
-#define PANASONIC_DISCHARGE_ENABLE_FET_BIT (0x01 << 14)
-#define C22N1626_DISCHARGE_ENABLE_FET_BIT (0x01 << 0)
-
-/* keep track of previous charge profile info */
-static const struct fast_charge_profile *prev_chg_profile_info;
-
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-
-static enum battery_type board_battery_type = BATTERY_TYPE_COUNT;
-
-static const struct fast_charge_profile fast_charge_smp_cos4870_info[] = {
- /* < 0C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(-1),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-
- /* 0C >= && <=15C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(15),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 944,
- [VOLTAGE_RANGE_1] = 472,
- },
- },
-
- /* 15C > && <=20C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(20),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1416,
- [VOLTAGE_RANGE_1] = 1416,
- },
- },
-
- /* 20C > && <=45C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 3300,
- [VOLTAGE_RANGE_1] = 3300,
- },
- },
-
- /* > 45C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_smp_cos4870 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_smp_cos4870_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_smp_cos4870_info[0],
-};
-
-const struct battery_info batt_info_smp_cos4870 = {
- .voltage_max = TARGET_WITH_MARGIN(8700, 5),
- .voltage_normal = 7600,
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static const struct fast_charge_profile fast_charge_sonycorp_info[] = {
- /* < 10C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(9),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1200,
- [VOLTAGE_RANGE_1] = 1200,
- },
- },
-
- /* >= 10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2250,
- [VOLTAGE_RANGE_1] = 2250,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_sonycorp = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_sonycorp_info),
- .default_temp_range_profile = TEMP_RANGE_1,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_sonycorp_info[0],
-};
-
-const struct battery_info batt_info_sonycorp = {
- .voltage_max = TARGET_WITH_MARGIN(8700, 5),
- .voltage_normal = 7600,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
-};
-
-static const struct fast_charge_profile fast_charge_panasonic_info[] = {
- /* < 0C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(-1),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-
- /* 0C >= && <= 60C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 3072,
- [VOLTAGE_RANGE_1] = 3072,
- },
- },
-
- /* > 60C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_panasonic = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_panasonic_info),
- .default_temp_range_profile = TEMP_RANGE_1,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_panasonic_info[0],
-};
-
-const struct battery_info batt_info_panasoic = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5),
- .voltage_normal = 7700,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
-};
-
-static const struct fast_charge_profile fast_charge_smp_c22n1626_info[] = {
- /* < 1C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(0),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >=1C && <=10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(10),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1752,
- [VOLTAGE_RANGE_1] = 1752,
- [VOLTAGE_RANGE_2] = 1752,
- },
- },
-
- /* 10C > && <=45C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 4672,
- [VOLTAGE_RANGE_1] = 4672,
- [VOLTAGE_RANGE_2] = 2920,
- },
- },
-
- /* 45C > && <=60C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2920,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* > 60C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_smp_c22n1626 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_smp_c22n1626_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8200,
- [VOLTAGE_RANGE_1] = 8500,
- [VOLTAGE_RANGE_2] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_smp_c22n1626_info[0],
-};
-
-static const struct fast_charge_profile fast_charge_cpt_c22n1626_info[] = {
- /* < 1C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(0),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >=1C && <=10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(10),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1752,
- [VOLTAGE_RANGE_1] = 1752,
- [VOLTAGE_RANGE_2] = 1752,
- },
- },
-
- /* 10C > && <=45C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 4600,
- [VOLTAGE_RANGE_1] = 4600,
- [VOLTAGE_RANGE_2] = 2920,
- },
- },
-
- /* 45C > && <=60C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2920,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >60C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_cpt_c22n1626 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_cpt_c22n1626_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8200,
- [VOLTAGE_RANGE_1] = 8500,
- [VOLTAGE_RANGE_2] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_cpt_c22n1626_info[0],
-};
-
-const struct battery_info batt_info_c22n1626 = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5),
- .voltage_normal = 7700,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static int batt_smp_cos4870_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- batt_status & STATUS_INITIALIZED;
-}
-
-static int batt_sony_corp_init(void)
-{
- int batt_status;
-
- /*
- * SB_MANUFACTURER_ACCESS:
- * [13] : Discharging Disabled
- * : 0b - Allowed to Discharge
- * : 1b - Not Allowed to Discharge
- */
- return sb_read(SB_MANUFACTURER_ACCESS, &batt_status) ? 0 :
- !(batt_status & SONY_DISCHARGE_DISABLE_FET_BIT);
-}
-
-static int batt_panasonic_init(void)
-{
- int batt_status;
-
- /*
- * SB_MANUFACTURER_ACCESS:
- * [14] : Discharging Disabled
- * : 0b - Not Allowed to Discharge
- * : 1b - Allowed to Discharge
- */
- return sb_read(SB_MANUFACTURER_ACCESS, &batt_status) ? 0 :
- !!(batt_status & PANASONIC_DISCHARGE_ENABLE_FET_BIT);
-}
-
-static int batt_c22n1626_init(void)
-{
- int batt_status;
-
- /*
- * SB_PACK_STATUS:
- * [0] : Discharging Enabled
- * : 0b - Not Allowed to Discharge
- * : 1b - Allowed to Discharge
- */
- return sb_read(SB_PACK_STATUS, &batt_status) ? 0 :
- !!(batt_status & C22N1626_DISCHARGE_ENABLE_FET_BIT);
-}
-
-static const struct ship_mode_info ship_mode_info_smp_cos4870 = {
- .ship_mode_reg = 0x00,
- .ship_mode_data = 0x0010,
- .batt_init = batt_smp_cos4870_init,
-};
-
-static const struct ship_mode_info ship_mode_info_sonycorp = {
- .ship_mode_reg = 0x3A,
- .ship_mode_data = 0xC574,
- .batt_init = batt_sony_corp_init,
-};
-
-static const struct ship_mode_info ship_mode_info_panasonic = {
- .ship_mode_reg = 0x3A,
- .ship_mode_data = 0xC574,
- .batt_init = batt_panasonic_init,
-};
-
-static const struct ship_mode_info ship_mode_info_c22n1626 = {
- .ship_mode_reg = 0x00,
- .ship_mode_data = 0x0010,
- .batt_init = batt_c22n1626_init,
-};
-
-static const struct board_batt_params info[] = {
- /* BQ40Z555 SONY CORP BATTERY battery specific configurations */
- [BATTERY_SONY_CORP] = {
- .manuf_name = "SONYCorp",
- .ship_mode_inf = &ship_mode_info_sonycorp,
- .fast_chg_params = &fast_chg_params_sonycorp,
- .batt_info = &batt_info_sonycorp,
- },
-
- /* RAJ240045 Panasoic battery specific configurations */
- [BATTERY_PANASONIC] = {
- .manuf_name = "PANASONIC",
- .ship_mode_inf = &ship_mode_info_panasonic,
- .fast_chg_params = &fast_chg_params_panasonic,
- .batt_info = &batt_info_panasoic,
- },
-
- /* BQ40Z55 SMP COS4870 BATTERY battery specific configurations */
- [BATTERY_SMP_COS4870] = {
- .manuf_name = "SMP-COS4870",
- .ship_mode_inf = &ship_mode_info_smp_cos4870,
- .fast_chg_params = &fast_chg_params_smp_cos4870,
- .batt_info = &batt_info_smp_cos4870,
- },
-
- /* BQ40Z55 SMP C22N1626 BATTERY battery specific configurations */
- [BATTERY_SMP_C22N1626] = {
- .manuf_name = "AS1FNZD3KD",
- .ship_mode_inf = &ship_mode_info_c22n1626,
- .fast_chg_params = &fast_chg_params_smp_c22n1626,
- .batt_info = &batt_info_c22n1626,
- },
-
- /* BQ40Z55 CPT C22N1626 BATTERY battery specific configurations */
- [BATTERY_CPT_C22N1626] = {
- .manuf_name = "AS1FOAD3KD",
- .ship_mode_inf = &ship_mode_info_c22n1626,
- .fast_chg_params = &fast_chg_params_cpt_c22n1626,
- .batt_info = &batt_info_c22n1626,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(info) == BATTERY_TYPE_COUNT);
-
-static inline const struct board_batt_params *board_get_batt_params(void)
-{
- return &info[board_battery_type == BATTERY_TYPE_COUNT ?
- DEFAULT_BATTERY_TYPE : board_battery_type];
-}
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_EC_BATT_PRES_L) ? BP_NO : BP_YES;
-}
-
-/* Get type of the battery connected on the board */
-static int board_get_battery_type(void)
-{
- const struct fast_charge_params *chg_params;
- char name[32];
- int i;
-
- if (!battery_manufacturer_name(name, sizeof(name))) {
- for (i = 0; i < BATTERY_TYPE_COUNT; i++) {
- if (!strcasecmp(name, info[i].manuf_name)) {
- board_battery_type = i;
- break;
- }
- }
- }
-
- /* Initialize fast charging parameters */
- chg_params = board_get_batt_params()->fast_chg_params;
- prev_chg_profile_info = &chg_params->chg_profile_info[
- chg_params->default_temp_range_profile];
-
- return board_battery_type;
-}
-
-/*
- * Initialize the battery type for the board.
- *
- * Very first battery info is called by the charger driver to initialize
- * the charger parameters hence initialize the battery type for the board
- * as soon as the I2C is initialized.
- */
-static void board_init_battery_type(void)
-{
- if (board_get_battery_type() != BATTERY_TYPE_COUNT)
- CPRINTS("found batt:%s", info[board_battery_type].manuf_name);
- else
- CPRINTS("battery not found");
-}
-DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1);
-
-const struct battery_info *battery_get_info(void)
-{
- return board_get_batt_params()->batt_info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
- const struct ship_mode_info *ship_mode_inf =
- board_get_batt_params()->ship_mode_inf;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(ship_mode_inf->ship_mode_reg,
- ship_mode_inf->ship_mode_data);
- if (rv != EC_SUCCESS)
- return rv;
-
- return sb_write(ship_mode_inf->ship_mode_reg,
- ship_mode_inf->ship_mode_data);
-}
-
-static int charger_should_discharge_on_ac(struct charge_state_data *curr)
-{
- /* can not discharge on AC without battery */
- if (curr->batt.is_present != BP_YES)
- return 0;
-
- /* Do not discharge on AC if the battery is still waking up */
- if (!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- !(curr->batt.status & STATUS_FULLY_CHARGED))
- return 0;
-
- /*
- * In light load (<450mA being withdrawn from VSYS) the DCDC of the
- * charger operates intermittently i.e. DCDC switches continuously
- * and then stops to regulate the output voltage and current, and
- * sometimes to prevent reverse current from flowing to the input.
- * This causes a slight voltage ripple on VSYS that falls in the
- * audible noise frequency (single digit kHz range). This small
- * ripple generates audible noise in the output ceramic capacitors
- * (caps on VSYS and any input of DCDC under VSYS).
- *
- * To overcome this issue enable the battery learning operation
- * and suspend USB charging and DC/DC converter.
- */
- if (!battery_is_cut_off() &&
- !(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- (curr->batt.status & STATUS_FULLY_CHARGED))
- return 1;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and charge
- * detect delay has passed.
- */
- if (!chg_ramp_is_detected() && curr->batt.state_of_charge > 2)
- return 1;
-
- return 0;
-}
-
-/*
- * This can override the smart battery's charging profile. To make a change,
- * modify one or more of requested_voltage, requested_current, or state.
- * Leave everything else unchanged.
- *
- * Return the next poll period in usec, or zero to use the default (which is
- * state dependent).
- */
-int charger_profile_override(struct charge_state_data *curr)
-{
- int disch_on_ac = charger_should_discharge_on_ac(curr);
-
- charger_discharge_on_ac(disch_on_ac);
-
- if (disch_on_ac) {
- curr->state = ST_DISCHARGE;
- return 0;
- }
-
- return charger_profile_override_common(curr,
- board_get_batt_params()->fast_chg_params,
- &prev_chg_profile_info,
- board_get_batt_params()->batt_info->voltage_max);
-}
-
-/*
- * Physical detection of battery.
- */
-enum battery_present battery_is_present(void)
-{
- enum battery_present batt_pres;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * Make sure battery status is implemented, I2C transactions are
- * success & the battery status is Initialized to find out if it
- * is a working battery and it is not in the cut-off mode.
- *
- * If battery I2C fails but VBATT is high, battery is booting from
- * cut-off mode.
- *
- * FETs are turned off after Power Shutdown time.
- * The device will wake up when a voltage is applied to PACK.
- * Battery status will be inactive until it is initialized.
- */
- if (batt_pres == BP_YES && batt_pres_prev != batt_pres &&
- !battery_is_cut_off()) {
- /* Re-init board battery if battery presence status changes */
- if (board_get_battery_type() == BATTERY_TYPE_COUNT) {
- if (bd9995x_get_battery_voltage() >=
- board_get_batt_params()->batt_info->voltage_min)
- batt_pres = BP_NO;
- } else if (!board_get_batt_params()->ship_mode_inf->batt_init())
- batt_pres = BP_NO;
- }
-
- batt_pres_prev = batt_pres;
-
- return batt_pres;
-}
-
-int board_battery_initialized(void)
-{
- return battery_hw_present() == batt_pres_prev;
-}
diff --git a/board/reef_it8320/board.c b/board/reef_it8320/board.c
deleted file mode 100644
index 92fdc66806..0000000000
--- a/board/reef_it8320/board.c
+++ /dev/null
@@ -1,494 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* reef_it8320 board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/tcpm/tcpm.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_angle.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_sense.h"
-#include "motion_lid.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define IN_ALL_SYS_PG POWER_SIGNAL_MASK(X86_ALL_SYS_PG)
-#define IN_PGOOD_PP3300 POWER_SIGNAL_MASK(X86_PGOOD_PP3300)
-#define IN_PGOOD_PP5000 POWER_SIGNAL_MASK(X86_PGOOD_PP5000)
-
-#include "gpio_list.h"
-
-const struct adc_t adc_channels[] = {
- /* Convert to mV (3000mV/1024). */
- {"CHARGER", 3000, 1024, 0, CHIP_ADC_CH1}, /* GPI1 */
- {"AMBIENT", 3000, 1024, 0, CHIP_ADC_CH2}, /* GPI2 */
- {"BRD_ID", 3000, 1024, 0, CHIP_ADC_CH3}, /* GPI3 */
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct i2c_port_t i2c_ports[] = {
- {"mux", IT83XX_I2C_CH_C, 400,
- GPIO_EC_I2C_C_SCL, GPIO_EC_I2C_C_SDA},
- {"batt", IT83XX_I2C_CH_E, 100,
- GPIO_EC_I2C_E_SCL, GPIO_EC_I2C_E_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv
- },
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv
- },
-};
-
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- int cc1_enabled = 0, cc2_enabled = 0;
-
- if (cc_pin != USBPD_CC_PIN_1)
- cc2_enabled = enabled;
- else
- cc1_enabled = enabled;
-
- if (port) {
- gpio_set_level(GPIO_USB_C1_CC2_VCONN_EN, cc2_enabled);
- gpio_set_level(GPIO_USB_C1_CC1_VCONN_EN, cc1_enabled);
- } else {
- gpio_set_level(GPIO_USB_C0_CC2_VCONN_EN, !cc2_enabled);
- gpio_set_level(GPIO_USB_C0_CC1_VCONN_EN, !cc1_enabled);
- }
-}
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-static void it83xx_tcpc_update_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int hpd_lvl = (mux_state & USB_PD_MUX_HPD_LVL) ? 1 : 0;
- int hpd_irq = (mux_state & USB_PD_MUX_HPD_IRQ) ? 1 : 0;
- enum gpio_signal gpio =
- me->usb_port ? GPIO_USB_C1_HPD_1P8_ODL
- : GPIO_USB_C0_HPD_1P8_ODL;
-
- hpd_lvl = !hpd_lvl;
-
- gpio_set_level(gpio, hpd_lvl);
- if (hpd_irq) {
- gpio_set_level(gpio, 1);
- msleep(1);
- gpio_set_level(gpio, hpd_lvl);
- }
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- .hpd_update = &it83xx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = 0x10,
- .driver = &ps8740_usb_mux_driver,
- .hpd_update = &it83xx_tcpc_update_hpd_status,
- },
-};
-
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_USB1_ENABLE,
-};
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = BD9995X_ADDR_FLAGS,
- .drv = &bd9995x_drv,
- },
-};
-
-/* Called by APL power state machine when transitioning from G3 to S5 */
-void chipset_pre_init_callback(void)
-{
- /*
- * No need to re-init PMIC since settings are sticky across sysjump.
- * However, be sure to check that PMIC is already enabled. If it is
- * then there's no need to re-sequence the PMIC.
- */
- if (system_jumped_to_this_image() && gpio_get_level(GPIO_PMIC_EN))
- return;
-
- /* Enable PP5000 before PP3300 due to NFC: chrome-os-partner:50807 */
- gpio_set_level(GPIO_EN_PP5000, 1);
- while (!gpio_get_level(GPIO_PP5000_PG))
- ;
-
- /*
- * To prevent SLP glitches, PMIC_EN (V5A_EN) should be enabled
- * at the same time as PP3300 (chrome-os-partner:51323).
- */
- /* Enable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 1);
- while (!gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /* Enable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 1);
-}
-
-static void board_set_tablet_mode(void)
-{
- /*
- * Always report device isn't in tablet mode because
- * our id is clamshell and no TABLET_MODE_L pin
- */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- board_set_tablet_mode();
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_L);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_INIT_I2C + 1);
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port != 0 && port != 1)
- panic("Invalid charge port\n");
-
- return bd9995x_is_vbus_provided(port);
-}
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- enum bd9995x_charge_port bd9995x_port = 0;
- int bd9995x_port_select = 1;
-
- switch (charge_port) {
- case 0:
- case 1:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
-
- bd9995x_port = charge_port;
- break;
- case CHARGE_PORT_NONE:
- bd9995x_port_select = 0;
- bd9995x_port = BD9995X_CHARGE_PORT_BOTH;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and
- * charge detect delay has passed.
- */
- if (charge_get_percent() > 2)
- charger_discharge_on_ac(1);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- CPRINTS("New chg p%d", charge_port);
-
- return bd9995x_select_input_port(bd9995x_port, bd9995x_port_select);
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Enable charging trigger by BC1.2 detection */
- int bc12_enable = (supplier == CHARGE_SUPPLIER_BC12_CDP ||
- supplier == CHARGE_SUPPLIER_BC12_DCP ||
- supplier == CHARGE_SUPPLIER_BC12_SDP ||
- supplier == CHARGE_SUPPLIER_OTHER);
-
- if (bd9995x_bc12_enable_charging(port, bc12_enable))
- return;
-
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-/**
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < BD9995X_BC12_MIN_VOLTAGE;
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- /* Enable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 1);
-
- /* Enable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Disable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 0);
-
- /* Disable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 1);
-
- /* FIXME(dhendrix): Drive USB_PD_RST_ODL low to prevent
- * leakage? (see comment in schematic)
- */
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-/* FIXME(dhendrix): Add CHIPSET_RESUME and CHIPSET_SUSPEND
- * hooks to enable/disable sensors?
- */
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*
- * FIXME(dhendrix): Weak symbol hack until we can get a better solution for
- * both Amenia and Reef.
- */
-void chipset_do_shutdown(void)
-{
- /* Disable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 0);
-
- /*Disable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 0);
- while (gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /*Disable 5V rail */
- gpio_set_level(GPIO_EN_PP5000, 0);
- while (gpio_get_level(GPIO_PP5000_PG))
- ;
-}
-
-void board_hibernate_late(void)
-{
- int i;
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs in hibernate */
- {GPIO_BAT_LED_BLUE, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_AMBER, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_LID_OPEN, GPIO_INT_RISING | GPIO_PULL_DOWN},
-
- /*
- * BD99956 handles charge input automatically. We'll disable
- * charge output in hibernate. Charger will assert ACOK_OD
- * when VBUS or VCC are plugged in.
- */
- {GPIO_USB_C0_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- {GPIO_USB_C1_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- };
-
- /* Change GPIOs' state in hibernate for better power consumption */
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-}
-
-void board_hibernate(void)
-{
- /*
- * To support hibernate called from console commands, ectool commands
- * and key sequence, shutdown the AP before hibernating.
- */
- chipset_do_shutdown();
-
- /* Added delay to allow AP to settle down */
- msleep(100);
-
- /* Enable both the VBUS & VCC ports before entering PG3 */
- bd9995x_select_input_port(BD9995X_CHARGE_PORT_BOTH, 1);
-
- /* Turn BGATE OFF for saving the power */
- bd9995x_set_power_save_mode(BD9995X_PWR_SAVE_MAX);
-}
-
-struct {
- enum reef_it8320_board_version version;
- int thresh_mv;
-} const reef_it8320_board_versions[] = {
- /* Vin = 3.3V, R1 = 46.4K, R2 values listed below */
- { BOARD_VERSION_1, 328 * 1.03 }, /* 5.11 Kohm */
- { BOARD_VERSION_2, 670 * 1.03 }, /* 11.8 Kohm */
- { BOARD_VERSION_3, 1012 * 1.03 }, /* 20.5 Kohm */
- { BOARD_VERSION_4, 1357 * 1.03 }, /* 32.4 Kohm */
- { BOARD_VERSION_5, 1690 * 1.03 }, /* 48.7 Kohm */
- { BOARD_VERSION_6, 2020 * 1.03 }, /* 73.2 Kohm */
- { BOARD_VERSION_7, 2352 * 1.03 }, /* 115 Kohm */
- { BOARD_VERSION_8, 2802 * 1.03 }, /* 261 Kohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(reef_it8320_board_versions) == BOARD_VERSION_COUNT);
-
-int board_get_version(void)
-{
- static int version = BOARD_VERSION_UNKNOWN;
- int mv, i;
-
- if (version != BOARD_VERSION_UNKNOWN)
- return version;
-
- /* FIXME(dhendrix): enable ADC */
- gpio_set_flags(GPIO_EC_BRD_ID_EN_ODL, GPIO_ODR_HIGH);
- gpio_set_level(GPIO_EC_BRD_ID_EN_ODL, 0);
- /* Wait to allow cap charge */
- msleep(1);
- mv = adc_read_channel(ADC_BOARD_ID);
- /* FIXME(dhendrix): disable ADC */
- gpio_set_level(GPIO_EC_BRD_ID_EN_ODL, 1);
- gpio_set_flags(GPIO_EC_BRD_ID_EN_ODL, GPIO_INPUT);
-
- if (mv == ADC_READ_ERROR) {
- version = BOARD_VERSION_UNKNOWN;
- return version;
- }
-
- for (i = 0; i < BOARD_VERSION_COUNT; i++) {
- if (mv < reef_it8320_board_versions[i].thresh_mv) {
- version = reef_it8320_board_versions[i].version;
- break;
- }
- }
-
- CPRINTS("Board version: %d", version);
- return version;
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/reef_it8320/board.h b/board/reef_it8320/board.h
deleted file mode 100644
index 510aff4792..0000000000
--- a/board/reef_it8320/board.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* reef_it8320 board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Enable PD in RO image for TCPMv2, otherwise there is only Type-c functions.
- * NOTE: This configuration is only for development board and will never be
- * released on a chrome os device.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* EC console commands */
-#define CONFIG_CMD_BATT_MFG_ACCESS
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define BD9995X_IOUT_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_IOUT_GAIN_SET_20V
-
-#define CONFIG_CHARGER_PSYS_READ
-#define BD9995X_PSYS_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_PMON_GAIN_SET_02UAW
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_BD9995X
-#define CONFIG_CHARGER_BD9995X_CHGEN
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 1
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 18000
-#define CONFIG_CHARGER_MAINTAIN_VBAT
-#undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
-#define CONFIG_USB_CHARGER
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_PROFILE_OVERRIDE_COMMON
-#undef CONFIG_CHARGER_PROFILE_VOLTAGE_RANGES
-#define CONFIG_CHARGER_PROFILE_VOLTAGE_RANGES 3
-#define CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_SIMPLE
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A_CHARGE_EN_L
-#define GPIO_USB_CTL1 GPIO_EN_PP5000
-
-/* USB PD config */
-#define CONFIG_USB_MUX_PI3USB30532
-#define CONFIG_USB_MUX_PS8740
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV2
-#define CONFIG_USB_DRP_ACC_TRYSRC
-#define CONFIG_USB_PD_REV30
-#define CONFIG_USB_PID 0x1234 /* Invalid PID for development board */
-#define CONFIG_USB_PD_DECODE_SOP
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* SoC / PCH */
-#define CONFIG_HOSTCMD_LPC
-#define CONFIG_CHIPSET_APOLLOLAKE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_IT83XX_VCC_3P3V
-
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_TABLET_MODE
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-#define CONFIG_DPTF
-#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND EC_WIRELESS_SWITCH_WLAN_POWER
-#define CONFIG_WLAN_POWER_ACTIVE_LOW
-#define WIRELESS_GPIO_WLAN_POWER GPIO_WIRELESS_GPIO_WLAN_POWER
-#define CONFIG_PWR_STATE_DISCHARGE_FULL
-#undef CONFIG_KEYBOARD_VIVALDI
-
-/*
- * Enable 1 slot of secure temporary storage to support
- * suspend/resume with read/write memory training.
- */
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-#undef CONFIG_UART_RX_BUF_SIZE
-#define CONFIG_UART_RX_BUF_SIZE 512
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* I2C ports */
-#define I2C_PORT_USB_MUX IT83XX_I2C_CH_C
-#define I2C_PORT_BATTERY IT83XX_I2C_CH_E
-#define I2C_PORT_CHARGER IT83XX_I2C_CH_E
-
-/* ADC signal */
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER, /* ADC CH1 */
- ADC_TEMP_SENSOR_AMB, /* ADC CH2 */
- ADC_BOARD_ID, /* ADC CH3 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY = 0,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum reef_it8320_board_version {
- BOARD_VERSION_UNKNOWN = -1,
- BOARD_VERSION_1,
- BOARD_VERSION_2,
- BOARD_VERSION_3,
- BOARD_VERSION_4,
- BOARD_VERSION_5,
- BOARD_VERSION_6,
- BOARD_VERSION_7,
- BOARD_VERSION_8,
- BOARD_VERSION_COUNT,
-};
-
-/* TODO: determine the following board specific type-C power constants */
-/* FIXME(dhendrix): verify all of the below PD_* numbers */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Reset PD MCU */
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/reef_it8320/build.mk b/board/reef_it8320/build.mk
deleted file mode 100644
index e5c12f9090..0000000000
--- a/board/reef_it8320/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-#
-# the IC is ITE IT8320
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/reef_it8320/ec.tasklist b/board/reef_it8320/ec.tasklist
deleted file mode 100644
index fdaf792a17..0000000000
--- a/board/reef_it8320/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, TRENTA_TASK_STACK_SIZE)
diff --git a/board/reef_it8320/gpio.inc b/board/reef_it8320/gpio.inc
deleted file mode 100644
index 9882065d50..0000000000
--- a/board/reef_it8320/gpio.inc
+++ /dev/null
@@ -1,124 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-GPIO_INT(CHARGER_INT_L, PIN(A, 6), GPIO_INT_FALLING, bd9995x_vbus_interrupt) /* CHARGER_EC_INT_ODL from BD99956 */
-GPIO_INT(AC_PRESENT, PIN(A, 7), GPIO_INT_BOTH, extpower_interrupt) /* ACOK_OD from BD99956 */
-#ifdef CONFIG_LOW_POWER_IDLE
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING, uart_deepsleep_interrupt) /* UART_SERVO_TX_EC_RX */
-#endif
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* EC_VOLUP_BTN_ODL */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* EC_VOLDN_BTN_ODL */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(B, 7), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(SUSPWRDNACK, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRNACK */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH, lid_interrupt) /* LID_OPEN */
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO_INT(PCH_PLTRST_L, PIN(E, 3), GPIO_INT_BOTH | GPIO_PULL_UP, lpcrst_interrupt) /* PLT_RST_L */
-#endif
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 0), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-GPIO_INT(RSMRST_L_PGOOD, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(PCH_SLP_S3_L, PIN(F, 2), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(PCH_SLP_S4_L, PIN(F, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(WP_L, PIN(I, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, switch_interrupt) /* EC_WP_ODL_R */
-
-GPIO(EN_USB_C0_3A, PIN(A, 0), GPIO_ODR_LOW) /* 1.5/3.0 C0 current limit selection */
-GPIO(EN_USB_C1_3A, PIN(A, 1), GPIO_ODR_LOW) /* 1.5/3.0 C1 current limit selection */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(A, 2), GPIO_ODR_HIGH) /* EN_PP3300_TRACKPAD_ODL */
-GPIO(EC_HAVEN_RESET_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* EC_HAVEN_RST_ODL */
-/* Pin A.4 A.5 (I2C) for iteflash (servo board) */
-GPIO(WIRELESS_GPIO_WLAN_POWER, PIN(B, 2), GPIO_ODR_HIGH) /* EN_PP3300_WLAN_ODL */
-/* I2C GPIOs will be set to ALT function later. */
-GPIO(EC_I2C_A_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_GYRO_SCL */
-GPIO(EC_I2C_A_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_GYRO_SDA */
-GPIO(ENABLE_BACKLIGHT, PIN(B, 5), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(SYS_RESET_L, PIN(B, 6), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(B, 7), GPIO_INPUT) /* SLP_S0_L */
-#endif
-GPIO(EC_BATT_PRES_L, PIN(C, 0), GPIO_INPUT) /* EC_BATT_PRES_L */
-GPIO(EC_I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(EC_I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-/*
- * BRD_ID1 is a an ADC pin which will be used to measure multiple values.
- * Assert EC_BRD_ID_EN_ODL and then read BRD_ID1.
- */
-GPIO(EC_BRD_ID_EN_ODL, PIN(C, 3), GPIO_INPUT) /* EC_BRD_ID_EN_ODL */
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT) /* CCD_MODE_ODL */
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_RSMRST_L, PIN(C, 6), GPIO_OUT_LOW) /* PCH_RSMRST_L */
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(C, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-GPIO(PCH_PWRBTN_L, PIN(D, 0), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-GPIO(PCH_WAKE_L, PIN(D, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_PCH_WAKE_ODL */
-GPIO(DP_MUX_EN, PIN(D, 2), GPIO_OUT_HIGH) /* DB_MUX_EN */
-GPIO(PCH_SCI_L, PIN(D, 3), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SCI_ODL */
-GPIO(PCH_SMI_L, PIN(D, 4), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SMI_ODL */
-GPIO(PMIC_EN, PIN(D, 7), GPIO_OUT_LOW) /* PMIC_A_RAILS_EN */
-GPIO(EC_I2C_E_SCL, PIN(E, 0), GPIO_INPUT) /* EC_I2C_POWER_3V3_SCL */
-/* FIXME: this pin doesn't support 1.8v */
-#if 0
-GPIO(KBD_IRQ_L, PIN(E, 5), GPIO_ODR_HIGH) /* EC_PCH_KB_INT_ODL */
-#endif
-GPIO(CHARGER_RST_ODL, PIN(E, 6), GPIO_ODR_HIGH) /* CHARGER_RST_ODL */
-GPIO(EC_I2C_E_SDA, PIN(E, 7), GPIO_INPUT) /* EC_I2C_POWER_3V3_SDA */
-/* F.5 F.4 are cc pins of PD0 */
-GPIO(EC_I2C_C_SCL, PIN(F, 6), GPIO_INPUT) /* EC_I2C_USBC_MUX_SCL */
-GPIO(EC_I2C_C_SDA, PIN(F, 7), GPIO_INPUT) /* EC_I2C_USBC_MUX_SDA */
-GPIO(LPC_CLKRUN_L, PIN(H, 0), GPIO_OUT_LOW) /* LPC_CLKRUN_L */
-/* H.1 H.2 are cc pins of PD1 */
-GPIO(TRACKPAD_INT_GATE, PIN(H, 3), GPIO_OUT_LOW)
-GPIO(USB2_OTG_VBUSSENSE, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(USB_C0_HPD_1P8_ODL, PIN(J, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* USB_C0_HPD_1V8_ODL */
-GPIO(USB_C1_HPD_1P8_ODL, PIN(J, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* USB_C1_HPD_1V8_ODL */
-GPIO(LID_ACCEL_INT_L, PIN(J, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* LID_ACCEL_INT_L */
-/* NOTE: Active low */
-GPIO(USB_C0_CC1_VCONN_EN, PIN(J, 4), GPIO_ODR_HIGH) /* USB_C0_CC1_VCONN_EN_ODL */
-GPIO(USB_C0_CC2_VCONN_EN, PIN(J, 5), GPIO_ODR_HIGH) /* USB_C0_CC2_VCONN_EN_ODL */
-
-GPIO(EN_PP3300, PIN(K, 0), GPIO_OUT_LOW) /* EN_PP3300 */
-GPIO(PP3300_PG, PIN(K, 1), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(EN_PP5000, PIN(K, 2), GPIO_OUT_LOW) /* EN_PP5000 */
-GPIO(PP5000_PG, PIN(K, 3), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(PCH_SYS_PWROK, PIN(K, 4), GPIO_OUT_LOW) /* EC_PCH_PWROK */
-/* NOTE: These two pins are reserved on this test board. */
-GPIO(USB_C1_CC1_VCONN_EN, PIN(K, 5), GPIO_INPUT | GPIO_PULL_DOWN) /* USB_C1_CC1_VCONN_EN */
-GPIO(USB_C1_CC2_VCONN_EN, PIN(K, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* USB_C1_CC2_VCONN_EN */
-/* EC_PCH_RTCRST is a sledgehammer for resetting SoC state and should rarely
- * be used. Set as input for now, we'll set it as an output when we want to use
- * it. Has external pull-down resistor. */
-GPIO(EC_PCH_RTCRST, PIN(K, 7), GPIO_INPUT) /* EC_PCH_RTCRST */
-GPIO(USB_A_CHARGE_EN_L, PIN(L, 0), GPIO_OUT_LOW) /* USB_A_CHARGE_EN_L */
-GPIO(USB1_ENABLE, PIN(L, 1), GPIO_OUT_LOW) /* EN_USB_A_5V */
-/*
- * Configure as input to enable @ 1.5A, output-low to turn off, or output-high
- * to enable @ 3A.
- */
-GPIO(USB_C0_5V_EN, PIN(L, 2), GPIO_OUT_LOW) /* EN_USB_C0_5V_OUT, Enable C0 */
-GPIO(USB_C1_5V_EN, PIN(L, 3), GPIO_OUT_LOW) /* EN_USB_C1_5V_OUT, Enable C1 */
-GPIO(BAT_LED_BLUE, PIN(L, 4), GPIO_OUT_HIGH) /* BLUE_PWR_LED */
-GPIO(BAT_LED_AMBER, PIN(L, 5), GPIO_OUT_HIGH) /* ORANGE_CHG_LED */
-GPIO(USB_C0_DISCHARGE, PIN(L, 6), GPIO_OUT_LOW) /* USB_C0_DISCHARGE */
-GPIO(USB_C1_DISCHARGE, PIN(L, 7), GPIO_OUT_LOW) /* USB_C1_DISCHARGE */
-
-/*
- * Alternate function pins
- */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* UART1 */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A SCL/SDA */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, 0) /* I2C B SCL/SDA */
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E SCL/SDA */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C SCL/SDA */
-ALTERNATE(PIN_MASK(I, 0x0E), 1, MODULE_ADC, 0) /* ADC CH1-CH3 */
diff --git a/board/reef_it8320/led.c b/board/reef_it8320/led.c
deleted file mode 100644
index a1ea5964a8..0000000000
--- a/board/reef_it8320/led.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright 2017 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.
- *
- * Power and battery LED control for Reef
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "util.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define CRITICAL_LOW_BATTERY_PERCENTAGE 3
-#define LOW_BATTERY_PERCENTAGE 10
-
-#define LED_TOTAL_4SECS_TICKS 4
-#define LED_TOTAL_2SECS_TICKS 2
-#define LED_ON_1SEC_TICKS 1
-#define LED_ON_2SECS_TICKS 2
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_BLUE,
- LED_AMBER,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_OFF);
- break;
- case LED_BLUE:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color(led_id, LED_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int suspend_ticks;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_BLUE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE /* and PWR_STATE_DISCHARGE_FULL */:
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- led_set_color_battery(LED_BLUE);
- } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Blink once every four seconds. */
- led_set_color_battery(
- (suspend_ticks % LED_TOTAL_4SECS_TICKS)
- < LED_ON_1SEC_TICKS ? LED_AMBER : LED_OFF);
- } else {
- led_set_color_battery(LED_OFF);
- }
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks % LED_TOTAL_2SECS_TICKS <
- LED_ON_1SEC_TICKS) ? LED_AMBER : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_BLUE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (charge_get_flags() & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks % LED_TOTAL_4SECS_TICKS <
- LED_ON_2SECS_TICKS) ? LED_AMBER : LED_BLUE);
- else
- led_set_color_battery(LED_BLUE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
- battery_ticks++;
- suspend_ticks++;
-}
-
-/* Called by hook task every 1 sec */
-static void led_second(void)
-{
- /*
- * Reference board only has one LED, so overload it to act as both
- * power LED and battery LED.
- */
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
diff --git a/board/reef_it8320/usb_pd_policy.c b/board/reef_it8320/usb_pd_policy.c
deleted file mode 100644
index 7fec6bc975..0000000000
--- a/board/reef_it8320/usb_pd_policy.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio = port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN;
- enum gpio_signal gpio_3a_en = port ? GPIO_EN_USB_C1_3A :
- GPIO_EN_USB_C0_3A;
-
- gpio_set_level(gpio_3a_en, vbus_rp[port] == TYPEC_RP_3A0 ? 1 : 0);
- gpio_set_level(gpio, vbus_en[port]);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Ensure we're not charging from this port */
- bd9995x_select_input_port(port, 0);
-
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_EN_PP5000);
-}
diff --git a/board/reef_it8320/vif_override.xml b/board/reef_it8320/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/reef_it8320/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/reef_mchp/battery.c b/board/reef_mchp/battery.c
deleted file mode 100644
index c557533c9d..0000000000
--- a/board/reef_mchp/battery.c
+++ /dev/null
@@ -1,700 +0,0 @@
-/* Copyright 2016 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "bd9995x.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger_profile_override.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "util.h"
-#include "tfdp_chip.h"
-
-#define CPUTS(outstr) cputs(CC_CHARGER, outstr)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-enum battery_type {
- BATTERY_SONY_CORP,
- BATTERY_PANASONIC,
- BATTERY_SMP_COS4870,
- BATTERY_SMP_C22N1626,
- BATTERY_CPT_C22N1626,
- BATTERY_TYPE_COUNT,
-};
-
-enum fast_chg_voltage_ranges {
- VOLTAGE_RANGE_0,
- VOLTAGE_RANGE_1,
- VOLTAGE_RANGE_2,
-};
-
-enum temp_range {
- TEMP_RANGE_0,
- TEMP_RANGE_1,
- TEMP_RANGE_2,
- TEMP_RANGE_3,
- TEMP_RANGE_4,
-};
-
-struct ship_mode_info {
- const int ship_mode_reg;
- const int ship_mode_data;
- int (*batt_init)(void);
-};
-
-struct board_batt_params {
- const char *manuf_name;
- const struct ship_mode_info *ship_mode_inf;
- const struct battery_info *batt_info;
- const struct fast_charge_params *fast_chg_params;
-};
-
-#define DEFAULT_BATTERY_TYPE BATTERY_SONY_CORP
-#define SONY_DISCHARGE_DISABLE_FET_BIT (0x01 << 13)
-#define PANASONIC_DISCHARGE_ENABLE_FET_BIT (0x01 << 14)
-#define C22N1626_DISCHARGE_ENABLE_FET_BIT (0x01 << 0)
-
-/* keep track of previous charge profile info */
-static const struct fast_charge_profile *prev_chg_profile_info;
-
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-
-static enum battery_type board_battery_type = BATTERY_TYPE_COUNT;
-
-static const struct fast_charge_profile fast_charge_smp_cos4870_info[] = {
- /* < 0C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(-1),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-
- /* 0C >= && <=15C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(15),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 944,
- [VOLTAGE_RANGE_1] = 472,
- },
- },
-
- /* 15C > && <=20C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(20),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1416,
- [VOLTAGE_RANGE_1] = 1416,
- },
- },
-
- /* 20C > && <=45C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 3300,
- [VOLTAGE_RANGE_1] = 3300,
- },
- },
-
- /* > 45C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_smp_cos4870 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_smp_cos4870_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_smp_cos4870_info[0],
-};
-
-const struct battery_info batt_info_smp_cos4870 = {
- .voltage_max = TARGET_WITH_MARGIN(8700, 5),
- .voltage_normal = 7600,
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 46,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static const struct fast_charge_profile fast_charge_sonycorp_info[] = {
- /* < 10C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(9),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1200,
- [VOLTAGE_RANGE_1] = 1200,
- },
- },
-
- /* >= 10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2250,
- [VOLTAGE_RANGE_1] = 2250,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_sonycorp = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_sonycorp_info),
- .default_temp_range_profile = TEMP_RANGE_1,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_sonycorp_info[0],
-};
-
-const struct battery_info batt_info_sonycorp = {
- .voltage_max = TARGET_WITH_MARGIN(8700, 5),
- .voltage_normal = 7600,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
-};
-
-static const struct fast_charge_profile fast_charge_panasonic_info[] = {
- /* < 0C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(-1),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-
- /* 0C >= && <= 60C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 3072,
- [VOLTAGE_RANGE_1] = 3072,
- },
- },
-
- /* > 60C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_panasonic = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_panasonic_info),
- .default_temp_range_profile = TEMP_RANGE_1,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8000,
- [VOLTAGE_RANGE_1] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_panasonic_info[0],
-};
-
-const struct battery_info batt_info_panasoic = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5),
- .voltage_normal = 7700,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
-};
-
-static const struct fast_charge_profile fast_charge_smp_c22n1626_info[] = {
- /* < 1C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(0),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >=1C && <=10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(10),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1752,
- [VOLTAGE_RANGE_1] = 1752,
- [VOLTAGE_RANGE_2] = 1752,
- },
- },
-
- /* 10C > && <=45C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 4672,
- [VOLTAGE_RANGE_1] = 4672,
- [VOLTAGE_RANGE_2] = 2920,
- },
- },
-
- /* 45C > && <=60C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2920,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* > 60C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_smp_c22n1626 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_smp_c22n1626_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8200,
- [VOLTAGE_RANGE_1] = 8500,
- [VOLTAGE_RANGE_2] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_smp_c22n1626_info[0],
-};
-
-static const struct fast_charge_profile fast_charge_cpt_c22n1626_info[] = {
- /* < 1C */
- [TEMP_RANGE_0] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(0),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >=1C && <=10C */
- [TEMP_RANGE_1] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(10),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 1752,
- [VOLTAGE_RANGE_1] = 1752,
- [VOLTAGE_RANGE_2] = 1752,
- },
- },
-
- /* 10C > && <=45C */
- [TEMP_RANGE_2] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(45),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 4600,
- [VOLTAGE_RANGE_1] = 4600,
- [VOLTAGE_RANGE_2] = 2920,
- },
- },
-
- /* 45C > && <=60C */
- [TEMP_RANGE_3] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(60),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 2920,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-
- /* >60C */
- [TEMP_RANGE_4] = {
- .temp_c = TEMPC_TENTHS_OF_DEG(CHARGER_PROF_TEMP_C_LAST_RANGE),
- .current_mA = {
- [VOLTAGE_RANGE_0] = 0,
- [VOLTAGE_RANGE_1] = 0,
- [VOLTAGE_RANGE_2] = 0,
- },
- },
-};
-
-static const struct fast_charge_params fast_chg_params_cpt_c22n1626 = {
- .total_temp_ranges = ARRAY_SIZE(fast_charge_cpt_c22n1626_info),
- .default_temp_range_profile = TEMP_RANGE_2,
- .voltage_mV = {
- [VOLTAGE_RANGE_0] = 8200,
- [VOLTAGE_RANGE_1] = 8500,
- [VOLTAGE_RANGE_2] = CHARGER_PROF_VOLTAGE_MV_LAST_RANGE,
- },
- .chg_profile_info = &fast_charge_cpt_c22n1626_info[0],
-};
-
-const struct battery_info batt_info_c22n1626 = {
- .voltage_max = TARGET_WITH_MARGIN(8800, 5),
- .voltage_normal = 7700,
-
- /*
- * Actual value 6000mV, added 100mV for charger accuracy so that
- * unwanted low VSYS_Prochot# assertion can be avoided.
- */
- .voltage_min = 6100,
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
-};
-
-static int batt_smp_cos4870_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- batt_status & STATUS_INITIALIZED;
-}
-
-static int batt_sony_corp_init(void)
-{
- int batt_status;
-
- /*
- * SB_MANUFACTURER_ACCESS:
- * [13] : Discharging Disabled
- * : 0b - Allowed to Discharge
- * : 1b - Not Allowed to Discharge
- */
- return sb_read(SB_MANUFACTURER_ACCESS, &batt_status) ? 0 :
- !(batt_status & SONY_DISCHARGE_DISABLE_FET_BIT);
-}
-
-static int batt_panasonic_init(void)
-{
- int batt_status;
-
- /*
- * SB_MANUFACTURER_ACCESS:
- * [14] : Discharging Disabled
- * : 0b - Not Allowed to Discharge
- * : 1b - Allowed to Discharge
- */
- return sb_read(SB_MANUFACTURER_ACCESS, &batt_status) ? 0 :
- !!(batt_status & PANASONIC_DISCHARGE_ENABLE_FET_BIT);
-}
-
-static int batt_c22n1626_init(void)
-{
- int batt_status;
-
- /*
- * SB_PACK_STATUS:
- * [0] : Discharging Enabled
- * : 0b - Not Allowed to Discharge
- * : 1b - Allowed to Discharge
- */
- return sb_read(SB_PACK_STATUS, &batt_status) ? 0 :
- !!(batt_status & C22N1626_DISCHARGE_ENABLE_FET_BIT);
-}
-
-static const struct ship_mode_info ship_mode_info_smp_cos4870 = {
- .ship_mode_reg = 0x00,
- .ship_mode_data = 0x0010,
- .batt_init = batt_smp_cos4870_init,
-};
-
-static const struct ship_mode_info ship_mode_info_sonycorp = {
- .ship_mode_reg = 0x3A,
- .ship_mode_data = 0xC574,
- .batt_init = batt_sony_corp_init,
-};
-
-static const struct ship_mode_info ship_mode_info_panasonic = {
- .ship_mode_reg = 0x3A,
- .ship_mode_data = 0xC574,
- .batt_init = batt_panasonic_init,
-};
-
-static const struct ship_mode_info ship_mode_info_c22n1626 = {
- .ship_mode_reg = 0x00,
- .ship_mode_data = 0x0010,
- .batt_init = batt_c22n1626_init,
-};
-
-static const struct board_batt_params info[] = {
- /* BQ40Z555 SONY CORP BATTERY battery specific configurations */
- [BATTERY_SONY_CORP] = {
- .manuf_name = "SONYCorp",
- .ship_mode_inf = &ship_mode_info_sonycorp,
- .fast_chg_params = &fast_chg_params_sonycorp,
- .batt_info = &batt_info_sonycorp,
- },
-
- /* RAJ240045 Panasoic battery specific configurations */
- [BATTERY_PANASONIC] = {
- .manuf_name = "PANASONIC",
- .ship_mode_inf = &ship_mode_info_panasonic,
- .fast_chg_params = &fast_chg_params_panasonic,
- .batt_info = &batt_info_panasoic,
- },
-
- /* BQ40Z55 SMP COS4870 BATTERY battery specific configurations */
- [BATTERY_SMP_COS4870] = {
- .manuf_name = "SMP-COS4870",
- .ship_mode_inf = &ship_mode_info_smp_cos4870,
- .fast_chg_params = &fast_chg_params_smp_cos4870,
- .batt_info = &batt_info_smp_cos4870,
- },
-
- /* BQ40Z55 SMP C22N1626 BATTERY battery specific configurations */
- [BATTERY_SMP_C22N1626] = {
- .manuf_name = "AS1FNZD3KD",
- .ship_mode_inf = &ship_mode_info_c22n1626,
- .fast_chg_params = &fast_chg_params_smp_c22n1626,
- .batt_info = &batt_info_c22n1626,
- },
-
- /* BQ40Z55 CPT C22N1626 BATTERY battery specific configurations */
- [BATTERY_CPT_C22N1626] = {
- .manuf_name = "AS1FOAD3KD",
- .ship_mode_inf = &ship_mode_info_c22n1626,
- .fast_chg_params = &fast_chg_params_cpt_c22n1626,
- .batt_info = &batt_info_c22n1626,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(info) == BATTERY_TYPE_COUNT);
-
-static inline const struct board_batt_params *board_get_batt_params(void)
-{
- return &info[board_battery_type == BATTERY_TYPE_COUNT ?
- DEFAULT_BATTERY_TYPE : board_battery_type];
-}
-
-enum battery_present battery_hw_present(void)
-{
- int bp;
-
- /* The GPIO is low when the battery is physically present */
- bp = gpio_get_level(GPIO_EC_BATT_PRES_L);
- return bp ? BP_NO : BP_YES;
-}
-
-/* Get type of the battery connected on the board */
-static int board_get_battery_type(void)
-{
- const struct fast_charge_params *chg_params;
- char name[32];
- int i;
-
- if (!battery_manufacturer_name(name, sizeof(name))) {
- for (i = 0; i < BATTERY_TYPE_COUNT; i++) {
- if (!strcasecmp(name, info[i].manuf_name)) {
- board_battery_type = i;
- break;
- }
- }
- }
-
- /* Initialize fast charging parameters */
- chg_params = board_get_batt_params()->fast_chg_params;
- prev_chg_profile_info = &chg_params->chg_profile_info[
- chg_params->default_temp_range_profile];
-
- return board_battery_type;
-}
-
-/*
- * Initialize the battery type for the board.
- *
- * Very first battery info is called by the charger driver to initialize
- * the charger parameters hence initialize the battery type for the board
- * as soon as the I2C is initialized.
- */
-static void board_init_battery_type(void)
-{
- if (board_get_battery_type() != BATTERY_TYPE_COUNT)
- CPRINTS("found batt:%s",
- info[board_battery_type].manuf_name);
- else
- CPUTS("battery not found");
-}
-DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1);
-
-const struct battery_info *battery_get_info(void)
-{
- return board_get_batt_params()->batt_info;
-}
-
-int board_cut_off_battery(void)
-{
- int rv;
- const struct ship_mode_info *ship_mode_inf =
- board_get_batt_params()->ship_mode_inf;
-
- /* Ship mode command must be sent twice to take effect */
- rv = sb_write(ship_mode_inf->ship_mode_reg,
- ship_mode_inf->ship_mode_data);
- if (rv != EC_SUCCESS)
- return rv;
-
- rv = sb_write(ship_mode_inf->ship_mode_reg,
- ship_mode_inf->ship_mode_data);
-
- return rv;
-}
-
-static int charger_should_discharge_on_ac(struct charge_state_data *curr)
-{
- /* can not discharge on AC without battery */
- if (curr->batt.is_present != BP_YES)
- return 0;
-
- /* Do not discharge on AC if the battery is still waking up */
- if (!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- !(curr->batt.status & STATUS_FULLY_CHARGED))
- return 0;
-
- /*
- * In light load (<450mA being withdrawn from VSYS) the DCDC of the
- * charger operates intermittently i.e. DCDC switches continuously
- * and then stops to regulate the output voltage and current, and
- * sometimes to prevent reverse current from flowing to the input.
- * This causes a slight voltage ripple on VSYS that falls in the
- * audible noise frequency (single digit kHz range). This small
- * ripple generates audible noise in the output ceramic capacitors
- * (caps on VSYS and any input of DCDC under VSYS).
- *
- * To overcome this issue enable the battery learning operation
- * and suspend USB charging and DC/DC converter.
- */
- if (!battery_is_cut_off() &&
- !(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
- (curr->batt.status & STATUS_FULLY_CHARGED))
- return 1;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and charge
- * detect delay has passed.
- */
- if (!chg_ramp_is_detected() && curr->batt.state_of_charge > 2)
- return 1;
-
- return 0;
-}
-
-/*
- * This can override the smart battery's charging profile. To make a change,
- * modify one or more of requested_voltage, requested_current, or state.
- * Leave everything else unchanged.
- *
- * Return the next poll period in usec, or zero to use the default (which is
- * state dependent).
- */
-int charger_profile_override(struct charge_state_data *curr)
-{
- int disch_on_ac = charger_should_discharge_on_ac(curr);
-
- charger_discharge_on_ac(disch_on_ac);
-
- if (disch_on_ac) {
- curr->state = ST_DISCHARGE;
- return 0;
- }
-
- return charger_profile_override_common(curr,
- board_get_batt_params()->fast_chg_params,
- &prev_chg_profile_info,
- board_get_batt_params()->batt_info->voltage_max);
-}
-
-/*
- * Physical detection of battery.
- */
-enum battery_present battery_is_present(void)
-{
- enum battery_present batt_pres;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * Make sure battery status is implemented, I2C transactions are
- * success & the battery status is Initialized to find out if it
- * is a working battery and it is not in the cut-off mode.
- *
- * If battery I2C fails but VBATT is high, battery is booting from
- * cut-off mode.
- *
- * FETs are turned off after Power Shutdown time.
- * The device will wake up when a voltage is applied to PACK.
- * Battery status will be inactive until it is initialized.
- */
- if (batt_pres == BP_YES && batt_pres_prev != batt_pres &&
- !battery_is_cut_off()) {
- /* Re-init board battery if battery presence status changes */
- if (board_get_battery_type() == BATTERY_TYPE_COUNT) {
- if (bd9995x_get_battery_voltage() >=
- board_get_batt_params()->batt_info->voltage_min)
- batt_pres = BP_NO;
- } else if (!board_get_batt_params()->ship_mode_inf->batt_init())
- batt_pres = BP_NO;
- }
-
- batt_pres_prev = batt_pres;
-
- return batt_pres;
-}
-
-int board_battery_initialized(void)
-{
- return (battery_hw_present() == batt_pres_prev);
-}
diff --git a/board/reef_mchp/board.c b/board/reef_mchp/board.c
deleted file mode 100644
index b934264510..0000000000
--- a/board/reef_mchp/board.c
+++ /dev/null
@@ -1,1172 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Reef board-specific configuration */
-
-#include "adc.h"
-#include "als.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/als_opt3001.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/baro_bmp280.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_angle.h"
-#include "lid_switch.h"
-#include "math_util.h"
-#include "motion_sense.h"
-#include "motion_lid.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "lpc_chip.h"
-#include "spi.h"
-#include "spi_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "tfdp_chip.h"
-#include "temp_sensor/thermistor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-
-#define CPUTS(outstr) cputs(CC_USBCHARGE, outstr)
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define IN_ALL_SYS_PG POWER_SIGNAL_MASK(X86_ALL_SYS_PG)
-#define IN_PGOOD_PP3300 POWER_SIGNAL_MASK(X86_PGOOD_PP3300)
-#define IN_PGOOD_PP5000 POWER_SIGNAL_MASK(X86_PGOOD_PP5000)
-
-#define USB_PD_PORT_ANX74XX 0
-#define USB_PD_PORT_PS8751 1
-
-#ifdef CONFIG_BOARD_PRE_INIT
-/*
- * reefmchp - requires changing
- * VTR1 pin domain = 3.3V
- * VTR2 pin domain = 1.8V
- * VTR3 pin domain = 3.3V
- */
-void board_config_pre_init(void)
-{
- MCHP_EC_GPIO_BANK_PWR = MCHP_EC_GPIO_BANK_PWR_VTR2_18;
-
-#ifdef CONFIG_LOW_POWER_IDLE
- /* DEBUG - GPIO_0060 becomes 48MHZ_OUT
- * MEC1701 interposer J47-7
- */
- gpio_config_module(MODULE_CHIPSET, 1);
-#endif
-}
-#endif
-
-/*
- * NOTES: The PD GPIO's are armed for falling edge.
- * There is a potential race condition in this routine.
- * ISR calls this routine and it reads state of GPIO pin.
- * If GPIO is still asserted low, this routine will do nothing.
- * If this routine samples GPIO after it returns high then it
- * will wake the PDCMD task.
- */
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
-static void anx74xx_cable_det_handler(void)
-{
- int cable_det = gpio_get_level(GPIO_USB_C0_CABLE_DET);
- int reset_n = gpio_get_level(GPIO_USB_C0_PD_RST_L);
-
- /*
- * A cable_det low->high transition was detected. If following the
- * debounce time, cable_det is high, and reset_n is low, then ANX3429 is
- * currently in standby mode and needs to be woken up. Set the
- * TCPC_RESET event which will bring the ANX3429 out of standby
- * mode. Setting this event is gated on reset_n being low because the
- * ANX3429 will always set cable_det when transitioning to normal mode
- * and if in normal mode, then there is no need to trigger a tcpc reset.
- */
- if (cable_det && !reset_n)
- task_set_event(TASK_ID_PD_C0, PD_EVENT_TCPC_RESET);
-}
-DECLARE_DEFERRED(anx74xx_cable_det_handler);
-/* from firmware-reef-9042.B */
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, anx74xx_cable_det_handler, HOOK_PRIO_LAST);
-
-void anx74xx_cable_det_interrupt(enum gpio_signal signal)
-{
- /* debounce for 2 msec */
- hook_call_deferred(&anx74xx_cable_det_handler_data, (2 * MSEC));
-}
-#endif
-
-/*
- * enable_input_devices() is called by the tablet_mode ISR, but changes the
- * state of GPIOs, so its definition must reside after including gpio_list.
- * Use DECLARE_DEFERRED to generate enable_input_devices_data.
- */
-static void enable_input_devices(void);
-DECLARE_DEFERRED(enable_input_devices);
-
-#define LID_DEBOUNCE_US (30 * MSEC) /* Debounce time for lid switch */
-void tablet_mode_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&enable_input_devices_data, LID_DEBOUNCE_US);
-}
-
-#include "gpio_list.h"
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { QMSPI0_PORT, 4, GPIO_QMSPI_CS0},
-#if defined(CONFIG_SPI_ACCEL_PORT)
- { GPSPI0_PORT, 2, GPIO_SPI0_CS0 },
-#endif
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/* ADC channels */
-/* chip/mchp defined adc_t
- * name, factor_mul, factor_div, shift, channel
- * Signals routed through interposer to MEC17xx ADC channels.
- */
-const struct adc_t adc_channels[] = {
- /* Vref = 3.000V, 10-bit unsigned reading */
- [ADC_TEMP_SENSOR_CHARGER] = {
- "CHARGER", 3000, 1024, 0, 0
- },
- [ADC_TEMP_SENSOR_AMB] = {
- "AMBIENT", 3000, 1024, 0, 1
- },
- [ADC_BOARD_ID] = {
- "BRD_ID", 3000, 1024, 0, 2
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-#ifdef CONFIG_PWM
-const struct pwm_t pwm_channels[] = {
- /* channel, flags */
- [PWM_CH_LED_GREEN] = { 4, PWM_CONFIG_DSLEEP },
- [PWM_CH_LED_RED] = { 5, PWM_CONFIG_DSLEEP },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-#endif /* #ifdef CONFIG_PWM */
-
-/*
- * Using Ports 3, 6, 7 from board.h
- * Using Ports 0, 2 from board.c
- * Due to added RC of interposer board temporarily reduce
- * 400 to 100 kHz.
- */
-const struct i2c_port_t i2c_ports[] = {
- {"tcpc0", MCHP_I2C_PORT0, 400,
- GPIO_EC_I2C_USB_C0_PD_SCL, GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", MCHP_I2C_PORT2, 400,
- GPIO_EC_I2C_USB_C1_PD_SCL, GPIO_EC_I2C_USB_C1_PD_SDA},
- {"accelgyro", I2C_PORT_GYRO, 400,
- GPIO_EC_I2C_GYRO_SCL, GPIO_EC_I2C_GYRO_SDA},
- {"sensors", MCHP_I2C_PORT7, 400,
- GPIO_EC_I2C_SENSOR_SCL, GPIO_EC_I2C_SENSOR_SDA},
- {"batt", MCHP_I2C_PORT3, 100,
- GPIO_EC_I2C_POWER_SCL, GPIO_EC_I2C_POWER_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/*
- * Map ports to controller.
- * Ports may map to the same controller.
- * Both USB PD ports are mapped to CTRL0.
- */
-const uint16_t i2c_port_to_ctrl[I2C_PORT_COUNT] = {
- (MCHP_I2C_CTRL0 << 8) + MCHP_I2C_PORT0,
- (MCHP_I2C_CTRL0 << 8) + MCHP_I2C_PORT2,
- (MCHP_I2C_CTRL1 << 8) + I2C_PORT_GYRO,
- (MCHP_I2C_CTRL2 << 8) + MCHP_I2C_PORT3,
- (MCHP_I2C_CTRL3 << 8) + MCHP_I2C_PORT7,
-};
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = BD9995X_ADDR_FLAGS,
- .drv = &bd9995x_drv,
- },
-};
-
-/*
- * default to I2C0 because callers may not check
- * return value if we returned an error code.
- */
-int board_i2c_p2c(int port)
-{
- int i;
-
- for (i = 0; i < I2C_PORT_COUNT; i++)
- if ((i2c_port_to_ctrl[i] & 0xFF) == port)
- return (int)(i2c_port_to_ctrl[i] >> 8);
-
- return -1;
-}
-
-#ifdef CONFIG_CMD_I2C_STRESS_TEST
-struct i2c_stress_test i2c_stress_tests[] = {
-
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC
- {
- .port = MCHP_I2C_PORT0,
- .addr_flags = 0x28,
- .i2c_test = &anx74xx_i2c_stress_test_dev,
- },
-#endif
-
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC
- {
- .port = MCHP_I2C_PORT2,
- .addr_flags = 0x0B,
- .i2c_test = &ps8xxx_i2c_stress_test_dev,
- },
-#endif
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ACCEL
- {
- .port = I2C_PORT_GYRO,
- .addr_flags = BMI160_ADDR0_FLAGS,
- .i2c_test = &bmi160_i2c_stress_test_dev,
- },
-#endif
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ACCEL
- {
- .port = I2C_PORT_BARO,
- .addr_flags = BMP280_I2C_ADDRESS1_FLAGS,
- .i2c_test = &bmp280_i2c_stress_test_dev,
- },
- {
- .port = I2C_PORT_LID_ACCEL,
- .addr_flags = KX022_ADDR1_FLAGS,
- .i2c_test = &kionix_i2c_stress_test_dev,
- },
-#endif
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_ALS
- {
- .port = I2C_PORT_ALS,
- .addr_flags = OPT3001_I2C_ADDR1_FLAGS,
- .i2c_test = &opt3001_i2c_stress_test_dev,
- },
-#endif
-/* MCHP_I2C_PORT3 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_BATTERY
- {
- .i2c_test = &battery_i2c_stress_test_dev,
- },
-#endif
-/* MCHP_I2C_PORT3 */
-#ifdef CONFIG_CMD_I2C_STRESS_TEST_CHARGER
- {
- .i2c_test = &bd9995x_i2c_stress_test_dev,
- },
-#endif
-};
-const int i2c_test_dev_used = ARRAY_SIZE(i2c_stress_tests);
-#endif /* CONFIG_CMD_I2C_STRESS_TEST */
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ANX74XX] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = MCHP_I2C_PORT0,
- .addr_flags = 0x28,
- },
- .drv = &anx74xx_tcpm_drv,
- },
- [USB_PD_PORT_PS8751] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = MCHP_I2C_PORT2,
- .addr_flags = 0x0B,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_AC_PRESENT,
- GPIO_LID_OPEN,
- GPIO_POWER_BUTTON_L,
-};
-
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/*
- * PS8751 TCPM DRP low power idle behavour is causing I2C errors.
- * Upon receiving DRP low power idle command, PS8751 holds SCL and
- * SDA low for ~480us. It simultaneously releases both pins which is
- * defined as a bus error condition by I2C spec. No ACK received.
- * TCPCI spec. states waking any TCPM requires sending any fake
- * I2C command which the TCPM will NACK. The I2C master MUST wait
- * a minimum of 5 ms after the NACK before sending another I2C
- * command. We observe the PD task and TCPCI state machines do not
- * follow the TCPCI spec. Sometimes this routine is called to wake
- * the PS8751 after it has been put into low power idle and sometimes
- * the PD/TCPCI state machine doesn't call this routine and tries
- * communicating with PS8751. This results in lots of I2C retries and
- * results taking up to 10ms before I2C communication with PS8751
- * is stable. Don't know how to fix this.
- */
-static int ps8751_tune_mux(const struct usb_mux *me)
-{
- int rv;
-
- /* 0x98 sets lower EQ of DP port (4.5db) */
- rv = mux_write(me, PS8XXX_REG_MUX_DP_EQ_CONFIGURATION, 0x98);
-
- /* TCPCI spec. delay msleep(6); */
-
- return rv;
-}
-
-/*
- * USB_PD_PORT_ANX74XX and USB_PD_PORT_PS8751 are zero based indices into
- * tcpc_config array. The tcpc_config array contains the actual EC I2C
- * port, device address, and a function pointer into the driver code.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_ANX74XX] = {
- .usb_port = USB_PD_PORT_ANX74XX,
- .driver = &anx74xx_tcpm_usb_mux_driver,
- .hpd_update = &anx74xx_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_PS8751] = {
- .usb_port = USB_PD_PORT_PS8751,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .board_init = &ps8751_tune_mux,
- }
-};
-
-/* MCHP
- * New, not in firmware-reef-9042.B
- */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_USB1_ENABLE,
-};
-
-/**
- * Power on (or off) a single TCPC.
- * minimum on/off delays are included.
- *
- * @param port Port number of TCPC.
- * @param mode 0: power off, 1: power on.
- */
-void board_set_tcpc_power_mode(int port, int mode)
-{
- if (port != USB_PD_PORT_ANX74XX)
- return;
-
- switch (mode) {
- case ANX74XX_NORMAL_MODE:
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 1);
- msleep(ANX74XX_PWR_H_RST_H_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- break;
- case ANX74XX_STANDBY_MODE:
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- msleep(ANX74XX_RST_L_PWR_L_DELAY_MS);
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 0);
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- break;
- default:
- break;
- }
-}
-
-/**
- * Reset all system PD/TCPC MCUs -- currently only called from
- * handle_pending_reboot() in common/power.c just before hard
- * resetting the system. This logic is likely not needed as the
- * PP3300_A rail should be dropped on EC reset.
- */
-void board_reset_pd_mcu(void)
-{
- /* Assert reset to TCPC1 */
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 0);
-
- /* Assert reset to TCPC0 (anx3429) */
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- /* TCPC1 (ps8751) requires 1ms reset down assertion */
- msleep(MAX(1, ANX74XX_RST_L_PWR_L_DELAY_MS));
-
- /* Deassert reset to TCPC1 */
- gpio_set_level(GPIO_USB_C1_PD_RST_ODL, 1);
- /* Disable TCPC0 power */
- gpio_set_level(GPIO_EN_USB_TCPC_PWR, 0);
-
- /*
- * anx3429 requires 10ms reset/power down assertion
- */
- msleep(ANX74XX_PWR_L_PWR_H_DELAY_MS);
- board_set_tcpc_power_mode(USB_PD_PORT_ANX74XX, 1);
-}
-
-void board_tcpc_init(void)
-{
- int reg;
-
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /*
- * TODO: Remove when Reef is updated with PS8751 A3.
- *
- * Force PS8751 A2 to wake from low power mode.
- * If PS8751 remains in low power mode after sysjump,
- * TCPM_INIT will fail due to not able to access PS8751.
- *
- * NOTE: PS8751 A3 will wake on any I2C access.
- */
- reg = 0;
- /* TODO MCHP:
- * PS8751 is at I2C address 0x16. Original reef using
- * address 0x10. Is this another attempt at waking PS8751
- * from DRP low power idle mode?
- */
- i2c_read8(MCHP_I2C_PORT2, 0x08, 0xA0, &reg);
-
- /* Enable TCPC0 interrupt */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
- /* Enable TCPC1 interrupt */
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
- /* Enable CABLE_DET interrupt for ANX3429 wake from standby */
- gpio_enable_interrupt(GPIO_USB_C0_CABLE_DET);
-#endif
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-
-/*
- * Data derived from Seinhart-Hart equation in a resistor divider circuit with
- * Vdd=3300mV, R = 13.7Kohm, and Murata NCP15WB-series thermistor (B = 4050,
- * T0 = 298.15, nominal resistance (R0) = 47Kohm).
- */
-#define CHARGER_THERMISTOR_SCALING_FACTOR 13
-static const struct thermistor_data_pair charger_thermistor_data[] = {
- { 3044 / CHARGER_THERMISTOR_SCALING_FACTOR, 0 },
- { 2890 / CHARGER_THERMISTOR_SCALING_FACTOR, 10 },
- { 2680 / CHARGER_THERMISTOR_SCALING_FACTOR, 20 },
- { 2418 / CHARGER_THERMISTOR_SCALING_FACTOR, 30 },
- { 2117 / CHARGER_THERMISTOR_SCALING_FACTOR, 40 },
- { 1800 / CHARGER_THERMISTOR_SCALING_FACTOR, 50 },
- { 1490 / CHARGER_THERMISTOR_SCALING_FACTOR, 60 },
- { 1208 / CHARGER_THERMISTOR_SCALING_FACTOR, 70 },
- { 966 / CHARGER_THERMISTOR_SCALING_FACTOR, 80 },
- { 860 / CHARGER_THERMISTOR_SCALING_FACTOR, 85 },
- { 766 / CHARGER_THERMISTOR_SCALING_FACTOR, 90 },
- { 679 / CHARGER_THERMISTOR_SCALING_FACTOR, 95 },
- { 603 / CHARGER_THERMISTOR_SCALING_FACTOR, 100 },
-};
-
-static const struct thermistor_info charger_thermistor_info = {
- .scaling_factor = CHARGER_THERMISTOR_SCALING_FACTOR,
- .num_pairs = ARRAY_SIZE(charger_thermistor_data),
- .data = charger_thermistor_data,
-};
-
-int board_get_charger_temp(int idx, int *temp_ptr)
-{
- int mv = adc_read_channel(MCHP_ADC_CH(0));
-
- if (mv < 0)
- return -1;
-
- *temp_ptr = thermistor_linear_interpolate(mv,
- &charger_thermistor_info);
- *temp_ptr = C_TO_K(*temp_ptr);
- return 0;
-}
-
-/*
- * Data derived from Seinhart-Hart equation in a resistor divider circuit with
- * Vdd=3300mV, R = 51.1Kohm, and Murata NCP15WB-series thermistor (B = 4050,
- * T0 = 298.15, nominal resistance (R0) = 47Kohm).
- */
-#define AMB_THERMISTOR_SCALING_FACTOR 11
-static const struct thermistor_data_pair amb_thermistor_data[] = {
- { 2512 / AMB_THERMISTOR_SCALING_FACTOR, 0 },
- { 2158 / AMB_THERMISTOR_SCALING_FACTOR, 10 },
- { 1772 / AMB_THERMISTOR_SCALING_FACTOR, 20 },
- { 1398 / AMB_THERMISTOR_SCALING_FACTOR, 30 },
- { 1070 / AMB_THERMISTOR_SCALING_FACTOR, 40 },
- { 803 / AMB_THERMISTOR_SCALING_FACTOR, 50 },
- { 597 / AMB_THERMISTOR_SCALING_FACTOR, 60 },
- { 443 / AMB_THERMISTOR_SCALING_FACTOR, 70 },
- { 329 / AMB_THERMISTOR_SCALING_FACTOR, 80 },
- { 285 / AMB_THERMISTOR_SCALING_FACTOR, 85 },
- { 247 / AMB_THERMISTOR_SCALING_FACTOR, 90 },
- { 214 / AMB_THERMISTOR_SCALING_FACTOR, 95 },
- { 187 / AMB_THERMISTOR_SCALING_FACTOR, 100 },
-};
-
-static const struct thermistor_info amb_thermistor_info = {
- .scaling_factor = AMB_THERMISTOR_SCALING_FACTOR,
- .num_pairs = ARRAY_SIZE(amb_thermistor_data),
- .data = amb_thermistor_data,
-};
-
-int board_get_ambient_temp(int idx, int *temp_ptr)
-{
- int mv = adc_read_channel(MCHP_ADC_CH(1));
-
- if (mv < 0)
- return -1;
-
- *temp_ptr = thermistor_linear_interpolate(mv,
- &amb_thermistor_info);
- *temp_ptr = C_TO_K(*temp_ptr);
- return 0;
-}
-
-/*
- * name, sensor type, read function,
- * index of sensor passed to read function,
- * delay from read to taking action
- */
-const struct temp_sensor_t temp_sensors[] = {
- {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0},
- {"Ambient", TEMP_SENSOR_TYPE_BOARD, board_get_ambient_temp, 0},
- {"Charger", TEMP_SENSOR_TYPE_BOARD, board_get_charger_temp, 1},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Called by APL power state machine when transitioning from G3 to S5 */
-void chipset_pre_init_callback(void)
-{
- /*
- * No need to re-init PMIC since settings are sticky across sysjump.
- * However, be sure to check that PMIC is already enabled. If it is
- * then there's no need to re-sequence the PMIC.
- */
- if (system_jumped_to_this_image() && gpio_get_level(GPIO_PMIC_EN))
- return;
-
- /* Enable PP5000 before PP3300 due to NFC: chrome-os-partner:50807 */
- gpio_set_level(GPIO_EN_PP5000, 1);
- while (!gpio_get_level(GPIO_PP5000_PG))
- ;
-
- /*
- * To prevent SLP glitches, PMIC_EN (V5A_EN) should be enabled
- * at the same time as PP3300 (chrome-os-partner:51323).
- */
- /* Enable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 1);
- while (!gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /* Enable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 1);
-}
-
-static void board_set_tablet_mode(void)
-{
- tablet_set_mode(!gpio_get_level(GPIO_TABLET_MODE_L),
- TABLET_TRIGGER_LID);
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Ensure tablet mode is initialized according to the hardware state
- * so that the cached state reflects reality.
- */
- board_set_tablet_mode();
-
- gpio_enable_interrupt(GPIO_TABLET_MODE_L);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_L);
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-}
-/* PP3300 needs to be enabled before TCPC init hooks */
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_FIRST);
-
-/*
- * MCHP - new version of this routine.
- * firmware-reef-9042.B must do port lookup here
- * before calling bd9995x_is_vbus_provided
- */
-int pd_snk_is_vbus_provided(int port)
-{
- if (port != 0 && port != 1)
- panic("Invalid charge port\n");
-
- return bd9995x_is_vbus_provided(port);
-}
-
-/**
- * Set active charge port -- only one port can be active at a time.
- *
- * @param charge_port Charge port to enable.
- *
- * Returns EC_SUCCESS if charge port is accepted and made active,
- * EC_ERROR_* otherwise.
- */
-int board_set_active_charge_port(int charge_port)
-{
- enum bd9995x_charge_port bd9995x_port;
- int bd9995x_port_select = 1;
-
- switch (charge_port) {
- case USB_PD_PORT_ANX74XX:
- case USB_PD_PORT_PS8751:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
-
- bd9995x_port = charge_port;
- break;
- case CHARGE_PORT_NONE:
- bd9995x_port_select = 0;
- bd9995x_port = BD9995X_CHARGE_PORT_BOTH;
-
- /*
- * To avoid inrush current from the external charger, enable
- * discharge on AC till the new charger is detected and
- * charge detect delay has passed.
- */
- if (charge_get_percent() > 2)
- charger_discharge_on_ac(1);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- CPRINTS("New chg p%d", charge_port);
- return bd9995x_select_input_port(bd9995x_port, bd9995x_port_select);
-}
-
-/**
- * Set the charge limit based upon desired maximum.
- *
- * @param port Port number.
- * @param supplier Charge supplier type.
- * @param charge_ma Desired charge limit (mA).
- * @param charge_mv Negotiated charge voltage (mV).
- */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /* Enable charging trigger by BC1.2 detection */
- int bc12_enable = (supplier == CHARGE_SUPPLIER_BC12_CDP ||
- supplier == CHARGE_SUPPLIER_BC12_DCP ||
- supplier == CHARGE_SUPPLIER_BC12_SDP ||
- supplier == CHARGE_SUPPLIER_OTHER);
-
- if (bd9995x_bc12_enable_charging(port, bc12_enable))
- return;
-
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-/**
- * Return if board is consuming full amount of input current
- */
-int board_is_consuming_full_charge(void)
-{
- int chg_perc = charge_get_percent();
-
- return chg_perc > 2 && chg_perc < 95;
-}
-
-/**
- * Return if VBUS is sagging too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- return voltage < BD9995X_BC12_MIN_VOLTAGE;
-}
-
-static void enable_input_devices(void)
-{
- /* We need to turn on tablet mode for motion sense */
- board_set_tablet_mode();
-
- /* Then, we disable peripherals only when the lid reaches 360 position.
- * (It's probably already disabled by motion_sense_task.)
- * We deliberately do not enable peripherals when the lid is leaving
- * 360 position. Instead, we let motion_sense_task enable it once it
- * reaches laptop zone (180 or less).
- */
- if (tablet_get_mode())
- lid_angle_peripheral_enable(0);
-}
-
-/* Enable or disable input devices, based on chipset state and tablet mode */
-__override void lid_angle_peripheral_enable(int enable)
-{
- /* If the lid is in 360 position, ignore the lid angle,
- * which might be faulty. Disable keyboard.
- */
- if (tablet_get_mode() || chipset_in_state(CHIPSET_STATE_ANY_OFF))
- enable = 0;
- keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE);
-}
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- /* Enable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 1);
-
- /* Enable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 0);
-
- hook_call_deferred(&enable_input_devices_data, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- /* Disable USB-A port. */
- gpio_set_level(GPIO_USB1_ENABLE, 0);
-
- /* Disable Trackpad */
- gpio_set_level(GPIO_EN_P3300_TRACKPAD_ODL, 1);
-
- hook_call_deferred(&enable_input_devices_data, 0);
- /* FIXME(dhendrix): Drive USB_PD_RST_ODL low to prevent
- * leakage? (see comment in schematic)
- */
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-/* FIXME(dhendrix): Add CHIPSET_RESUME and CHIPSET_SUSPEND
- * hooks to enable/disable sensors?
- */
-/*
- * MCHP: Next two routines not present in firmware-reef-9042.B
- */
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*
- * FIXME(dhendrix): Weak symbol hack until we can get a better solution for
- * both Amenia and Reef.
- */
-void chipset_do_shutdown(void)
-{
- /* Disable PMIC */
- gpio_set_level(GPIO_PMIC_EN, 0);
-
- /*Disable 3.3V rail */
- gpio_set_level(GPIO_EN_PP3300, 0);
- while (gpio_get_level(GPIO_PP3300_PG))
- ;
-
- /*Disable 5V rail */
- gpio_set_level(GPIO_EN_PP5000, 0);
- while (gpio_get_level(GPIO_PP5000_PG))
- ;
-}
-
-void board_hibernate_late(void)
-{
- int i;
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs in hibernate */
- {GPIO_BAT_LED_BLUE, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_AMBER, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_LID_OPEN, GPIO_INT_RISING | GPIO_PULL_DOWN},
-
- /*
- * BD99956 handles charge input automatically. We'll disable
- * charge output in hibernate. Charger will assert ACOK_OD
- * when VBUS or VCC are plugged in.
- */
- {GPIO_USB_C0_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- {GPIO_USB_C1_5V_EN, GPIO_INPUT | GPIO_PULL_DOWN},
- };
-
- /* Change GPIOs' state in hibernate for better power consumption */
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-
- gpio_config_module(MODULE_KEYBOARD_SCAN, 0);
-
- /*
- * Calling gpio_config_module sets disabled alternate function pins to
- * GPIO_INPUT. But to prevent keypresses causing leakage currents
- * while hibernating we want to enable GPIO_PULL_UP as well.
- */
- gpio_set_flags_by_mask(0x2, 0x03, GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags_by_mask(0x1, 0x7F, GPIO_INPUT | GPIO_PULL_UP);
- gpio_set_flags_by_mask(0x0, 0xE0, GPIO_INPUT | GPIO_PULL_UP);
- /* KBD_KSO2 needs to have a pull-down enabled instead of pull-up */
- gpio_set_flags_by_mask(0x1, 0x80, GPIO_INPUT | GPIO_PULL_DOWN);
-}
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t mag_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct bmp280_drv_data_t bmp280_drv_data;
-/* MCHP: struct not present in firmware-reef-9042.B */
-static struct opt3001_drv_data_t g_opt3001_data = {
- .scale = 1,
- .uscale = 0,
- .offset = 0,
-};
-
-/* MCHP: differences in structure initializatio from
- * firmware-reef-9042.B
- */
-/* FIXME(dhendrix): Copied from Amenia, probably need to tweak for Reef */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_LID_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [BASE_MAG] = {
- .name = "Base Mag",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_MAG,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_GYRO,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = BIT(11), /* 16LSB / uT, fixed */
- .rot_standard_ref = &mag_standard_ref,
- .min_frequency = BMM150_MAG_MIN_FREQ,
- .max_frequency = BMM150_MAG_MAX_FREQ(SPECIAL),
- },
- [BASE_BARO] = {
- .name = "Base Baro",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_BMP280,
- .type = MOTIONSENSE_TYPE_BARO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmp280_drv,
- .drv_data = &bmp280_drv_data,
- .port = I2C_PORT_BARO,
- .i2c_spi_addr_flags = BMP280_I2C_ADDRESS1_FLAGS,
- .default_range = BIT(18), /* 1bit = 4 Pa, 16bit ~= 2600 hPa */
- .min_frequency = BMP280_BARO_MIN_FREQ,
- .max_frequency = BMP280_BARO_MAX_FREQ,
- },
- [LID_ALS] = {
- .name = "Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_OPT3001,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &opt3001_drv,
- .drv_data = &g_opt3001_data,
- .port = I2C_PORT_ALS,
- .i2c_spi_addr_flags = OPT3001_I2C_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1; uscale = 0 */
- .min_frequency = OPT3001_LIGHT_MIN_FREQ,
- .max_frequency = OPT3001_LIGHT_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/*
- * MCHP: difference from firmware-reef-9042.B
- * New code doesn't have TASK_ALS
- */
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[LID_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-void board_hibernate(void)
-{
- /*
- * To support hibernate called from console commands, ectool commands
- * and key sequence, shutdown the AP before hibernating.
- */
- chipset_do_shutdown();
-
- /* Added delay to allow AP to settle down */
- msleep(100);
-
- /* Enable both the VBUS & VCC ports before entering PG3 */
- bd9995x_select_input_port(BD9995X_CHARGE_PORT_BOTH, 1);
-
- /* Turn BGATE OFF for saving the power */
- bd9995x_set_power_save_mode(BD9995X_PWR_SAVE_MAX);
-}
-
-struct {
- enum reef_board_version version;
- int thresh_mv;
-} const reef_board_versions[] = {
- /* Vin = 3.3V, R1 = 46.4K, R2 values listed below */
- { BOARD_VERSION_1, 328 * 1.03 }, /* 5.11 Kohm */
- { BOARD_VERSION_2, 670 * 1.03 }, /* 11.8 Kohm */
- { BOARD_VERSION_3, 1012 * 1.03 }, /* 20.5 Kohm */
- { BOARD_VERSION_4, 1357 * 1.03 }, /* 32.4 Kohm */
- { BOARD_VERSION_5, 1690 * 1.03 }, /* 48.7 Kohm */
- { BOARD_VERSION_6, 2020 * 1.03 }, /* 73.2 Kohm */
- { BOARD_VERSION_7, 2352 * 1.03 }, /* 115 Kohm */
- { BOARD_VERSION_8, 2802 * 1.03 }, /* 261 Kohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(reef_board_versions) == BOARD_VERSION_COUNT);
-
-/*
- * Checkpatch claims msleep(n) for n < 20 can sleep up to 20 ms.
- * Loop up to 10 times sampling every 100 us. If 5 or more consecutive
- * samples are the same exit sample loop.
- */
-int board_get_version(void)
-{
- static int version = BOARD_VERSION_UNKNOWN;
- int mv, i, prev, cnt;
-
- if (version != BOARD_VERSION_UNKNOWN)
- return version;
-
- /* FIXME(dhendrix): enable ADC */
- gpio_set_flags(GPIO_EC_BRD_ID_EN_ODL, GPIO_ODR_HIGH);
- gpio_set_level(GPIO_EC_BRD_ID_EN_ODL, 0);
- /* Wait to allow cap charge */
- prev = 0;
- cnt = 0;
- for (i = 0; i < 10; i++) {
- udelay(100);
- mv = adc_read_channel(ADC_BOARD_ID);
- if (mv != prev) {
- prev = mv;
- cnt = 0;
- } else {
- cnt++;
- }
- if (cnt >= 5)
- break;
- }
- /* FIXME(dhendrix): disable ADC */
- gpio_set_level(GPIO_EC_BRD_ID_EN_ODL, 1);
- gpio_set_flags(GPIO_EC_BRD_ID_EN_ODL, GPIO_INPUT);
-
- if (mv == ADC_READ_ERROR) {
- version = BOARD_VERSION_UNKNOWN;
- return version;
- }
-
- for (i = 0; i < BOARD_VERSION_COUNT; i++) {
- if (mv < reef_board_versions[i].thresh_mv) {
- version = reef_board_versions[i].version;
- break;
- }
- }
-
- CPRINTS("Board version: %d", version);
- return version;
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/reef_mchp/board.h b/board/reef_mchp/board.h
deleted file mode 100644
index c9b2704530..0000000000
--- a/board/reef_mchp/board.h
+++ /dev/null
@@ -1,328 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Reef board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* EC console on UART 0 */
-#define CONFIG_UART_CONSOLE 0
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_BATT_MFG_ACCESS
-#define CONFIG_CMD_CHARGER_ADC_AMON_BMON
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define BD9995X_IOUT_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_IOUT_GAIN_SET_20V
-
-#define CONFIG_CHARGER_PSYS_READ
-#define BD9995X_PSYS_GAIN_SELECT \
- BD9995X_CMD_PMON_IOUT_CTRL_SET_PMON_GAIN_SET_02UAW
-
-#define CONFIG_CMD_I2C_STRESS_TEST
-#define CONFIG_CMD_I2C_STRESS_TEST_ACCEL
-#define CONFIG_CMD_I2C_STRESS_TEST_ALS
-#define CONFIG_CMD_I2C_STRESS_TEST_BATTERY
-#define CONFIG_CMD_I2C_STRESS_TEST_CHARGER
-#define CONFIG_CMD_I2C_STRESS_TEST_TCPC
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_SMART
-
-/* Charger */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_BD9995X
-#define CONFIG_CHARGER_BD9995X_CHGEN
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 1
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 18000
-#define CONFIG_CHARGER_MAINTAIN_VBAT
-#undef CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
-#define CONFIG_USB_CHARGER
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_PROFILE_OVERRIDE_COMMON
-#undef CONFIG_CHARGER_PROFILE_VOLTAGE_RANGES
-#define CONFIG_CHARGER_PROFILE_VOLTAGE_RANGES 3
-#define CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
-
-/* USB-A config */
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_SIMPLE
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A_CHARGE_EN_L
-#define GPIO_USB_CTL1 GPIO_EN_PP5000
-
-#define CONFIG_TABLET_MODE
-
-/* USB PD config */
-#define CONFIG_HOSTCMD_PD_CONTROL
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MUX /* for both PS8751 and ANX3429 */
-#define CONFIG_USB_PD_TCPM_ANX3429 /* Silicon on Reef is ANX3429 */
-#define CONFIG_USB_PD_TCPM_PS8751
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_TRY_SRC
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_COMM_LOCKED
-
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_DFP_ONLY
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-
-/* SoC / PCH */
-#define CONFIG_HOSTCMD_LPC
-#define CONFIG_CHIPSET_APOLLOLAKE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_X86
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-
-/* EC */
-#define CONFIG_ADC
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000
-#define CONFIG_FPU
-#define CONFIG_HOSTCMD_FLASH_SPI_INFO
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_KEYBOARD_COL2_INVERTED
-#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2
-#define CONFIG_LED_COMMON
-#define CONFIG_LID_SWITCH
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LTO
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_PWM
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_DPTF
-#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define CONFIG_VBOOT_HASH
-#define CONFIG_BACKLIGHT_LID
-#define CONFIG_WIRELESS
-#define CONFIG_WIRELESS_SUSPEND EC_WIRELESS_SWITCH_WLAN_POWER
-#define CONFIG_WLAN_POWER_ACTIVE_LOW
-#define WIRELESS_GPIO_WLAN_POWER GPIO_WIRELESS_GPIO_WLAN_POWER
-#define CONFIG_PWR_STATE_DISCHARGE_FULL
-
-/*
- * During shutdown sequence TPS65094x PMIC turns off the sensor rails
- * asynchronously to the EC. If we access the sensors when the sensor power
- * rails are off we get I2C errors. To avoid this issue, defer switching
- * the sensors rate if in S3. By the time deferred function is serviced if
- * the chipset is in S5 we can back out from switching the sensor rate.
- *
- * Time taken by V1P8U rail to go down from S3 is 30ms to 60ms hence defer
- * the sensor switching after 60ms.
- */
-#undef CONFIG_MOTION_SENSE_SUSPEND_DELAY_US
-#define CONFIG_MOTION_SENSE_SUSPEND_DELAY_US (MSEC * 60)
-
-/*
- * MEC1701H loads firmware using QMSPI controller
- * CONFIG_SPI_FLASH_PORT is the index into
- * spi_devices[] in board.c
- */
-#define CONFIG_SPI_FLASH_PORT 0
-#define CONFIG_SPI_FLASH
-
-#define CONFIG_FLASH_SIZE_BYTES 524288
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q40 /* FIXME: Should be GD25LQ40? */
-
-/*
- * Enable 1 slot of secure temporary storage to support
- * suspend/resume with read/write memory training.
- */
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-
-/* Optional feature - used by MCHP */
-#define CONFIG_CLOCK_CRYSTAL /* interposer board uses parallel crystal */
-#define CONFIG_WATCHDOG_HELP /* required for MCHP MEC17xx */
-#define CONFIG_BOARD_PRE_INIT
-
-/* I2C ports */
-#define I2C_CONTROLLER_COUNT 4
-#define I2C_PORT_COUNT 5
-
-#define I2C_PORT_GYRO MCHP_I2C_PORT6
-#define I2C_PORT_LID_ACCEL MCHP_I2C_PORT7
-#define I2C_PORT_ALS MCHP_I2C_PORT7
-#define I2C_PORT_BARO MCHP_I2C_PORT7
-#define I2C_PORT_BATTERY MCHP_I2C_PORT3
-#define I2C_PORT_CHARGER MCHP_I2C_PORT3
-/* Accelerometer and Gyroscope are the same device. */
-#define I2C_PORT_ACCEL I2C_PORT_GYRO
-
-/* Sensors */
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HOST_EVENT
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_MAG_BMI_BMM150
-#define CONFIG_ACCELGYRO_SEC_ADDR_FLAGS BMM150_ADDR0_FLAGS
-#define CONFIG_MAG_CALIBRATE
-#define CONFIG_ACCEL_KX022
-#define CONFIG_ALS_OPT3001
-#define CONFIG_BARO_BMP280
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 1024
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER, /* ADC0 */
- ADC_TEMP_SENSOR_AMB, /* ADC1 */
- ADC_BOARD_ID, /* ADC2 */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_LED_GREEN = 0,
- PWM_CH_LED_RED,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY = 0,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-/* MCHP - new Reef code not using TASK_ALS */
-/*
- * For backward compatibility, to report ALS via ACPI,
- * Define the number of ALS sensors: motion_sensor copy the data to the ALS
- * memmap region.
- */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-
-/*
- * Motion sensors:
- * When reading through IO memory is set up for sensors (LPC is used),
- * the first 2 entries must be accelerometers, then gyroscope.
- * For BMI160, accel, gyro and compass sensors must be next to each other.
- */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- BASE_MAG,
- BASE_BARO,
- LID_ALS, /* firmware-reef-9042.B doesn't have this */
- SENSOR_COUNT,
-};
-
-enum reef_board_version {
- BOARD_VERSION_UNKNOWN = -1,
- BOARD_VERSION_1,
- BOARD_VERSION_2,
- BOARD_VERSION_3,
- BOARD_VERSION_4,
- BOARD_VERSION_5,
- BOARD_VERSION_6,
- BOARD_VERSION_7,
- BOARD_VERSION_8,
- BOARD_VERSION_COUNT,
-};
-
-/* TODO: determine the following board specific type-C power constants */
-/* FIXME(dhendrix): verify all of the below PD_* numbers */
-/*
- * delay to turn on the power supply max is ~16ms.
- * delay to turn off the power supply max is about ~180ms.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-
-/* delay to turn on/off vconn */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Reset PD MCU */
-void board_reset_pd_mcu(void);
-
-int board_get_version(void);
-
-void board_set_tcpc_power_mode(int port, int mode);
-void board_print_tcpc_fw_version(int port);
-
-/* Map I2C port to controller */
-int board_i2c_p2c(int port);
-
-/* MCHP - firwmare-reef-9042.B does have LID_ALS bit
- * because its using TASK_ALS ?
- */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(BASE_BARO) | BIT(LID_ALS))
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/reef_mchp/build.mk b/board/reef_mchp/build.mk
deleted file mode 100644
index 19fffbaf0d..0000000000
--- a/board/reef_mchp/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=mchp
-CHIP_FAMILY:=mec170x
-CHIP_VARIANT:=mec1701
-CHIP_SPI_SIZE_KB:=512
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
diff --git a/board/reef_mchp/ec.tasklist b/board/reef_mchp/ec.tasklist
deleted file mode 100644
index adf63fae62..0000000000
--- a/board/reef_mchp/ec.tasklist
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- * These 3 go after HOOKS and before MOTIONSENSE. Remember to add backslashes!
- * TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE)
- * TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE)
- * TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE)
- *
- * These 2 go at the end of the list. Remember proper backslashes
- * TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
- * TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE)
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/reef_mchp/gpio.inc b/board/reef_mchp/gpio.inc
deleted file mode 100644
index 0385d82102..0000000000
--- a/board/reef_mchp/gpio.inc
+++ /dev/null
@@ -1,311 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* include common gpio.inc under chip/mchp/lfw/... */
-#include "chip/mchp/lfw/gpio.inc"
-
-/* MEC1701H GPIO_0105/UART0_RX OK */
-GPIO_INT(UART0_RX, PIN(0105), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP, \
- uart_deepsleep_interrupt)
-
-GPIO_INT(PCH_PLTRST_L, PIN(064), GPIO_INT_BOTH | GPIO_PULL_UP, lpcrst_interrupt)
-
-GPIO_INT(CHARGER_INT_L, PIN(0143), GPIO_INT_FALLING, bd9995x_vbus_interrupt)
-/* CHARGER_EC_INT_ODL from BD99956 */
-/*
- * TODO: The pull ups for Parade TCPC interrupt line can be removed in versions
- * of board following EVT in which daughter card (which has an external pull up)
- * will always be inserted.
- */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(0175), GPIO_INT_FALLING, tcpc_alert_event)
-/* from Analogix TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(0126), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-/* from Parade TCPC */
-
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
-GPIO_INT(USB_C0_CABLE_DET, PIN(0246), GPIO_INT_RISING, anx74xx_cable_det_interrupt)
-/* CABLE_DET from ANX3429 */
-#endif
-
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(050), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(033), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(035), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(057), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(0243), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(0240), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* ACOK_OD from BD99956 */
-GPIO_INT(AC_PRESENT, PIN(0242), GPIO_INT_BOTH, extpower_interrupt)
-
-/* TODO: We might remove external pull-up for POWER_BUTTON_L in EVT */
-GPIO_INT(POWER_BUTTON_L, PIN(0241), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(LID_OPEN, PIN(0206), GPIO_INT_BOTH, lid_interrupt)
-/* Volume up and down buttons need to be swapped. The one closer to the hinge
- * should be volume up and the one closer to the user should be volume down.
- * (cros.bug/p/60057) */
-GPIO_INT(EC_VOLDN_BTN_ODL_SWAPPED, PIN(042), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL_SWAPPED, PIN(044), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-#define GPIO_EC_VOLDN_BTN_ODL GPIO_EC_VOLUP_BTN_ODL_SWAPPED
-#define GPIO_EC_VOLUP_BTN_ODL GPIO_EC_VOLDN_BTN_ODL_SWAPPED
-/* Tablet switch is active-low. L: lid is attached (360 position) H: detached */
-GPIO_INT(TABLET_MODE_L, PIN(0207), GPIO_INT_BOTH, tablet_mode_interrupt)
-
-GPIO_INT(WP_L, PIN(0152), GPIO_INT_BOTH | GPIO_SEL_1P8V, switch_interrupt) /* EC_WP_ODL */
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(0131), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- bmi160_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(014), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* I2C GPIOs will be set to alt. function later. */
-GPIO(EC_I2C_GYRO_SDA, PIN(0132), GPIO_INPUT) /* original reef | GPIO_SEL_1P8V */
-GPIO(EC_I2C_GYRO_SCL, PIN(0140), GPIO_INPUT) /* original reef | GPIO_SEL_1P8V */
-GPIO(EC_I2C_SENSOR_SDA, PIN(012), GPIO_INPUT) /* original reef | GPIO_SEL_1P8V */
-GPIO(EC_I2C_SENSOR_SCL, PIN(013), GPIO_INPUT) /* original reef | GPIO_SEL_1P8V */
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(003), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(004), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(0154), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(0155), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(007), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(010), GPIO_INPUT)
-
-/*
- * LPC:
- * Pins 46, 47, 51, 52, 53, 54, 55, default to LPC mode.
- * Pin 56 (CLKRUN#) defaults to GPIO mode.
- * Pin 57 (SER_IRQ) defaults to LPC mode, but we also have EC_PCH_KB_INT_ODL
- * (Pin B0) in case it doesn't work (Set CONFIG_KEYBOARD_IRQ_GPIO in this case).
- *
- * See also the NO_LPC_ESPI bit in DEVALT1 and the CONFIG_HOSTCMD_SHI option.
- */
-
-GPIO(PCH_SMI_L, PIN(0227), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SMI_ODL */
-GPIO(PCH_SCI_L, PIN(0222), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_SCI_ODL */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(050), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * BRD_ID1 is a an ADC pin which will be used to measure multiple values.
- * Assert EC_BRD_ID_EN_ODL and then read BRD_ID1.
- */
-ALTERNATE(PIN_MASK(4, 0x04), 1, MODULE_ADC, 0) /* GPIO 0202 bank=4 bit=2 func=1 ADC02 */
-GPIO(EC_BRD_ID_EN_ODL, PIN(0221), GPIO_INPUT)
-
-GPIO(CCD_MODE_ODL, PIN(0203), GPIO_INPUT)
-GPIO(EC_HAVEN_RESET_ODL, PIN(034), GPIO_ODR_HIGH)
-GPIO(ENTERING_RW, PIN(0254), GPIO_OUTPUT) /* EC_ENTERING_RW */
-
-GPIO(PCH_RSMRST_L, PIN(0165), GPIO_OUT_LOW | GPIO_PULL_UP)
-GPIO(EC_BATT_PRES_L, PIN(0204), GPIO_INPUT)
-GPIO(PMIC_EN, PIN(0245), GPIO_OUT_LOW)
-GPIO(EN_PP3300, PIN(023), GPIO_OUT_LOW)
-GPIO(PP3300_PG, PIN(0156), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EN_PP5000, PIN(051), GPIO_OUT_LOW)
-GPIO(PP5000_PG, PIN(0157), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(043), GPIO_ODR_LOW)
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(054), GPIO_OUT_LOW)
-GPIO(PCH_SYS_PWROK, PIN(0106), GPIO_OUT_LOW) /* EC_PCH_PWROK */
-GPIO(ENABLE_BACKLIGHT, PIN(002), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-
-GPIO(WIRELESS_GPIO_WLAN_POWER, PIN(0142), GPIO_ODR_HIGH) /* EN_PP3300_WLAN_ODL */
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(0114), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-GPIO(PCH_PWRBTN_L, PIN(0244), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-GPIO(PCH_WAKE_L, PIN(0115), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(USB_C0_HPD_1P8_ODL, PIN(052), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(USB_C1_HPD_1P8_ODL, PIN(0151), GPIO_INPUT | GPIO_SEL_1P8V)
-
-GPIO(USB2_OTG_VBUSSENSE, PIN(053), GPIO_OUTPUT)
-
-/* EC_PCH_RTCRST is a sledgehammer for resetting SoC state and should rarely
- * be used. Set as input for now, we'll set it as an output when we want to use
- * it. Has external pull-down resistor. */
-GPIO(EC_PCH_RTCRST, PIN(0205), GPIO_INPUT)
-/* Latest code (2018-03-28) in power/intel_x86.c uses SYS_RESET_L signal name
- * Previous Reef used PCH_RCIN_L
- */
-GPIO(SYS_RESET_L, PIN(036), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-
-/* FIXME: What, if anything, to do about EC_RST_ODL on VCC1_RST#? */
-
-GPIO(CHARGER_RST_ODL, PIN(0141), GPIO_ODR_HIGH)
-GPIO(USB_A_CHARGE_EN_L, PIN(022), GPIO_OUT_LOW)
-GPIO(EN_USB_TCPC_PWR, PIN(0100), GPIO_OUT_LOW)
-GPIO(USB1_ENABLE, PIN(0144), GPIO_OUT_LOW)
-
-GPIO(USB_C0_PD_RST_L, PIN(024), GPIO_OUT_LOW) /* USB_C0_PD_RST_L */
-GPIO(USB_C1_PD_RST_ODL, PIN(0127), GPIO_ODR_LOW)
-
-/*
- * Configure as input to enable @ 1.5A, output-low to turn off, or output-high
- * to enable @ 3A.
- */
-GPIO(USB_C0_5V_EN, PIN(011), GPIO_OUT_LOW | GPIO_PULL_UP) /* EN_USB_C0_5V_OUT, Enable C0 */
-GPIO(USB_C1_5V_EN, PIN(061), GPIO_OUT_LOW | GPIO_PULL_UP) /* EN_USB_C1_5V_OUT, Enable C1 */
-
-/* Clear for non-HDI breakout, must be pulled high */
-/* reefmchp board note: following 3 GPIOs are not NC on reef board, which are not mapping to MEC1701 */
-//GPIO(NC1, PIN(0154), GPIO_INPUT | GPIO_PULL_UP | GPIO_SEL_1P8V)
-//GPIO(NC2, PIN(0155), GPIO_INPUT | GPIO_PULL_UP | GPIO_SEL_1P8V)
-
-//GPIO(ENG_STRAP, PIN(0156), GPIO_INPUT)
-
-GPIO(BAT_LED_BLUE, PIN(0153), GPIO_OUT_HIGH)
-GPIO(BAT_LED_AMBER, PIN(0226), GPIO_OUT_HIGH)
-
-/*
- * Alternate function pins
- */
-
-/* MEC1701H LPC all alternate function 1
- * bank bit
- * GPIO061 LPCPD# 1 17
- * GPIO063 SER_IRQ 1 19
- * GPIO064 LRESET# 1 20 need internal pull-up
- * GPIO065 PCI_CLK 1 21
- * GPIO066 LFRAME# 1 22
- * GPIO067 CLKRUN# 1 23
- * GPIO070 LAD0 1 24
- * GPIO071 LAD1 1 25
- * GPIO072 LAD2 1 26
- * GPIO073 LAD3 1 27
- */
-ALTERNATE(PIN_MASK(1, 0x0FF80000), 1, MODULE_LPC, 0)
-ALTERNATE(PIN_MASK(1, 0x00100000), 1, MODULE_LPC, GPIO_PULL_UP | GPIO_INT_BOTH)
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/*
- * 8 x 13 key scan matrix
- * MEC1704H (144 pin package)
- *
- * KSI0 = GPIO_0017 Func3 bank 0 bit 15
- * KSI1 = GPIO_0020 Func3 bank 0 bit 16
- * KSI2 = GPIO_0021 Func3 bank 0 bit 17
- * KSI3 = GPIO_0026 Func3 bank 0 bit 22
- * KSI4 = GPIO_0027 Func3 bank 0 bit 23
- * KSI5 = GPIO_0030 Func3 bank 0 bit 24
- * KSI6 = GPIO_0031 Func3 bank 0 bit 25
- * KSI7 = GPIO_0032 Func3 bank 0 bit 26
- *
- * KSO00 = GPIO_0040 Func3 bank 1 bit 0
- * KSO01 = GPIO_0045 Func3 bank 1 bit 5
- * KSO02 = GPIO_0046 Func3 bank 1 bit 6
- * KSO03 = GPIO_0047 Func3 bank 1 bit 7
- * KSO04 = GPIO_0107 Func3 bank 2 bit 7
- * KSO05 = GPIO_0112 Func3 bank 2 bit 10
- * KSO06 = GPIO_0113 Func3 bank 2 bit 11
- * KSO07 = GPIO_0120 Func3 bank 2 bit 16
- * KSO08 = GPIO_0121 Func3 bank 2 bit 17
- * KSO09 = GPIO_0122 Func3 bank 2 bit 18
- * KSO10 = GPIO_0123 Func3 bank 2 bit 19
- * KSO11 = GPIO_0124 Func3 bank 2 bit 20
- * KSO12 = GPIO_0125 Func3 bank 2 bit 21
- */
-/* KSI 0-7, Bank 0, Func3, bits 15-17, 22-26 */
-ALTERNATE(PIN_MASK(0, 0x07C38000), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
-/* KSO 4-12, Bank 2, Func3, bits 7, 10-11, 16-21 */
-ALTERNATE(PIN_MASK(2, 0x003F0C80), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-
-#ifdef CONFIG_KEYBOARD_COL2_INVERTED
-/* KSO 0,1,3 Bank 1, Func3, bits 0, 5-7 */
-ALTERNATE(PIN_MASK(1, 0xA1), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-GPIO(KBD_KSO2, PIN(046), GPIO_KB_OUTPUT_COL2)
-#else
-/* KSO 0-3 Bank 1, Func3, bits 0, 5-7 */
-ALTERNATE(PIN_MASK(1, 0xE1), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
-#endif
-
-
-/* MEC1701H ADC01=GPIO201 Func1, ADC00=GPIO200 Func 1
- * Bank 1 bits[1:0]
- * TEMP_SENSOR_AMB (GPIO201) and TEMP_SENSOR_CHARGER (GPIO200)
- */
-ALTERNATE(PIN_MASK(4, 0x03), 1, MODULE_ADC, 0)
-
-/* MEC1701H implements I2C[0,2,3,6,7]
- * We need 5 ports.
- * I2C00_SDA is GPIO003 Func1, I2C00_SCL is GPIO004 Func1 bank 0 bits[3:4]
- * I2C03_SDA is GPIO007 Func1, I2C03_SCL is GPIO010 Func1 bank 0 bits[7:8]
- * I2C07_SDA is GPIO012 Func1, I2C07_SCL is GPIO013 Func1 bank 0 bits[10:11]
- * I2C06_SDA is GPIO132 Func1, I2C06_SCL is GPIO140 Func1 bank 2 bits[26]; bank 3 bits[0]
- * I2C02_SDA is GPIO154 Func1, I2C02_SCL is GPIO155 Func1 bank 3 bits[12:13]
- */
-/* GPIO003-004 for EC_I2C_USB_C0_PD_SDA/SCL */
-/* GPIO007-010 for EC_I2C_POWER_SDA/SCL */
-/* GPIO012-013 for EC_I2C_SENSOR_SDA/SCL */
-ALTERNATE(PIN_MASK(0, 0x00000D98), 1, MODULE_I2C, 0)
-/* GPIO132 for EC_I2C_GYRO_SDA */
-ALTERNATE(PIN_MASK(2, 0x04000000), 1, MODULE_I2C, 0)
-/* GPIO140 for EC_I2C_GYRO_SCL */
-/* GPIO154-155 for EC_I2C_USB_C1_PD_SDA/SCL */
-ALTERNATE(PIN_MASK(3, 0x00003001), 1, MODULE_I2C, 0)
-
-/*
- * PWM4 = GPIO001 Func1
- * PWM5 = GPIO002 Func1
- */
-/* reefmchp board note: not PWM in reef or reedmchp boards design?? */
-//ALTERNATE(PIN_MASK(0, 0x00000006), 1, MODULE_PWM, 0)
-
-/*
- * MCHP TFDP alternate function configuration
- * GPIO 0170 = clock, 0171 = data both function 1
- * Port = 3 bits[24:25]
- */
-ALTERNATE(PIN_MASK(3, 0x03000000), 1, MODULE_TFDP, 0)
-
-/* reefmchp board note: specific for reedmchp board only */
-
-/* GPIO101 - enable high accurate reference voltage regulator MAX6070
- 1 - enable regulator, in normal runtime
- 0 - disable regulator, in low power mode
- */
-GPIO(VOL_REGULATOR_EN, PIN(0101), GPIO_OUT_HIGH)
-
-/* GPIO015 - enable 3.3V / 1.8V level switch TXS0108
- 1 - enable level switch, in normal runtime
- 0 - disable level switch, in low power mode
- */
-GPIO(LEVEL_SW_EN, PIN(015), GPIO_OUT_HIGH | GPIO_SEL_1P8V)
-
-/* DEBUG I2C */
-GPIO(GP025, PIN(025), GPIO_OUT_HIGH | GPIO_PULL_UP)
-
-/* Low power deep sleep test. GPIO_0060 Function 2 48MHZ_OUT */
-ALTERNATE(PIN_MASK(1, 0x10000), 2, MODULE_CHIPSET, 0)
-
-/* Unused pins - on test header J47 */
-/* Clear for non-HDI breakout, must be pulled high */
-GPIO(NC1_UNUSED, PIN(062), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC2_UNUSED, PIN(0102), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC3_UNUSED, PIN(000), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC4_UNUSED, PIN(0130), GPIO_INPUT | GPIO_PULL_UP)
-/* GPIO(NC5_UNUSED, PIN(060), GPIO_INPUT | GPIO_PULL_UP) */
-/* use this for low power mode test */
-/* ALTERNATE(PIN_MASK(1, 0x00010000), 2, MODULE_GPIO, 0) */
-GPIO(NC6_UNUSED, PIN(0161), GPIO_INPUT | GPIO_PULL_UP)
-/* GPIO(NC7_UNUSED, PIN(025), GPIO_INPUT | GPIO_PULL_UP) */
-GPIO(NC8_UNUSED, PIN(0162), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC9_UNUSED, PIN(0172), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(NC10_UNUSED, PIN(0163), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/reef_mchp/led.c b/board/reef_mchp/led.c
deleted file mode 100644
index ca49fe4ed5..0000000000
--- a/board/reef_mchp/led.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* Copyright 2016 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.
- *
- * Power and battery LED control for Reef
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "util.h"
-
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-#define CRITICAL_LOW_BATTERY_PERCENTAGE 3
-#define LOW_BATTERY_PERCENTAGE 10
-
-#define LED_TOTAL_4SECS_TICKS 4
-#define LED_TOTAL_2SECS_TICKS 2
-#define LED_ON_1SEC_TICKS 1
-#define LED_ON_2SECS_TICKS 2
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_BLUE,
- LED_AMBER,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int led_set_color_battery(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_OFF);
- break;
- case LED_BLUE:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_OFF);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_BLUE, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_AMBER, BAT_LED_ON);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-static int led_set_color(enum ec_led_id led_id, enum led_color color)
-{
- int rv;
-
- switch (led_id) {
- case EC_LED_ID_BATTERY_LED:
- rv = led_set_color_battery(color);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return rv;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color(led_id, LED_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(led_id, LED_AMBER);
- else
- led_set_color(led_id, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void led_set_battery(void)
-{
- static int battery_ticks;
- static int suspend_ticks;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- led_set_color_battery(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE_FULL:
- if (extpower_is_present()) {
- led_set_color_battery(LED_BLUE);
- break;
- }
- /* Intentional fall-through */
- case PWR_STATE_DISCHARGE /* and PWR_STATE_DISCHARGE_FULL */:
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- led_set_color_battery(LED_BLUE);
- } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- /* Blink once every four seconds. */
- led_set_color_battery(
- (suspend_ticks % LED_TOTAL_4SECS_TICKS)
- < LED_ON_1SEC_TICKS ? LED_AMBER : LED_OFF);
- } else {
- led_set_color_battery(LED_OFF);
- }
- break;
- case PWR_STATE_ERROR:
- led_set_color_battery(
- (battery_ticks % LED_TOTAL_2SECS_TICKS <
- LED_ON_1SEC_TICKS) ? LED_AMBER : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- led_set_color_battery(LED_BLUE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (charge_get_flags() & CHARGE_FLAG_FORCE_IDLE)
- led_set_color_battery(
- (battery_ticks % LED_TOTAL_4SECS_TICKS <
- LED_ON_2SECS_TICKS) ? LED_AMBER : LED_BLUE);
- else
- led_set_color_battery(LED_BLUE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- battery_ticks++;
- suspend_ticks++;
-}
-
-/* Called by hook task every 1 sec */
-static void led_second(void)
-{
- /*
- * Reference board only has one LED, so overload it to act as both
- * power LED and battery LED.
- */
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
diff --git a/board/reef_mchp/lfw/vif_override.xml b/board/reef_mchp/lfw/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/reef_mchp/lfw/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/reef_mchp/usb_pd_policy.c b/board/reef_mchp/usb_pd_policy.c
deleted file mode 100644
index 90f44f8580..0000000000
--- a/board/reef_mchp/usb_pd_policy.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "atomic.h"
-#include "extpower.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/tcpm/anx74xx.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#include "tfdp_chip.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en[CONFIG_USB_PD_PORT_MAX_COUNT];
-static uint8_t vbus_rp[CONFIG_USB_PD_PORT_MAX_COUNT] = {TYPEC_RP_1A5,
- TYPEC_RP_1A5};
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en[port];
-}
-
-static void board_vbus_update_source_current(int port)
-{
- enum gpio_signal gpio = port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN;
- int flags = (vbus_rp[port] == TYPEC_RP_1A5 && vbus_en[port]) ?
- (GPIO_INPUT | GPIO_PULL_UP) : (GPIO_OUTPUT | GPIO_PULL_UP);
-
- /*
- * Driving USB_Cx_5V_EN high, actually put a 16.5k resistance
- * (2x 33k in parallel) on the NX5P3290 load switch ILIM pin,
- * setting a minimum OCP current of 3186 mA.
- * Putting an internal pull-up on USB_Cx_5V_EN, effectively put a 33k
- * resistor on ILIM, setting a minimum OCP current of 1505 mA.
- */
- gpio_set_level(gpio, vbus_en[port]);
- gpio_set_flags(gpio, flags);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- vbus_rp[port] = rp;
-
- /* change the GPIO driving the load switch if needed */
- board_vbus_update_source_current(port);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Ensure we're not charging from this port */
- bd9995x_select_input_port(port, 0);
-
- /* Ensure we advertise the proper available current quota */
- charge_manager_source_port(port, 1);
-
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en[port] = 1;
- board_vbus_update_source_current(port);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en[port];
-
- /* Disable VBUS */
- vbus_en[port] = 0;
- board_vbus_update_source_current(port);
-
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* Give back the current quota we are no longer using */
- charge_manager_source_port(port, 0);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /* in G3, do not allow vconn swap since pp5000_A rail is off */
- return gpio_get_level(GPIO_EN_PP5000);
-}
diff --git a/board/reef_mchp/vif_override.xml b/board/reef_mchp/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/reef_mchp/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/sasuke/battery.c b/board/sasuke/battery.c
deleted file mode 100644
index ad7ea9c2fe..0000000000
--- a/board/sasuke/battery.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-#include "hooks.h"
-#include "usb_pd.h"
-#include "util.h"
-
-#define CHARGING_CURRENT_REDUCE 4000
-/*
- * Battery info for all sasuke battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- *
- * Battery FET Status in Manufacture Access : bit15 & bit14
- * b'00 - dfet : on / cfet : on
- * b'01 - dfet : on / cfet : off
- * b'10 - dfet : off / cfet : off
- * b'11 - dfet : off / cfet : on
- * The value b'10 is disconnect_val, so we can use b'01 for cfet_off_val
- */
-const struct board_batt_params board_battery_info[] = {
- /* SDI Battery Information */
- [BATTERY_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SDI",
- .device_name = "4432D53",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- .cfet_mask = 0xc000,
- .cfet_off_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8760,
- .voltage_normal = 7720, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
- /* SWD(Sunwoda) Battery Information */
- [BATTERY_SWD] = {
- .fuel_gauge = {
- .manuf_name = "SWD",
- .device_name = "4432W53",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- .cfet_mask = 0xc000,
- .cfet_off_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8760,
- .voltage_normal = 7720, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SDI;
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int current;
- int voltage;
-
- current = curr->requested_current;
- voltage = curr->requested_voltage;
-
- voltage -= 100;
- if (current > CHARGING_CURRENT_REDUCE)
- current -= (current / 10);
-
- curr->requested_voltage = MIN(curr->requested_voltage, voltage);
- curr->requested_current = MIN(curr->requested_current, current);
-
- return 0;
-}
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-/* Lower our input voltage to 5V in S0iX when battery is full. */
-#define PD_VOLTAGE_WHEN_FULL 5000
-static void reduce_input_voltage_when_full(void)
-{
- static int saved_input_voltage = -1;
- int max_pd_voltage_mv = pd_get_max_voltage();
- int port;
-
- if (charge_get_percent() == 100 &&
- chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) {
- if (max_pd_voltage_mv != PD_VOLTAGE_WHEN_FULL) {
- saved_input_voltage = max_pd_voltage_mv;
- max_pd_voltage_mv = PD_VOLTAGE_WHEN_FULL;
- }
- } else if (saved_input_voltage != -1) {
- if (max_pd_voltage_mv == PD_VOLTAGE_WHEN_FULL)
- max_pd_voltage_mv = saved_input_voltage;
- saved_input_voltage = -1;
- }
-
- if (pd_get_max_voltage() != max_pd_voltage_mv) {
- for (port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; port++)
- pd_set_external_voltage_limit(port, max_pd_voltage_mv);
- }
-}
-DECLARE_HOOK(HOOK_SECOND, reduce_input_voltage_when_full,
- HOOK_PRIO_DEFAULT);
diff --git a/board/sasuke/board.c b/board/sasuke/board.c
deleted file mode 100644
index 21631c0323..0000000000
--- a/board/sasuke/board.c
+++ /dev/null
@@ -1,789 +0,0 @@
-/* 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.
- */
-
-/* Waddledoo board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "cros_board_info.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/nb7v904m.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_8042.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void sub_usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-
-}
-static void sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- int hdmi_hpd_odl = gpio_get_level(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, !hdmi_hpd_odl);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-static int board_id = -1;
-static int mux_c1 = SSFC_USB_SS_MUX_DEFAULT;
-
-extern const struct usb_mux usbc0_retimer;
-extern const struct usb_mux usbmux_ps8743;
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- /* Disable i2c on HDMI pins */
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, 0);
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-
- /* Set HDMI and sub-rail enables to output */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL,
- chipset_in_state(CHIPSET_STATE_ON) ?
- GPIO_ODR_LOW : GPIO_ODR_HIGH);
- gpio_set_flags(GPIO_SUB_C1_INT_EN_RAILS_ODL, GPIO_ODR_HIGH);
-
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
-
- /* Enable interrupt for passing through HPD */
- gpio_enable_interrupt(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
- } else {
- /* Set SDA as an input */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL,
- GPIO_INPUT);
-
- /* Enable C1 interrupts */
- gpio_enable_interrupt(GPIO_SUB_C1_INT_EN_RAILS_ODL);
- check_c1_line();
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- if (board_id == -1) {
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS) {
- board_id = val;
- if (board_id == 2) {
- nb7v904m_lpm_disable = 1;
- nb7v904m_set_aux_ch_switch(&usbc0_retimer,
- NB7V904M_AUX_CH_FLIPPED);
- }
- }
- }
-
- mux_c1 = get_cbi_ssfc_usb_ss_mux();
-
- if (mux_c1 == SSFC_USB_SS_MUX_PS8743)
- memcpy(&usb_muxes[1],
- &usbmux_ps8743,
- sizeof(struct usb_mux));
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Enable HDMI any time the SoC is on */
-static void hdmi_enable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, hdmi_enable, HOOK_PRIO_DEFAULT);
-
-static void hdmi_disable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, hdmi_disable, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, false);
-}
-
-/* USB-A charging control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
-};
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-static void set_5v_gpio(int level)
-{
- gpio_set_level(GPIO_EN_PP5000, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC, or send enable signal to HDMI
- * DB.
- */
- set_5v_gpio(!!enable);
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- gpio_set_level(GPIO_SUB_C1_INT_EN_RAILS_ODL, !enable);
- } else {
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ?
- "en" : "dis");
- }
-
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CHARGER_NUM - 1;
- else
- return CHARGER_NUM;
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-static int board_nb7v904m_mux_set_c0(const struct usb_mux *me,
- mux_state_t mux_state);
-static int board_nb7v904m_mux_set(const struct usb_mux *me,
- mux_state_t mux_state);
-static int ps8743_tune_mux(const struct usb_mux *me);
-
-const struct usb_mux usbc0_retimer = {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = NB7V904M_I2C_ADDR0,
- .driver = &nb7v904m_usb_redriver_drv,
- .board_set = &board_nb7v904m_mux_set_c0,
-};
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = NB7V904M_I2C_ADDR0,
- .driver = &nb7v904m_usb_redriver_drv,
- .board_set = &board_nb7v904m_mux_set,
-};
-
-const struct usb_mux usbmux_ps8743 = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8743_I2C_ADDR0_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .board_init = &ps8743_tune_mux,
-};
-
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- .next_mux = &usbc0_retimer,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- }
-};
-/* USB Mux C1 : board_init of PS8743 */
-static int ps8743_tune_mux(const struct usb_mux *me)
-{
- ps8743_tune_usb_eq(me,
- PS8743_USB_EQ_TX_3_6_DB,
- PS8743_USB_EQ_RX_16_0_DB);
-
- return EC_SUCCESS;
-}
-
-/* USB Mux C0 */
-static int board_nb7v904m_mux_set_c0(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
- int flipped = !!(mux_state & USB_PD_MUX_POLARITY_INVERTED);
-
- if (board_id == -1) {
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS)
- board_id = val;
- if (board_id == 2)
- nb7v904m_lpm_disable = 1;
- }
-
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* USB with DP */
- if (flipped) {
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_10_DB,
- NB7V904M_CH_B_EQ_0_DB,
- NB7V904M_CH_C_EQ_2_DB,
- NB7V904M_CH_D_EQ_2_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_A_GAIN_0_DB,
- NB7V904M_CH_B_GAIN_1P5_DB,
- NB7V904M_CH_C_GAIN_0_DB,
- NB7V904M_CH_D_GAIN_0_DB);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_C,
- NB7V904M_LOSS_PROFILE_C);
- }
- else {
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_2_DB,
- NB7V904M_CH_B_EQ_2_DB,
- NB7V904M_CH_C_EQ_0_DB,
- NB7V904M_CH_D_EQ_10_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_A_GAIN_0_DB,
- NB7V904M_CH_B_GAIN_0_DB,
- NB7V904M_CH_C_GAIN_1P5_DB,
- NB7V904M_CH_D_GAIN_0_DB);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_C,
- NB7V904M_LOSS_PROFILE_C,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A);
- }
- } else {
- /* USB only */
- if (board_id == 2)
- rv |= nb7v904m_set_aux_ch_switch(me,
- NB7V904M_AUX_CH_FLIPPED);
-
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_10_DB,
- NB7V904M_CH_B_EQ_0_DB,
- NB7V904M_CH_C_EQ_0_DB,
- NB7V904M_CH_D_EQ_10_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_A_GAIN_0_DB,
- NB7V904M_CH_B_GAIN_1P5_DB,
- NB7V904M_CH_C_GAIN_1P5_DB,
- NB7V904M_CH_D_GAIN_0_DB);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A);
- }
-
- } else if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* 4 lanes DP */
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_2_DB,
- NB7V904M_CH_B_EQ_2_DB,
- NB7V904M_CH_C_EQ_2_DB,
- NB7V904M_CH_D_EQ_2_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_A_GAIN_0_DB,
- NB7V904M_CH_B_GAIN_0_DB,
- NB7V904M_CH_C_GAIN_0_DB,
- NB7V904M_CH_D_GAIN_0_DB);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_C,
- NB7V904M_LOSS_PROFILE_C,
- NB7V904M_LOSS_PROFILE_C,
- NB7V904M_LOSS_PROFILE_C);
- }
-
- return rv;
-}
-
-/* USB Mux */
-static int board_nb7v904m_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
- int flipped = !!(mux_state & USB_PD_MUX_POLARITY_INVERTED);
-
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* USB with DP */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- if (flipped) {
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_10_DB,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_D_EQ_4_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_ALL_SKIP_GAIN,
- NB7V904M_CH_B_GAIN_3P5_DB,
- NB7V904M_CH_C_GAIN_0_DB,
- NB7V904M_CH_ALL_SKIP_GAIN);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_D,
- NB7V904M_LOSS_PROFILE_D);
- }
- else {
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_4_DB,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_D_EQ_10_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_ALL_SKIP_GAIN,
- NB7V904M_CH_B_GAIN_0_DB,
- NB7V904M_CH_C_GAIN_3P5_DB,
- NB7V904M_CH_ALL_SKIP_GAIN);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_D,
- NB7V904M_LOSS_PROFILE_D,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A);
- }
- } else {
- /* USB only */
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_10_DB,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_D_EQ_10_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_ALL_SKIP_GAIN,
- NB7V904M_CH_B_GAIN_3P5_DB,
- NB7V904M_CH_C_GAIN_3P5_DB,
- NB7V904M_CH_ALL_SKIP_GAIN);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A,
- NB7V904M_LOSS_PROFILE_A);
- }
-
- } else if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* 4 lanes DP */
- rv |= nb7v904m_tune_usb_set_eq(me,
- NB7V904M_CH_A_EQ_4_DB,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_ALL_SKIP_EQ,
- NB7V904M_CH_D_EQ_4_DB);
- rv |= nb7v904m_tune_usb_flat_gain(me,
- NB7V904M_CH_ALL_SKIP_GAIN,
- NB7V904M_CH_B_GAIN_0_DB,
- NB7V904M_CH_C_GAIN_0_DB,
- NB7V904M_CH_ALL_SKIP_GAIN);
- rv |= nb7v904m_set_loss_profile_match(me,
- NB7V904M_LOSS_PROFILE_D,
- NB7V904M_LOSS_PROFILE_D,
- NB7V904M_LOSS_PROFILE_D,
- NB7V904M_LOSS_PROFILE_D);
- }
-
- return rv;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (board_get_usb_pd_port_count() > 1 &&
- !gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-static const struct ec_response_keybd_config keybd1 = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad and no screenlock key */
-};
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- /*
- * Future boards should use fw_config if needed.
- */
-
- return &keybd1;
-}
diff --git a/board/sasuke/board.h b/board/sasuke/board.h
deleted file mode 100644
index 4d70cda5ab..0000000000
--- a/board/sasuke/board.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* 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.
- */
-
-/* Waddledoo board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_DEDEDE_EC_NPCX796FC
-#include "baseboard.h"
-#undef GPIO_VOLUME_UP_L
-#undef GPIO_VOLUME_DOWN_L
-#undef CONFIG_VOLUME_BUTTONS
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGE_RAMP_HW
-#undef CONFIG_CHARGER_SINGLE_CHIP
-
-#define CONFIG_BATTERY_CHECK_CHARGE_TEMP_LIMITS
-
-/*
- * GPIO for C1 interrupts, for baseboard use
- *
- * Note this line might already have its pull up disabled for HDMI DBs, but
- * it should be fine to set again before z-state.
- */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_C1_INT_EN_RAILS_ODL
-
-/* Keyboard */
-
-/* LED */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-#define GPIO_BAT_LED_RED_L GPIO_LED_R_ODL
-#define GPIO_BAT_LED_GREEN_L GPIO_LED_G_ODL
-#define GPIO_PWR_LED_BLUE_L GPIO_LED_B_ODL
-
-
-/* PWM */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_NB7V904M
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-#define CONFIG_USB_MUX_PS8743
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-#define CONFIG_USB_PD_COMM_LOCKED
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-#undef PD_POWER_SUPPLY_TURN_ON_DELAY
-#undef PD_POWER_SUPPLY_TURN_OFF_DELAY
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-/* 20% margin added for these timings */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 13080 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 16080 /* us */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 787 /* us */
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_INVERTED
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A0_5V_SUB
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/*
- * I2C pin names for baseboard
- *
- * Note: these lines will be set as i2c on start-up, but this should be
- * okay since they're ODL.
- */
-#define GPIO_EC_I2C_SUB_USB_C1_SCL GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL
-#define GPIO_EC_I2C_SUB_USB_C1_SDA GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL
-
-#define CONFIG_MATH_UTIL
-
-/*
- * There is ccd connection issue on board id = 2.
- * NB7V904M is needed to be active to resolve this.
- */
-#define CONFIG_NB7V904M_LPM_OVERRIDE
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SDI,
- BATTERY_SWD,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/sasuke/build.mk b/board/sasuke/build.mk
deleted file mode 100644
index cd002a20e7..0000000000
--- a/board/sasuke/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=dedede
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/sasuke/cbi_ssfc.c b/board/sasuke/cbi_ssfc.c
deleted file mode 100644
index de5568005e..0000000000
--- a/board/sasuke/cbi_ssfc.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
-
-enum ec_ssfc_usb_ss_mux get_cbi_ssfc_usb_ss_mux(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.usb_ss_mux;
-}
diff --git a/board/sasuke/cbi_ssfc.h b/board/sasuke/cbi_ssfc.h
deleted file mode 100644
index af47a1c2cd..0000000000
--- a/board/sasuke/cbi_ssfc.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-/*
- * USB SuperSpeed Mux (Bits 6-8)
- */
-enum ec_ssfc_usb_ss_mux {
- SSFC_USB_SS_MUX_DEFAULT = 0,
- SSFC_USB_SS_MUX_PS8743 = 1,
- SSFC_USB_SS_MUX_PI3USBX532 = 2,
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t usb_ss_mux : 3;
- uint32_t reserved_2 : 23;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-/**
- * Get the USB SuperSpeed Mux type from SSFC_CONFIG
- *
- * @return the USB SuperSpeed Mux type
- */
-enum ec_ssfc_usb_ss_mux get_cbi_ssfc_usb_ss_mux(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/sasuke/ec.tasklist b/board/sasuke/ec.tasklist
deleted file mode 100644
index a867bdbbae..0000000000
--- a/board/sasuke/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/sasuke/gpio.inc b/board/sasuke/gpio.inc
deleted file mode 100644
index 4b970f9798..0000000000
--- a/board/sasuke/gpio.inc
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(SUB_C1_INT_EN_RAILS_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt) /* C1 interrupt OR 5V power en */
-GPIO_INT(EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* C1 I2C SDA OR HDMI_HPD */
-
-/* Button interrupts */
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, PIN(9, 2), GPIO_INPUT) /* C1 I2C SCL OR HDMI en */
-
-/* Extra Sub-board I/O pins */
-GPIO(EC_SUB_IO_1, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_SUB_IO_2, PIN(3, 4), GPIO_OUT_LOW)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(IMVP9_PE, PIN(E, 0), GPIO_OUT_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(LED_R_ODL, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(LED_G_ODL, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(LED_B_ODL, PIN(C, 2), GPIO_OUT_HIGH)
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-
-GPIO(EN_USB_A0_5V_SUB, PIN(9, 7), GPIO_OUT_LOW) /* Don't limit USB-A charging by default - all ports */
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/*
- * Waddledoo doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO00_NC, PIN(0, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO40_NC, PIN(4, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO50_NC, PIN(5, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO56_NC, PIN(5, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO60_NC, PIN(6, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO63_NC, PIN(6, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO73_NC, PIN(7, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO80_NC, PIN(8, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO95_NC, PIN(9, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOA2_NC, PIN(A, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_DOWN)
diff --git a/board/sasuke/led.c b/board/sasuke/led.c
deleted file mode 100644
index 67d0889831..0000000000
--- a/board/sasuke/led.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for sasuke
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* sasuke : There are 3 leds for AC, Battery and Power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- if (color == EC_LED_COLOR_BLUE)
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- }
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- /* Battery leds must be turn off when blue led is on
- * because casta has 3-in-1 led.
- */
- if(!gpio_get_level(GPIO_PWR_LED_BLUE_L))
- {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- return;
- }
-
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL); /*green*/
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_BAT_LED_RED_L, !brightness[EC_LED_COLOR_RED]);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/sasuke/usb_pd_policy.c b/board/sasuke/usb_pd_policy.c
deleted file mode 100644
index 3190595596..0000000000
--- a/board/sasuke/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/sasuke/vif_override.xml b/board/sasuke/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/sasuke/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/sasukette/battery.c b/board/sasukette/battery.c
deleted file mode 100644
index 652c04a651..0000000000
--- a/board/sasukette/battery.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "common.h"
-#include "util.h"
-
-#define CHARGING_VOLTAGE_MV_SAFE 8400
-#define CHARGING_CURRENT_MA_SAFE 1500
-
-/*
- * Battery info for all sasukette battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SDI Battery Information */
- [BATTERY_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SDI",
- .device_name = "4402D51",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x00,
- .reg_mask = 0xc000,
- .disconnect_val = 0x8000,
- .cfet_mask = 0xc000,
- .cfet_off_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SDI;
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int current;
- int voltage;
- /* battery temp in 0.1 deg C */
- int bat_temp_c;
- const struct battery_info *batt_info;
-
- /*
- * Keep track of battery temperature range:
- *
- * ZONE_0 ZONE_1 ZONE_2 ZONE_3
- * ---+------+--------+--------+------+--- Temperature (C)
- * 0 5 12 45 50
- */
- enum {
- TEMP_ZONE_0, /* 0 <= bat_temp_c <= 5 */
- TEMP_ZONE_1, /* 5 < bat_temp_c <= 12 */
- TEMP_ZONE_2, /* 12 < bat_temp_c <= 45 */
- TEMP_ZONE_3, /* 45 < bat_temp_c <= 50 */
- TEMP_ZONE_COUNT,
- TEMP_OUT_OF_RANGE = TEMP_ZONE_COUNT
- } temp_zone;
-
- /*
- * Precharge must be executed when communication is failed on
- * dead battery.
- */
- if (!(curr->batt.flags & BATT_FLAG_RESPONSIVE))
- return 0;
-
- current = curr->requested_current;
- voltage = curr->requested_voltage;
- bat_temp_c = curr->batt.temperature - 2731;
- batt_info = battery_get_info();
-
- /*
- * If the temperature reading is bad, assume the temperature
- * is out of allowable range.
- */
- if ((curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE) ||
- (bat_temp_c < 0) || (bat_temp_c > 500))
- temp_zone = TEMP_OUT_OF_RANGE;
- else if (bat_temp_c <= 50)
- temp_zone = TEMP_ZONE_0;
- else if (bat_temp_c <= 120)
- temp_zone = TEMP_ZONE_1;
- else if (bat_temp_c <= 450)
- temp_zone = TEMP_ZONE_2;
- else
- temp_zone = TEMP_ZONE_3;
-
- switch (temp_zone) {
- case TEMP_ZONE_0:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- current = CHARGING_CURRENT_MA_SAFE;
- break;
-
- case TEMP_ZONE_1:
- voltage += 100;
- current = CHARGING_CURRENT_MA_SAFE;
- break;
-
- case TEMP_ZONE_2:
- voltage += 100;
- break;
-
- case TEMP_ZONE_3:
- voltage = CHARGING_VOLTAGE_MV_SAFE;
- break;
-
- case TEMP_OUT_OF_RANGE:
- /* Don't charge if outside of allowable temperature range */
- current = 0;
- voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- if (curr->state != ST_DISCHARGE)
- curr->state = ST_IDLE;
- break;
- }
-
- if (voltage > batt_info->voltage_max)
- voltage = batt_info->voltage_max;
-
- curr->requested_voltage = voltage;
- curr->requested_current = MIN(curr->requested_current, current);
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/sasukette/board.c b/board/sasukette/board.c
deleted file mode 100644
index a55967d816..0000000000
--- a/board/sasukette/board.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Sasukette configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cros_board_info.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "math_util.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- }
-};
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- }
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- }
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- }
-};
-
-static uint32_t board_id;
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* modify AC DC prochot value */
- isl923x_set_ac_prochot(CHARGER_SOLO, 4096);
- isl923x_set_dc_prochot(CHARGER_SOLO, 6000);
-
- cbi_get_board_version(&board_id);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- *
- * b:186335659: In order to solve the power consumption problem of
- * hibernate,HW solution is adopted after board id 3 to solve the
- * problem that AC cannot wake up hibernate mode.
- */
- if (board_id > 2)
- raa489000_hibernate(0, true);
- else
- raa489000_hibernate(0, false);
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, !!enable);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
- raa489000_set_output_current(port, rp);
-}
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Cpu",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
diff --git a/board/sasukette/board.h b/board/sasukette/board.h
deleted file mode 100644
index a1d987aaf3..0000000000
--- a/board/sasukette/board.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Sasukette board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-#undef GPIO_VOLUME_UP_L
-#undef GPIO_VOLUME_DOWN_L
-#undef CONFIG_VOLUME_BUTTONS
-#undef CONFIG_I2C_DEBUG
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_CHECK_CHARGE_TEMP_LIMITS
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* LED */
-#define CONFIG_LED_COMMON
-#define CONFIG_LED_ONOFF_STATES
-#define GPIO_BAT_LED_RED_L GPIO_LED_R_ODL
-#define GPIO_BAT_LED_GREEN_L GPIO_LED_G_ODL
-#define GPIO_PWR_LED_BLUE_L GPIO_LED_B_ODL
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_TEMP_SENSOR_3, /* ADC15*/
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/sasukette/build.mk b/board/sasukette/build.mk
deleted file mode 100644
index 8167ca9966..0000000000
--- a/board/sasukette/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/sasukette/cbi_ssfc.c b/board/sasukette/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/sasukette/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/sasukette/cbi_ssfc.h b/board/sasukette/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/sasukette/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/sasukette/ec.tasklist b/board/sasukette/ec.tasklist
deleted file mode 100644
index bb4d9c6a61..0000000000
--- a/board/sasukette/ec.tasklist
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE)
diff --git a/board/sasukette/gpio.inc b/board/sasukette/gpio.inc
deleted file mode 100644
index 396a5595fa..0000000000
--- a/board/sasukette/gpio.inc
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW) /* Board rev 1, NC board rev 0 */
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-GPIO(LTE_EN, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(WWAN_CONFIG, PIN(A, 0), GPIO_INPUT |GPIO_PULL_UP)
-
-/* LED */
-GPIO(LED_R_ODL, PIN(A, 1), GPIO_ODR_HIGH)
-GPIO(LED_G_ODL, PIN(A, 2), GPIO_ODR_HIGH)
-GPIO(LED_B_ODL, PIN(A, 3), GPIO_ODR_HIGH)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOB5_NC, PIN(B, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC6_NC, PIN(C, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOE6_NC, PIN(E, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOE7_NC, PIN(E, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF1_NC, PIN(F, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF6_NC, PIN(F, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF7_NC, PIN(F, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH2_NC, PIN(H, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOI6_NC, PIN(I, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOI7_NC, PIN(I, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ0_NC, PIN(J, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ1_NC, PIN(J, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ3_NC, PIN(J, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 EEPROM */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 BATTERY */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 USB_C0 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(2)), 0, MODULE_ADC, 0) /* ADC15:TEMP_SENSOR3 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
diff --git a/board/sasukette/led.c b/board/sasukette/led.c
deleted file mode 100644
index 28643a7b87..0000000000
--- a/board/sasukette/led.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Sasukette
- *
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Sasukette : There are 3 leds for AC, Battery and Power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 0.5 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- if (color == EC_LED_COLOR_BLUE) {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_ON_LVL);
- } else {
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- }
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- /* Don't set led if led_auto_control is disabled. */
- if (!led_auto_control_is_enabled(EC_LED_ID_POWER_LED) ||
- !led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- return;
- }
-
- /* Battery leds must be turn off when blue led is on
- * because the led is 3-in-1 led.
- */
- if (!gpio_get_level(GPIO_PWR_LED_BLUE_L)) {
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- return;
- }
-
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_ON_LVL); /*green*/
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_ON_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL); /*red*/
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL); /*green*/
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_GREEN_L,
- !brightness[EC_LED_COLOR_GREEN]);
- gpio_set_level(GPIO_BAT_LED_RED_L,
- !brightness[EC_LED_COLOR_RED]);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- gpio_set_level(GPIO_PWR_LED_BLUE_L,
- !brightness[EC_LED_COLOR_BLUE]);
- gpio_set_level(GPIO_BAT_LED_GREEN_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_RED_L, LED_OFF_LVL);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/sasukette/usb_pd_policy.c b/board/sasukette/usb_pd_policy.c
deleted file mode 100644
index b0e1098e4d..0000000000
--- a/board/sasukette/usb_pd_policy.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/sasukette/vif_override.xml b/board/sasukette/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/sasukette/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/scarlet/battery.c b/board/scarlet/battery.c
deleted file mode 100644
index 0be4cc93e2..0000000000
--- a/board/scarlet/battery.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/* Copyright 2016 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "console.h"
-#include "driver/battery/max17055.h"
-#include "driver/charger/rt946x.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "system.h"
-#include "util.h"
-
-/*
- * AE-Tech battery pack has two charging phases when operating
- * between 10 and 20C
- */
-#define CHARGE_PHASE_CHANGE_TRIP_VOLTAGE_MV 4200
-#define CHARGE_PHASE_CHANGE_HYSTERESIS_MV 50
-#define CHARGE_PHASE_CHANGED_CURRENT_MA 1800
-
-#define TEMP_OUT_OF_RANGE TEMP_ZONE_COUNT
-
-static uint8_t batt_id = 0xff;
-
-/* Do not change the enum values. We directly use strap gpio level to index. */
-enum battery_type {
- BATTERY_SIMPLO = 0,
- BATTERY_AETECH,
- BATTERY_COUNT
-};
-
-static const struct battery_info info[] = {
- [BATTERY_SIMPLO] = {
- .voltage_max = 4400,
- .voltage_normal = 3840,
- .voltage_min = 3000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- [BATTERY_AETECH] = {
- .voltage_max = 4350,
- .voltage_normal = 3800,
- .voltage_min = 3000,
- .precharge_current = 700,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 55,
- }
-};
-
-static const struct max17055_batt_profile batt_profile[] = {
- [BATTERY_SIMPLO] = {
- .is_ez_config = 0,
- .design_cap = 0x221e, /* 8734mAh */
- .ichg_term = 0x589, /* 443 mA */
- /* Empty voltage = 3000mV, Recovery voltage = 3600mV */
- .v_empty_detect = 0x965a,
- .learn_cfg = 0x4406,
- .dpacc = 0x0c7a,
- .rcomp0 = 0x0062,
- .tempco = 0x1327,
- .qr_table00 = 0x1680,
- .qr_table10 = 0x0900,
- .qr_table20 = 0x0280,
- .qr_table30 = 0x0280,
- },
- [BATTERY_AETECH] = {
- .is_ez_config = 0,
- .design_cap = 0x232f, /* 9007mAh */
- .ichg_term = 0x0240, /* 180mA */
- /* Empty voltage = 2700mV, Recovery voltage = 3280mV */
- .v_empty_detect = 0x8752,
- .learn_cfg = 0x4476,
- .dpacc = 0x0c7b,
- .rcomp0 = 0x0077,
- .tempco = 0x1d3f,
- .qr_table00 = 0x1200,
- .qr_table10 = 0x0900,
- .qr_table20 = 0x0480,
- .qr_table30 = 0x0480,
- },
-};
-
-const struct battery_info *battery_get_info(void)
-{
- if (batt_id >= BATTERY_COUNT)
- batt_id = gpio_get_level(GPIO_BATT_ID);
-
- return &info[batt_id];
-}
-
-const struct max17055_batt_profile *max17055_get_batt_profile(void)
-{
- if (batt_id >= BATTERY_COUNT)
- batt_id = gpio_get_level(GPIO_BATT_ID);
-
- return &batt_profile[batt_id];
-}
-
-int board_cut_off_battery(void)
-{
- return rt946x_cutoff_battery();
-}
-
-enum battery_disconnect_state battery_get_disconnect_state(void)
-{
- if (battery_is_present() == BP_YES)
- return BATTERY_NOT_DISCONNECTED;
- return BATTERY_DISCONNECTED;
-}
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- /* battery temp in 0.1 deg C */
- int bat_temp_c = curr->batt.temperature - 2731;
-
- /*
- * Keep track of battery temperature range:
- *
- * ZONE_0 ZONE_1 ZONE_2
- * -----+--------+--------+------------+----- Temperature (C)
- * t0 t1 t2 t3
- */
- enum {
- TEMP_ZONE_0, /* t0 < bat_temp_c <= t1 */
- TEMP_ZONE_1, /* t1 < bat_temp_c <= t2 */
- TEMP_ZONE_2, /* t2 < bat_temp_c <= t3 */
- TEMP_ZONE_COUNT
- } temp_zone;
-
- static struct {
- int temp_min; /* 0.1 deg C */
- int temp_max; /* 0.1 deg C */
- int desired_current; /* mA */
- int desired_voltage; /* mV */
- } temp_zones[BATTERY_COUNT][TEMP_ZONE_COUNT] = {
- [BATTERY_SIMPLO] = {
- {0, 150, 1772, 4376}, /* TEMP_ZONE_0 */
- {150, 450, 4000, 4376}, /* TEMP_ZONE_1 */
- {450, 600, 4000, 4100}, /* TEMP_ZONE_2 */
- },
- [BATTERY_AETECH] = {
- {0, 100, 900, 4200}, /* TEMP_ZONE_0 */
- {100, 200, 2700, 4350}, /* TEMP_ZONE_1 */
- /*
- * TODO(b:70287349): Limit the charging current to
- * 2A unless AE-Tech fix their battery pack.
- */
- {200, 450, 2000, 4350}, /* TEMP_ZONE_2 */
- }
- };
- BUILD_ASSERT(ARRAY_SIZE(temp_zones[0]) == TEMP_ZONE_COUNT);
- BUILD_ASSERT(ARRAY_SIZE(temp_zones) == BATTERY_COUNT);
-
- static int charge_phase = 1;
- static uint8_t quirk_batt_update;
-
- /*
- * This is a quirk for old Simplo battery to clamp
- * charging current to 3A.
- */
- if ((board_get_version() <= 4) && !quirk_batt_update) {
- temp_zones[BATTERY_SIMPLO][TEMP_ZONE_1].desired_current = 3000;
- temp_zones[BATTERY_SIMPLO][TEMP_ZONE_2].desired_current = 3000;
- quirk_batt_update = 1;
- }
-
- if (batt_id >= BATTERY_COUNT)
- batt_id = gpio_get_level(GPIO_BATT_ID);
-
- if ((curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE) ||
- (bat_temp_c < temp_zones[batt_id][0].temp_min) ||
- (bat_temp_c >= temp_zones[batt_id][TEMP_ZONE_COUNT - 1].temp_max))
- temp_zone = TEMP_OUT_OF_RANGE;
- else {
- for (temp_zone = 0; temp_zone < TEMP_ZONE_COUNT; temp_zone++) {
- if (bat_temp_c <
- temp_zones[batt_id][temp_zone].temp_max)
- break;
- }
- }
-
- if (curr->state != ST_CHARGE) {
- charge_phase = 1;
- return 0;
- }
-
- switch (temp_zone) {
- case TEMP_ZONE_0:
- case TEMP_ZONE_2:
- curr->requested_current =
- temp_zones[batt_id][temp_zone].desired_current;
- curr->requested_voltage =
- temp_zones[batt_id][temp_zone].desired_voltage;
- break;
- case TEMP_ZONE_1:
- /* No phase change for Simplo battery pack */
- if (batt_id == BATTERY_SIMPLO)
- charge_phase = 0;
- /*
- * If AE-Tech battery pack is used and the voltage reading
- * is bad, let's be conservative and assume change_phase == 1.
- */
- else if (curr->batt.flags & BATT_FLAG_BAD_VOLTAGE)
- charge_phase = 1;
- else {
- if (curr->batt.voltage <
- (CHARGE_PHASE_CHANGE_TRIP_VOLTAGE_MV -
- CHARGE_PHASE_CHANGE_HYSTERESIS_MV))
- charge_phase = 0;
- else if (curr->batt.voltage >
- CHARGE_PHASE_CHANGE_TRIP_VOLTAGE_MV)
- charge_phase = 1;
- }
-
- curr->requested_voltage =
- temp_zones[batt_id][temp_zone].desired_voltage;
-
- curr->requested_current = (charge_phase) ?
- CHARGE_PHASE_CHANGED_CURRENT_MA :
- temp_zones[batt_id][temp_zone].desired_current;
- break;
- case TEMP_OUT_OF_RANGE:
- curr->requested_current = curr->requested_voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- curr->state = ST_IDLE;
- break;
- }
-
- /*
- * When the charger says it's done charging, even if fuel gauge says
- * SOC < BATTERY_LEVEL_NEAR_FULL, we'll overwrite SOC with
- * BATTERY_LEVEL_NEAR_FULL. So we can ensure both Chrome OS UI
- * and battery LED indicate full charge.
- */
- if (rt946x_is_charge_done()) {
- curr->batt.state_of_charge = MAX(BATTERY_LEVEL_NEAR_FULL,
- curr->batt.state_of_charge);
- /*
- * This is a workaround for b:78792296. When AP is off and
- * charge termination is detected, we disable idle mode.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- disable_idle();
- else
- enable_idle();
- }
-
- return 0;
-}
-
-static void board_enable_idle(void)
-{
- enable_idle();
-}
-DECLARE_HOOK(HOOK_AC_CHANGE, board_enable_idle, HOOK_PRIO_DEFAULT);
-
-static void board_charge_termination(void)
-{
- static uint8_t te;
- /* Enable charge termination when we are sure battery is present. */
- if (!te && battery_is_present() == BP_YES) {
- if (!rt946x_enable_charge_termination(1))
- te = 1;
- }
-}
-DECLARE_HOOK(HOOK_BATTERY_SOC_CHANGE,
- board_charge_termination,
- HOOK_PRIO_DEFAULT);
-
-/* Customs options controllable by host command. */
-#define PARAM_FASTCHARGE (CS_PARAM_CUSTOM_PROFILE_MIN + 0)
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/scarlet/board.c b/board/scarlet/board.c
deleted file mode 100644
index f109d0ada3..0000000000
--- a/board/scarlet/board.c
+++ /dev/null
@@ -1,459 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/charger/rt946x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "temp_sensor.h"
-#include "temp_sensor_chip.h"
-#include "timer.h"
-#include "thermal.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-static void overtemp_interrupt(enum gpio_signal signal)
-{
- CPRINTS("AP wants shutdown");
- chipset_force_shutdown(CHIPSET_SHUTDOWN_THERMAL);
-}
-
-static void warm_reset_request_interrupt(enum gpio_signal signal)
-{
- CPRINTS("AP wants warm reset");
- chipset_reset(CHIPSET_RESET_AP_REQ);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"charger", I2C_PORT_CHARGER, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* Charger Chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = RT946X_ADDR_FLAGS,
- .drv = &rt946x_drv,
- },
-};
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_PP1250_S3_PG, POWER_SIGNAL_ACTIVE_HIGH, "PP1250_S3_PWR_GOOD"},
- {GPIO_PP900_S0_PG, POWER_SIGNAL_ACTIVE_HIGH, "PP900_S0_PWR_GOOD"},
- {GPIO_AP_CORE_PG, POWER_SIGNAL_ACTIVE_HIGH, "AP_PWR_GOOD"},
- {GPIO_AP_EC_S3_S0_L, POWER_SIGNAL_ACTIVE_LOW, "SUSPEND_DEASSERTED"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-#ifdef CONFIG_TEMP_SENSOR_TMP432
-/* Temperature sensors data; must be in same order as enum temp_sensor_id. */
-const struct temp_sensor_t temp_sensors[] = {
- {"TMP432_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_LOCAL, 4},
- {"TMP432_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE1, 4},
- {"TMP432_Sensor_2", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
- TMP432_IDX_REMOTE2, 4},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * Thermal limits for each temp sensor. All temps are in degrees K. Must be in
- * same order as enum temp_sensor_id. To always ignore any temp, use 0.
- */
-struct ec_thermal_config thermal_params[] = {
- {{0, 0, 0}, 0, 0}, /* TMP432_Internal */
- {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_1 */
- {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_2 */
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-#endif
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 1, GPIO_SPI_ACCEL_CS_L },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
-};
-
-void board_reset_pd_mcu(void)
-{
-}
-
-enum critical_shutdown board_critical_shutdown_check(
- struct charge_state_data *curr)
-{
- if ((curr->batt.flags & BATT_FLAG_BAD_VOLTAGE) ||
- (curr->batt.voltage <= BAT_LOW_VOLTAGE_THRESH))
- return CRITICAL_SHUTDOWN_CUTOFF;
- else
- return CRITICAL_SHUTDOWN_IGNORE;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_L))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- switch (charge_port) {
- case 0:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int extpower_is_present(void)
-{
- /*
- * The charger will indicate VBUS presence if we're sourcing 5V,
- * so exclude such ports.
- */
- if (board_vbus_source_enabled(0))
- return 0;
- else
- return tcpm_check_vbus_level(0, VBUS_PRESENT);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- if (port)
- panic("Invalid charge port\n");
-
- return rt946x_is_vbus_ready();
-}
-
-static void board_spi_enable(void)
-{
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- spi_enable(&spi_devices[0], 0);
-
- /* Disable clocks to SPI2 module */
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-
-static void board_init(void)
-{
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_L);
-
- /* Enable charger interrupts */
- gpio_enable_interrupt(GPIO_CHARGER_INT_L);
-
- /* Enable reboot / shutdown control inputs from AP */
- gpio_enable_interrupt(GPIO_WARM_RESET_REQ);
- gpio_enable_interrupt(GPIO_AP_OVERTEMP);
-
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_L);
-
- /* Enable interrupt for the camera vsync. */
- gpio_enable_interrupt(GPIO_SYNC_INT);
-
- /* Set SPI2 pins to high speed */
- /* pins D0/D1/D3/D4 */
- STM32_GPIO_OSPEEDR(GPIO_D) |= 0x000003cf;
-
- /* Sensor Init */
- if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON))
- board_spi_enable();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_config_pre_init(void)
-{
- STM32_RCC_AHBENR |= STM32_RCC_HB_DMA1;
- /*
- * Remap USART1 and SPI2 DMA:
- *
- * Ch4: USART1_TX / Ch5: USART1_RX (1000)
- * Ch6: SPI2_RX / Ch7: SPI2_TX (0011)
- */
- STM32_DMA_CSELR(STM32_DMAC_CH4) = (8 << 12) | (8 << 16) |
- (3 << 20) | (3 << 24);
-}
-
-enum scarlet_board_version {
- BOARD_VERSION_UNKNOWN = -1,
- BOARD_VERSION_REV0 = 0,
- BOARD_VERSION_REV1 = 1,
- BOARD_VERSION_REV2 = 2,
- BOARD_VERSION_REV3 = 3,
- BOARD_VERSION_REV4 = 4,
- BOARD_VERSION_REV5 = 5,
- BOARD_VERSION_REV6 = 6,
- BOARD_VERSION_REV7 = 7,
- BOARD_VERSION_REV8 = 8,
- BOARD_VERSION_REV9 = 9,
- BOARD_VERSION_REV10 = 10,
- BOARD_VERSION_REV11 = 11,
- BOARD_VERSION_REV12 = 12,
- BOARD_VERSION_REV13 = 13,
- BOARD_VERSION_REV14 = 14,
- BOARD_VERSION_REV15 = 15,
- BOARD_VERSION_COUNT,
-};
-
-struct {
- enum scarlet_board_version version;
- int expect_mv;
-} const scarlet_boards[] = {
- { BOARD_VERSION_REV0, 109 }, /* 51.1K , 2.2K(gru 3.3K) ohm */
- { BOARD_VERSION_REV1, 211 }, /* 51.1k , 6.8K ohm */
- { BOARD_VERSION_REV2, 319 }, /* 51.1K , 11K ohm */
- { BOARD_VERSION_REV3, 427 }, /* 56K , 17.4K ohm */
- { BOARD_VERSION_REV4, 542 }, /* 51.1K , 22K ohm */
- { BOARD_VERSION_REV5, 666 }, /* 51.1K , 30K ohm */
- { BOARD_VERSION_REV6, 781 }, /* 51.1K , 39.2K ohm */
- { BOARD_VERSION_REV7, 900 }, /* 56K , 56K ohm */
- { BOARD_VERSION_REV8, 1023 }, /* 47K , 61.9K ohm */
- { BOARD_VERSION_REV9, 1137 }, /* 47K , 80.6K ohm */
- { BOARD_VERSION_REV10, 1240 }, /* 56K , 124K ohm */
- { BOARD_VERSION_REV11, 1343 }, /* 51.1K , 150K ohm */
- { BOARD_VERSION_REV12, 1457 }, /* 47K , 200K ohm */
- { BOARD_VERSION_REV13, 1576 }, /* 47K , 330K ohm */
- { BOARD_VERSION_REV14, 1684 }, /* 47K , 680K ohm */
- { BOARD_VERSION_REV15, 1800 }, /* 56K , NC */
-};
-BUILD_ASSERT(ARRAY_SIZE(scarlet_boards) == BOARD_VERSION_COUNT);
-
-#define THRESHOLD_MV 56 /* Simply assume 1800/16/2 */
-
-int board_get_version(void)
-{
- static int version = BOARD_VERSION_UNKNOWN;
- int mv;
- int i;
-
- if (version != BOARD_VERSION_UNKNOWN)
- return version;
-
- gpio_set_level(GPIO_EC_BOARD_ID_EN_L, 0);
- /* Wait to allow cap charge */
- msleep(10);
- mv = adc_read_channel(ADC_BOARD_ID);
-
- if (mv == ADC_READ_ERROR)
- mv = adc_read_channel(ADC_BOARD_ID);
-
- gpio_set_level(GPIO_EC_BOARD_ID_EN_L, 1);
-
- for (i = 0; i < BOARD_VERSION_COUNT; ++i) {
- if (mv < scarlet_boards[i].expect_mv + THRESHOLD_MV) {
- version = scarlet_boards[i].version;
- break;
- }
- }
-
- /*
- * Disable ADC module after we detect the board version,
- * since this is the only thing ADC module needs to do
- * for this board.
- */
- if (version != BOARD_VERSION_UNKNOWN)
- adc_disable();
-
- return version;
-}
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_base_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* Enable accel in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [VSYNC] = {
- .name = "Camera vsync",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-int board_allow_i2c_passthru(int port)
-{
- return (port == I2C_PORT_VIRTUAL_BATTERY);
-}
diff --git a/board/scarlet/board.h b/board/scarlet/board.h
deleted file mode 100644
index 2880968ddc..0000000000
--- a/board/scarlet/board.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Configuration for Scarlet */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Free up flash space */
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#define CONFIG_USB_PD_DEBUG_LEVEL 0
-
-/* Optional modules */
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-#define CONFIG_CHIPSET_RK3399
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_RTC
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOSTCMD_RTC
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_I2C_VIRTUAL_BATTERY
-#define CONFIG_I2C_PASSTHRU_RESTRICTED
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-#define CONFIG_LOW_POWER_IDLE_LIMITED
-#define CONFIG_POWER_COMMON
-#define CONFIG_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_STM_HWTIMER32
-/* Source RTCCLK from external 32.768kHz source on PC15/OSC32_IN. */
-#define CONFIG_STM32_CLOCK_LSE
-#define CONFIG_SWITCH
-#define CONFIG_WATCHDOG_HELP
-
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands for testing */
-
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-#define CONFIG_UART_RX_DMA
-
-/* Enable a different power-on sequence than the one on gru */
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-/* Optional features */
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-#define CONFIG_CHARGER_ILIM_PIN_DISABLED
-#define CONFIG_FORCE_CONSOLE_RESUME
-#define CONFIG_HOST_COMMAND_STATUS
-
-/* Required for FAFT */
-#define CONFIG_CMD_BUTTON
-
-/* By default, set hcdebug to off */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_LTO
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_SOFTWARE_PANIC
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VOLUME_BUTTONS
-
-#define CONFIG_CHARGER
-#define CONFIG_CHARGER_RT9467
-#define CONFIG_CHARGER_INPUT_CURRENT 512
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT 2
-#define CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW 15000
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_OTG
-#define CONFIG_USB_CHARGER
-#define CONFIG_USB_MUX_VIRTUAL
-
-/* Increase tx buffer size, as we'd like to stream EC log to AP. */
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Motion Sensors */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-/* Camera VSYNC */
-#define CONFIG_SYNC
-#define CONFIG_SYNC_COMMAND
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-
-/* To be able to indicate the device is in tablet mode. */
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs. */
-#define CONFIG_ACCEL_FIFO_THRES 10
-
-/* USB PD config */
-#define CONFIG_CHARGE_MANAGER
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_ALT_MODE_DFP
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_LOGGING
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_TCPM_TCPCI
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_5V_CHARGER_CTRL
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_VCONN
-#define CONFIG_USBC_VCONN_SWAP
-#define CONFIG_USB_PD_COMM_LOCKED
-
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_RETRY_NACK
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_MAX17055
-
-/* Battery parameters for max17055 ModelGauge m5 algorithm. */
-#define BATTERY_MAX17055_RSENSE 5 /* m-ohm */
-#define BATTERY_DESIRED_CHARGING_CURRENT 4000 /* mA */
-
-#define CONFIG_THROTTLE_AP_ON_BAT_DISCHG_CURRENT
-#define BAT_MAX_DISCHG_CURRENT 5000 /* mA */
-
-#define CONFIG_THROTTLE_AP_ON_BAT_VOLTAGE
-#define BAT_LOW_VOLTAGE_THRESH 3200 /* mV */
-
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW ((PD_MAX_VOLTAGE_MV * PD_MAX_CURRENT_MA) / 1000)
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 12850
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 50000 /* us */
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_WATCHDOG 7
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Optional for testing */
-#undef CONFIG_PECI
-#undef CONFIG_PSTORE
-
-/* Modules we want to exclude */
-#undef CONFIG_CMD_BATTFAKE
-#undef CONFIG_CMD_FLASH
-#undef CONFIG_CMD_HASH
-#undef CONFIG_CMD_I2C_SCAN
-#undef CONFIG_CMD_MD
-#undef CONFIG_CMD_POWERINDEBUG
-#undef CONFIG_CMD_TIMERINFO
-
-#define CONFIG_TASK_PROFILING
-
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_BATTERY 0
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_TCPC0 1
-
-/* Route sbs host requests to virtual battery driver */
-#define VIRTUAL_BATTERY_ADDR_FLAGS 0x0B
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-/* Define the host events which are allowed to wakeup AP in S3. */
-#define CONFIG_MKBP_HOST_EVENT_WAKEUP_MASK \
- (EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON) |\
- EC_HOST_EVENT_MASK(EC_HOST_EVENT_RTC))
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- PP1250_S3_PWR_GOOD = 0,
- PP900_S0_PWR_GOOD,
- AP_PWR_GOOD,
- SUSPEND_DEASSERTED,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- VSYNC,
- SENSOR_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/scarlet/build.mk b/board/scarlet/build.mk
deleted file mode 100644
index f2966fea6a..0000000000
--- a/board/scarlet/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-
-board-y=battery.o board.o usb_pd_policy.o led.o
diff --git a/board/scarlet/ec.tasklist b/board/scarlet/ec.tasklist
deleted file mode 100644
index 1548272184..0000000000
--- a/board/scarlet/ec.tasklist
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, LARGER_TASK_STACK_SIZE)
-
diff --git a/board/scarlet/gpio.inc b/board/scarlet/gpio.inc
deleted file mode 100644
index 9c45295a7f..0000000000
--- a/board/scarlet/gpio.inc
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH,
- spi_event)
-GPIO_INT(USB_C0_PD_INT_L, PIN(C, 13), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(VOLUME_UP_L, PIN(D, 10), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(E, 11), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt)
-GPIO_INT(PP1250_S3_PG, PIN(D, 8), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_signal_interrupt)
-GPIO_INT(PP900_S0_PG, PIN(D, 9), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_signal_interrupt)
-GPIO_INT(AP_EC_S3_S0_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(E, 1), GPIO_INT_RISING | GPIO_PULL_DOWN,
- warm_reset_request_interrupt)
-GPIO_INT(AP_OVERTEMP, PIN(E, 4), GPIO_INT_RISING | GPIO_PULL_DOWN,
- overtemp_interrupt)
-GPIO_INT(ACCEL_INT_L, PIN(D, 14), GPIO_INT_FALLING | GPIO_SEL_1P8V,
- bmi160_interrupt)
-GPIO_INT(SYNC_INT, PIN(A, 12), GPIO_INT_RISING | GPIO_PULL_DOWN,
- sync_interrupt)
-GPIO_INT(CHARGER_INT_L, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP,
- rt946x_interrupt)
-
-/* Voltage rails control pins */
-GPIO(PP1800_S0_EN, PIN(D, 11), GPIO_OUT_LOW)
-GPIO(AP_CORE_EN, PIN(C, 1), GPIO_OUT_LOW)
-GPIO(PP3300_S0_EN, PIN(E, 12), GPIO_OUT_LOW)
-GPIO(PP1800_USB_EN, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(PP900_S0_EN, PIN(E, 8), GPIO_OUT_LOW)
-GPIO(PP1250_S3_EN, PIN(D, 13), GPIO_OUT_LOW)
-GPIO(PP1800_S3_EN, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(PP3300_S3_EN, PIN(E, 2), GPIO_OUT_LOW)
-GPIO(PP900_S3_EN, PIN(E, 10), GPIO_OUT_LOW)
-
-GPIO(PP3300_REDUCE_EFF_L, PIN(D, 12), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C0_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C0_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C1_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 11), GPIO_INPUT)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-
-/* SPI sensors */
-GPIO(SPI_ACCEL_CS_L, PIN(D, 0), GPIO_OUT_HIGH)
-
-/* Scarlet LEDs */
-GPIO(BAT_LED_GREEN, PIN(E, 9), GPIO_ODR_HIGH)
-GPIO(BAT_LED_RED, PIN(E, 13), GPIO_ODR_HIGH)
-
-/* Other input pins */
-GPIO(WP_L, PIN(E, 5), GPIO_INPUT)
-/* TODO(philipchen): Add an interrupt handler once CCD is fully developed. */
-GPIO(CCD_MODE_ODL, PIN(C, 5), GPIO_INPUT | GPIO_PULL_UP)
-/* Non-INT power signal pin */
-GPIO(AP_CORE_PG, PIN(D, 7), GPIO_INPUT | GPIO_PULL_UP)
-/* Battery ID strap pin */
-GPIO(BATT_ID, PIN(C, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-
-
-/* Other output pins */
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH)
-GPIO(SYS_RST_L, PIN(C, 8), GPIO_ODR_LOW)
-GPIO(EC_INT_L, PIN(E, 3), GPIO_ODR_HIGH)
-GPIO(EC_BOARD_ID_EN_L, PIN(F, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_DISCHARGE, PIN(A, 11), GPIO_OUT_LOW)
-GPIO(PCA9468_EN, PIN(E, 15), GPIO_OUT_LOW)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, 0)
-/* I2C MASTER: PB10/11 */
-ALTERNATE(PIN_MASK(B, 0x0c00), 1, MODULE_I2C, 0)
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-/* SPI MASTER: PD1/3/4 */
-ALTERNATE(PIN_MASK(D, 0x001a), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/scarlet/led.c b/board/scarlet/led.c
deleted file mode 100644
index d4c758cdcc..0000000000
--- a/board/scarlet/led.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright 2017 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.
- *
- * Battery LED control for Scarlet board.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "lid_switch.h"
-#include "pwm.h"
-#include "util.h"
-
-/* LEDs on Scarlet are active low. */
-#define BAT_LED_ON 0
-#define BAT_LED_OFF 1
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_AMBER,
- LED_GREEN,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static int bat_led_set_color(enum led_color color)
-{
- switch (color) {
- case LED_OFF:
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_OFF);
- break;
- case LED_RED:
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_ON);
- break;
- case LED_AMBER:
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_ON);
- break;
- case LED_GREEN:
- gpio_set_level(GPIO_BAT_LED_GREEN, BAT_LED_ON);
- gpio_set_level(GPIO_BAT_LED_RED, BAT_LED_OFF);
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
- return EC_SUCCESS;
-}
-
-static void scarlet_led_set_battery(void)
-{
- static int battery_second;
- uint32_t chflags = charge_get_flags();
-
- battery_second++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- bat_led_set_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (charge_get_percent() < 3)
- bat_led_set_color((battery_second & 1)
- ? LED_OFF : LED_AMBER);
- else if (charge_get_percent() < 10)
- bat_led_set_color((battery_second & 3)
- ? LED_OFF : LED_AMBER);
- else if (charge_get_percent() >= BATTERY_LEVEL_NEAR_FULL &&
- (chflags & CHARGE_FLAG_EXTERNAL_POWER))
- bat_led_set_color(LED_GREEN);
- else
- bat_led_set_color(LED_OFF);
- break;
- case PWR_STATE_ERROR:
- bat_led_set_color(LED_RED);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- bat_led_set_color(LED_GREEN);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE. */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- bat_led_set_color(
- (battery_second & 0x2) ? LED_GREEN : LED_AMBER);
- else
- bat_led_set_color(LED_GREEN);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- gpio_set_level(GPIO_BAT_LED_RED,
- (brightness[EC_LED_COLOR_RED] != 0) ?
- BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_BAT_LED_GREEN,
- (brightness[EC_LED_COLOR_GREEN] != 0) ?
- BAT_LED_ON : BAT_LED_OFF);
- return EC_SUCCESS;
- }
- return EC_ERROR_UNKNOWN;
-}
-
-/* Called by hook task every 1 sec */
-static void led_second(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- scarlet_led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- return;
- }
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
- bat_led_set_color(state ? LED_AMBER : LED_OFF);
-}
diff --git a/board/scarlet/usb_pd_policy.c b/board/scarlet/usb_pd_policy.c
deleted file mode 100644
index cba4540ecd..0000000000
--- a/board/scarlet/usb_pd_policy.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "atomic.h"
-#include "charger.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/rt946x.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-static uint8_t vbus_en;
-
-int board_vbus_source_enabled(int port)
-{
- return vbus_en;
-}
-
-int pd_set_power_supply_ready(int port)
-{
-
- pd_set_vbus_discharge(port, 0);
- /* Provide VBUS */
- vbus_en = 1;
- charger_enable_otg_power(CHARGER_SOLO, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- prev_en = vbus_en;
- /* Disable VBUS */
- vbus_en = 0;
- charger_enable_otg_power(CHARGER_SOLO, 0);
- /* Enable discharge if we were previously sourcing 5V */
- if (prev_en)
- pd_set_vbus_discharge(port, 1);
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_check_vconn_swap(int port)
-{
- /*
- * VCONN is provided directly by the battery (PPVAR_SYS)
- * but use the same rules as power swap.
- */
- return pd_get_dual_role(port) == PD_DRP_TOGGLE_ON ? 1 : 0;
-}
diff --git a/board/scarlet/vif_override.xml b/board/scarlet/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/scarlet/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/scout/board.c b/board/scout/board.c
deleted file mode 100644
index 7c87f97ec8..0000000000
--- a/board/scout/board.c
+++ /dev/null
@@ -1,556 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Puff board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "chipset.h"
-#include "common.h"
-#include "core/cortex-m/cpu.h"
-#include "cros_board_info.h"
-#include "driver/ina3221.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/cometlake-discrete.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_common.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-static void power_monitor(void);
-DECLARE_DEFERRED(power_monitor);
-
-static uint8_t usbc_overcurrent;
-static int32_t base_5v_power;
-
-/*
- * Power usage for each port as measured or estimated.
- * Units are milliwatts (5v x ma current)
- */
-#define PWR_BASE_LOAD (5*1335)
-#define PWR_FRONT_HIGH (5*1603)
-#define PWR_FRONT_LOW (5*963)
-#define PWR_REAR (5*1075)
-#define PWR_HDMI (5*562)
-#define PWR_C_HIGH (5*3740)
-#define PWR_C_LOW (5*2090)
-#define PWR_MAX (5*10000)
-
-/*
- * Update the 5V power usage, assuming no throttling,
- * and invoke the power monitoring.
- */
-static void update_5v_usage(void)
-{
- int front_ports = 0;
- /*
- * Recalculate the 5V load, assuming no throttling.
- */
- base_5v_power = PWR_BASE_LOAD;
- if (!gpio_get_level(GPIO_USB_A0_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- if (!gpio_get_level(GPIO_USB_A1_OC_ODL)) {
- front_ports++;
- base_5v_power += PWR_FRONT_LOW;
- }
- /*
- * Only 1 front port can run higher power at a time.
- */
- if (front_ports > 0)
- base_5v_power += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- if (!gpio_get_level(GPIO_USB_A2_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_USB_A3_OC_ODL))
- base_5v_power += PWR_REAR;
- if (!gpio_get_level(GPIO_HDMI_CONN0_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (!gpio_get_level(GPIO_HDMI_CONN1_OC_ODL))
- base_5v_power += PWR_HDMI;
- if (usbc_overcurrent)
- base_5v_power += PWR_C_HIGH;
- /*
- * Invoke the power handler immediately.
- */
- hook_call_deferred(&power_monitor_data, 0);
-}
-DECLARE_DEFERRED(update_5v_usage);
-/*
- * Start power monitoring after ADCs have been initialised.
- */
-DECLARE_HOOK(HOOK_INIT, update_5v_usage, HOOK_PRIO_INIT_ADC + 1);
-
-static void port_ocp_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&update_5v_usage_data, 0);
-}
-
-/******************************************************************************/
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = { .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
- [PWM_CH_LED_RED] = { .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
- [PWM_CH_LED_WHITE] = { .channel = 2,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 2000 },
-};
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {"ina", I2C_PORT_INA, 400, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"ppc0", I2C_PORT_PPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"scaler", I2C_PORT_SCALER, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"power", I2C_PORT_POWER, 400, GPIO_I2C5_SCL, GPIO_I2C5_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct adc_t adc_channels[] = {
- [ADC_SNS_PP3300] = {
- /*
- * 4700/5631 voltage divider: can take the value out of range
- * for 32-bit signed integers, so truncate to 470/563 yielding
- * <0.1% error and a maximum intermediate value of 1623457792,
- * which comfortably fits in int32.
- */
- .name = "SNS_PP3300",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT * 563,
- .factor_div = (ADC_READ_MAX + 1) * 470,
- },
- [ADC_SNS_PP1050] = {
- .name = "SNS_PP1050",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_VBUS] = { /* 5/39 voltage divider */
- .name = "VBUS",
- .input_ch = NPCX_ADC_CH4,
- .factor_mul = ADC_MAX_VOLT * 39,
- .factor_div = (ADC_READ_MAX + 1) * 5,
- },
- [ADC_PPVAR_IMON] = { /* 500 mV/A */
- .name = "PPVAR_IMON",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT * 2, /* Milliamps */
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR_1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR_2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CORE] = {
- .name = "Core",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1,
- },
- [TEMP_SENSOR_WIFI] = {
- .name = "Wifi",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* Wake up pins */
-const enum gpio_signal hibernate_wake_pins[] = {
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2500,
- .rpm_start = 2500,
- .rpm_max = 5300,
-};
-
-const struct fan_t fans[] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_2, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* Thermal control; drive fan based on temperature sensors. */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(85),
- [EC_TEMP_THRESH_HALT] = C_TO_K(90),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(89),
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(78),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_CORE] = thermal_a,
- [TEMP_SENSOR_WIFI] = thermal_a,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/* Power sensors */
-const struct ina3221_t ina3221[] = {
- { I2C_PORT_INA, 0x40, { "PP3300_G", "PP5000_A", "PP3300_WLAN" } },
- { I2C_PORT_INA, 0x42, { "PP3300_A", "PP3300_SSD", "PP3300_LAN" } },
- { I2C_PORT_INA, 0x43, { NULL, "PP1200_U", "PP2500_DRAM" } }
-};
-const unsigned int ina3221_count = ARRAY_SIZE(ina3221);
-
-static uint16_t board_version;
-static uint32_t sku_id;
-static uint32_t fw_config;
-
-static void cbi_init(void)
-{
- /*
- * Load board info from CBI to control per-device configuration.
- *
- * If unset it's safe to treat the board as a proto, just C10 gating
- * won't be enabled.
- */
- uint32_t val;
-
- if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
- board_version = val;
- if (cbi_get_sku_id(&val) == EC_SUCCESS)
- sku_id = val;
- if (cbi_get_fw_config(&val) == EC_SUCCESS)
- fw_config = val;
- CPRINTS("Board Version: %d, SKU ID: 0x%08x, F/W config: 0x%08x",
- board_version, sku_id, fw_config);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_init(void)
-{
- uint8_t *memmap_batt_flags;
-
- /* Override some GPIO interrupt priorities.
- *
- * These interrupts are timing-critical for AP power sequencing, so we
- * increase their NVIC priority from the default of 3. This affects
- * whole MIWU groups of 8 GPIOs since they share an IRQ.
- *
- * Latency at the default priority level can be hundreds of
- * microseconds while other equal-priority IRQs are serviced, so GPIOs
- * requiring faster response must be higher priority.
- */
- /* CPU_C10_GATE_L on GPIO6.7: must be ~instant for ~60us response. */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTH_1, 1);
- /*
- * slp_s3_interrupt (GPIOA.5 on WKINTC_0) must respond within 200us
- * (tPLT18); less critical than the C10 gate.
- */
- cpu_set_interrupt_priority(NPCX_IRQ_WKINTC_0, 2);
-
- /* Always claim AC is online, because we don't have a battery. */
- memmap_batt_flags = host_get_memmap(EC_MEMMAP_BATT_FLAG);
- *memmap_batt_flags |= EC_BATT_FLAG_AC_PRESENT;
- /*
- * For board version < 2, the directly connected recovery
- * button is not available.
- */
- if (board_version < 2)
- button_disable_gpio(GPIO_EC_RECOVERY_BTN_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* USB-A port control */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USB_VBUS,
-};
-
-int64_t get_time_dsw_pwrok(void)
-{
- /* DSW_PWROK is turned on before EC was powered. */
- return -20 * MSEC;
-}
-
-int extpower_is_present(void)
-{
- /* genesis: If the EC is running, then there is external power */
- return 1;
-}
-
-int board_is_c10_gate_enabled(void)
-{
- /*
- * Puff proto drives EN_PP5000_HDMI from EN_S0_RAILS so we cannot gate
- * core rails while in S0 because HDMI should remain powered.
- * EN_PP5000_HDMI is a separate EC output on all other boards.
- */
- return board_version != 0;
-}
-
-void board_enable_s0_rails(int enable)
-{
- /* This output isn't connected on protos; safe to set anyway. */
- gpio_set_level(GPIO_EN_PP5000_HDMI, enable);
-
- /*
- * Toggle scaler power and its downstream USB devices.
- */
- gpio_set_level(GPIO_EC_SCALER_EN, enable);
- gpio_set_level(GPIO_PWR_CTRL, enable);
- gpio_set_level(GPIO_EC_MX8M_ONOFF, enable);
- gpio_set_level(GPIO_EC_CAM_V3P3_EN, enable);
-
- gpio_set_level(GPIO_PP3300_TPU_A_EN, enable);
-}
-
-int ec_config_get_usb4_present(void)
-{
- return !(fw_config & EC_CFG_NO_USB4_MASK);
-}
-
-unsigned int ec_config_get_thermal_solution(void)
-{
- return (fw_config & EC_CFG_THERMAL_MASK) >> EC_CFG_THERMAL_L;
-}
-
-static void setup_thermal(void)
-{
- unsigned int table = ec_config_get_thermal_solution();
- /* Configure Fan */
- switch (table) {
- /* Default and table0 use single fan */
- case 0:
- default:
- thermal_params[TEMP_SENSOR_CORE] = thermal_a;
- thermal_params[TEMP_SENSOR_WIFI] = thermal_a;
- break;
- /* Table1 is fanless */
- case 1:
- fan_set_count(0);
- thermal_params[TEMP_SENSOR_CORE] = thermal_b;
- break;
- }
-}
-/* fan_set_count should be called before HOOK_INIT/HOOK_PRIO_DEFAULT */
-DECLARE_HOOK(HOOK_INIT, setup_thermal, HOOK_PRIO_DEFAULT - 1);
-
-/*
- * Power monitoring and management.
- *
- * The overall goal is to gracefully manage the power demand so that
- * the power budgets are met without letting the system fall into
- * power deficit (perhaps causing a brownout).
- *
- * There are 2 power budgets that need to be managed:
- * - overall system power as measured on the main power supply rail.
- * - 5V power delivered to the USB and HDMI ports.
- *
- * The actual system power demand is calculated from the VBUS voltage and
- * the input current (read from a shunt), averaged over 5 readings.
- * The power budget limit is from the charge manager.
- *
- * The 5V power cannot be read directly. Instead, we rely on overcurrent
- * inputs from the USB and HDMI ports to indicate that the port is in use
- * (and drawing maximum power).
- *
- * There are 3 throttles that can be applied (in priority order):
- *
- * - Type A BC1.2 front port restriction (3W)
- * - Type C PD (throttle to 1.5A if sourcing)
- * - Turn on PROCHOT, which immediately throttles the CPU.
- *
- * The first 2 throttles affect both the system power and the 5V rails.
- * The third is a last resort to force an immediate CPU throttle to
- * reduce the overall power use.
- *
- * The strategy is to determine what the state of the throttles should be,
- * and to then turn throttles off or on as needed to match this.
- *
- * This function runs on demand, or every 2 ms when the CPU is up,
- * and continually monitors the power usage, applying the
- * throttles when necessary.
- *
- * All measurements are in milliwatts.
- */
-#define THROT_TYPE_A BIT(0)
-#define THROT_TYPE_C BIT(1)
-#define THROT_PROCHOT BIT(2)
-
-/*
- * Power gain if front USB A ports are limited.
- */
-#define POWER_GAIN_TYPE_A 3200
-/*
- * Power gain if Type C port is limited.
- */
-#define POWER_GAIN_TYPE_C 8800
-/*
- * Power is averaged over 10 ms, with a reading every 2 ms.
- */
-#define POWER_DELAY_MS 2
-#define POWER_READINGS (10/POWER_DELAY_MS)
-
-static void power_monitor(void)
-{
- static uint32_t current_state;
- int32_t delay;
- uint32_t new_state = 0, diff;
- int32_t headroom_5v = PWR_MAX - base_5v_power;
-
- /*
- * If CPU is off or suspended, no need to throttle
- * or restrict power.
- */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
- CHIPSET_STATE_SUSPEND)) {
- /*
- * Slow down monitoring, assume no throttling required.
- */
- delay = 20 * MSEC;
- } else {
- delay = POWER_DELAY_MS * MSEC;
- }
- /*
- * Check the 5v power usage and if necessary,
- * adjust the throttles in priority order.
- *
- * Either throttle may have already been activated by
- * the overall power control.
- *
- * We rely on the overcurrent detection to inform us
- * if the port is in use.
- *
- * - If type C not already throttled:
- * * If not overcurrent, prefer to limit type C [1].
- * * If in overcurrentuse:
- * - limit type A first [2]
- * - If necessary, limit type C [3].
- * - If type A not throttled, if necessary limit it [2].
- */
- if (headroom_5v < 0) {
- /*
- * Check whether type C is not throttled,
- * and is not overcurrent.
- */
- if (!((new_state & THROT_TYPE_C) || usbc_overcurrent)) {
- /*
- * [1] Type C not in overcurrent, throttle it.
- */
- headroom_5v += PWR_C_HIGH - PWR_C_LOW;
- new_state |= THROT_TYPE_C;
- }
- /*
- * [2] If type A not already throttled, and power still
- * needed, limit type A.
- */
- if (!(new_state & THROT_TYPE_A) && headroom_5v < 0) {
- headroom_5v += PWR_FRONT_HIGH - PWR_FRONT_LOW;
- new_state |= THROT_TYPE_A;
- }
- /*
- * [3] If still under-budget, limit type C.
- * No need to check if it is already throttled or not.
- */
- if (headroom_5v < 0)
- new_state |= THROT_TYPE_C;
- }
- /*
- * Turn the throttles on or off if they have changed.
- */
- diff = new_state ^ current_state;
- current_state = new_state;
- if (diff & THROT_PROCHOT) {
- int prochot = (new_state & THROT_PROCHOT) ? 0 : 1;
-
- gpio_set_level(GPIO_EC_PROCHOT_ODL, prochot);
- }
- if (diff & THROT_TYPE_A) {
- int typea_bc = (new_state & THROT_TYPE_A) ? 1 : 0;
-
- gpio_set_level(GPIO_USB_A_LOW_PWR_OD, typea_bc);
- }
- hook_call_deferred(&power_monitor_data, delay);
-}
diff --git a/board/scout/board.h b/board/scout/board.h
deleted file mode 100644
index 2b398119c2..0000000000
--- a/board/scout/board.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Puff board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* NPCX7 config */
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-#define NPCX_UART_MODULE2 1 /* GPIO64/65 are used as UART pins. */
-
-/* Internal SPI flash on NPCX796FC is 512 kB */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
-#define CONFIG_SPI_FLASH_REGS
-#define CONFIG_SPI_FLASH_W25Q80 /* Internal SPI flash type. */
-
-/* EC Defines */
-#define CONFIG_ADC
-#define CONFIG_BOARD_HAS_RTC_RESET
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_DEDICATED_RECOVERY_BUTTON
-#define CONFIG_DEDICATED_RECOVERY_BUTTON_2
-#define CONFIG_BUTTONS_RUNTIME_CONFIG
-#define CONFIG_BOARD_RESET_AFTER_POWER_ON
-/* TODO: (b/143496253) re-enable CEC */
-/* #define CONFIG_CEC */
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_KEYBOARD_BOOT_KEYS
-#define CONFIG_MKBP_INPUT_DEVICES
-#define CONFIG_MKBP_USE_HOST_EVENT
-#undef CONFIG_KEYBOARD_RUNTIME_KEYS
-#undef CONFIG_HIBERNATE
-#define CONFIG_HOSTCMD_ESPI
-#define CONFIG_LED_COMMON
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LTO
-#define CONFIG_PWM
-#define CONFIG_VBOOT_EFS2
-#define CONFIG_VBOOT_HASH
-#define CONFIG_VSTORE
-#define CONFIG_VSTORE_SLOT_COUNT 1
-#define CONFIG_SHA256
-
-/* EC Commands */
-#define CONFIG_CMD_BUTTON
-/* Include CLI command needed to support CCD testing. */
-#define CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_KEYBOARD
-#define CONFIG_HOSTCMD_PD_CONTROL
-#undef CONFIG_CMD_PWR_AVG
-#define CONFIG_CMD_PPC_DUMP
-#define CONFIG_CMD_TCPC_DUMP
-#ifdef SECTION_IS_RO
-/* Reduce RO size by removing less-relevant commands. */
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_CHARGEN
-#undef CONFIG_CMD_HCDEBUG
-#undef CONFIG_CMD_MMAPINFO
-#endif
-
-#undef CONFIG_CONSOLE_CMDHELP
-
-/* Don't generate host command debug by default */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Enable AP Reset command for TPM with old firmware version to detect it. */
-#define CONFIG_CMD_AP_RESET_LOG
-#define CONFIG_HOSTCMD_AP_RESET
-
-/* Chipset config */
-#define CONFIG_CHIPSET_COMETLAKE_DISCRETE
-/* check */
-#define CONFIG_CHIPSET_CAN_THROTTLE
-#define CONFIG_CHIPSET_RESET_HOOK
-#define CONFIG_CPU_PROCHOT_ACTIVE_LOW
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_POWER_BUTTON_IGNORE_LID
-#define CONFIG_POWER_BUTTON_X86
-/* Check: */
-#define CONFIG_POWER_BUTTON_INIT_IDLE
-#define CONFIG_POWER_COMMON
-#define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30
-#define CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
-#define CONFIG_POWER_PP5000_CONTROL
-#define CONFIG_POWER_S0IX
-#define CONFIG_POWER_SLEEP_FAILURE_DETECTION
-#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
-#define CONFIG_INA3221
-
-/* Fan and temp. */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 0
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_ROA_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-#define CONFIG_THROTTLE_AP
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 0
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_DUMB
-/* There are five ports, but power enable is ganged across all of them. */
-#define USB_PORT_COUNT 1
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_INA NPCX_I2C_PORT0_0
-#define I2C_PORT_PPC0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SCALER NPCX_I2C_PORT2_0
-#define I2C_PORT_TCPC0 NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define PP5000_PGOOD_POWER_SIGNAL_MASK POWER_SIGNAL_MASK(PP5000_A_PGOOD)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_SNS_PP3300, /* ADC2 */
- ADC_SNS_PP1050, /* ADC7 */
- ADC_VBUS, /* ADC4 */
- ADC_PPVAR_IMON, /* ADC9 */
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_LED_RED,
- PWM_CH_LED_WHITE,
- /* Number of PWM channels */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0,
- /* Number of FAN channels */
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CORE,
- TEMP_SENSOR_WIFI,
- TEMP_SENSOR_COUNT
-};
-
-
-/* Board specific handlers */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-void led_alert(int enable);
-void show_critical_error(void);
-
-/*
- * firmware config fields
- */
-/*
- * Barrel-jack power (4 bits).
- */
-#define EC_CFG_BJ_POWER_L 0
-#define EC_CFG_BJ_POWER_H 3
-#define EC_CFG_BJ_POWER_MASK GENMASK(EC_CFG_BJ_POWER_H, EC_CFG_BJ_POWER_L)
-/*
- * USB Connector 4 not present (1 bit).
- */
-#define EC_CFG_NO_USB4_L 4
-#define EC_CFG_NO_USB4_H 4
-#define EC_CFG_NO_USB4_MASK GENMASK(EC_CFG_NO_USB4_H, EC_CFG_NO_USB4_L)
-/*
- * Thermal solution config (3 bits).
- */
-#define EC_CFG_THERMAL_L 5
-#define EC_CFG_THERMAL_H 7
-#define EC_CFG_THERMAL_MASK GENMASK(EC_CFG_THERMAL_H, EC_CFG_THERMAL_L)
-
-int ec_config_get_usb4_present(void);
-unsigned int ec_config_get_thermal_solution(void);
-
-#endif /* !__ASSEMBLER__ */
-
-/* Pin renaming */
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_PP5000_A_PG_OD GPIO_PG_PP5000_A_OD
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_RECOVERY_L GPIO_EC_RECOVERY_BTN_ODL
-#define GPIO_RECOVERY_L_2 GPIO_H1_EC_RECOVERY_BTN_ODL
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_AC_PRESENT GPIO_BJ_ADP_PRESENT_L
-
-/*
- * There is no RSMRST input, so alias it to the output. This short-circuits
- * common_intel_x86_handle_rsmrst.
- */
-#define GPIO_RSMRST_L_PGOOD GPIO_PCH_RSMRST_L
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/scout/build.mk b/board/scout/build.mk
deleted file mode 100644
index cf964a2d15..0000000000
--- a/board/scout/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-
-board-y=board.o
-board-y+=led.o
diff --git a/board/scout/ec.tasklist b/board/scout/ec.tasklist
deleted file mode 100644
index 787ffbf479..0000000000
--- a/board/scout/ec.tasklist
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 2048) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/scout/gpio.inc b/board/scout/gpio.inc
deleted file mode 100644
index af8fbfb25b..0000000000
--- a/board/scout/gpio.inc
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Pin names follow the schematic, and are aliased to other names if necessary.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Latency on this interrupt is extremely critical, so it comes first to ensure
- * it gets placed first in gpio_wui_table so gpio_interrupt() needs to do
- * minimal scanning. */
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, c10_gate_interrupt)
-
-/* Wake Source interrupts */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_PP5000_A_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1800_A_OD, PIN(3, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VPRIM_CORE_A_OD, PIN(2, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1050_A_OD, PIN(2, 2), GPIO_INT_BOTH, power_signal_interrupt)
-/* EC output, but also interrupt so this can be polled as a power signal */
-GPIO_INT(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUTPUT | GPIO_INT_F_RISING | GPIO_INT_F_FALLING, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_PP2500_DRAM_U_OD, PIN(2, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_PP1200_U_OD, PIN(2, 1), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, slp_s3_interrupt)
-#endif
-GPIO_INT(PG_PP950_VCCIO_OD, PIN(1, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(IMVP8_VRRDY_OD, PIN(1, 6), GPIO_INT_BOTH, power_signal_interrupt)
-
-/*
- * Directly connected recovery button (not available on some boards).
- */
-GPIO_INT(EC_RECOVERY_BTN_ODL, PIN(F, 1), GPIO_INT_BOTH, button_interrupt)
-/*
- * Recovery button input from H1.
- */
-GPIO_INT(H1_EC_RECOVERY_BTN_ODL, PIN(2, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO(BJ_ADP_PRESENT_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP)
-
-/* Port power control interrupts */
-GPIO_INT(HDMI_CONN0_OC_ODL, PIN(0, 7), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(HDMI_CONN1_OC_ODL, PIN(0, 6), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A0_OC_ODL, PIN(E, 4), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A1_OC_ODL, PIN(A, 2), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A2_OC_ODL, PIN(F, 5), GPIO_INT_BOTH, port_ocp_interrupt)
-GPIO_INT(USB_A3_OC_ODL, PIN(0, 3), GPIO_INT_BOTH, port_ocp_interrupt)
-
-/* PCH/CPU signals */
-GPIO(EC_PCH_PWROK, PIN(0, 5), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_ODR_HIGH)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* i.MX8 soundbar signals */
-GPIO(BOOT_IND_EC, PIN(E, 2), GPIO_INPUT)
-
-/* TSUM scaler signals */
-GPIO(TSUM_WAKEUP_EC, PIN(B, 1), GPIO_INPUT)
-
-/* ALS signals */
-GPIO(EC_RGB_INT_L, PIN(9, 7), GPIO_INPUT)
-
-/* Power control outputs */
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_INA_H1_EC_ODL, PIN(5, 7), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_A, PIN(1, 5), GPIO_OUT_LOW)
-GPIO(VCCST_PG_OD, PIN(1, 4), GPIO_ODR_LOW)
-GPIO(EN_S0_RAILS, PIN(1, 1), GPIO_OUT_LOW)
-GPIO(EN_ROA_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP950_VCCIO, PIN(1, 0), GPIO_OUT_LOW)
-GPIO(EC_IMVP8_PE, PIN(A, 7), GPIO_OUT_LOW)
-GPIO(EN_IMVP8_VR, PIN(F, 4), GPIO_OUT_LOW)
-GPIO(EC_CAM_V3P3_EN, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(EC_MX8M_ONOFF, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(EC_SCALER_EN, PIN(E, 0), GPIO_OUT_LOW)
-GPIO(PP3300_TPU_A_EN, PIN(B, 0), GPIO_OUT_LOW)
-GPIO(PWR_CTRL, PIN(6, 2), GPIO_OUT_LOW)
-
-/* Barreljack */
-GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 4), GPIO_OUT_LOW)
-
-/* USB type A */
-GPIO(EN_PP5000_USB_VBUS, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(USB_A2_STATUS_L, PIN(6, 1), GPIO_INPUT)
-GPIO(USB_A3_STATUS_L, PIN(C, 7), GPIO_INPUT)
-
-/* USB type C */
-GPIO(USB_C0_POL_L, PIN(0, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* USB-C Polarity */
-
-/* Misc. */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-GPIO(PACKET_MODE_EN, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EN_PP_MST_OD, PIN(9, 6), GPIO_OUT_HIGH)
-
-/* HDMI/CEC */
-GPIO(EN_PP5000_HDMI, PIN(5, 0), GPIO_OUT_LOW)
-GPIO(HDMI_CONN0_CEC_IN, PIN(4, 0), GPIO_INPUT)
-GPIO(HDMI_CONN1_CEC_OUT, PIN(9, 5), GPIO_ODR_HIGH)
-GPIO(HDMI_CONN1_CEC_IN, PIN(D, 3), GPIO_INPUT)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_INA_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_INA_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_TCPPC_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_DDR_SCALER_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_DDR_SCALER_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_ALS_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_ALS_SDA */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_IMVP8_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_IMVP8_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(9, 0x03), 0, MODULE_I2C, 0) /* I2C2 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x08), 0, MODULE_PWM, 0) /* PWM0 - Red Led */
-ALTERNATE(PIN_MASK(C, 0x10), 0, MODULE_PWM, 0) /* PWM2 - White Led */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - Fan 1 */
-ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* TA2 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x3E), 0, MODULE_ADC, 0) /* ADC0, ADC1, ADC2, ADC4 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* ADC7 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Unused pins */
-UNUSED(PIN(1, 3)) /* EC_GP_SEL1_ODL */
-UNUSED(PIN(C, 0)) /* FAN_PWM_2 */
-UNUSED(PIN(8, 0)) /* LED_BLUE_L */
-UNUSED(PIN(4, 2)) /* ADC3/TEMP_SENSOR_3 */
-UNUSED(PIN(C, 2)) /* A12 NC */
-UNUSED(PIN(1, 2)) /* C6 NC */
-UNUSED(PIN(6, 6)) /* H4 NC */
-UNUSED(PIN(8, 1)) /* L6 NC */
-UNUSED(PIN(8, 5)) /* L7 NC */
-UNUSED(PIN(3, 2)) /* E5 NC */
-UNUSED(PIN(D, 6)) /* F6 NC */
-UNUSED(PIN(3, 5)) /* F5 NC */
-UNUSED(PIN(5, 6)) /* M2 NC */
-UNUSED(PIN(D, 2)) /* C11 NC */
-UNUSED(PIN(8, 6)) /* J8 NC */
-UNUSED(PIN(7, 2)) /* H6 NC */
-UNUSED(PIN(F, 2)) /* E11 NC */
-UNUSED(PIN(F, 3)) /* F7 NC */
diff --git a/board/scout/led.c b/board/scout/led.c
deleted file mode 100644
index a9f70d2d40..0000000000
--- a/board/scout/led.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power LED control for Puff.
- * Solid green - active power
- * Green flashing - suspended
- * Red flashing - alert
- * Solid red - critical
- */
-
-#include "chipset.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "pwm.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_GPIO, format, ## args)
-
-/*
- * Due to the CSME-Lite processing, upon startup the CPU transitions through
- * S0->S3->S5->S3->S0, causing the LED to turn on/off/on, so
- * delay turning off the LED during suspend/shutdown.
- */
-#define LED_CPU_DELAY_MS (2000 * MSEC)
-
-const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_WHITE,
- LED_AMBER,
-
- /* Number of colors, not a color itself */
- LED_COLOR_COUNT
-};
-
-static int set_color_power(enum led_color color, int duty)
-{
- int white = 0;
- int red = 0;
-
- if (duty < 0 || 100 < duty)
- return EC_ERROR_UNKNOWN;
-
- switch (color) {
- case LED_OFF:
- break;
- case LED_WHITE:
- white = 1;
- break;
- case LED_RED:
- red = 1;
- break;
- case LED_AMBER:
- red = 1;
- white = 1;
- break;
- default:
- return EC_ERROR_UNKNOWN;
- }
-
- if (red)
- pwm_set_duty(PWM_CH_LED_RED, duty);
- else
- pwm_set_duty(PWM_CH_LED_RED, 0);
-
- if (white)
- pwm_set_duty(PWM_CH_LED_WHITE, duty);
- else
- pwm_set_duty(PWM_CH_LED_WHITE, 0);
-
- return EC_SUCCESS;
-}
-
-static int set_color(enum ec_led_id id, enum led_color color, int duty)
-{
- switch (id) {
- case EC_LED_ID_POWER_LED:
- return set_color_power(color, duty);
- default:
- return EC_ERROR_UNKNOWN;
- }
-}
-
-#define LED_PULSE_US (2 * SECOND)
-/* 40 msec for nice and smooth transition. */
-#define LED_PULSE_TICK_US (40 * MSEC)
-
-/* When pulsing is enabled, brightness is incremented by <duty_inc> every
- * <interval> usec from 0 to 100% in LED_PULSE_US usec. Then it's decremented
- * likewise in LED_PULSE_US usec.
- */
-static struct {
- uint32_t interval;
- int duty_inc;
- enum led_color color;
- int duty;
-} led_pulse;
-
-#define CONFIG_TICK(interval, color) \
- config_tick((interval), 100 / (LED_PULSE_US / (interval)), (color))
-
-static void config_tick(uint32_t interval, int duty_inc, enum led_color color)
-{
- led_pulse.interval = interval;
- led_pulse.duty_inc = duty_inc;
- led_pulse.color = color;
- led_pulse.duty = 0;
-}
-
-static void pulse_power_led(enum led_color color)
-{
- set_color(EC_LED_ID_POWER_LED, color, led_pulse.duty);
- if (led_pulse.duty + led_pulse.duty_inc > 100)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- else if (led_pulse.duty + led_pulse.duty_inc < 0)
- led_pulse.duty_inc = led_pulse.duty_inc * -1;
- led_pulse.duty += led_pulse.duty_inc;
-}
-
-static void led_tick(void);
-DECLARE_DEFERRED(led_tick);
-static void led_tick(void)
-{
- uint32_t elapsed;
- uint32_t next = 0;
- uint32_t start = get_time().le.lo;
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pulse_power_led(led_pulse.color);
- elapsed = get_time().le.lo - start;
- next = led_pulse.interval > elapsed ? led_pulse.interval - elapsed : 0;
- hook_call_deferred(&led_tick_data, next);
-}
-
-static void led_suspend(void)
-{
- CONFIG_TICK(LED_PULSE_TICK_US, LED_WHITE);
- led_tick();
-}
-DECLARE_DEFERRED(led_suspend);
-
-static void led_shutdown(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
-}
-DECLARE_DEFERRED(led_shutdown);
-
-static void led_shutdown_hook(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, led_shutdown_hook, HOOK_PRIO_DEFAULT);
-
-static void led_suspend_hook(void)
-{
- hook_call_deferred(&led_shutdown_data, -1);
- hook_call_deferred(&led_suspend_data, LED_CPU_DELAY_MS);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend_hook, HOOK_PRIO_DEFAULT);
-
-static void led_resume(void)
-{
- /* Assume there is no race condition with led_tick, which also
- * runs in hook_task.
- */
- hook_call_deferred(&led_tick_data, -1);
- /*
- * Avoid invoking the suspend/shutdown delayed hooks.
- */
- hook_call_deferred(&led_suspend_data, -1);
- hook_call_deferred(&led_shutdown_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT);
-
-static void led_init(void)
-{
- pwm_enable(PWM_CH_LED_RED, 1);
- pwm_enable(PWM_CH_LED_WHITE, 1);
-
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- led_suspend();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown();
-}
-DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_INIT_PWM + 1);
-
-void led_alert(int enable)
-{
- if (enable) {
- /* Overwrite the current signal */
- config_tick(1 * SECOND, 100, LED_RED);
- led_tick();
- } else {
- /* Restore the previous signal */
- if (chipset_in_state(CHIPSET_STATE_ON))
- led_resume();
- else if (chipset_in_state(CHIPSET_STATE_SUSPEND))
- led_suspend_hook();
- else if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- led_shutdown_hook();
- }
-}
-
-void show_critical_error(void)
-{
- hook_call_deferred(&led_tick_data, -1);
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- set_color(EC_LED_ID_POWER_LED, LED_RED, 100);
-}
-
-static int command_led(int argc, char **argv)
-{
- enum ec_led_id id = EC_LED_ID_POWER_LED;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "debug")) {
- led_auto_control(id, !led_auto_control_is_enabled(id));
- ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
- } else if (!strcasecmp(argv[1], "off")) {
- set_color(id, LED_OFF, 0);
- } else if (!strcasecmp(argv[1], "red")) {
- set_color(id, LED_RED, 100);
- } else if (!strcasecmp(argv[1], "white")) {
- set_color(id, LED_WHITE, 100);
- } else if (!strcasecmp(argv[1], "amber")) {
- set_color(id, LED_AMBER, 100);
- } else if (!strcasecmp(argv[1], "alert")) {
- led_alert(1);
- } else if (!strcasecmp(argv[1], "crit")) {
- show_critical_error();
- } else {
- return EC_ERROR_PARAM1;
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led,
- "[debug|red|white|amber|off|alert|crit]",
- "Turn on/off LED.");
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED])
- return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
- else if (brightness[EC_LED_COLOR_WHITE])
- return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]);
- else if (brightness[EC_LED_COLOR_AMBER])
- return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
- else
- return set_color(id, LED_OFF, 0);
-}
diff --git a/board/servo_micro/board.c b/board/servo_micro/board.c
deleted file mode 100644
index 8074ba38ab..0000000000
--- a/board/servo_micro/board.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/* Copyright 2016 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.
- */
-/* Servo micro board configuration */
-
-#include "common.h"
-#include "console.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "i2c_ite_flash_support.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "update_fw.h"
-#include "usart-stm32f0.h"
-#include "usart_tx_dma.h"
-#include "usart_rx_dma.h"
-#include "usb_hw.h"
-#include "usb_i2c.h"
-#include "usb_spi.h"
-#include "usb-stream.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= STM32_RCC_SYSCFGEN;
-
- /*
- * the DMA mapping is :
- * Chan 3 : USART3_RX
- * Chan 5 : USART2_RX
- * Chan 6 : USART4_RX (Disable)
- * Chan 6 : SPI2_RX
- * Chan 7 : SPI2_TX
- *
- * i2c : no dma
- * tim16/17: no dma
- */
- STM32_SYSCFG_CFGR1 |= BIT(26); /* Remap USART3 RX/TX DMA */
-
- /* Remap SPI2 to DMA channels 6 and 7 */
- /* STM32F072 SPI2 defaults to using DMA channels 4 and 5 */
- /* but cros_ec hardcodes a 6/7 assumption in registers.h */
- STM32_SYSCFG_CFGR1 |= BIT(24);
-
-}
-
-/******************************************************************************
- * Forward UARTs as a USB serial interface.
- */
-
-#define USB_STREAM_RX_SIZE 32
-#define USB_STREAM_TX_SIZE 64
-
-/******************************************************************************
- * Forward USART2 (EC) as a simple USB serial interface.
- */
-
-static struct usart_config const usart2;
-struct usb_stream_config const usart2_usb;
-
-static struct queue const usart2_to_usb = QUEUE_DIRECT(1024, uint8_t,
- usart2.producer, usart2_usb.consumer);
-static struct queue const usb_to_usart2 = QUEUE_DIRECT(64, uint8_t,
- usart2_usb.producer, usart2.consumer);
-
-static struct usart_rx_dma const usart2_rx_dma =
- USART_RX_DMA(STM32_DMAC_CH5, 32);
-
-static struct usart_config const usart2 =
- USART_CONFIG(usart2_hw,
- usart2_rx_dma.usart_rx,
- usart_tx_interrupt,
- 115200,
- 0,
- usart2_to_usb,
- usb_to_usart2);
-
-USB_STREAM_CONFIG_USART_IFACE(usart2_usb,
- USB_IFACE_USART2_STREAM,
- USB_STR_USART2_STREAM_NAME,
- USB_EP_USART2_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart2,
- usart2_to_usb,
- usart2)
-
-
-/******************************************************************************
- * Forward USART3 (CPU) as a simple USB serial interface.
- */
-
-static struct usart_config const usart3;
-struct usb_stream_config const usart3_usb;
-
-static struct queue const usart3_to_usb = QUEUE_DIRECT(1024, uint8_t,
- usart3.producer, usart3_usb.consumer);
-static struct queue const usb_to_usart3 = QUEUE_DIRECT(64, uint8_t,
- usart3_usb.producer, usart3.consumer);
-
-static struct usart_rx_dma const usart3_rx_dma =
- USART_RX_DMA(STM32_DMAC_CH3, 32);
-
-static struct usart_config const usart3 =
- USART_CONFIG(usart3_hw,
- usart3_rx_dma.usart_rx,
- usart_tx_interrupt,
- 115200,
- 0,
- usart3_to_usb,
- usb_to_usart3);
-
-USB_STREAM_CONFIG_USART_IFACE(usart3_usb,
- USB_IFACE_USART3_STREAM,
- USB_STR_USART3_STREAM_NAME,
- USB_EP_USART3_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart3,
- usart3_to_usb,
- usart3)
-
-
-/******************************************************************************
- * Forward USART4 (cr50) as a simple USB serial interface.
- * We cannot enable DMA due to lack of DMA channels.
- */
-
-static struct usart_config const usart4;
-struct usb_stream_config const usart4_usb;
-
-static struct queue const usart4_to_usb = QUEUE_DIRECT(64, uint8_t,
- usart4.producer, usart4_usb.consumer);
-static struct queue const usb_to_usart4 = QUEUE_DIRECT(64, uint8_t,
- usart4_usb.producer, usart4.consumer);
-
-static struct usart_config const usart4 =
- USART_CONFIG(usart4_hw,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 115200,
- 0,
- usart4_to_usb,
- usb_to_usart4);
-
-USB_STREAM_CONFIG_USART_IFACE(usart4_usb,
- USB_IFACE_USART4_STREAM,
- USB_STR_USART4_STREAM_NAME,
- USB_EP_USART4_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart4,
- usart4_to_usb,
- usart4)
-
-/******************************************************************************
- * Check parity setting on usarts.
- */
-static int command_uart_parity(int argc, char **argv)
-{
- int parity = 0, newparity;
- struct usart_config const *usart;
- char *e;
-
- if ((argc < 2) || (argc > 3))
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "usart2"))
- usart = &usart2;
- else if (!strcasecmp(argv[1], "usart3"))
- usart = &usart3;
- else if (!strcasecmp(argv[1], "usart4"))
- usart = &usart4;
- else
- return EC_ERROR_PARAM1;
-
- if (argc == 3) {
- parity = strtoi(argv[2], &e, 0);
- if (*e || (parity < 0) || (parity > 2))
- return EC_ERROR_PARAM2;
-
- usart_set_parity(usart, parity);
- }
-
- newparity = usart_get_parity(usart);
- ccprintf("Parity on %s is %d.\n", argv[1], newparity);
-
- if ((argc == 3) && (newparity != parity))
- return EC_ERROR_UNKNOWN;
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(parity, command_uart_parity,
- "usart[2|3|4] [0|1|2]",
- "Set parity on uart");
-
-/******************************************************************************
- * Set baud rate setting on usarts.
- */
-static int command_uart_baud(int argc, char **argv)
-{
- int baud = 0;
- struct usart_config const *usart;
- char *e;
-
- if ((argc < 2) || (argc > 3))
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "usart2"))
- usart = &usart2;
- else if (!strcasecmp(argv[1], "usart3"))
- usart = &usart3;
- else if (!strcasecmp(argv[1], "usart4"))
- usart = &usart4;
- else
- return EC_ERROR_PARAM1;
-
- baud = strtoi(argv[2], &e, 0);
- if (*e || baud < 0)
- return EC_ERROR_PARAM2;
-
- usart_set_baud(usart, baud);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(baud, command_uart_baud,
- "usart[2|3|4] rate",
- "Set baud rate on uart");
-
-/******************************************************************************
- * Hold the usart pins low while disabling it, or return it to normal.
- */
-static int command_hold_usart_low(int argc, char **argv)
-{
- /* Each bit represents if that port rx is being held low */
- static int usart_status;
-
- int usart_mask;
- enum gpio_signal rx;
-
- if (argc > 3 || argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[1], "usart2")) {
- usart_mask = 1 << 2;
- rx = GPIO_USART2_SERVO_RX_DUT_TX;
- } else if (!strcasecmp(argv[1], "usart3")) {
- usart_mask = 1 << 3;
- rx = GPIO_USART3_SERVO_RX_DUT_TX;
- } else if (!strcasecmp(argv[1], "usart4")) {
- usart_mask = 1 << 4;
- rx = GPIO_USART4_SERVO_RX_DUT_TX;
- } else {
- return EC_ERROR_PARAM1;
- }
-
- /* Updating the status of this port */
- if (argc == 3) {
- char *e;
- const int hold_low = strtoi(argv[2], &e, 0);
-
- if (*e || (hold_low < 0) || (hold_low > 1))
- return EC_ERROR_PARAM2;
-
- if (!!(usart_status & usart_mask) == hold_low) {
- /* Do nothing since there is no change */
- } else if (hold_low) {
- /*
- * No need to shutdown UART, just de-mux the RX pin from
- * UART and change it to a GPIO temporarily.
- */
- gpio_config_pin(MODULE_USART, rx, 0);
- gpio_set_flags(rx, GPIO_OUT_LOW);
-
- /* Update global uart state */
- usart_status |= usart_mask;
- } else {
- /*
- * Mux the RX pin back to GPIO mode
- */
- gpio_config_pin(MODULE_USART, rx, 1);
-
- /* Update global uart state */
- usart_status &= ~usart_mask;
- }
- }
-
- /* Print status for get and set case. */
- ccprintf("USART status: %s\n",
- usart_status & usart_mask ? "held low" : "normal");
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(hold_usart_low, command_hold_usart_low,
- "usart[2|3|4] [0|1]?",
- "Get/set the hold-low state for usart port");
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Servo Micro"),
- [USB_STR_SERIALNO] = 0,
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_I2C_NAME] = USB_STRING_DESC("I2C"),
- [USB_STR_USART4_STREAM_NAME] = USB_STRING_DESC("UART3"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Servo Shell"),
- [USB_STR_USART3_STREAM_NAME] = USB_STRING_DESC("CPU"),
- [USB_STR_USART2_STREAM_NAME] = USB_STRING_DESC("EC"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/******************************************************************************
- * Support SPI bridging over USB, this requires usb_spi_board_enable and
- * usb_spi_board_disable to be defined to enable and disable the SPI bridge.
- */
-
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_FLASH_PORT, 1, GPIO_SPI_CS},
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-void usb_spi_board_enable(struct usb_spi_config const *config)
-{
- /* Configure SPI GPIOs */
- gpio_config_module(MODULE_SPI_FLASH, 1);
-
- /* Set all four SPI pins to high speed */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xff000000;
-
- /* Enable clocks to SPI2 module */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- spi_enable(&spi_devices[0], 1);
-}
-
-void usb_spi_board_disable(struct usb_spi_config const *config)
-{
- spi_enable(&spi_devices[0], 0);
-
- /* Disable clocks to SPI2 module */
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-
- /* Release SPI GPIOs */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-}
-
-USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0);
-
-/******************************************************************************
- * Support I2C bridging over USB.
- */
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 100,
- GPIO_MASTER_I2C_SCL, GPIO_MASTER_I2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-int usb_i2c_board_is_enabled(void) { return 1; }
-
-/* Configure ITE flash support module */
-const struct ite_dfu_config_t ite_dfu_config = {
- .i2c_port = I2C_PORT_MASTER,
- .scl = GPIO_MASTER_I2C_SCL,
- .sda = GPIO_MASTER_I2C_SDA,
-};
-
-/******************************************************************************
- * Initialize board.
- */
-static void board_init(void)
-{
- /* USB to serial queues */
- queue_init(&usart2_to_usb);
- queue_init(&usb_to_usart2);
- queue_init(&usart3_to_usb);
- queue_init(&usb_to_usart3);
- queue_init(&usart4_to_usb);
- queue_init(&usb_to_usart4);
-
- /* UART init */
- usart_init(&usart2);
- usart_init(&usart3);
- usart_init(&usart4);
-
- /* Enable GPIO expander. */
- gpio_set_level(GPIO_TCA6416_RESET_L, 1);
-
- /* Structured enpoints */
- usb_spi_enable(&usb_spi, 1);
-
- /* Enable UARTs by default. */
- gpio_set_level(GPIO_UART1_EN_L, 0);
- gpio_set_level(GPIO_UART2_EN_L, 0);
- /* Disable power output. */
- gpio_set_level(GPIO_SPI1_VREF_18, 0);
- gpio_set_level(GPIO_SPI1_VREF_33, 0);
- gpio_set_level(GPIO_SPI2_VREF_18, 0);
- gpio_set_level(GPIO_SPI2_VREF_33, 0);
- /* Enable UART3 routing. */
- gpio_set_level(GPIO_SPI1_MUX_SEL, 1);
- gpio_set_level(GPIO_SPI1_BUF_EN_L, 1);
- gpio_set_level(GPIO_JTAG_BUFIN_EN_L, 0);
- gpio_set_level(GPIO_SERVO_JTAG_TDO_BUFFER_EN, 1);
- gpio_set_level(GPIO_SERVO_JTAG_TDO_SEL, 1);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************
- * Turn down USART before jumping to RW.
- */
-static void board_jump(void)
-{
- /*
- * If we don't shutdown the USARTs before jumping to RW, then when early
- * RW tries to set the GPIOs to input (or anything other than alternate)
- * the jump fail on some servo micros.
- *
- * It also make sense to shut them down since RW will reinitialize them
- * in board_init above.
- */
- usart_shutdown(&usart2);
- usart_shutdown(&usart3);
- usart_shutdown(&usart4);
-
- /* Shutdown other hardware modules and let RW reinitialize them */
- usb_spi_enable(&usb_spi, 0);
-}
-DECLARE_HOOK(HOOK_SYSJUMP, board_jump, HOOK_PRIO_DEFAULT);
diff --git a/board/servo_micro/board.h b/board/servo_micro/board.h
deleted file mode 100644
index 306bc0e5d7..0000000000
--- a/board/servo_micro/board.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Servo micro configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define CONFIG_LTO
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-#define CONFIG_BOARD_PRE_INIT
-
-/* Enable USART1,3,4 and USB streams */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART2
-#define CONFIG_STREAM_USART3
-#define CONFIG_STREAM_USART4
-#define CONFIG_STREAM_USB
-#define CONFIG_CMD_USART_INFO
-
-/* The UART console is on USART1 (PA9/PA10) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_HW_CRC
-#define CONFIG_PVD
-/* See 'Programmable voltage detector characteristics' in the STM32F072x8 Datasheet.
- PVD Threshold 1 corresponds to a falling voltage threshold of min:2.09V, max:2.27V. */
-#define PVD_THRESHOLD (1)
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x501a
-#define CONFIG_USB_CONSOLE
-#define CONFIG_USB_UPDATE
-
-#undef CONFIG_USB_MAXPOWER_MA
-#define CONFIG_USB_MAXPOWER_MA 100
-
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_USART4_STREAM 0
-#define USB_IFACE_UPDATE 1
-#define USB_IFACE_SPI 2
-#define USB_IFACE_CONSOLE 3
-#define USB_IFACE_I2C 4
-#define USB_IFACE_USART3_STREAM 5
-#define USB_IFACE_USART2_STREAM 6
-#define USB_IFACE_COUNT 7
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_USART4_STREAM 1
-#define USB_EP_UPDATE 2
-#define USB_EP_SPI 3
-#define USB_EP_CONSOLE 4
-#define USB_EP_I2C 5
-#define USB_EP_USART3_STREAM 6
-#define USB_EP_USART2_STREAM 7
-#define USB_EP_COUNT 8
-
-/* Enable console recasting of GPIO type. */
-#define CONFIG_CMD_GPIO_EXTENDED
-
-/* Enable control of SPI over USB */
-#define CONFIG_USB_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_SPI_FLASH_PORT 0 /* First SPI master port */
-
-/* This is not actually an EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/* Enable control of I2C over USB */
-#define CONFIG_USB_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_MASTER 0
-
-/* See i2c_ite_flash_support.c for more information about these values */
-#define CONFIG_ITE_FLASH_SUPPORT
-#define CONFIG_I2C_XFER_LARGE_TRANSFER
-#undef CONFIG_USB_I2C_MAX_WRITE_COUNT
-#undef CONFIG_USB_I2C_MAX_READ_COUNT
-#define CONFIG_USB_I2C_MAX_WRITE_COUNT ((1<<9) - 4)
-#define CONFIG_USB_I2C_MAX_READ_COUNT ((1<<9) - 6)
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-
-#include "gpio_signal.h"
-
-/* GPIO signal mapping */
-#define GPIO_USART4_SERVO_TX_DUT_RX GPIO_UART3_TX_SERVO_JTAG_TCK
-#define GPIO_USART4_SERVO_RX_DUT_TX GPIO_UART3_RX_JTAG_BUFFER_TO_SERVO_TDO
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_I2C_NAME,
- USB_STR_USART4_STREAM_NAME,
- USB_STR_CONSOLE_NAME,
- USB_STR_USART3_STREAM_NAME,
- USB_STR_USART2_STREAM_NAME,
- USB_STR_UPDATE_NAME,
-
- USB_STR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/servo_micro/build.mk b/board/servo_micro/build.mk
deleted file mode 100644
index 0e069a31ad..0000000000
--- a/board/servo_micro/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
diff --git a/board/servo_micro/ccd.md b/board/servo_micro/ccd.md
deleted file mode 100644
index 267da66776..0000000000
--- a/board/servo_micro/ccd.md
+++ /dev/null
@@ -1,168 +0,0 @@
-<!--
- Copyright 2018 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.
--->
-
-# Case-Closed Debug in Chromebooks and Servo Micro
-
-The Servo debug/test-automation connector has been required on all chromebooks.
-It has proved essential to performing the required testing to meet the six week
-OS release cycle, for bringing up new systems and qualifying new components. In
-newer form-factors it is becoming hard to fit the Servo connector (and related
-flex) and in some designs the thermal solution stops working when the connector
-is used. The secure Case-Closed Debugging solution provides the same
-capabilities and can take advantage of the Debug Mode detection available on the
-USB-C connector. This application note gives an overview of Case-Closed Debug
-(CCD) but does not address the related security issues.
-
-## Introduction to Case-Closed Debug
-
-Case-Closed Debug provides the same set of features as are available on the
-Servo connector:
-
-* Access to console UART connections to AP, EC and on some systems a third MCU
-* Ability to reprogram firmware/BIOS SPI flash used by the AP
-* Ability to reprogram SPI flash used by the EC or use a firmware update mode
- to reprogram the internal flash on the EC (using UART or I2C)
-* GPIOs for holding the EC (and thus entire system) or AP in reset
-* Act as master on a debug I2C that is primarily used for power measurements.
- This bus normally contains INA voltage/current monitors and temperature
- monitors that will not be populated on final MP systems.
-* JTAG/SWD could be provided but has not been implemented on any existing
- system.
-
-When the Servo connector is used these interfaces are presented on well defined
-pins of the board-to-board connector and a flex is used to attach to the
-external Servo controller. The height needed for the mated board-to-board
-connector is not available in newer slim designs, and the disruption caused by
-the flex may interfere with thermal solutions. In a system using Case-Closed
-Debug the interfaces are gathered by a part on the board into a single USB
-interface that can come out of the system on an existing connector. In
-particular, the USB-C connector has two SideBand Use pins (SBU1, SBU2) that can
-be used for the debug USB while the main link on the connector continues to be
-available. (The SBU pins are also used by some Alternate Modes, so the connector
-cannot be used for video out at the same time as debugging.)
-
-## Servo Micro: Using CCD with existing boards
-
-The Servo Micro implements the CCD functions in a way that can connect to
-existing boards and thus can also serve as an easy introduction to the CCD
-implementation. The debug USB interface is expanded by a STM32F072 into an
-existing Servo flex connector that can be plugged into the target board.
-
-![block diagram](servo_micro.png)
-
-The Servo Micro includes the voltage level buffering between the microcontroller
-and the device under test (DUT), making use of the DUT supplied reference
-voltages. To allow use with all the existing designs a third UART (not on the
-original Servo connector, but on some designs) can be connected to either the
-JTAG pins or the SPI pins. It is capable of providing the SPI flash supply
-voltages.
-
-The schematics for Servo Micro are available
-[as a pdf](servo_micro_sch_20180404.pdf).
-
-Servo Micro has a USB micro-B connector and acts as a USB device.
-
-Schematic sheet 2 shows the STM32 powered from the uB connector. The UART3 pins
-can also be used as GPIO pins when driving the JTAG interface. As a useful but
-non-compliant hack if the ID pin on the uB is low then Q4 will force the STM32
-to boot in programming mode. This allows initial programming of the part with
-USB DFU using an illegal USB-A plug to USB-A plug cable and a USB-A receptacle
-to uB plug adapter. Alternatively the initial programming can be done using a
-UART connection on CN2.
-
-Schematic sheet 3 shows the I2C GPIO expander and the buffers for JTAG/SWD. The
-buffers adapt to the voltage needed on the DUT that is provided on
-`PPDUT_JTAG_VREF`. In the SWD case the TDI becomes the bidirectional SWDIO but
-the STM32 continues to use a discrete input and output pin. The DUT signal is
-received through U55 and a selection made with U1 to determine if to forward TDO
-from the DUT or the TDI/SWDIO. Because of the shared pins on the STM32 the JTAG
-interface can alternatively be used to connect UART3 to the DUT for a few
-chromebook models.
-
-Schematic sheet 4 shows the buffers for the SPI interfaces. Again the
-`PPDUT_SPIn_VREF` sets the voltage level required from the DUT. However, I61 and
-I62 (which are expanded on sheets 7 and 8) allow the Servo Micro to supply 3.3V
-or 1.8V for cases where the DUT does not provide the reference (care is needed
-to select the correct voltage for the given DUT). Only one of the SPI interfaces
-can be used at any time, so the buffers are also used to select which connects
-to the STM32 SPI pins. Certain chromebook models connect the UART3 in place of
-SPI1 which is enabled using U5 to select between the STM32 UART3 (TX,RX) and SPI
-(CLK, MISO).
-
-Schematic sheet 5 shows the buffers for the UART interfaces. The
-`PPDUT_UARTn_VREF` sets the voltage level required from the DUT.
-
-Schematic sheet 6 shows the board-to-board connector that mates with the servo
-connector on the DUT.
-
-Schematic sheets 7 and 8 are the expansion of blocks I61 and I62 on sheet 4. The
-load switches are carefully selected to have reverse blocking (protecting
-against a DUT providing a voltage or both being enabled).
-
-The code for the STM32 in Servo Micro is open source as the
-[`servo_micro`](../../board/servo_micro) board in the
-[Chromium EC codebase](https://chromium.googlesource.com/chromiumos/platform/ec/).
-Essentially it is a USB device that provides the standard control endpoint and 7
-function endpoints defined in [`board.h`](board.h).
-
-<!-- does not work in emacs/markdown preview but should in gitlies -->
-
-```c
-#define USB_EP_USART4_STREAM 1
-#define USB_EP_UPDATE 2
-#define USB_EP_SPI 3
-#define USB_EP_CONSOLE 4
-#define USB_EP_I2C 5
-#define USB_EP_USART3_STREAM 6
-#define USB_EP_USART2_STREAM 7
-```
-
-The USART endpoints use the simple `GOOGLE_SERIAL` vendor class to connect the
-STM32 UARTs. The CONSOLE endpoint also uses `GOOGLE_STREAM` to connect to the
-console of the code running on the STM32. `GOOGLE_STREAM` provides simple byte
-streams on the IN and OUT of the endpoint and host support is included in the
-standard Linux `drivers/usb/serial/usb-serial-simple.c`
-
-The SPI endpoint is described in
-[`chip/stm32/usb_spi.h`](../../chip/stm32/usb_spi.h) and provides a simple
-connection to the SPI port. The host support is provided as a
-[driver in flashrom](https://chromium.googlesource.com/chromiumos/third_party/flashrom/+/HEAD/raiden_debug_spi.c).
-
-The I2C endpoint is described in [`include/usb_i2c.h`](../../include/usb_i2c.h)
-and provides a simple connection to the I2C bus. The host support is provided in
-the
-[hdctools servo support](https://chromium.googlesource.com/chromiumos/third_party/hdctools/+/HEAD/servo/stm32i2c.py).
-
-The GPIO endpoint is cryptically described in
-[`chip/stm32/usb_gpio.h`](../../chip/stm32/usb_gpio.h) and provides simple
-access to set/clear and read the GPIO pins. The host support is provided in the
-[hdctools servo support](https://chromium.googlesource.com/chromiumos/third_party/hdctools/+/HEAD/servo/stm32gpio.py).
-
-The UPDATE endpoint is not part of CCD. It provides a method for updating the
-STM32 without needing the special boot modes. This uses the
-[Chromium EC update over USB](../../docs/usb_updater.md) method. The STM32 runs
-the code in [`common/usb_update.c`](../../common/usb_update.c). The host side
-code is in
-[`extra/usb_updater/usb_updater2.c`](../../extra/usb_updater/usb_updater2.c) and
-the [`extra/usb_updater`](../../extra/usb_updater/) directory contains
-additional scripts.
-
-## Using CCD on new designs
-
-New chromebook designs implement the CCD in a similar way to Servo Micro. There
-are two changes to the Servo Micro:
-
-* The USB microB connector is replaced with the USB connection being carried
- on the SBU pins of one of the devices USB-C ports. This will only be
- activated when the USB-C port detects a debug accessory or a debug alternate
- mode is entered. Use of the debug connection precludes use of the Display
- Port alternate mode (which also uses the SBU pins) but allows full USB3 and
- USB2 functions including both host and gadget mode.
-* The system security chip will normally lock out debug access. Using secure
- transactions, user authorization and proof of user physical presence it can
- unlock various degrees of debug access.
-
-The full details are part of the Cr50 firmware specification.
diff --git a/board/servo_micro/ec.tasklist b/board/servo_micro/ec.tasklist
deleted file mode 100644
index c1fb169118..0000000000
--- a/board/servo_micro/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/servo_micro/gpio.inc b/board/servo_micro/gpio.inc
deleted file mode 100644
index 10e411c5f2..0000000000
--- a/board/servo_micro/gpio.inc
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Outputs */
-GPIO(UART1_EN_L, PIN(A, 8), GPIO_OUT_LOW)
-GPIO(SERVO_JTAG_TRST_L, PIN(A, 13), GPIO_OUT_LOW)
-GPIO(SPI1_BUF_EN_L, PIN(A, 14), GPIO_OUT_HIGH)
-GPIO(SPI2_BUF_EN_L, PIN(A, 15), GPIO_OUT_HIGH)
-
-GPIO(UART2_EN_L, PIN(B, 0), GPIO_OUT_LOW)
-GPIO(SPI1_VREF_33, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(SPI1_VREF_18, PIN(B, 3), GPIO_OUT_LOW)
-GPIO(SPI2_VREF_33, PIN(B, 4), GPIO_OUT_LOW)
-GPIO(SPI2_VREF_18, PIN(B, 5), GPIO_OUT_LOW)
-GPIO(SERVO_JTAG_TRST_DIR, PIN(B, 6), GPIO_OUT_HIGH)
-GPIO(SERVO_JTAG_TDI_DIR, PIN(B, 7), GPIO_OUT_HIGH)
-
-GPIO(TCA6416_RESET_L, PIN(C, 13), GPIO_OUT_LOW)
-GPIO(SPI1_MUX_SEL, PIN(A, 5), GPIO_OUT_HIGH)
-GPIO(SERVO_JTAG_TMS_DIR, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(SERVO_JTAG_TDO_SEL, PIN(C, 15), GPIO_OUT_HIGH)
-GPIO(JTAG_BUFOUT_EN_L, PIN(F, 0), GPIO_OUT_HIGH)
-GPIO(JTAG_BUFIN_EN_L, PIN(F, 1), GPIO_OUT_LOW)
-
-/* Inputs */
-GPIO(SERVO_JTAG_TMS, PIN(A, 4), GPIO_INPUT)
-GPIO(SERVO_JTAG_TDO_BUFFER_EN, PIN(A, 6), GPIO_OUT_HIGH)
-GPIO(SERVO_JTAG_TDI, PIN(A, 7), GPIO_INPUT)
-
-GPIO(SERVO_JTAG_RTCK, PIN(B, 1), GPIO_INPUT)
-
-/* Flash SPI interface */
-GPIO(SPI_CS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(SPI_CLK, PIN(B, 13), GPIO_INPUT)
-GPIO(SPI_MISO, PIN(B, 14), GPIO_INPUT)
-GPIO(SPI_MOSI, PIN(B, 15), GPIO_INPUT)
-
-/* I2C pins should be configured as inputs until I2C module is */
-/* initialized. This will avoid driving the lines unintentionally.*/
-GPIO(MASTER_I2C_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(MASTER_I2C_SDA, PIN(B, 9), GPIO_INPUT)
-
-/* These pins are used for USART and are set to alternate mode below */
-GPIO(USART2_SERVO_TX_DUT_RX, PIN(A, 2), GPIO_INPUT)
-GPIO(USART2_SERVO_RX_DUT_TX, PIN(A, 3), GPIO_INPUT)
-GPIO(USART3_SERVO_TX_DUT_RX, PIN(B, 10), GPIO_INPUT)
-GPIO(USART3_SERVO_RX_DUT_TX, PIN(B, 11), GPIO_INPUT)
-/*
- * The USART4 (UART3) names are already in use by dut-controls, so they can't
- * be easily updated. They are aliased in board.h though.
- *
- * Also, these need to be GPIO_ALTERNATE until all servo micro RO images have
- * the board_jump USART shutdown. After ~2020/06/01 they can move to GPIO_INPUT.
- * See b/144356961 for more background.
- */
-GPIO(UART3_TX_SERVO_JTAG_TCK, PIN(A, 0), GPIO_ALTERNATE)
-GPIO(UART3_RX_JTAG_BUFFER_TO_SERVO_TDO, PIN(A, 1), GPIO_ALTERNATE)
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0) /* USART1: PA09/PA10 - Servo stm32 console UART*/
-ALTERNATE(PIN_MASK(A, 0x000C), 1, MODULE_USART, 0) /* USART2: PA2/PA3 - Servo UART1 */
-ALTERNATE(PIN_MASK(B, 0x0C00), 4, MODULE_USART, 0) /* USART3: PB10/PB11 - Servo UART2 */
-ALTERNATE(PIN_MASK(A, 0x0003), 4, MODULE_USART, 0) /* USART4: PA0/PA1 - Servo UART3 */
-
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, 0) /* I2C MASTER:PB8/PB9 GPIO_ODR_HIGH */
-ALTERNATE(PIN_MASK(B, 0x0300), 2, MODULE_I2C_TIMERS, 0) /* I2C MASTER:PB8/PB9 TIM16_CH1/TIM17_CH1 */
-
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0) /* SPI: PB15 - PB12 MOSI, MISO, CLK, CS */
diff --git a/board/servo_micro/servo_micro.png b/board/servo_micro/servo_micro.png
deleted file mode 100644
index e3591d41c7..0000000000
--- a/board/servo_micro/servo_micro.png
+++ /dev/null
Binary files differ
diff --git a/board/servo_micro/servo_micro_sch_20180404.pdf b/board/servo_micro/servo_micro_sch_20180404.pdf
deleted file mode 100644
index d9f643a11b..0000000000
--- a/board/servo_micro/servo_micro_sch_20180404.pdf
+++ /dev/null
Binary files differ
diff --git a/board/servo_v4/board.c b/board/servo_v4/board.c
deleted file mode 100644
index 8540de710f..0000000000
--- a/board/servo_v4/board.c
+++ /dev/null
@@ -1,576 +0,0 @@
-/* Copyright 2016 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.
- */
-/* Servo V4 configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-/* Just want the .h file for PS8742 definitions, not the large object file. */
-#define CONFIG_USB_MUX_PS8742
-#include "ps8740.h"
-#undef CONFIG_USB_MUX_PS8742
-#include "queue_policies.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "update_fw.h"
-#include "usart-stm32f0.h"
-#include "usart_tx_dma.h"
-#include "usart_rx_dma.h"
-#include "usb_gpio.h"
-#include "usb_i2c.h"
-#include "usb_pd.h"
-#include "usb_pd_config.h"
-#include "usb_spi.h"
-#include "usb-stream.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/******************************************************************************
- * GPIO interrupt handlers.
- */
-
-static void vbus0_evt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_PD_C0);
-}
-
-static void vbus1_evt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_PD_C1);
-}
-
-static volatile uint64_t hpd_prev_ts;
-static volatile int hpd_prev_level;
-
-/**
- * Hotplug detect deferred task
- *
- * Called after level change on hpd GPIO to evaluate (and debounce) what event
- * has occurred. There are 3 events that occur on HPD:
- * 1. low : downstream display sink is deattached
- * 2. high : downstream display sink is attached
- * 3. irq : downstream display sink signalling an interrupt.
- *
- * The debounce times for these various events are:
- * HPD_USTREAM_DEBOUNCE_LVL : min pulse width of level value.
- * HPD_USTREAM_DEBOUNCE_IRQ : min pulse width of IRQ low pulse.
- *
- * lvl(n-2) lvl(n-1) lvl prev_delta now_delta event
- * ----------------------------------------------------
- * 1 0 1 <IRQ n/a low glitch (ignore)
- * 1 0 1 >IRQ <LVL irq
- * x 0 1 n/a >LVL high
- * 0 1 0 <LVL n/a high glitch (ignore)
- * x 1 0 n/a >LVL low
- */
-
-void hpd_irq_deferred(void)
-{
- int dp_mode = pd_alt_mode(1, TCPCI_MSG_SOP, USB_SID_DISPLAYPORT);
-
- if (dp_mode) {
- pd_send_hpd(DUT, hpd_irq);
- CPRINTS("HPD IRQ");
- }
-}
-DECLARE_DEFERRED(hpd_irq_deferred);
-
-void hpd_lvl_deferred(void)
-{
- int level = gpio_get_level(GPIO_DP_HPD);
- int dp_mode = pd_alt_mode(1, TCPCI_MSG_SOP, USB_SID_DISPLAYPORT);
-
- if (level != hpd_prev_level) {
- /* It's a glitch while in deferred or canceled action */
- return;
- }
-
- if (dp_mode) {
- pd_send_hpd(DUT, level ? hpd_high : hpd_low);
- CPRINTS("HPD: %d", level);
- }
-}
-DECLARE_DEFERRED(hpd_lvl_deferred);
-
-void hpd_evt(enum gpio_signal signal)
-{
- timestamp_t now = get_time();
- int level = gpio_get_level(signal);
- uint64_t cur_delta = now.val - hpd_prev_ts;
-
- /* Store current time */
- hpd_prev_ts = now.val;
-
- /* All previous hpd level events need to be re-triggered */
- hook_call_deferred(&hpd_lvl_deferred_data, -1);
-
- /* It's a glitch. Previous time moves but level is the same. */
- if (cur_delta < HPD_USTREAM_DEBOUNCE_IRQ)
- return;
-
- if ((!hpd_prev_level && level) &&
- (cur_delta < HPD_USTREAM_DEBOUNCE_LVL)) {
- /* It's an irq */
- hook_call_deferred(&hpd_irq_deferred_data, 0);
- } else if (cur_delta >= HPD_USTREAM_DEBOUNCE_LVL) {
- hook_call_deferred(&hpd_lvl_deferred_data,
- HPD_USTREAM_DEBOUNCE_LVL);
- }
-
- hpd_prev_level = level;
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************
- * Board pre-init function.
- */
-
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= BIT(0);
-
- /*
- * the DMA mapping is :
- * Chan 2 : TIM1_CH1 (CHG RX) - Default mapping
- * Chan 3 : SPI1_TX (CHG TX) - Default mapping
- * Chan 4 : USART1 TX - Remapped from default Chan 2
- * Chan 5 : USART1 RX - Remapped from default Chan 3
- * Chan 6 : TIM3_CH1 (DUT RX) - Remapped from default Chan 4
- * Chan 7 : SPI2_TX (DUT TX) - Remapped from default Chan 5
- *
- * As described in the comments above, both USART1 TX/RX and DUT Tx/RX
- * channels must be remapped from the defulat locations. Remapping is
- * acoomplished by setting the following bits in the STM32_SYSCFG_CFGR1
- * register. Information about this register and its settings can be
- * found in section 11.3.7 DMA Request Mapping of the STM RM0091
- * Reference Manual
- */
- /* Remap USART1 Tx from DMA channel 2 to channel 4 */
- STM32_SYSCFG_CFGR1 |= BIT(9);
- /* Remap USART1 Rx from DMA channel 3 to channel 5 */
- STM32_SYSCFG_CFGR1 |= BIT(10);
- /* Remap TIM3_CH1 from DMA channel 4 to channel 6 */
- STM32_SYSCFG_CFGR1 |= BIT(30);
- /* Remap SPI2 Tx from DMA channel 5 to channel 7 */
- STM32_SYSCFG_CFGR1 |= BIT(24);
-}
-
-/******************************************************************************
- * Set up USB PD
- */
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_CHG_CC1_PD] = {"CHG_CC1_PD", 3300, 4096, 0, STM32_AIN(2)},
- [ADC_CHG_CC2_PD] = {"CHG_CC2_PD", 3300, 4096, 0, STM32_AIN(4)},
- [ADC_DUT_CC1_PD] = {"DUT_CC1_PD", 3300, 4096, 0, STM32_AIN(0)},
- [ADC_DUT_CC2_PD] = {"DUT_CC2_PD", 3300, 4096, 0, STM32_AIN(5)},
- [ADC_SBU1_DET] = {"SBU1_DET", 3300, 4096, 0, STM32_AIN(3)},
- [ADC_SBU2_DET] = {"SBU2_DET", 3300, 4096, 0, STM32_AIN(7)},
- [ADC_SUB_C_REF] = {"SUB_C_REF", 3300, 4096, 0, STM32_AIN(1)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-
-/******************************************************************************
- * Forward UARTs as a USB serial interface.
- */
-
-#define USB_STREAM_RX_SIZE 16
-#define USB_STREAM_TX_SIZE 16
-
-/******************************************************************************
- * Forward USART3 as a simple USB serial interface.
- */
-
-static struct usart_config const usart3;
-struct usb_stream_config const usart3_usb;
-
-static struct queue const usart3_to_usb = QUEUE_DIRECT(64, uint8_t,
- usart3.producer, usart3_usb.consumer);
-static struct queue const usb_to_usart3 = QUEUE_DIRECT(64, uint8_t,
- usart3_usb.producer, usart3.consumer);
-
-static struct usart_config const usart3 =
- USART_CONFIG(usart3_hw,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 115200,
- 0,
- usart3_to_usb,
- usb_to_usart3);
-
-USB_STREAM_CONFIG(usart3_usb,
- USB_IFACE_USART3_STREAM,
- USB_STR_USART3_STREAM_NAME,
- USB_EP_USART3_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart3,
- usart3_to_usb)
-
-
-/******************************************************************************
- * Forward USART4 as a simple USB serial interface.
- */
-
-static struct usart_config const usart4;
-struct usb_stream_config const usart4_usb;
-
-static struct queue const usart4_to_usb = QUEUE_DIRECT(64, uint8_t,
- usart4.producer, usart4_usb.consumer);
-static struct queue const usb_to_usart4 = QUEUE_DIRECT(64, uint8_t,
- usart4_usb.producer, usart4.consumer);
-
-static struct usart_config const usart4 =
- USART_CONFIG(usart4_hw,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 9600,
- 0,
- usart4_to_usb,
- usb_to_usart4);
-
-USB_STREAM_CONFIG(usart4_usb,
- USB_IFACE_USART4_STREAM,
- USB_STR_USART4_STREAM_NAME,
- USB_EP_USART4_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart4,
- usart4_to_usb)
-
-/*
- * Define usb interface descriptor for the `EMPTY` usb interface, to satisfy
- * UEFI and kernel requirements (see b/183857501).
- */
-const struct usb_interface_descriptor
-USB_IFACE_DESC(USB_IFACE_EMPTY) = {
- .bLength = USB_DT_INTERFACE_SIZE,
- .bDescriptorType = USB_DT_INTERFACE,
- .bInterfaceNumber = USB_IFACE_EMPTY,
- .bAlternateSetting = 0,
- .bNumEndpoints = 0,
- .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
- .bInterfaceSubClass = 0,
- .bInterfaceProtocol = 0,
- .iInterface = 0,
-};
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Servo V4"),
- [USB_STR_SERIALNO] = USB_STRING_DESC("1234-a"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_I2C_NAME] = USB_STRING_DESC("I2C"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Servo EC Shell"),
- [USB_STR_USART3_STREAM_NAME] = USB_STRING_DESC("DUT UART"),
- [USB_STR_USART4_STREAM_NAME] = USB_STRING_DESC("Atmega UART"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-
-
-/******************************************************************************
- * Support I2C bridging over USB.
- */
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 100,
- GPIO_MASTER_I2C_SCL, GPIO_MASTER_I2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-int usb_i2c_board_is_enabled(void) { return 1; }
-
-/******************************************************************************
- * Initialize board.
- */
-
-/*
- * Support tca6416 I2C ioexpander.
- */
-#define GPIOX_I2C_ADDR_FLAGS 0x20
-#define GPIOX_IN_PORT_A 0x0
-#define GPIOX_IN_PORT_B 0x1
-#define GPIOX_OUT_PORT_A 0x2
-#define GPIOX_OUT_PORT_B 0x3
-#define GPIOX_DIR_PORT_A 0x6
-#define GPIOX_DIR_PORT_B 0x7
-
-
-/* Write a GPIO output on the tca6416 I2C ioexpander. */
-static void write_ioexpander(int bank, int gpio, int val)
-{
- int tmp;
-
- /* Read output port register */
- i2c_read8(1, GPIOX_I2C_ADDR_FLAGS, GPIOX_OUT_PORT_A + bank, &tmp);
- if (val)
- tmp |= BIT(gpio);
- else
- tmp &= ~BIT(gpio);
- /* Write back modified output port register */
- i2c_write8(1, GPIOX_I2C_ADDR_FLAGS, GPIOX_OUT_PORT_A + bank, tmp);
-}
-
-/* Read a single GPIO input on the tca6416 I2C ioexpander. */
-static int read_ioexpander_bit(int bank, int bit)
-{
- int tmp;
- int mask = 1 << bit;
-
- /* Read input port register */
- i2c_read8(1, GPIOX_I2C_ADDR_FLAGS, GPIOX_IN_PORT_A + bank, &tmp);
-
- return (tmp & mask) >> bit;
-}
-
-/* Enable uservo USB. */
-static void init_uservo_port(void)
-{
- /* Write USERVO_POWER_EN */
- write_ioexpander(0, 7, 1);
- /* Write USERVO_FASTBOOT_MUX_SEL */
- write_ioexpander(1, 0, 0);
-}
-
-/* Enable blue USB port to DUT. */
-static void init_usb3_port(void)
-{
- /* Write USB3.0_TYPEA_MUX_SEL */
- write_ioexpander(0, 3, 1);
- /* Write USB3.0_TYPEA_MUX_EN_L */
- write_ioexpander(0, 4, 0);
- /* Write USB3.0_TYPE_A_PWR_EN */
- write_ioexpander(0, 5, 1);
-}
-
-/* Enable all ioexpander outputs. */
-static void init_ioexpander(void)
-{
- /* Write all GPIO to output 0 */
- i2c_write8(1, GPIOX_I2C_ADDR_FLAGS, GPIOX_OUT_PORT_A, 0x0);
- i2c_write8(1, GPIOX_I2C_ADDR_FLAGS, GPIOX_OUT_PORT_B, 0x0);
-
- /*
- * Write GPIO direction: strap resistors to input,
- * all others to output.
- */
- i2c_write8(1, GPIOX_I2C_ADDR_FLAGS, GPIOX_DIR_PORT_A, 0x0);
- i2c_write8(1, GPIOX_I2C_ADDR_FLAGS, GPIOX_DIR_PORT_B, 0x18);
-}
-
-/*
- * Define voltage thresholds for SBU USB detection.
- *
- * Max observed USB low across sampled systems: 666mV
- * Min observed USB high across sampled systems: 3026mV
- */
-#define GND_MAX_MV 700
-#define USB_HIGH_MV 2500
-#define SBU_DIRECT 0
-#define SBU_FLIP 1
-
-#define MODE_SBU_DISCONNECT 0
-#define MODE_SBU_CONNECT 1
-#define MODE_SBU_FLIP 2
-#define MODE_SBU_OTHER 3
-
-static void ccd_measure_sbu(void);
-DECLARE_DEFERRED(ccd_measure_sbu);
-static void ccd_measure_sbu(void)
-{
- int sbu1;
- int sbu2;
- int mux_en;
- static int count /* = 0 */;
- static int last /* = 0 */;
- static int polarity /* = 0 */;
-
- /* Read sbu voltage levels */
- sbu1 = adc_read_channel(ADC_SBU1_DET);
- sbu2 = adc_read_channel(ADC_SBU2_DET);
- mux_en = gpio_get_level(GPIO_SBU_MUX_EN);
-
- /*
- * While SBU_MUX is disabled (SuzyQ unplugged), we'll poll the SBU lines
- * to check if an idling, unconfigured USB device is present.
- * USB FS pulls one line high for connect request.
- * If so, and it persists for 500ms, we'll enable the SuzyQ in that
- * orientation.
- */
- if ((!mux_en) && (sbu1 > USB_HIGH_MV) && (sbu2 < GND_MAX_MV)) {
- /* Check flip connection polarity. */
- if (last != MODE_SBU_FLIP) {
- last = MODE_SBU_FLIP;
- polarity = SBU_FLIP;
- count = 0;
- } else {
- count++;
- }
- } else if ((!mux_en) && (sbu2 > USB_HIGH_MV) && (sbu1 < GND_MAX_MV)) {
- /* Check direct connection polarity. */
- if (last != MODE_SBU_CONNECT) {
- last = MODE_SBU_CONNECT;
- polarity = SBU_DIRECT;
- count = 0;
- } else {
- count++;
- }
- /*
- * If SuzyQ is enabled, we'll poll for a persistent no-signal for
- * 500ms. Since USB is differential, we should never see GND/GND
- * while the device is connected.
- * If disconnected, electrically remove SuzyQ.
- */
- } else if ((mux_en) && (sbu1 < GND_MAX_MV) && (sbu2 < GND_MAX_MV)) {
- /* Check for SBU disconnect if connected. */
- if (last != MODE_SBU_DISCONNECT) {
- last = MODE_SBU_DISCONNECT;
- count = 0;
- } else {
- count++;
- }
- } else {
- /* Didn't find anything, reset state. */
- last = MODE_SBU_OTHER;
- count = 0;
- }
-
- /*
- * We have seen a new state continuously for 500ms.
- * Let's update the mux to enable/disable SuzyQ appropriately.
- */
- if (count > 5) {
- if (mux_en) {
- /* Disable mux as it's disconnected now. */
- gpio_set_level(GPIO_SBU_MUX_EN, 0);
- msleep(10);
- CPRINTS("CCD: disconnected.");
- } else {
- /* SBU flip = polarity */
- write_ioexpander(0, 2, polarity);
- gpio_set_level(GPIO_SBU_MUX_EN, 1);
- msleep(10);
- CPRINTS("CCD: connected %s",
- polarity ? "flip" : "noflip");
- }
- }
-
- /* Measure every 100ms, forever. */
- hook_call_deferred(&ccd_measure_sbu_data, 100 * MSEC);
-}
-
-void ext_hpd_detection_enable(int enable)
-{
- if (enable) {
- timestamp_t now = get_time();
-
- hpd_prev_level = gpio_get_level(GPIO_DP_HPD);
- hpd_prev_ts = now.val;
- gpio_enable_interrupt(GPIO_DP_HPD);
- } else {
- gpio_disable_interrupt(GPIO_DP_HPD);
- }
-}
-
-void ccd_enable(int enable)
-{
- if (enable) {
- hook_call_deferred(&ccd_measure_sbu_data, 0);
- } else {
- gpio_set_level(GPIO_SBU_MUX_EN, 0);
- hook_call_deferred(&ccd_measure_sbu_data, -1);
- }
-}
-
-int board_get_version(void)
-{
- static int ver = -1;
-
- if (ver < 0) {
- uint8_t id0, id1;
-
- id0 = read_ioexpander_bit(1, 3);
- id1 = read_ioexpander_bit(1, 4);
-
- ver = (id1 * 2) + id0;
- CPRINTS("Board ID = %d", ver);
- }
-
- return ver;
-}
-
-static void board_init(void)
-{
- /* USB to serial queues */
- queue_init(&usart3_to_usb);
- queue_init(&usb_to_usart3);
- queue_init(&usart4_to_usb);
- queue_init(&usb_to_usart4);
-
- /* UART init */
- usart_init(&usart3);
- usart_init(&usart4);
-
- /* Delay DUT hub to avoid brownout. */
- usleep(1000);
- gpio_set_flags(GPIO_DUT_HUB_USB_RESET_L, GPIO_OUT_HIGH);
-
- /*
- * Disable USB3 mode in PS8742 USB/DP Mux.
- */
- i2c_write8(I2C_PORT_MASTER, PS8740_I2C_ADDR0_FLAG, PS8740_REG_MODE, 0);
-
- /* Enable uservo USB by default. */
- init_ioexpander();
- init_uservo_port();
- init_usb3_port();
-
- /* Clear BBRAM, we don't want any PD state carried over on reset. */
- system_set_bbram(SYSTEM_BBRAM_IDX_PD0, 0);
- system_set_bbram(SYSTEM_BBRAM_IDX_PD1, 0);
-
- /*
- * Disable SBU mux. The polarity is set each time a presense is detected
- * on SBU, and wired thorugh. On missing voltage on SBU. SBU wires are
- * disconnected.
- */
- gpio_set_level(GPIO_SBU_MUX_EN, 0);
-
- /*
- * Voltage transition needs to occur in lockstep between the CHG and
- * DUT ports, so initially limit voltage to 5V.
- */
- pd_set_max_voltage(PD_MIN_MV);
-
- /* Enable VBUS detection to wake PD tasks fast enough */
- gpio_enable_interrupt(GPIO_USB_DET_PP_CHG);
- gpio_enable_interrupt(GPIO_USB_DET_PP_DUT);
-
- hook_call_deferred(&ccd_measure_sbu_data, 1000 * MSEC);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/servo_v4/board.h b/board/servo_v4/board.h
deleted file mode 100644
index f932752ef4..0000000000
--- a/board/servo_v4/board.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Servo V4 configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define CONFIG_LTO
-
-/* Free up flash space */
-#ifdef SECTION_IS_RO
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#endif
-
-/*
- * Board Versions:
- * Versions are designated by the PCB color and consist of red, blue, and
- * black. Only the black version has pullup resistors to distinguish its board
- * id from previous versions.
- */
-#define BOARD_VERSION_BLACK 3
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Enable USART1,3,4 and USB streams */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART3
-#define CONFIG_STREAM_USART4
-#define CONFIG_STREAM_USB
-#define CONFIG_CMD_USART_INFO
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_HW_CRC
-#define CONFIG_PVD
-/* See 'Programmable voltage detector characteristics' in the STM32F072x8 Datasheet.
- PVD Threshold 1 corresponds to a falling voltage threshold of min:2.09V, max:2.27V. */
-#define PVD_THRESHOLD (1)
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x501b
-#define CONFIG_USB_CONSOLE
-#define CONFIG_USB_UPDATE
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-
-#define CONFIG_USB_SELF_POWERED
-
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-#define CONFIG_MAC_ADDR
-#define DEFAULT_MAC_ADDR "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_EMPTY 1
-#define USB_IFACE_I2C 2
-#define USB_IFACE_USART3_STREAM 3
-#define USB_IFACE_USART4_STREAM 4
-#define USB_IFACE_UPDATE 5
-#define USB_IFACE_COUNT 6
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_EMPTY 2
-#define USB_EP_I2C 3
-#define USB_EP_USART3_STREAM 4
-#define USB_EP_USART4_STREAM 5
-#define USB_EP_UPDATE 6
-#define USB_EP_COUNT 7
-
-/* Enable console recasting of GPIO type. */
-#define CONFIG_CMD_GPIO_EXTENDED
-
-/* This is not actually an EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_HIBERNATE
-
-/* Remove console commands / features for flash / RAM savings */
-#undef CONFIG_USB_PD_HOST_CMD
-#undef CONFIG_CONSOLE_CMDHELP
-#undef CONFIG_CONSOLE_HISTORY
-#undef CONFIG_CMD_CRASH
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_FLASHINFO
-#undef CONFIG_CMD_FLASH_WP
-#undef CONFIG_CMD_GETTIME
-#undef CONFIG_CMD_MEM
-#undef CONFIG_CMD_SHMEM
-#undef CONFIG_CMD_SYSLOCK
-#undef CONFIG_CMD_TIMERINFO
-#undef CONFIG_CMD_WAITMS
-#undef CONFIG_CMD_USART_INFO
-#undef CONFIG_CMD_CHARGE_SUPPLIER_INFO
-
-/* Enable control of I2C over USB */
-#define CONFIG_USB_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_MASTER 1
-
-/* PD features */
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-#define CONFIG_BOARD_PRE_INIT
-/*
- * If task profiling is enabled then the rx falling edge detection interrupts
- * can't be processed in time and can't support USB PD messaging.
- */
-#undef CONFIG_TASK_PROFILING
-
-#define CONFIG_CHARGE_MANAGER
-#undef CONFIG_CHARGE_MANAGER_SAFE_MODE
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_CMD_PD
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DYNAMIC_SRC_CAP
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#undef CONFIG_USB_PD_PULLUP
-#define CONFIG_USB_PD_PULLUP TYPEC_RP_USB
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
-#define CONFIG_USB_PD_ONLY_FIXED_PDOS
-
-/* Don't automatically change roles */
-#undef CONFIG_USB_PD_INITIAL_DRP_STATE
-#define CONFIG_USB_PD_INITIAL_DRP_STATE PD_DRP_FORCE_SINK
-
-/* Variable-current Rp no connect and Ra attach macros */
-#define CC_NC(port, cc, sel) (pd_tcpc_cc_nc(port, cc, sel))
-#define CC_RA(port, cc, sel) (pd_tcpc_cc_ra(port, cc, sel))
-
-/*
- * TODO(crosbug.com/p/60792): The delay values are currently just place holders
- * and the delay will need to be relative to the circuitry that allows VBUS to
- * be supplied to the DUT port from the CHG port.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 50000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 50000 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-/*
- * Define PDO selection logic for SourceCap.
- * On a 45W PD charger, it might provide PDOs with 15V/3A and 20V/2.25A.
- * In this case, pd_find_pdo_index() would always prefer 15V/3A rather than
- * 20V/2.25A and such that the 20V PDO will be disappeared when servo-v4
- * advertise the SrcCap. We define PD_PREFER_HIGH_VOLTAGE so that all the
- * PDOs could be advertised by servo-v4.
- */
-#define PD_PREFER_HIGH_VOLTAGE
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_I2C_NAME,
- USB_STR_CONSOLE_NAME,
- USB_STR_USART3_STREAM_NAME,
- USB_STR_USART4_STREAM_NAME,
- USB_STR_UPDATE_NAME,
- USB_STR_COUNT
-};
-
-
-/* ADC signal */
-enum adc_channel {
- ADC_CHG_CC1_PD,
- ADC_CHG_CC2_PD,
- ADC_DUT_CC1_PD,
- ADC_DUT_CC2_PD,
- ADC_SBU1_DET,
- ADC_SBU2_DET,
- ADC_SUB_C_REF,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/**
- * Compare cc_voltage to disconnect threshold
- *
- * This function can be used for boards that support variable Rp settings and
- * require a different voltage threshold based on the Rp value attached to a
- * given cc line.
- *
- * @param port USB-C port number
- * @param cc_volt voltage measured in mV of the CC line
- * @param cc_sel cc1 or cc2 selection
- * @return 1 if voltage is >= threshold value for disconnect
- */
-int pd_tcpc_cc_nc(int port, int cc_volt, int cc_sel);
-
-/**
- * Compare cc_voltage to Ra threshold
- *
- * This function can be used for boards that support variable Rp settings and
- * require a different voltage threshold based on the Rp value attached to a
- * given cc line.
- *
- * @param port USB-C port number
- * @param cc_volt voltage measured in mV of the CC line
- * @param cc_sel cc1 or cc2 selection
- * @return 1 if voltage is < threshold value for Ra attach
- */
-int pd_tcpc_cc_ra(int port, int cc_volt, int cc_sel);
-
-/**
- * Set Rp or Rd resistor for CC lines
- *
- * This function is used to configure the CC pullup or pulldown resistor to
- * the requested value.
- *
- * @param port USB-C port number
- * @param cc_pull 1 for Rp and 0 for Rd
- * @param rp_value If cc_pull == 1, the value of Rp to use
- * @return 1 if cc_pull == 1 and Rp is invalid, otherwise 0
- */
-int pd_set_rp_rd(int port, int cc_pull, int rp_value);
-
-/**
- * Get board HW ID version
- *
- * @return HW ID version
- */
-int board_get_version(void);
-
-/**
- * Enable or disable external HPD detection
- *
- * @param enable Enable external HPD detection if true, otherwise disable
- */
-void ext_hpd_detection_enable(int enable);
-
-/**
- * Enable or disable CCD
- *
- * @param enable Enable CCD if true, otherwise disable
- */
-void ccd_enable(int enable);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/servo_v4/build.mk b/board/servo_v4/build.mk
deleted file mode 100644
index 6336bbfab6..0000000000
--- a/board/servo_v4/build.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-# Not enough SRAM: Disable all tests
-test-list-y=
-
-board-y=board.o
-board-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o
-
-all_deps=$(patsubst ro,,$(def_all_deps))
diff --git a/board/servo_v4/ec.tasklist b/board/servo_v4/ec.tasklist
deleted file mode 100644
index 2111c6b761..0000000000
--- a/board/servo_v4/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, TRENTA_TASK_STACK_SIZE)
diff --git a/board/servo_v4/gpio.inc b/board/servo_v4/gpio.inc
deleted file mode 100644
index 76b9a06d0f..0000000000
--- a/board/servo_v4/gpio.inc
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-GPIO_INT(USB_DET_PP_CHG, PIN(C, 13), GPIO_INT_BOTH, vbus0_evt)
-GPIO_INT(USB_DET_PP_DUT, PIN(C, 12), GPIO_INT_BOTH, vbus1_evt)
-GPIO_INT(DP_HPD, PIN(A, 14), GPIO_INT_BOTH, hpd_evt)
-
-/* Outputs */
-GPIO(DUT_CHG_EN, PIN(A, 10), GPIO_OUT_LOW)
-GPIO(HOST_OR_CHG_CTL, PIN(A, 13), GPIO_OUT_HIGH)
-GPIO(SBU_UART_SEL, PIN(A, 15), GPIO_OUT_LOW)
-GPIO(HOST_USB_HUB_RESET_L, PIN(D, 2), GPIO_OUT_HIGH)
-GPIO(FASTBOOT_DUTHUB_MUX_SEL, PIN(B, 5), GPIO_OUT_HIGH)
-GPIO(SBU_MUX_EN, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(FASTBOOT_DUTHUB_MUX_EN_L, PIN(B, 7), GPIO_OUT_LOW)
-/* Power on init has reset asserted, we will pull the hub out of reset
- * in the board init to help avoid brownout.
- */
-GPIO(DUT_HUB_USB_RESET_L, PIN(B, 9), GPIO_OUT_LOW)
-GPIO(ATMEL_HWB_L, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(CMUX_EN, PIN(C, 14), GPIO_OUT_HIGH)
-GPIO(EMMC_MUX_EN_L, PIN(F, 0), GPIO_OUT_HIGH)
-GPIO(EMMC_PWR_EN, PIN(F, 1), GPIO_OUT_LOW)
-
-/* Inputs */
-GPIO(USERVO_FAULT_L, PIN(A, 8), GPIO_INPUT)
-GPIO(USB_FAULT_L, PIN(A, 9), GPIO_INPUT)
-GPIO(DONGLE_DET, PIN(C, 15), GPIO_INPUT)
-
-/* Type-C */
-/* PD RX/TX */
-GPIO(USB_C_REF, PIN(A, 1), GPIO_ANALOG)
-GPIO(USB_CHG_CC1_PD, PIN(A, 2), GPIO_ANALOG)
-GPIO(USB_CHG_CC2_PD, PIN(A, 4), GPIO_ANALOG)
-GPIO(USB_DUT_CC1_PD, PIN(A, 0), GPIO_ANALOG)
-GPIO(USB_DUT_CC2_PD, PIN(A, 5), GPIO_ANALOG)
-
-GPIO(USB_CHG_CC1_TX_DATA, PIN(B, 4), GPIO_INPUT)
-GPIO(USB_CHG_CC2_TX_DATA, PIN(A, 6), GPIO_INPUT)
-GPIO(USB_DUT_CC1_TX_DATA, PIN(B, 14), GPIO_INPUT)
-GPIO(USB_DUT_CC2_TX_DATA, PIN(C, 2), GPIO_INPUT)
-
-GPIO(USB_DUT_CC1_RP3A0, PIN(C, 0), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RP1A5, PIN(C, 1), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RPUSB, PIN(C, 3), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RD, PIN(C, 6), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RA, PIN(C, 7), GPIO_INPUT)
-
-GPIO(USB_DUT_CC2_RP3A0, PIN(C, 8), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RP1A5, PIN(C, 9), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RPUSB, PIN(B, 0), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RD, PIN(B, 1), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RA, PIN(B, 2), GPIO_INPUT)
-
-/* Alternate PD functions */
-GPIO(USB_CHG_TX_CLKOUT, PIN(B, 8), GPIO_INPUT)
-GPIO(USB_CHG_TX_CLKIN, PIN(B, 3), GPIO_INPUT)
-GPIO(USB_DUT_TX_CLKOUT, PIN(B, 15), GPIO_INPUT)
-GPIO(USB_DUT_TX_CLKIN, PIN(B, 13), GPIO_INPUT)
-
-/* I2C pins should be configured as inputs until I2C module is */
-/* initialized. This will avoid driving the lines unintentionally.*/
-GPIO(MASTER_I2C_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(MASTER_I2C_SDA, PIN(B, 11), GPIO_INPUT)
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(C, 0x0030), 1, MODULE_USART, 0) /* USART3: PC4/PC5 - Servo DUT UART */
-ALTERNATE(PIN_MASK(C, 0x0C00), 0, MODULE_USART, 0) /* USART4: PC10/PC11 - Servo UART3 */
-ALTERNATE(PIN_MASK(B, 0x0C00), 1, MODULE_I2C, GPIO_ODR_HIGH) /* I2C MASTER:PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0008), 0, MODULE_USB_PD, 0) /* SPI1_SCK: PB3 */
-ALTERNATE(PIN_MASK(B, 0x2000), 0, MODULE_USB_PD, 0) /* SPI2_SCK: PB13 */
-ALTERNATE(PIN_MASK(B, 0x0100), 2, MODULE_USB_PD, 0) /* TIM16_CH1: PB8 */
-ALTERNATE(PIN_MASK(B, 0x8000), 1, MODULE_USB_PD, 0) /* TIM15_CH2: PB15 */
-
diff --git a/board/servo_v4/usb_pd_config.h b/board/servo_v4/usb_pd_config.h
deleted file mode 100644
index b865057618..0000000000
--- a/board/servo_v4/usb_pd_config.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "adc.h"
-#include "chip/stm32/registers.h"
-#include "console.h"
-#include "gpio.h"
-#include "ec_commands.h"
-#include "usb_pd_tcpm.h"
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* NOTES: Servo V4 and glados equivalents:
- * Glados Servo V4
- * C0 CHG
- * C1 DUT
- *
- */
-#define CHG 0
-#define DUT 1
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_CHG 16
-#define TIM_CLOCK_PD_RX_CHG 1
-#define TIM_CLOCK_PD_TX_DUT 15
-#define TIM_CLOCK_PD_RX_DUT 3
-
-/* Timer channel */
-#define TIM_TX_CCR_CHG 1
-#define TIM_RX_CCR_CHG 1
-#define TIM_TX_CCR_DUT 2
-#define TIM_RX_CCR_DUT 1
-
-#define TIM_CLOCK_PD_TX(p) ((p) ? TIM_CLOCK_PD_TX_DUT : TIM_CLOCK_PD_TX_CHG)
-#define TIM_CLOCK_PD_RX(p) ((p) ? TIM_CLOCK_PD_RX_DUT : TIM_CLOCK_PD_RX_CHG)
-
-/* RX timer capture/compare register */
-#define TIM_CCR_CHG (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_CHG, TIM_RX_CCR_CHG))
-#define TIM_CCR_DUT (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_DUT, TIM_RX_CCR_DUT))
-#define TIM_RX_CCR_REG(p) ((p) ? TIM_CCR_DUT : TIM_CCR_CHG)
-
-/* TX and RX timer register */
-#define TIM_REG_TX_CHG (STM32_TIM_BASE(TIM_CLOCK_PD_TX_CHG))
-#define TIM_REG_RX_CHG (STM32_TIM_BASE(TIM_CLOCK_PD_RX_CHG))
-#define TIM_REG_TX_DUT (STM32_TIM_BASE(TIM_CLOCK_PD_TX_DUT))
-#define TIM_REG_RX_DUT (STM32_TIM_BASE(TIM_CLOCK_PD_RX_DUT))
-#define TIM_REG_TX(p) ((p) ? TIM_REG_TX_DUT : TIM_REG_TX_CHG)
-#define TIM_REG_RX(p) ((p) ? TIM_REG_RX_DUT : TIM_REG_RX_CHG)
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* Servo v4 CC configuration */
-#define CC_DETACH BIT(0) /* Emulate detach: both CC open */
-#define CC_DISABLE_DTS BIT(1) /* Apply resistors to single or both CC? */
-#define CC_ALLOW_SRC BIT(2) /* Allow charge through by policy? */
-#define CC_ENABLE_DRP BIT(3) /* Enable dual-role port */
-#define CC_SNK_WITH_PD BIT(4) /* Force enabling PD comm for sink role */
-#define CC_POLARITY BIT(5) /* CC polarity */
-
-/* Servo v4 DP alt-mode configuration */
-#define ALT_DP_ENABLE BIT(0) /* Enable DP alt-mode or not */
-#define ALT_DP_PIN_C BIT(1) /* Pin assignment C supported */
-#define ALT_DP_PIN_D BIT(2) /* Pin assignment D supported */
-#define ALT_DP_PIN_E BIT(3) /* Pin assignment E supported */
-#define ALT_DP_MF_PREF BIT(4) /* Multi-Function preferred */
-#define ALT_DP_PLUG BIT(5) /* Plug or receptacle */
-#define ALT_DP_OVERRIDE_HPD BIT(6) /* Override the HPD signal */
-#define ALT_DP_HPD_LVL BIT(7) /* HPD level if overridden */
-
-/* TX uses SPI1 on PB3-4 for CHG port, SPI2 on PB 13-14 for DUT port */
-#define SPI_REGS(p) ((p) ? STM32_SPI2_REGS : STM32_SPI1_REGS)
-static inline void spi_enable_clock(int port)
-{
- if (port == 0)
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
- else
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-}
-
-/* DMA for transmit uses DMA CH3 for CHG and DMA_CH7 for DUT */
-#define DMAC_SPI_TX(p) ((p) ? STM32_DMAC_CH7 : STM32_DMAC_CH3)
-
-/* RX uses COMP1 and TIM1_CH1 on port CHG and COMP2 and TIM3_CH1 for port DUT*/
-/* DUT RX use CMP1, TIM3_CH1, DMA_CH6 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM3_IC1
-/* CHG RX use CMP2, TIM1_CH1, DMA_CH2 */
-#define CMP2OUTSEL STM32_COMP_CMP2OUTSEL_TIM1_IC1
-
-#define TIM_TX_CCR_IDX(p) ((p) ? TIM_TX_CCR_DUT : TIM_TX_CCR_CHG)
-#define TIM_RX_CCR_IDX(p) ((p) ? TIM_RX_CCR_DUT : TIM_RX_CCR_CHG)
-#define TIM_CCR_CS 1
-
-/*
- * EXTI line 21 is connected to the CMP1 output,
- * EXTI line 22 is connected to the CMP2 output,
- * CHG uses CMP2, and DUT uses CMP1.
- */
-#define EXTI_COMP_MASK(p) ((p) ? (1<<21) : BIT(22))
-
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-/* DMA for receive uses DMA_CH2 for CHG and DMA_CH6 for DUT */
-#define DMAC_TIM_RX(p) ((p) ? STM32_DMAC_CH6 : STM32_DMAC_CH2)
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- if (port == 0) {
- /* 40 MHz pin speed on SPI PB3&4,
- * (USB_CHG_TX_CLKIN & USB_CHG_CC1_TX_DATA)
- */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000003C0;
- /* 40 MHz pin speed on TIM16_CH1 (PB8),
- * (USB_CHG_TX_CLKOUT)
- */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x00030000;
- } else {
- /* 40 MHz pin speed on SPI PB13/14,
- * (USB_DUT_TX_CLKIN & USB_DUT_CC1_TX_DATA)
- */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x3C000000;
- /* 40 MHz pin speed on TIM15_CH2 (PB15) */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xC0000000;
- }
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- if (port == 0) {
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
- } else {
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= BIT(14);
- STM32_RCC_APB1RSTR &= ~BIT(14);
- }
-}
-
-static const uint8_t tx_gpio[2 /* port */][2 /* polarity */] = {
- { GPIO_USB_CHG_CC1_TX_DATA, GPIO_USB_CHG_CC2_TX_DATA },
- { GPIO_USB_DUT_CC1_TX_DATA, GPIO_USB_DUT_CC2_TX_DATA },
-};
-static const uint8_t ref_gpio[2 /* port */][2 /* polarity */] = {
- { GPIO_USB_CHG_CC1_PD, GPIO_USB_CHG_CC2_PD },
- { GPIO_USB_DUT_CC1_PD, GPIO_USB_DUT_CC2_PD },
-};
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
-#ifndef VIF_BUILD /* genvif doesn't like tricks with GPIO macros */
- const struct gpio_info *tx = gpio_list + tx_gpio[port][polarity];
- const struct gpio_info *ref = gpio_list + ref_gpio[port][polarity];
-
- /* use directly GPIO registers, latency before the PD preamble is key */
-
- /* switch the TX pin Mode from Input (00) to Alternate (10) for SPI */
- STM32_GPIO_MODER(tx->port) |= 2 << ((31 - __builtin_clz(tx->mask)) * 2);
- /* switch the ref pin Mode from analog (11) to Out (01) for low level */
- STM32_GPIO_MODER(ref->port) &=
- ~(2 << ((31 - __builtin_clz(ref->mask)) * 2));
-#endif /* !VIF_BUILD */
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- const struct gpio_info *tx = gpio_list + tx_gpio[port][polarity];
- const struct gpio_info *ref = gpio_list + ref_gpio[port][polarity];
-
- gpio_set_flags_by_mask(tx->port, tx->mask, GPIO_INPUT);
- gpio_set_flags_by_mask(ref->port, ref->mask, GPIO_ANALOG);
-}
-
-/* we know the plug polarity, do the right configuration */
-static inline void pd_select_polarity(int port, int polarity)
-{
- uint32_t val = STM32_COMP_CSR;
-
- /* Use window mode so that COMP1 and COMP2 share non-inverting input */
- val |= STM32_COMP_CMP1EN | STM32_COMP_CMP2EN | STM32_COMP_WNDWEN;
-
- if (port == 0) {
- /* CHG use the right comparator inverted input for COMP2 */
- STM32_COMP_CSR = (val & ~STM32_COMP_CMP2INSEL_MASK) |
- (polarity ? STM32_COMP_CMP2INSEL_INM4 /* PA4: C0_CC2 */
- : STM32_COMP_CMP2INSEL_INM6);/* PA2: C0_CC1 */
- } else {
- /* DUT use the right comparator inverted input for COMP1 */
- STM32_COMP_CSR = (val & ~STM32_COMP_CMP1INSEL_MASK) |
- (polarity ? STM32_COMP_CMP1INSEL_INM5 /* PA5: C1_CC2 */
- : STM32_COMP_CMP1INSEL_INM6);/* PA0: C1_CC1 */
- }
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- const struct gpio_info *c2 = gpio_list + GPIO_USB_CHG_CC2_TX_DATA;
- const struct gpio_info *c1 = gpio_list + GPIO_USB_CHG_CC1_TX_DATA;
- const struct gpio_info *d2 = gpio_list + GPIO_USB_DUT_CC2_TX_DATA;
- const struct gpio_info *d1 = gpio_list + GPIO_USB_DUT_CC1_TX_DATA;
-
- gpio_config_module(MODULE_USB_PD, 1);
- /* Select the proper alternate SPI function on TX_DATA pins */
- /* USB_CHG_CC2_TX_DATA: PA6 is SPI1 MISO (AF0) */
- gpio_set_alternate_function(c2->port, c2->mask, 0);
- gpio_set_flags_by_mask(c2->port, c2->mask, GPIO_INPUT);
- /* USB_CHG_CC1_TX_DATA: PB4 is SPI1 MISO (AF0) */
- gpio_set_alternate_function(c1->port, c1->mask, 0);
- gpio_set_flags_by_mask(c1->port, c1->mask, GPIO_INPUT);
- /* USB_DUT_CC2_TX_DATA: PC2 is SPI2 MISO (AF1) */
- gpio_set_alternate_function(d2->port, d2->mask, 1);
- gpio_set_flags_by_mask(d2->port, d2->mask, GPIO_INPUT);
- /* USB_DUT_CC1_TX_DATA: PB14 is SPI2 MISO (AF0) */
- gpio_set_alternate_function(d1->port, d1->mask, 0);
- gpio_set_flags_by_mask(d1->port, d1->mask, GPIO_INPUT);
-}
-
-static inline void pd_set_host_mode(int port, int enable)
-{
- /*
- * CHG (port == 0) port has fixed Rd attached and therefore can only
- * present as a SNK device. If port != DUT (port == 1), then nothing to
- * do in this function.
- */
- if (!port)
- return;
-
- if (enable) {
- /*
- * Servo_v4 in SRC mode acts as a DTS (debug test
- * accessory) and needs to present Rp on both CC
- * lines. In order to support orientation detection, and
- * advertise the correct TypeC current level, the
- * values of Rp1/Rp2 need to asymmetric with Rp1 > Rp2. This
- * function is called without a specified Rp value so assume the
- * servo_v4 default of USB level current. If a higher current
- * can be supported, then the Rp value will get adjusted when
- * VBUS is enabled.
- */
- pd_set_rp_rd(port, TYPEC_CC_RP, TYPEC_RP_USB);
-
- gpio_set_flags(GPIO_USB_DUT_CC1_TX_DATA, GPIO_INPUT);
- gpio_set_flags(GPIO_USB_DUT_CC2_TX_DATA, GPIO_INPUT);
- } else {
- /* Select Rd, the Rp value is a don't care */
- pd_set_rp_rd(port, TYPEC_CC_RD, TYPEC_RP_RESERVED);
- }
-}
-
-/**
- * Initialize various GPIOs and interfaces to safe state at start of pd_task.
- *
- * These include:
- * VBUS, charge path based on power role.
- * Physical layer CC transmit.
- *
- * @param port USB-C port number
- * @param power_role Power role of device
- */
-static inline void pd_config_init(int port, uint8_t power_role)
-{
- /*
- * Set CC pull resistors. The PD state machine will then transit and
- * enable VBUS after it detects valid voltages on CC lines.
- */
- pd_set_host_mode(port, power_role);
-
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
-
-}
-
-int pd_adc_read(int port, int cc);
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
-
diff --git a/board/servo_v4/usb_pd_policy.c b/board/servo_v4/usb_pd_policy.c
deleted file mode 100644
index 00eaa1e628..0000000000
--- a/board/servo_v4/usb_pd_policy.c
+++ /dev/null
@@ -1,1419 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#include "atomic.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-/* Just want the .h file for PS8742 definitions, not the large object file. */
-#define CONFIG_USB_MUX_PS8742
-#include "ps8740.h"
-#undef CONFIG_USB_MUX_PS8742
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_common.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_config.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define DUT_PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP |\
- PDO_FIXED_COMM_CAP)
-
-#define CHG_PDO_FIXED_FLAGS (PDO_FIXED_DATA_SWAP)
-
-#define VBUS_UNCHANGED(curr, pend, new) (curr == new && pend == new)
-
-/* Macros to config the PD role */
-#define CONF_SET_CLEAR(c, set, clear) ((c | (set)) & ~(clear))
-#define CONF_SRC(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS | CC_ALLOW_SRC, \
- CC_ENABLE_DRP | CC_SNK_WITH_PD)
-#define CONF_SNK(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS, \
- CC_ALLOW_SRC | CC_ENABLE_DRP | CC_SNK_WITH_PD)
-#define CONF_PDSNK(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS | CC_SNK_WITH_PD, \
- CC_ALLOW_SRC | CC_ENABLE_DRP)
-#define CONF_DRP(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS | CC_ALLOW_SRC | CC_ENABLE_DRP, \
- CC_SNK_WITH_PD)
-#define CONF_SRCDTS(c) CONF_SET_CLEAR(c, \
- CC_ALLOW_SRC, \
- CC_ENABLE_DRP | CC_DISABLE_DTS | CC_SNK_WITH_PD)
-#define CONF_SNKDTS(c) CONF_SET_CLEAR(c, \
- 0, \
- CC_ALLOW_SRC | CC_ENABLE_DRP | \
- CC_DISABLE_DTS | CC_SNK_WITH_PD)
-#define CONF_PDSNKDTS(c) CONF_SET_CLEAR(c, \
- CC_SNK_WITH_PD, \
- CC_ALLOW_SRC | CC_ENABLE_DRP | CC_DISABLE_DTS)
-#define CONF_DRPDTS(c) CONF_SET_CLEAR(c, \
- CC_ALLOW_SRC | CC_ENABLE_DRP, \
- CC_DISABLE_DTS | CC_SNK_WITH_PD)
-
-/* Macros to apply Rd/Rp to CC lines */
-#define DUT_ACTIVE_CC_SET(r, flags) \
- gpio_set_flags(cc_config & CC_POLARITY ? \
- CONCAT2(GPIO_USB_DUT_CC2_, r) : \
- CONCAT2(GPIO_USB_DUT_CC1_, r), \
- flags)
-#define DUT_INACTIVE_CC_SET(r, flags) \
- gpio_set_flags(cc_config & CC_POLARITY ? \
- CONCAT2(GPIO_USB_DUT_CC1_, r) : \
- CONCAT2(GPIO_USB_DUT_CC2_, r), \
- flags)
-#define DUT_BOTH_CC_SET(r, flags) \
- do { \
- gpio_set_flags(CONCAT2(GPIO_USB_DUT_CC1_, r), flags); \
- gpio_set_flags(CONCAT2(GPIO_USB_DUT_CC2_, r), flags); \
- } while (0)
-
-#define DUT_ACTIVE_CC_PU(r) DUT_ACTIVE_CC_SET(r, GPIO_OUT_HIGH)
-#define DUT_INACTIVE_CC_PU(r) DUT_INACTIVE_CC_SET(r, GPIO_OUT_HIGH)
-#define DUT_ACTIVE_CC_PD(r) DUT_ACTIVE_CC_SET(r, GPIO_OUT_LOW)
-#define DUT_BOTH_CC_PD(r) DUT_BOTH_CC_SET(r, GPIO_OUT_LOW)
-#define DUT_BOTH_CC_OPEN(r) DUT_BOTH_CC_SET(r, GPIO_INPUT)
-
-/*
- * Dynamic PDO that reflects capabilities present on the CHG port. Allow for
- * multiple entries so that we can offer greater than 5V charging. The 1st
- * entry will be fixed 5V, but its current value may change based on the CHG
- * port vbus info. Subsequent entries are used for when offering vbus greater
- * than 5V.
- */
-static const uint16_t pd_src_voltages_mv[] = {
- 5000, 9000, 10000, 12000, 15000, 20000,
-};
-static uint32_t pd_src_chg_pdo[ARRAY_SIZE(pd_src_voltages_mv)];
-static uint8_t chg_pdo_cnt;
-
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, CHG_PDO_FIXED_FLAGS),
- PDO_BATT(4750, 21000, 15000),
- PDO_VAR(4750, 21000, 3000),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-struct vbus_prop {
- int mv;
- int ma;
-};
-static struct vbus_prop vbus[CONFIG_USB_PD_PORT_MAX_COUNT];
-static int active_charge_port = CHARGE_PORT_NONE;
-static enum charge_supplier active_charge_supplier;
-static uint8_t vbus_rp = TYPEC_RP_RESERVED;
-
-static int cc_config = CC_ALLOW_SRC;
-
-/* Voltage thresholds for no connect in DTS mode */
-static int pd_src_vnc_dts[TYPEC_RP_RESERVED][2] = {
- {PD_SRC_3_0_VNC_MV, PD_SRC_1_5_VNC_MV},
- {PD_SRC_1_5_VNC_MV, PD_SRC_DEF_VNC_MV},
- {PD_SRC_3_0_VNC_MV, PD_SRC_DEF_VNC_MV},
-};
-/* Voltage thresholds for Ra attach in DTS mode */
-static int pd_src_rd_threshold_dts[TYPEC_RP_RESERVED][2] = {
- {PD_SRC_3_0_RD_THRESH_MV, PD_SRC_1_5_RD_THRESH_MV},
- {PD_SRC_1_5_RD_THRESH_MV, PD_SRC_DEF_RD_THRESH_MV},
- {PD_SRC_3_0_RD_THRESH_MV, PD_SRC_DEF_RD_THRESH_MV},
-};
-/* Voltage thresholds for no connect in normal SRC mode */
-static int pd_src_vnc[TYPEC_RP_RESERVED] = {
- PD_SRC_DEF_VNC_MV,
- PD_SRC_1_5_VNC_MV,
- PD_SRC_3_0_VNC_MV,
-};
-/* Voltage thresholds for Ra attach in normal SRC mode */
-static int pd_src_rd_threshold[TYPEC_RP_RESERVED] = {
- PD_SRC_DEF_RD_THRESH_MV,
- PD_SRC_1_5_RD_THRESH_MV,
- PD_SRC_3_0_RD_THRESH_MV,
-};
-
-/* Saved value for the duration of faking PD disconnect */
-static int fake_pd_disconnect_duration_us;
-
-/* Shadow what would be in TCPC register state. */
-static int rp_value_stored = TYPEC_RP_USB;
-static int cc_pull_stored = TYPEC_CC_RD;
-
-/*
- * Set the USB PD max voltage to value appropriate for the board version.
- * The red/blue versions of servo_v4 have an ESD between VBUS and CC1/CC2
- * that has a breakdown voltage of 11V.
- */
-#define MAX_MV_RED_BLUE 9000
-
-static int user_limited_max_mv = 20000;
-
-static uint8_t allow_pr_swap = 1;
-static uint8_t allow_dr_swap = 1;
-
-static uint32_t max_supported_voltage(void)
-{
- int board_max_mv = board_get_version() >= BOARD_VERSION_BLACK ?
- PD_MAX_VOLTAGE_MV : MAX_MV_RED_BLUE;
-
- return board_max_mv < user_limited_max_mv ? board_max_mv :
- user_limited_max_mv;
-}
-
-static int charge_port_is_active(void)
-{
- return active_charge_port == CHG && vbus[CHG].mv > 0;
-}
-
-static int is_charge_through_allowed(void)
-{
- return charge_port_is_active() && cc_config & CC_ALLOW_SRC;
-}
-
-static int get_dual_role_of_src(void)
-{
- return cc_config & CC_ENABLE_DRP ? PD_DRP_TOGGLE_ON :
- PD_DRP_FORCE_SOURCE;
-}
-
-static void dut_allow_charge(void)
-{
- /*
- * Update to charge enable if charger still present and not
- * already charging.
- */
- if (is_charge_through_allowed() &&
- pd_get_dual_role(DUT) != PD_DRP_FORCE_SOURCE &&
- pd_get_dual_role(DUT) != PD_DRP_TOGGLE_ON) {
- CPRINTS("Enable DUT charge through");
- pd_set_dual_role(DUT, get_dual_role_of_src());
- /*
- * If DRP role, don't set any CC pull resistor, the PD
- * state machine will toggle and set the pull resistors
- * when needed.
- */
- if (!(cc_config & CC_ENABLE_DRP))
- pd_set_host_mode(DUT, 1);
-
- /*
- * Enable PD comm. The PD comm may be disabled during
- * the power charge-through was detached.
- */
- pd_comm_enable(DUT, 1);
-
- pd_update_contract(DUT);
- }
-}
-DECLARE_DEFERRED(dut_allow_charge);
-
-static void board_manage_dut_port(void)
-{
- enum pd_dual_role_states allowed_role;
- enum pd_dual_role_states current_role;
-
- /*
- * This function is called by the CHG port whenever there has been a
- * change in its vbus voltage or current. That change may necessitate
- * that the DUT port present a different Rp value or renogiate its PD
- * contract if it is connected.
- */
-
- /* Assume the default value of Rd */
- allowed_role = PD_DRP_FORCE_SINK;
-
- /* If VBUS charge through is available, mark as such. */
- if (is_charge_through_allowed())
- allowed_role = get_dual_role_of_src();
-
- current_role = pd_get_dual_role(DUT);
- if (current_role != allowed_role) {
- /* Update role. */
- if (allowed_role == PD_DRP_FORCE_SINK) {
- /* We've lost charge through. Disable VBUS. */
- gpio_set_level(GPIO_DUT_CHG_EN, 0);
-
- /* Mark as SNK only. */
- pd_set_dual_role(DUT, PD_DRP_FORCE_SINK);
- pd_set_host_mode(DUT, 0);
-
- /*
- * Disable PD comm. It matches the user expectation that
- * unplugging the power charge-through makes servo v4 as
- * a passive hub, without any PD support.
- *
- * There is an exception that servo v4 is explicitly set
- * to have PD, like the "pnsnk" mode.
- */
- pd_comm_enable(DUT, cc_config & CC_SNK_WITH_PD ? 1 : 0);
- } else {
- /* Allow charge through after PD negotiate. */
- hook_call_deferred(&dut_allow_charge_data, 2000 * MSEC);
- }
- }
-
- /*
- * Update PD contract to reflect new available CHG
- * voltage/current values.
- */
- pd_update_contract(DUT);
-}
-
-static void update_ports(void)
-{
- int pdo_index, src_index, snk_index, i;
- uint32_t pdo, max_ma, max_mv, unused;
-
- /*
- * CHG Vbus has changed states, update PDO that reflects CHG port
- * state
- */
- if (!charge_port_is_active()) {
- /* CHG Vbus has dropped, so become SNK. */
- chg_pdo_cnt = 0;
- } else {
- /* Advertise the 'best' PDOs at various discrete voltages */
- if (active_charge_supplier == CHARGE_SUPPLIER_PD) {
- src_index = 0;
- snk_index = -1;
-
- for (i = 0; i < ARRAY_SIZE(pd_src_voltages_mv); ++i) {
- /* Adhere to board voltage limits */
- if (pd_src_voltages_mv[i] >
- max_supported_voltage())
- break;
-
- /* Find the 'best' PDO <= voltage */
- pdo_index =
- pd_find_pdo_index(pd_get_src_cap_cnt(CHG),
- pd_get_src_caps(CHG),
- pd_src_voltages_mv[i], &pdo);
- /* Don't duplicate PDOs */
- if (pdo_index == snk_index)
- continue;
- /* Skip battery / variable PDOs */
- if ((pdo & PDO_TYPE_MASK) != PDO_TYPE_FIXED)
- continue;
-
- snk_index = pdo_index;
- pd_extract_pdo_power(pdo, &max_ma, &max_mv,
- &unused);
- pd_src_chg_pdo[src_index++] =
- PDO_FIXED_VOLT(max_mv) |
- PDO_FIXED_CURR(max_ma) |
- DUT_PDO_FIXED_FLAGS |
- PDO_FIXED_UNCONSTRAINED;
- }
- chg_pdo_cnt = src_index;
- } else {
- /* 5V PDO */
- pd_src_chg_pdo[0] = PDO_FIXED_VOLT(PD_MIN_MV) |
- PDO_FIXED_CURR(vbus[CHG].ma) |
- DUT_PDO_FIXED_FLAGS |
- PDO_FIXED_UNCONSTRAINED;
-
- chg_pdo_cnt = 1;
- }
- }
-
- /* Call DUT port manager to update Rp and possible PD contract */
- board_manage_dut_port();
-}
-
-int board_set_active_charge_port(int charge_port)
-{
- if (charge_port == DUT)
- return -1;
-
- active_charge_port = charge_port;
- update_ports();
-
- if (!charge_port_is_active())
- /* Don't negotiate > 5V, except in lockstep with DUT */
- pd_set_external_voltage_limit(CHG, PD_MIN_MV);
-
- return 0;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- if (port != CHG)
- return;
-
- active_charge_supplier = supplier;
-
- /* Update the voltage/current values for CHG port */
- vbus[CHG].ma = charge_ma;
- vbus[CHG].mv = charge_mv;
- update_ports();
-}
-
-__override uint8_t board_get_src_dts_polarity(int port)
-{
- /*
- * When servo configured as srcdts, the CC polarity is based
- * on the flags.
- */
- if (port == DUT)
- return !!(cc_config & CC_POLARITY);
-
- return 0;
-}
-
-int pd_tcpc_cc_nc(int port, int cc_volt, int cc_sel)
-{
- int rp_index;
- int nc;
-
- /* Can never be called from CHG port as it's sink only */
- if (port == CHG)
- return 0;
-
- rp_index = vbus_rp;
- /*
- * If rp_index > 2, then always return not connected. This case should
- * only happen when all Rp GPIO controls are tri-stated.
- */
- if (rp_index >= TYPEC_RP_RESERVED)
- return 1;
-
- /* Select the correct voltage threshold for current Rp and DTS mode */
- if (cc_config & CC_DISABLE_DTS)
- nc = cc_volt >= pd_src_vnc[rp_index];
- else
- nc = cc_volt >= pd_src_vnc_dts[rp_index][
- cc_config & CC_POLARITY ? !cc_sel : cc_sel];
-
- return nc;
-}
-
-int pd_tcpc_cc_ra(int port, int cc_volt, int cc_sel)
-{
- int rp_index;
- int ra;
-
- /* Can never be called from CHG port as it's sink only */
- if (port == CHG)
- return 0;
-
- rp_index = vbus_rp;
- /*
- * If rp_index > 2, then can't be Ra. This case should
- * only happen when all Rp GPIO controls are tri-stated.
- */
- if (rp_index >= TYPEC_RP_RESERVED)
- return 0;
-
- /* Select the correct voltage threshold for current Rp and DTS mode */
- if (cc_config & CC_DISABLE_DTS)
- ra = cc_volt < pd_src_rd_threshold[rp_index];
- else
- ra = cc_volt < pd_src_rd_threshold_dts[rp_index][
- cc_config & CC_POLARITY ? !cc_sel : cc_sel];
-
- return ra;
-}
-
-/* DUT CC readings aren't valid if we aren't applying CC pulls */
-bool cc_is_valid(void)
-{
- if ((cc_config & CC_DETACH) || (cc_pull_stored == TYPEC_CC_OPEN) ||
- ((cc_pull_stored == TYPEC_CC_RP) &&
- (rp_value_stored == TYPEC_RP_RESERVED)))
- return false;
- return true;
-}
-
-int pd_adc_read(int port, int cc)
-{
- int mv;
- if (port == 0)
- mv = adc_read_channel(cc ? ADC_CHG_CC2_PD : ADC_CHG_CC1_PD);
- else if (cc_is_valid()) {
- /*
- * In servo v4 hardware logic, both CC lines are wired directly
- * to DUT. When servo v4 as a snk, DUT may source Vconn to CC2
- * (CC1 if polarity flip) and make the voltage high as vRd-3.0,
- * which makes the PD state mess up. As the PD state machine
- * doesn't handle this case. It assumes that CC2 (CC1 if
- * polarity flip) is separated by a Type-C cable, resulting a
- * voltage lower than the max of vRa.
- *
- * It fakes the voltage within vRa.
- */
- if ((cc_config & CC_DISABLE_DTS) &&
- cc_pull_stored == TYPEC_CC_RD && port == DUT &&
- cc == (cc_config & CC_POLARITY ? 0 : 1))
- mv = 0;
- else
- mv = adc_read_channel(cc ? ADC_DUT_CC2_PD :
- ADC_DUT_CC1_PD);
- } else {
- /*
- * When emulating detach, fake the voltage on CC to 0 to avoid
- * triggering some debounce logic.
- *
- * The servo v4 makes Rd/Rp open but the DUT may present Rd/Rp
- * alternatively that makes the voltage on CC falls into some
- * unexpected range and triggers the PD state machine switching
- * between SNK_DISCONNECTED and SNK_DISCONNECTED_DEBOUNCE.
- */
- mv = 0;
- }
- return mv;
-}
-
-static int board_set_rp(int rp)
-{
- if (cc_config & CC_DISABLE_DTS) {
- /*
- * DTS mode is disabled, so only present the requested Rp value
- * on CC1 (active) and leave all Rp/Rd resistors on CC2
- * (inactive) disconnected.
- */
- switch (rp) {
- case TYPEC_RP_USB:
- DUT_ACTIVE_CC_PU(RPUSB);
- break;
- case TYPEC_RP_1A5:
- DUT_ACTIVE_CC_PU(RP1A5);
- break;
- case TYPEC_RP_3A0:
- DUT_ACTIVE_CC_PU(RP3A0);
- break;
- case TYPEC_RP_RESERVED:
- /*
- * This case can be used to force a detach event since
- * all values are set to inputs above. Nothing else to
- * set.
- */
- break;
- default:
- return EC_ERROR_INVAL;
- }
- } else {
- /* DTS mode is enabled. The rp parameter is used to select the
- * Type C current limit to advertise. The combinations of Rp on
- * each CC line is shown in the table below.
- *
- * CC values for Debug sources (DTS)
- *
- * Source type Mode of Operation CC1 CC2
- * ---------------------------------------------
- * DTS Default USB Power Rp3A0 Rp1A5
- * DTS USB-C @ 1.5 A Rp1A5 RpUSB
- * DTS USB-C @ 3 A Rp3A0 RpUSB
- */
- switch (rp) {
- case TYPEC_RP_USB:
- DUT_ACTIVE_CC_PU(RP3A0);
- DUT_INACTIVE_CC_PU(RP1A5);
- break;
- case TYPEC_RP_1A5:
- DUT_ACTIVE_CC_PU(RP1A5);
- DUT_INACTIVE_CC_PU(RPUSB);
- break;
- case TYPEC_RP_3A0:
- DUT_ACTIVE_CC_PU(RP3A0);
- DUT_INACTIVE_CC_PU(RPUSB);
- break;
- case TYPEC_RP_RESERVED:
- /*
- * This case can be used to force a detach event since
- * all values are set to inputs above. Nothing else to
- * set.
- */
- break;
- default:
- return EC_ERROR_INVAL;
- }
- }
- /* Save new Rp value for DUT port */
- vbus_rp = rp;
-
- return EC_SUCCESS;
-}
-
-int pd_set_rp_rd(int port, int cc_pull, int rp_value)
-{
- int rv = EC_SUCCESS;
-
- if (port != 1)
- return EC_ERROR_UNIMPLEMENTED;
-
- /* CC is disabled for emulating detach. Don't change Rd/Rp. */
- if (cc_config & CC_DETACH)
- return EC_SUCCESS;
-
- /* By default disconnect all Rp/Rd resistors from both CC lines */
- /* Set Rd for CC1/CC2 to High-Z. */
- DUT_BOTH_CC_OPEN(RD);
- /* Set Rp for CC1/CC2 to High-Z. */
- DUT_BOTH_CC_OPEN(RP3A0);
- DUT_BOTH_CC_OPEN(RP1A5);
- DUT_BOTH_CC_OPEN(RPUSB);
- /* Set TX Hi-Z */
- DUT_BOTH_CC_OPEN(TX_DATA);
-
- if (cc_pull == TYPEC_CC_RP) {
- rv = board_set_rp(rp_value);
- } else if (cc_pull == TYPEC_CC_RD) {
- /*
- * The DUT port uses a captive cable. It can present Rd on both
- * CC1 and CC2. If DTS mode is enabled, then present Rd on both
- * CC lines. However, if DTS mode is disabled only present Rd on
- * CC1 (active).
- */
- if (cc_config & CC_DISABLE_DTS)
- DUT_ACTIVE_CC_PD(RD);
- else
- DUT_BOTH_CC_PD(RD);
-
- }
-
- rp_value_stored = rp_value;
- cc_pull_stored = cc_pull;
-
- return rv;
-}
-
-int board_select_rp_value(int port, int rp)
-{
- if (port != 1)
- return EC_ERROR_UNIMPLEMENTED;
-
- /*
- * Update Rp value to indicate non-pd power available.
- * Do not change pull direction though.
- */
- if ((rp != rp_value_stored) && (cc_pull_stored == TYPEC_CC_RP)) {
- rp_value_stored = rp;
- return pd_set_rp_rd(port, TYPEC_CC_RP, rp);
- }
-
- return EC_SUCCESS;
-}
-
-int charge_manager_get_source_pdo(const uint32_t **src_pdo, const int port)
-{
- int pdo_cnt = 0;
-
- /*
- * If CHG is providing VBUS, then advertise what's available on the CHG
- * port, otherwise we provide no power.
- */
- if (charge_port_is_active()) {
- *src_pdo = pd_src_chg_pdo;
- pdo_cnt = chg_pdo_cnt;
- }
-
- return pdo_cnt;
-}
-
-__override void pd_transition_voltage(int idx)
-{
- timestamp_t deadline;
- uint32_t ma, mv, unused;
-
- pd_extract_pdo_power(pd_src_chg_pdo[idx - 1], &ma, &mv, &unused);
- /* Is this a transition to a new voltage? */
- if (charge_port_is_active() && vbus[CHG].mv != mv) {
- /*
- * Alter voltage limit on charge port, this should cause
- * the port to select the desired PDO.
- */
- pd_set_external_voltage_limit(CHG, mv);
-
- /* Wait for CHG transition */
- deadline.val = get_time().val + PD_T_PS_TRANSITION;
- CPRINTS("Waiting for CHG port transition");
- while (charge_port_is_active() &&
- vbus[CHG].mv != mv &&
- get_time().val < deadline.val)
- msleep(10);
-
- if (vbus[CHG].mv != mv) {
- CPRINTS("Missed CHG transition, resetting DUT");
- pd_power_supply_reset(DUT);
- return;
- }
-
- CPRINTS("CHG transitioned");
- }
-
- vbus[DUT].mv = vbus[CHG].mv;
- vbus[DUT].ma = vbus[CHG].ma;
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Port 0 can never provide vbus. */
- if (port == CHG)
- return EC_ERROR_INVAL;
-
- if (charge_port_is_active()) {
- /* Enable VBUS */
- gpio_set_level(GPIO_DUT_CHG_EN, 1);
-
- if (vbus[CHG].mv != PD_MIN_MV)
- CPRINTS("ERROR, CHG port voltage %d != PD_MIN_MV",
- vbus[CHG].mv);
-
- vbus[DUT].mv = vbus[CHG].mv;
- vbus[DUT].ma = vbus[CHG].mv;
- pd_set_dual_role(DUT, get_dual_role_of_src());
- } else {
- vbus[DUT].mv = 0;
- vbus[DUT].ma = 0;
- gpio_set_level(GPIO_DUT_CHG_EN, 0);
- pd_set_dual_role(DUT, PD_DRP_FORCE_SINK);
- return EC_ERROR_NOT_POWERED;
- }
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Port 0 can never provide vbus. */
- if (port == CHG)
- return;
-
- /* Disable VBUS */
- gpio_set_level(GPIO_DUT_CHG_EN, 0);
-
- /* DUT is lost, back to 5V limit on CHG */
- pd_set_external_voltage_limit(CHG, PD_MIN_MV);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
-
- return gpio_get_level(port ? GPIO_USB_DET_PP_DUT :
- GPIO_USB_DET_PP_CHG);
-}
-
-__override int pd_check_power_swap(int port)
-{
- /*
- * When only host VBUS is available, then servo_v4 is not setting
- * PDO_FIXED_UNCONSTRAINED in the src_pdo sent to the DUT. When this bit
- * is not set, the DUT will always attempt to swap its power role to
- * SRC. Let servo_v4 have more control over its power role by always
- * rejecting power swap requests from the DUT.
- */
-
- /* Port 0 can never provide vbus. */
- if (port == CHG)
- return 0;
-
- if (pd_get_power_role(port) == PD_ROLE_SINK && !(cc_config & CC_ALLOW_SRC))
- return 0;
-
- if (pd_snk_is_vbus_provided(CHG))
- return allow_pr_swap;
-
- return 0;
-}
-
-__override int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /*
- * Servo should allow data role swaps to let DUT see the USB hub, but
- * doing it on CHG port is a waste as its data lines is unconnected.
- */
- if (port == CHG)
- return 0;
-
- return allow_dr_swap;
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /*
- * TODO(b/137887386): Turn on the fastboot/DFU path when data swap to
- * DFP?
- */
-}
-
-__override void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
- /*
- * Don't define any policy to initiate power role swap.
- *
- * CHG port is SNK only. DUT port requires a user to switch its
- * role by commands. So don't do anything implicitly.
- */
-}
-
-__override void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
- if (port == CHG)
- return;
-
- /* If DFP, try to switch to UFP, to let DUT see the USB hub. */
- if ((flags & PD_FLAGS_PARTNER_DR_DATA) && dr_role == PD_ROLE_DFP)
- pd_request_data_swap(port);
-}
-
-
-/* ----------------- Vendor Defined Messages ------------------ */
-/*
- * DP alt-mode config, user configurable.
- * Default is the mode disabled, supporting the C and D pin assignment,
- * multi-function preferred, and a plug.
- */
-static int alt_dp_config = (ALT_DP_PIN_C | ALT_DP_PIN_D | ALT_DP_MF_PREF |
- ALT_DP_PLUG);
-
-/**
- * Get the pins based on the user config.
- */
-static int alt_dp_config_pins(void)
-{
- int pins = 0;
-
- if (alt_dp_config & ALT_DP_PIN_C)
- pins |= MODE_DP_PIN_C;
- if (alt_dp_config & ALT_DP_PIN_D)
- pins |= MODE_DP_PIN_D;
- if (alt_dp_config & ALT_DP_PIN_E)
- pins |= MODE_DP_PIN_E;
- return pins;
-}
-
-/**
- * Get the cable outlet value (plug or receptacle) based on the user config.
- */
-static int alt_dp_config_cable(void)
-{
- return (alt_dp_config & ALT_DP_PLUG) ? CABLE_PLUG : CABLE_RECEPTACLE;
-}
-
-const uint32_t vdo_idh = VDO_IDH(0, /* data caps as USB host */
- 1, /* data caps as USB device */
- IDH_PTYPE_AMA, /* Alternate mode */
- 1, /* supports alt modes */
- USB_VID_GOOGLE);
-
-const uint32_t vdo_product = VDO_PRODUCT(CONFIG_USB_PID, CONFIG_USB_BCD_DEV);
-
-const uint32_t vdo_ama = VDO_AMA(CONFIG_USB_PD_IDENTITY_HW_VERS,
- CONFIG_USB_PD_IDENTITY_SW_VERS,
- 0, 0, 0, 0, /* SS[TR][12] */
- 0, /* Vconn power */
- 0, /* Vconn power required */
- 0, /* Vbus power required */
- AMA_USBSS_U31_GEN1 /* USB SS support */);
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- int dp_supported = (alt_dp_config & ALT_DP_ENABLE) != 0;
-
- if (dp_supported) {
- payload[VDO_I(IDH)] = vdo_idh;
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- payload[VDO_I(AMA)] = vdo_ama;
- return VDO_I(AMA) + 1;
- } else {
- return 0;
- }
-}
-
-static int svdm_response_svids(int port, uint32_t *payload)
-{
- payload[1] = VDO_SVID(USB_SID_DISPLAYPORT, 0);
- return 2;
-}
-
-#define MODE_CNT 1
-#define OPOS 1
-
-/*
- * The Type-C demux PS8742 supports pin assignment C, D, and E. Response the DP
- * capabilities with supporting all of them.
- */
-uint32_t vdo_dp_mode[MODE_CNT];
-
-static int svdm_response_modes(int port, uint32_t *payload)
-{
- vdo_dp_mode[0] =
- VDO_MODE_DP(0, /* UFP pin cfg supported: none */
- alt_dp_config_pins(), /* DFP pin */
- 1, /* no usb2.0 signalling in AMode */
- alt_dp_config_cable(), /* plug or receptacle */
- MODE_DP_V13, /* DPv1.3 Support, no Gen2 */
- MODE_DP_SNK); /* Its a sink only */
-
- /* CCD uses the SBU lines; don't enable DP when dts-mode enabled */
- if (!(cc_config & CC_DISABLE_DTS))
- return 0; /* NAK */
-
- if (PD_VDO_VID(payload[0]) != USB_SID_DISPLAYPORT)
- return 0; /* NAK */
-
- memcpy(payload + 1, vdo_dp_mode, sizeof(vdo_dp_mode));
- return MODE_CNT + 1;
-}
-
-static int is_typec_dp_muxed(void)
-{
- int value;
-
- i2c_read8(I2C_PORT_MASTER, PS8740_I2C_ADDR0_FLAG, PS8740_REG_MODE,
- &value);
- return value & PS8740_MODE_DP_ENABLED ? 1 : 0;
-}
-
-static void set_typec_mux(int pin_cfg)
-{
- int value;
-
- switch (pin_cfg) {
- case 0:
- value = 0;
- CPRINTS("PinCfg:off");
- break;
- case MODE_DP_PIN_C:
- value = PS8740_MODE_DP_ENABLED;
- CPRINTS("PinCfg:C");
- break;
- case MODE_DP_PIN_D:
- value = PS8740_MODE_DP_ENABLED | PS8740_MODE_USB_ENABLED;
- CPRINTS("PinCfg:D");
- break;
- case MODE_DP_PIN_E:
- value = PS8740_MODE_DP_ENABLED | PS8740_MODE_CE_DP_ENABLED;
- CPRINTS("PinCfg:E");
- break;
- default:
- CPRINTS("PinCfg not supported: %d", pin_cfg);
- return;
- }
- if (value && cc_config & CC_POLARITY)
- value |= PS8740_MODE_POLARITY_INVERTED;
- i2c_write8(I2C_PORT_MASTER, PS8740_I2C_ADDR0_FLAG, PS8740_REG_MODE,
- value);
-}
-
-static int get_hpd_level(void)
-{
- if (alt_dp_config & ALT_DP_OVERRIDE_HPD)
- return (alt_dp_config & ALT_DP_HPD_LVL) != 0;
- else
- return gpio_get_level(GPIO_DP_HPD);
-}
-
-static int dp_status(int port, uint32_t *payload)
-{
- int opos = PD_VDO_OPOS(payload[0]);
- int hpd = get_hpd_level();
-
- if (opos != OPOS)
- return 0; /* NAK */
-
- payload[1] = VDO_DP_STATUS(
- 0, /* IRQ_HPD */
- hpd, /* HPD_HI|LOW */
- 0, /* request exit DP */
- 0, /* request exit USB */
- (alt_dp_config & ALT_DP_MF_PREF) != 0, /* MF pref */
- is_typec_dp_muxed(),
- 0, /* power low */
- hpd ? 0x2 : 0);
- return 2;
-}
-
-static int dp_config(int port, uint32_t *payload)
-{
- if (PD_DP_CFG_DPON(payload[1]))
- set_typec_mux(PD_DP_CFG_PIN(payload[1]));
-
- return 1;
-}
-
-/* Whether alternate mode has been entered or not */
-static int alt_mode;
-
-static int svdm_enter_mode(int port, uint32_t *payload)
-{
- /* SID & mode request is valid */
- if ((PD_VDO_VID(payload[0]) != USB_SID_DISPLAYPORT) ||
- (PD_VDO_OPOS(payload[0]) != OPOS))
- return 0; /* NAK */
-
- alt_mode = OPOS;
- return 1;
-}
-
-int pd_alt_mode(int port, enum tcpci_msg_type type, uint16_t svid)
-{
- if (type == TCPCI_MSG_SOP && svid == USB_SID_DISPLAYPORT)
- return alt_mode;
-
- return 0;
-}
-
-static int svdm_exit_mode(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT)
- set_typec_mux(0);
-
- alt_mode = 0;
-
- return 1; /* Must return ACK */
-}
-
-static struct amode_fx dp_fx = {
- .status = &dp_status,
- .config = &dp_config,
-};
-
-const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = &svdm_response_svids,
- .modes = &svdm_response_modes,
- .enter_mode = &svdm_enter_mode,
- .amode = &dp_fx,
- .exit_mode = &svdm_exit_mode,
-};
-
-__override int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- int cmd = PD_VDO_CMD(payload[0]);
-
- /* make sure we have some payload */
- if (cnt == 0)
- return 0;
-
- switch (cmd) {
- case VDO_CMD_VERSION:
- /* guarantee last byte of payload is null character */
- *(payload + cnt - 1) = 0;
- CPRINTF("ver: %s\n", (char *)(payload+1));
- break;
- case VDO_CMD_CURRENT:
- CPRINTF("Current: %dmA\n", payload[1]);
- break;
- }
-
- return 0;
-}
-
-__override const struct svdm_amode_fx supported_modes[] = {};
-__override const int supported_modes_cnt = ARRAY_SIZE(supported_modes);
-
-static void print_cc_mode(void)
-{
- /* Get current CCD status */
- ccprintf("cc: %s\n", cc_config & CC_DETACH ? "off" : "on");
- ccprintf("dts mode: %s\n", cc_config & CC_DISABLE_DTS ? "off" : "on");
- ccprintf("chg mode: %s\n",
- gpio_get_level(GPIO_DUT_CHG_EN) ? "on" : "off");
- ccprintf("chg allowed: %s\n", cc_config & CC_ALLOW_SRC ? "on" : "off");
- ccprintf("drp enabled: %s\n", cc_config & CC_ENABLE_DRP ? "on" : "off");
- ccprintf("cc polarity: %s\n", cc_config & CC_POLARITY ? "cc2" :
- "cc1");
- ccprintf("pd enabled: %s\n", pd_comm_is_enabled(DUT) ? "on" : "off");
-}
-
-
-static void do_cc(int cc_config_new)
-{
- int chargeable;
- int dualrole;
-
- if (cc_config_new != cc_config) {
- if (!(cc_config & CC_DETACH)) {
- /* Force detach */
- gpio_set_level(GPIO_DUT_CHG_EN, 0);
- /* Always set to 0 here so both CC lines are changed */
- cc_config &= ~(CC_DISABLE_DTS & CC_ALLOW_SRC);
-
- /* Remove Rp/Rd on both CC lines */
- pd_comm_enable(DUT, 0);
- pd_set_rp_rd(DUT, TYPEC_CC_RP, TYPEC_RP_RESERVED);
-
- /*
- * If just changing mode (cc keeps enabled), give some
- * time for DUT to detach, use tErrorRecovery.
- */
- if (!(cc_config_new & CC_DETACH))
- usleep(PD_T_ERROR_RECOVERY);
- }
-
- if ((cc_config & ~cc_config_new) & CC_DISABLE_DTS) {
- /* DTS-disabled -> DTS-enabled */
- ccd_enable(1);
- ext_hpd_detection_enable(0);
- } else if ((cc_config_new & ~cc_config) & CC_DISABLE_DTS) {
- /* DTS-enabled -> DTS-disabled */
- ccd_enable(0);
- if (!(alt_dp_config & ALT_DP_OVERRIDE_HPD))
- ext_hpd_detection_enable(1);
- }
-
- /* Accept new cc_config value */
- cc_config = cc_config_new;
-
- if (!(cc_config & CC_DETACH)) {
- /* Can we source? */
- chargeable = is_charge_through_allowed();
- dualrole = chargeable ? get_dual_role_of_src() :
- PD_DRP_FORCE_SINK;
- pd_set_dual_role(DUT, dualrole);
- /*
- * If force_source or force_sink role, explicitly set
- * the Rp or Rd resistors on CC lines.
- *
- * If DRP role, don't set any CC pull resistor, the PD
- * state machine will toggle and set the pull resistors
- * when needed.
- */
- if (dualrole != PD_DRP_TOGGLE_ON)
- pd_set_host_mode(DUT, chargeable);
-
- /*
- * For the normal lab use, emulating a sink has no PD
- * comm, like a passive hub. For the PD FAFT use, we
- * need to validate some PD behavior, so a flag
- * CC_SNK_WITH_PD to force enabling PD comm.
- */
- if (cc_config & CC_SNK_WITH_PD)
- pd_comm_enable(DUT, 1);
- else
- pd_comm_enable(DUT, chargeable);
- }
- }
-}
-
-static int command_cc(int argc, char **argv)
-{
- int cc_config_new = cc_config;
-
- if (argc < 2) {
- print_cc_mode();
- return EC_SUCCESS;
- }
-
- if (!strcasecmp(argv[1], "off")) {
- cc_config_new |= CC_DETACH;
- } else if (!strcasecmp(argv[1], "on")) {
- cc_config_new &= ~CC_DETACH;
- } else {
- cc_config_new &= ~CC_DETACH;
- if (!strcasecmp(argv[1], "src"))
- cc_config_new = CONF_SRC(cc_config_new);
- else if (!strcasecmp(argv[1], "snk"))
- cc_config_new = CONF_SNK(cc_config_new);
- else if (!strcasecmp(argv[1], "pdsnk"))
- cc_config_new = CONF_PDSNK(cc_config_new);
- else if (!strcasecmp(argv[1], "drp"))
- cc_config_new = CONF_DRP(cc_config_new);
- else if (!strcasecmp(argv[1], "srcdts"))
- cc_config_new = CONF_SRCDTS(cc_config_new);
- else if (!strcasecmp(argv[1], "snkdts"))
- cc_config_new = CONF_SNKDTS(cc_config_new);
- else if (!strcasecmp(argv[1], "pdsnkdts"))
- cc_config_new = CONF_PDSNKDTS(cc_config_new);
- else if (!strcasecmp(argv[1], "drpdts"))
- cc_config_new = CONF_DRPDTS(cc_config_new);
- else
- return EC_ERROR_PARAM2;
- }
-
- if (!strcasecmp(argv[2], "cc1"))
- cc_config_new &= ~CC_POLARITY;
- else if (!strcasecmp(argv[2], "cc2"))
- cc_config_new |= CC_POLARITY;
- else if (argc >= 3)
- return EC_ERROR_PARAM3;
-
- do_cc(cc_config_new);
- print_cc_mode();
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(cc, command_cc,
- "[off|on|src|snk|pdsnk|drp|srcdts|snkdts|pdsnkdts|"
- "drpdts] [cc1|cc2]",
- "Servo_v4 DTS and CHG mode");
-
-static void fake_disconnect_end(void)
-{
- /* Reenable CC lines with previous dts and src modes */
- do_cc(cc_config & ~CC_DETACH);
-}
-DECLARE_DEFERRED(fake_disconnect_end);
-
-static void fake_disconnect_start(void)
-{
- /* Disable CC lines */
- do_cc(cc_config | CC_DETACH);
-
- hook_call_deferred(&fake_disconnect_end_data,
- fake_pd_disconnect_duration_us);
-}
-DECLARE_DEFERRED(fake_disconnect_start);
-
-static int cmd_fake_disconnect(int argc, char *argv[])
-{
- int delay_ms, duration_ms;
- char *e;
-
- if (argc < 3)
- return EC_ERROR_PARAM_COUNT;
-
- delay_ms = strtoi(argv[1], &e, 0);
- if (*e || delay_ms < 0)
- return EC_ERROR_PARAM1;
- duration_ms = strtoi(argv[2], &e, 0);
- if (*e || duration_ms < 0)
- return EC_ERROR_PARAM2;
-
- /* Cancel any pending function calls */
- hook_call_deferred(&fake_disconnect_start_data, -1);
- hook_call_deferred(&fake_disconnect_end_data, -1);
-
- fake_pd_disconnect_duration_us = duration_ms * MSEC;
- hook_call_deferred(&fake_disconnect_start_data, delay_ms * MSEC);
-
- ccprintf("Fake disconnect for %d ms starting in %d ms.\n",
- duration_ms, delay_ms);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(fakedisconnect, cmd_fake_disconnect,
- "<delay_ms> <duration_ms>", NULL);
-
-static int cmd_ada_srccaps(int argc, char *argv[])
-{
- int i;
- const uint32_t * const ada_srccaps = pd_get_src_caps(CHG);
-
- for (i = 0; i < pd_get_src_cap_cnt(CHG); ++i) {
- uint32_t max_ma, max_mv, unused;
-
- if (IS_ENABLED(CONFIG_USB_PD_ONLY_FIXED_PDOS) &&
- (ada_srccaps[i] & PDO_TYPE_MASK) != PDO_TYPE_FIXED)
- continue;
-
- pd_extract_pdo_power(ada_srccaps[i], &max_ma, &max_mv, &unused);
- ccprintf("%d: %dmV/%dmA\n", i, max_mv, max_ma);
- }
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(ada_srccaps, cmd_ada_srccaps,
- "",
- "Print adapter SrcCap");
-
-static int cmd_dp_action(int argc, char *argv[])
-{
- int i;
- char *e;
-
- if (argc < 1)
- return EC_ERROR_PARAM_COUNT;
-
- if (argc == 1) {
- CPRINTS("DP alt-mode: %s",
- (alt_dp_config & ALT_DP_ENABLE) ? "enable" : "disable");
- }
-
- if (!strcasecmp(argv[1], "enable")) {
- alt_dp_config |= ALT_DP_ENABLE;
- } else if (!strcasecmp(argv[1], "disable")) {
- alt_dp_config &= ~ALT_DP_ENABLE;
- } else if (!strcasecmp(argv[1], "pins")) {
- if (argc >= 3) {
- alt_dp_config &= ~(ALT_DP_PIN_C | ALT_DP_PIN_D |
- ALT_DP_PIN_E);
- for (i = 0; i < 3; i++) {
- if (!argv[2][i])
- break;
-
- switch (argv[2][i]) {
- case 'c':
- case 'C':
- alt_dp_config |= ALT_DP_PIN_C;
- break;
- case 'd':
- case 'D':
- alt_dp_config |= ALT_DP_PIN_D;
- break;
- case 'e':
- case 'E':
- alt_dp_config |= ALT_DP_PIN_E;
- break;
- }
- }
- }
- CPRINTS("Pins: %s%s%s",
- (alt_dp_config & ALT_DP_PIN_C) ? "C" : "",
- (alt_dp_config & ALT_DP_PIN_D) ? "D" : "",
- (alt_dp_config & ALT_DP_PIN_E) ? "E" : "");
- } else if (!strcasecmp(argv[1], "mf")) {
- if (argc >= 3) {
- i = strtoi(argv[2], &e, 10);
- if (*e)
- return EC_ERROR_PARAM3;
- if (i)
- alt_dp_config |= ALT_DP_MF_PREF;
- else
- alt_dp_config &= ~ALT_DP_MF_PREF;
- }
- CPRINTS("MF pref: %d", (alt_dp_config & ALT_DP_MF_PREF) != 0);
- } else if (!strcasecmp(argv[1], "plug")) {
- if (argc >= 3) {
- i = strtoi(argv[2], &e, 10);
- if (*e)
- return EC_ERROR_PARAM3;
- if (i)
- alt_dp_config |= ALT_DP_PLUG;
- else
- alt_dp_config &= ~ALT_DP_PLUG;
- }
- CPRINTS("Plug or receptacle: %d",
- (alt_dp_config & ALT_DP_PLUG) != 0);
- } else if (!strcasecmp(argv[1], "hpd")) {
- if (argc >= 3) {
- if (!strncasecmp(argv[2], "ext", 3)) {
- alt_dp_config &= ~ALT_DP_OVERRIDE_HPD;
- ext_hpd_detection_enable(1);
- } else if (!strncasecmp(argv[2], "h", 1)) {
- alt_dp_config |= ALT_DP_OVERRIDE_HPD;
- alt_dp_config |= ALT_DP_HPD_LVL;
- /*
- * Modify the HPD to high. Need to enable the
- * external HPD signal monitoring. A monitor
- * may send a IRQ at any time to notify DUT.
- */
- ext_hpd_detection_enable(1);
- pd_send_hpd(DUT, hpd_high);
- } else if (!strncasecmp(argv[2], "l", 1)) {
- alt_dp_config |= ALT_DP_OVERRIDE_HPD;
- alt_dp_config &= ~ALT_DP_HPD_LVL;
- ext_hpd_detection_enable(0);
- pd_send_hpd(DUT, hpd_low);
- } else if (!strcasecmp(argv[2], "irq")) {
- pd_send_hpd(DUT, hpd_irq);
- }
- }
- CPRINTS("HPD source: %s",
- (alt_dp_config & ALT_DP_OVERRIDE_HPD) ? "overridden"
- : "external");
- CPRINTS("HPD level: %d", get_hpd_level());
- } else if (!strcasecmp(argv[1], "help")) {
- CPRINTS("Usage: usbc_action dp [enable|disable|hpd|mf|pins|"
- "plug]");
- }
-
- return EC_SUCCESS;
-}
-
-static int cmd_usbc_action(int argc, char *argv[])
-{
- if (argc >= 2 && !strcasecmp(argv[1], "dp"))
- return cmd_dp_action(argc - 1, &argv[1]);
-
- if (argc != 2 && argc != 3)
- return EC_ERROR_PARAM_COUNT;
-
- /* TODO(b:140256624): drop *v command if we migrate to chg cmd. */
- if (!strcasecmp(argv[1], "5v")) {
- do_cc(CONF_SRC(cc_config));
- user_limited_max_mv = 5000;
- update_ports();
- } else if (!strcasecmp(argv[1], "12v")) {
- do_cc(CONF_SRC(cc_config));
- user_limited_max_mv = 12000;
- update_ports();
- } else if (!strcasecmp(argv[1], "20v")) {
- do_cc(CONF_SRC(cc_config));
- user_limited_max_mv = 20000;
- update_ports();
- } else if (!strcasecmp(argv[1], "dev")) {
- /* Set the limit back to original */
- user_limited_max_mv = 20000;
- do_cc(CONF_PDSNK(cc_config));
- } else if (!strcasecmp(argv[1], "pol0")) {
- do_cc(cc_config & ~CC_POLARITY);
- } else if (!strcasecmp(argv[1], "pol1")) {
- do_cc(cc_config | CC_POLARITY);
- } else if (!strcasecmp(argv[1], "drp")) {
- /* Toggle the DRP state, compatible with Plankton. */
- do_cc(cc_config ^ CC_ENABLE_DRP);
- CPRINTF("DRP = %d, host_mode = %d\n",
- !!(cc_config & CC_ENABLE_DRP),
- !!(cc_config & CC_ALLOW_SRC));
- } else if (!strcasecmp(argv[1], "chg")) {
- int sink_v;
-
- if (argc != 3)
- return EC_ERROR_PARAM2;
-
- sink_v = atoi(argv[2]);
- if (!sink_v)
- return EC_ERROR_PARAM2;
-
- user_limited_max_mv = sink_v * 1000;
- do_cc(CONF_SRC(cc_config));
- update_ports();
- /*
- * TODO(b:140256624): servod captures 'chg SRC' keyword to
- * recognize if this command is supported in the firmware.
- * Drop this message if when we phase out the usbc_role control.
- */
- ccprintf("CHG SRC %dmV\n", user_limited_max_mv);
- } else if (!strcasecmp(argv[1], "drswap")) {
- if (argc == 2) {
- CPRINTF("allow_dr_swap = %d\n", allow_dr_swap);
- return EC_SUCCESS;
- }
-
- if (argc != 3)
- return EC_ERROR_PARAM2;
-
- allow_dr_swap = !!atoi(argv[2]);
-
- } else if (!strcasecmp(argv[1], "prswap")) {
- if (argc == 2) {
- CPRINTF("allow_pr_swap = %d\n", allow_pr_swap);
- return EC_SUCCESS;
- }
-
- if (argc != 3)
- return EC_ERROR_PARAM2;
-
- allow_pr_swap = !!atoi(argv[2]);
- } else {
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(usbc_action, cmd_usbc_action,
- "5v|12v|20v|dev|pol0|pol1|drp|dp|chg x(x=voltage)|"
- "drswap [1|0]|prswap [1|0]",
- "Set Servo v4 type-C port state");
diff --git a/board/servo_v4/vif_override.xml b/board/servo_v4/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/servo_v4/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/servo_v4p1/board.c b/board/servo_v4p1/board.c
deleted file mode 100644
index d8616ce340..0000000000
--- a/board/servo_v4p1/board.c
+++ /dev/null
@@ -1,538 +0,0 @@
-/* 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.
- */
-/* Servo V4p1 configuration */
-
-#include "adc.h"
-#include "ccd_measure_sbu.h"
-#include "chg_control.h"
-#include "common.h"
-#include "console.h"
-#include "dacs.h"
-#include <driver/gl3590.h>
-#include "driver/ioexpander/tca64xxa.h"
-#include "ec_version.h"
-#include "fusb302b.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "ina231s.h"
-#include "ioexpanders.h"
-#include "pathsel.h"
-#include "pi3usb9201.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "tusb1064.h"
-#include "update_fw.h"
-#include "usart-stm32f0.h"
-#include "usart_tx_dma.h"
-#include "usart_rx_dma.h"
-#include "usb_gpio.h"
-#include "usb_i2c.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_spi.h"
-#include "usb-stream.h"
-#include "util.h"
-
-#ifdef SECTION_IS_RO
-#define CROS_EC_SECTION "RO"
-#else
-#define CROS_EC_SECTION "RW"
-#endif
-
-/******************************************************************************
- * GPIO interrupt handlers.
- */
-#ifdef SECTION_IS_RO
-static void vbus0_evt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_PD_C0);
-}
-
-static void vbus1_evt(enum gpio_signal signal)
-{
- task_wake(TASK_ID_PD_C1);
-}
-
-static void tca_evt(enum gpio_signal signal)
-{
- irq_ioexpanders();
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [CHG] = { /* CHG port connected directly to USB 3.0 hub, no mux */ },
- [DUT] = { /* DUT port with UFP mux */
- .usb_port = DUT,
- .i2c_port = I2C_PORT_MASTER,
- .i2c_addr_flags = TUSB1064_I2C_ADDR10_FLAGS,
- .driver = &tusb1064_usb_mux_driver,
- }
-};
-
-static volatile uint64_t hpd_prev_ts;
-static volatile int hpd_prev_level;
-
-/**
- * Hotplug detect deferred task
- *
- * Called after level change on hpd GPIO to evaluate (and debounce) what event
- * has occurred. There are 3 events that occur on HPD:
- * 1. low : downstream display sink is deattached
- * 2. high : downstream display sink is attached
- * 3. irq : downstream display sink signalling an interrupt.
- *
- * The debounce times for these various events are:
- * HPD_USTREAM_DEBOUNCE_LVL : min pulse width of level value.
- * HPD_USTREAM_DEBOUNCE_IRQ : min pulse width of IRQ low pulse.
- *
- * lvl(n-2) lvl(n-1) lvl prev_delta now_delta event
- * ----------------------------------------------------
- * 1 0 1 <IRQ n/a low glitch (ignore)
- * 1 0 1 >IRQ <LVL irq
- * x 0 1 n/a >LVL high
- * 0 1 0 <LVL n/a high glitch (ignore)
- * x 1 0 n/a >LVL low
- */
-
-void hpd_irq_deferred(void)
-{
- int dp_mode = pd_alt_mode(1, TCPCI_MSG_SOP, USB_SID_DISPLAYPORT);
-
- if (dp_mode) {
- pd_send_hpd(DUT, hpd_irq);
- ccprintf("HPD IRQ");
- }
-}
-DECLARE_DEFERRED(hpd_irq_deferred);
-
-void hpd_lvl_deferred(void)
-{
- int level = gpio_get_level(GPIO_DP_HPD);
- int dp_mode = pd_alt_mode(1, TCPCI_MSG_SOP, USB_SID_DISPLAYPORT);
-
- if (level != hpd_prev_level) {
- /* It's a glitch while in deferred or canceled action */
- return;
- }
-
- if (dp_mode) {
- pd_send_hpd(DUT, level ? hpd_high : hpd_low);
- ccprintf("HPD: %d", level);
- }
-}
-DECLARE_DEFERRED(hpd_lvl_deferred);
-
-static void dp_evt(enum gpio_signal signal)
-{
- timestamp_t now = get_time();
- int level = gpio_get_level(signal);
- uint64_t cur_delta = now.val - hpd_prev_ts;
-
- /* Store current time */
- hpd_prev_ts = now.val;
-
- /* All previous hpd level events need to be re-triggered */
- hook_call_deferred(&hpd_lvl_deferred_data, -1);
-
- /* It's a glitch. Previous time moves but level is the same. */
- if (cur_delta < HPD_USTREAM_DEBOUNCE_IRQ)
- return;
-
- if ((!hpd_prev_level && level) &&
- (cur_delta < HPD_USTREAM_DEBOUNCE_LVL)) {
- /* It's an irq */
- hook_call_deferred(&hpd_irq_deferred_data, 0);
- } else if (cur_delta >= HPD_USTREAM_DEBOUNCE_LVL) {
- hook_call_deferred(&hpd_lvl_deferred_data,
- HPD_USTREAM_DEBOUNCE_LVL);
- }
-
- hpd_prev_level = level;
-}
-
-static void tcpc_evt(enum gpio_signal signal)
-{
- update_status_fusb302b();
-}
-
-#define HOST_HUB 0
-struct uhub_i2c_iface_t uhub_config[] = {
- {I2C_PORT_MASTER, GL3590_I2C_ADDR0},
-};
-
-static void host_hub_evt(void)
-{
- gl3590_irq_handler(HOST_HUB);
-}
-DECLARE_DEFERRED(host_hub_evt);
-
-static void hub_evt(enum gpio_signal signal)
-{
- hook_call_deferred(&host_hub_evt_data, 0);
-}
-
-static void dut_pwr_evt(enum gpio_signal signal)
-{
- ccprintf("dut_pwr_evt\n");
-}
-
-/* Enable uservo USB. */
-static void init_uservo_port(void)
-{
- /* Enable USERVO_POWER_EN */
- ec_uservo_power_en(1);
-
- gl3590_enable_ports(0, GL3590_DFP4, 1);
-
- /* Connect uservo to host hub */
- uservo_fastboot_mux_sel(0);
-}
-
-void ext_hpd_detection_enable(int enable)
-{
- if (enable) {
- timestamp_t now = get_time();
-
- hpd_prev_level = gpio_get_level(GPIO_DP_HPD);
- hpd_prev_ts = now.val;
- gpio_enable_interrupt(GPIO_DP_HPD);
- } else {
- gpio_disable_interrupt(GPIO_DP_HPD);
- }
-}
-#endif /* SECTION_IS_RO */
-
-#include "gpio_list.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/******************************************************************************
- * Board pre-init function.
- */
-
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= BIT(0);
-
- /*
- * the DMA mapping is :
- * Chan 2 : TIM1_CH1 (CHG RX) - Default mapping
- * Chan 3 : SPI1_TX (CHG TX) - Default mapping
- * Chan 4 : USART1 TX - Remapped from default Chan 2
- * Chan 5 : USART1 RX - Remapped from default Chan 3
- * Chan 6 : TIM3_CH1 (DUT RX) - Remapped from default Chan 4
- * Chan 7 : SPI2_TX (DUT TX) - Remapped from default Chan 5
- *
- * As described in the comments above, both USART1 TX/RX and DUT Tx/RX
- * channels must be remapped from the defulat locations. Remapping is
- * acoomplished by setting the following bits in the STM32_SYSCFG_CFGR1
- * register. Information about this register and its settings can be
- * found in section 11.3.7 DMA Request Mapping of the STM RM0091
- * Reference Manual
- */
- /* Remap USART1 Tx from DMA channel 2 to channel 4 */
- STM32_SYSCFG_CFGR1 |= BIT(9);
- /* Remap USART1 Rx from DMA channel 3 to channel 5 */
- STM32_SYSCFG_CFGR1 |= BIT(10);
- /* Remap TIM3_CH1 from DMA channel 4 to channel 6 */
- STM32_SYSCFG_CFGR1 |= BIT(30);
- /* Remap SPI2 Tx from DMA channel 5 to channel 7 */
- STM32_SYSCFG_CFGR1 |= BIT(24);
-}
-
-/******************************************************************************
- * Set up USB PD
- */
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_CHG_CC1_PD] = {"CHG_CC1_PD", 3300, 4096, 0, STM32_AIN(2)},
- [ADC_CHG_CC2_PD] = {"CHG_CC2_PD", 3300, 4096, 0, STM32_AIN(4)},
- [ADC_DUT_CC1_PD] = {"DUT_CC1_PD", 3300, 4096, 0, STM32_AIN(0)},
- [ADC_DUT_CC2_PD] = {"DUT_CC2_PD", 3300, 4096, 0, STM32_AIN(5)},
- [ADC_SBU1_DET] = {"SBU1_DET", 3300, 4096, 0, STM32_AIN(3)},
- [ADC_SBU2_DET] = {"SBU2_DET", 3300, 4096, 0, STM32_AIN(7)},
- [ADC_SUB_C_REF] = {"SUB_C_REF", 3300, 4096, 0, STM32_AIN(1)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-
-/******************************************************************************
- * Forward UARTs as a USB serial interface.
- */
-
-#define USB_STREAM_RX_SIZE 16
-#define USB_STREAM_TX_SIZE 16
-
-/******************************************************************************
- * Forward USART3 as a simple USB serial interface.
- */
-
-static struct usart_config const usart3;
-struct usb_stream_config const usart3_usb;
-
-static struct queue const usart3_to_usb = QUEUE_DIRECT(64, uint8_t,
- usart3.producer, usart3_usb.consumer);
-static struct queue const usb_to_usart3 = QUEUE_DIRECT(64, uint8_t,
- usart3_usb.producer, usart3.consumer);
-
-static struct usart_config const usart3 =
- USART_CONFIG(usart3_hw,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 115200,
- 0,
- usart3_to_usb,
- usb_to_usart3);
-
-USB_STREAM_CONFIG(usart3_usb,
- USB_IFACE_USART3_STREAM,
- USB_STR_USART3_STREAM_NAME,
- USB_EP_USART3_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart3,
- usart3_to_usb)
-
-
-/******************************************************************************
- * Forward USART4 as a simple USB serial interface.
- */
-
-static struct usart_config const usart4;
-struct usb_stream_config const usart4_usb;
-
-static struct queue const usart4_to_usb = QUEUE_DIRECT(64, uint8_t,
- usart4.producer, usart4_usb.consumer);
-static struct queue const usb_to_usart4 = QUEUE_DIRECT(64, uint8_t,
- usart4_usb.producer, usart4.consumer);
-
-static struct usart_config const usart4 =
- USART_CONFIG(usart4_hw,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 9600,
- 0,
- usart4_to_usb,
- usb_to_usart4);
-
-USB_STREAM_CONFIG_USART_IFACE(usart4_usb,
- USB_IFACE_USART4_STREAM,
- USB_STR_USART4_STREAM_NAME,
- USB_EP_USART4_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart4,
- usart4_to_usb,
- usart4)
-
-
-/*
- * Define usb interface descriptor for the `EMPTY` usb interface, to satisfy
- * UEFI and kernel requirements (see b/183857501).
- */
-const struct usb_interface_descriptor
-USB_IFACE_DESC(USB_IFACE_EMPTY) = {
- .bLength = USB_DT_INTERFACE_SIZE,
- .bDescriptorType = USB_DT_INTERFACE,
- .bInterfaceNumber = USB_IFACE_EMPTY,
- .bAlternateSetting = 0,
- .bNumEndpoints = 0,
- .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
- .bInterfaceSubClass = 0,
- .bInterfaceProtocol = 0,
- .iInterface = 0,
-};
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Servo V4p1"),
- [USB_STR_SERIALNO] = USB_STRING_DESC("1234-a"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_I2C_NAME] = USB_STRING_DESC("I2C"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Servo EC Shell"),
- [USB_STR_USART3_STREAM_NAME] = USB_STRING_DESC("DUT UART"),
- [USB_STR_USART4_STREAM_NAME] = USB_STRING_DESC("Atmega UART"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-
-
-/******************************************************************************
- * Support I2C bridging over USB.
- */
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 100,
- GPIO_MASTER_I2C_SCL, GPIO_MASTER_I2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-int usb_i2c_board_is_enabled(void) { return 1; }
-
-
-/******************************************************************************
- * Initialize board.
- */
-
-int board_get_version(void)
-{
- return board_id_det();
-}
-
-#ifdef SECTION_IS_RO
-/* Forward declaration */
-static void evaluate_input_power_def(void);
-DECLARE_DEFERRED(evaluate_input_power_def);
-
-static void evaluate_input_power_def(void)
-{
- int state;
- static int retry = 3;
-
- /* Wait until host hub INTR# signal is asserted */
- state = gpio_get_level(GPIO_USBH_I2C_BUSY_INT);
- if ((state == 0) && retry--) {
- hook_call_deferred(&evaluate_input_power_def_data, 100 * MSEC);
- return;
- }
-
- if (retry == 0)
- CPRINTF("Host hub I2C isn't online, expect issues with its "
- "behaviour\n");
-
- gpio_enable_interrupt(GPIO_USBH_I2C_BUSY_INT);
-
- gl3590_init(HOST_HUB);
-
- init_uservo_port();
- init_pathsel();
-}
-#endif
-
-static void board_init(void)
-{
- /* USB to serial queues */
- queue_init(&usart3_to_usb);
- queue_init(&usb_to_usart3);
- queue_init(&usart4_to_usb);
- queue_init(&usb_to_usart4);
-
- /* UART init */
- usart_init(&usart3);
- usart_init(&usart4);
-
- /* Delay DUT hub to avoid brownout. */
- usleep(MSEC);
-
- init_pi3usb9201();
-
- /* Clear BBRAM, we don't want any PD state carried over on reset. */
- system_set_bbram(SYSTEM_BBRAM_IDX_PD0, 0);
- system_set_bbram(SYSTEM_BBRAM_IDX_PD1, 0);
-
-#ifdef SECTION_IS_RO
- init_ioexpanders();
- CPRINTS("Board ID is %d", board_id_det());
-
- init_dacs();
- init_uservo_port();
- init_pathsel();
- init_ina231s();
- init_fusb302b(1);
- vbus_dischrg_en(0);
-
- /* Bring atmel part out of reset */
- atmel_reset_l(1);
-
- /*
- * Get data about available input power. Defer this check, since we need
- * to wait for USB2/USB3 enumeration on host hub as well as I2C
- * interface of this hub needs to be initialized. Genesys recommends at
- * least 100ms.
- */
- hook_call_deferred(&evaluate_input_power_def_data, 100 * MSEC);
-
- /* Enable DUT USB2.0 pair. */
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_EN_L, 0);
-
- /* Enable VBUS detection to wake PD tasks fast enough */
- gpio_enable_interrupt(GPIO_USB_DET_PP_CHG);
- gpio_enable_interrupt(GPIO_USB_DET_PP_DUT);
-
- gpio_enable_interrupt(GPIO_STM_FAULT_IRQ_L);
- gpio_enable_interrupt(GPIO_DP_HPD);
- gpio_enable_interrupt(GPIO_DUT_PWR_IRQ_ODL);
-
- /* Disable power to DUT by default */
- chg_power_select(CHG_POWER_OFF);
-
- /*
- * Voltage transition needs to occur in lockstep between the CHG and
- * DUT ports, so initially limit voltage to 5V.
- */
- pd_set_max_voltage(PD_MIN_MV);
-
- /* Start SuzyQ detection */
- start_ccd_meas_sbu_cycle();
-#else /* SECTION_IS_RO */
- CPRINTS("Board ID is %d", board_id_det());
-#endif /* SECTION_IS_RO */
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifdef SECTION_IS_RO
-void tick_event(void)
-{
- static int i = 0;
-
- i++;
- switch (i) {
- case 1:
- tca_gpio_dbg_led_k_odl(1);
- break;
- case 2:
- break;
- case 3:
- tca_gpio_dbg_led_k_odl(0);
- break;
- case 4:
- i = 0;
- break;
- }
-}
-DECLARE_HOOK(HOOK_TICK, tick_event, HOOK_PRIO_DEFAULT);
-
-struct ioexpander_config_t ioex_config[] = {
- [0] = {
- .drv = &tca64xxa_ioexpander_drv,
- .i2c_host_port = TCA6416A_PORT,
- .i2c_addr_flags = TCA6416A_ADDR,
- .flags = TCA64XXA_FLAG_VER_TCA6416A
- },
- [1] = {
- .drv = &tca64xxa_ioexpander_drv,
- .i2c_host_port = TCA6424A_PORT,
- .i2c_addr_flags = TCA6424A_ADDR,
- .flags = TCA64XXA_FLAG_VER_TCA6424A
- }
-};
-
-#endif /* SECTION_IS_RO */
diff --git a/board/servo_v4p1/board.h b/board/servo_v4p1/board.h
deleted file mode 100644
index daf450ded2..0000000000
--- a/board/servo_v4p1/board.h
+++ /dev/null
@@ -1,372 +0,0 @@
-/* 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.
- */
-
-/* Servo V4p1 configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Use Link-Time Optimizations to try to reduce the firmware code size */
-#define CONFIG_LTO
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Servo V4.1 Ports:
- * CHG - port 0
- * DUT - port 1
- */
-#define CHG 0
-#define DUT 1
-
-/*
- * IO expanders I2C addresses and ports
- */
-#define TCA6416A_PORT 1
-#define TCA6416A_ADDR 0x21
-#define TCA6424A_PORT 1
-#define TCA6424A_ADDR 0x23
-
-/*
- * Flash layout: we redefine the sections offsets and sizes as we want to
- * include a pstate region, and will use RO/RW regions of different sizes.
- * RO has size 92K and usb_updater along with the majority of code is placed
- * here.
- * RW has size 40K and usb_updater and other relevant code is placed here.
- */
-#undef _IMAGE_SIZE
-#undef CONFIG_ROLLBACK_OFF
-#undef CONFIG_ROLLBACK_SIZE
-#undef CONFIG_FLASH_PSTATE
-#undef CONFIG_FW_PSTATE_SIZE
-#undef CONFIG_FW_PSTATE_OFF
-#undef CONFIG_SHAREDLIB_SIZE
-#undef CONFIG_RO_MEM_OFF
-#undef CONFIG_RO_STORAGE_OFF
-#undef CONFIG_RO_SIZE
-#undef CONFIG_RW_MEM_OFF
-#undef CONFIG_RW_STORAGE_OFF
-#undef CONFIG_RW_SIZE
-#undef CONFIG_EC_PROTECTED_STORAGE_OFF
-#undef CONFIG_EC_PROTECTED_STORAGE_SIZE
-#undef CONFIG_EC_WRITABLE_STORAGE_OFF
-#undef CONFIG_EC_WRITABLE_STORAGE_SIZE
-#undef CONFIG_WP_STORAGE_OFF
-#undef CONFIG_WP_STORAGE_SIZE
-
-#define CONFIG_RAM_BANK_SIZE CONFIG_RAM_SIZE
-
-
-#define CONFIG_FLASH_PSTATE
-#define CONFIG_FLASH_PSTATE_BANK
-
-#define CONFIG_SHAREDLIB_SIZE 0
-
-#define CONFIG_RO_MEM_OFF 0
-#define CONFIG_RO_STORAGE_OFF 0
-#define CONFIG_RO_SIZE (92*1024)
-
-#define CONFIG_FW_PSTATE_OFF (CONFIG_RO_MEM_OFF + CONFIG_RO_SIZE)
-#define CONFIG_FW_PSTATE_SIZE CONFIG_FLASH_BANK_SIZE
-
-#define CONFIG_RW_MEM_OFF (CONFIG_FW_PSTATE_OFF + CONFIG_FW_PSTATE_SIZE)
-#define CONFIG_RW_STORAGE_OFF 0
-#define CONFIG_RW_SIZE (CONFIG_FLASH_SIZE_BYTES - \
- (CONFIG_RW_MEM_OFF - CONFIG_RO_MEM_OFF))
-
-#define CONFIG_EC_PROTECTED_STORAGE_OFF CONFIG_RO_MEM_OFF
-#define CONFIG_EC_PROTECTED_STORAGE_SIZE CONFIG_RO_SIZE
-#define CONFIG_EC_WRITABLE_STORAGE_OFF CONFIG_RW_MEM_OFF
-#define CONFIG_EC_WRITABLE_STORAGE_SIZE CONFIG_RW_SIZE
-
-#define CONFIG_WP_STORAGE_OFF CONFIG_EC_PROTECTED_STORAGE_OFF
-#define CONFIG_WP_STORAGE_SIZE CONFIG_EC_PROTECTED_STORAGE_SIZE
-
-/* Enable USART1,3,4 and USB streams */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART3
-#define CONFIG_STREAM_USART4
-#define CONFIG_STREAM_USB
-#define CONFIG_CMD_USART_INFO
-
-/* The UART console is on USART1 (PA9/PA10) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_HW_CRC
-#define CONFIG_PVD
-/*
- * See 'Programmable voltage detector characteristics' in the
- * STM32F072x8 Datasheet. PVD Threshold 1 corresponds to a
- * falling voltage threshold of min:2.09V, max:2.27V.
- */
-#define PVD_THRESHOLD (1)
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x520d
-#define CONFIG_USB_CONSOLE
-#define CONFIG_USB_UPDATE
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-
-#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
-#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
-#define CONFIG_USB_SELF_POWERED
-
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-#define CONFIG_MAC_ADDR
-#define DEFAULT_MAC_ADDR "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_EMPTY 1
-#define USB_IFACE_I2C 2
-#define USB_IFACE_USART3_STREAM 3
-#define USB_IFACE_USART4_STREAM 4
-#define USB_IFACE_UPDATE 5
-#define USB_IFACE_COUNT 6
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_EMPTY 2
-#define USB_EP_I2C 3
-#define USB_EP_USART3_STREAM 4
-#define USB_EP_USART4_STREAM 5
-#define USB_EP_UPDATE 6
-#define USB_EP_COUNT 7
-
-/* Enable console recasting of GPIO type. */
-#define CONFIG_CMD_GPIO_EXTENDED
-
-/* Enable I/O expander */
-#ifdef SECTION_IS_RO
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_SUPPORT_GET_PORT
-#define CONFIG_IO_EXPANDER_TCA64XXA
-#define CONFIG_IO_EXPANDER_PORT_COUNT 2
-#endif
-
-/* This is not actually an EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_HIBERNATE
-
-/* Remove console commands / features for flash / RAM savings */
-#undef CONFIG_USB_PD_HOST_CMD
-#undef CONFIG_CONSOLE_CMDHELP
-#undef CONFIG_CONSOLE_HISTORY
-#undef CONFIG_CMD_CRASH
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_FLASHINFO
-#undef CONFIG_CMD_GETTIME
-#undef CONFIG_CMD_MEM
-#undef CONFIG_CMD_SHMEM
-#undef CONFIG_CMD_SYSLOCK
-#undef CONFIG_CMD_TIMERINFO
-#undef CONFIG_CMD_WAITMS
-
-/* Enable control of I2C over USB */
-#define CONFIG_USB_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_MASTER 1
-
-/* PD features */
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-#define CONFIG_BOARD_PRE_INIT
-/*
- * If task profiling is enabled then the rx falling edge detection interrupts
- * can't be processed in time and can't support USB PD messaging.
- */
-#undef CONFIG_TASK_PROFILING
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#ifdef SECTION_IS_RO
-#define CONFIG_USB_HUB_GL3590
-#define CONFIG_INA231
-#define CONFIG_CHARGE_MANAGER
-#undef CONFIG_CHARGE_MANAGER_SAFE_MODE
-#define CONFIG_USB_MUX_TUSB1064
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_CMD_PD
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_DYNAMIC_SRC_CAP
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#undef CONFIG_USB_PD_PULLUP
-/* Default pull-up should not be Rp3a0 due to Cr50 */
-#define CONFIG_USB_PD_PULLUP TYPEC_RP_USB
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
-#define CONFIG_USB_PD_ONLY_FIXED_PDOS
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USBC_SS_MUX
-#define CONFIG_USBC_SS_MUX_UFP_ONLY
-
-/* Don't automatically change roles */
-#undef CONFIG_USB_PD_INITIAL_DRP_STATE
-#define CONFIG_USB_PD_INITIAL_DRP_STATE PD_DRP_FORCE_SINK
-
-/* Variable-current Rp no connect and Ra attach macros */
-#define CC_NC(port, cc, sel) (pd_tcpc_cc_nc(port, cc, sel))
-#define CC_RA(port, cc, sel) (pd_tcpc_cc_ra(port, cc, sel))
-
-/*
- * These power-supply timing values are now set towards maximum spec limit,
- * to give the upstream charger the maximum time to respond.
- *
- * Currently tuned with the Apple 96W adapter.
- */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY (161*MSEC)
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY (461*MSEC)
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 100000
-#define PD_MAX_CURRENT_MA 5000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Add the raw option to the i2c_xfer command */
-#define CONFIG_CMD_I2C_XFER_RAW
-
-/* Enable command for managing host hub */
-#define CONFIG_CMD_GL3590
-#else
-#undef CONFIG_CMD_I2C_XFER
-#undef CONFIG_USB_POWER_DELIVERY
-#endif /* SECTION_IS_RO */
-
-/*
- * If task profiling is enabled then the rx falling edge detection interrupts
- * can't be processed in time and can't support USB PD messaging.
- */
-#undef CONFIG_TASK_PROFILING
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_I2C_NAME,
- USB_STR_CONSOLE_NAME,
- USB_STR_USART3_STREAM_NAME,
- USB_STR_USART4_STREAM_NAME,
- USB_STR_UPDATE_NAME,
- USB_STR_COUNT
-};
-
-
-/* ADC signal */
-enum adc_channel {
- ADC_CHG_CC1_PD,
- ADC_CHG_CC2_PD,
- ADC_DUT_CC1_PD,
- ADC_DUT_CC2_PD,
- ADC_SBU1_DET,
- ADC_SBU2_DET,
- ADC_SUB_C_REF,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/* Servo V4.1 Board ID mappings */
-enum servo_board_id {
- BOARD_ID_UNSET = -1,
- BOARD_ID_REV0 = 0, /* Proto */
- BOARD_ID_REV1 = 1, /* EVT */
- BOARD_ID_REV2 = 2, /* DVT */
-};
-
-/**
- * Compare cc_voltage to disconnect threshold
- *
- * This function can be used for boards that support variable Rp settings and
- * require a different voltage threshold based on the Rp value attached to a
- * given cc line.
- *
- * @param port USB-C port number
- * @param cc_volt voltage measured in mV of the CC line
- * @param cc_sel cc1 or cc2 selection
- * @return 1 if voltage is >= threshold value for disconnect
- */
-int pd_tcpc_cc_nc(int port, int cc_volt, int cc_sel);
-
-/**
- * Compare cc_voltage to Ra threshold
- *
- * This function can be used for boards that support variable Rp settings and
- * require a different voltage threshold based on the Rp value attached to a
- * given cc line.
- *
- * @param port USB-C port number
- * @param cc_volt voltage measured in mV of the CC line
- * @param cc_sel cc1 or cc2 selection
- * @return 1 if voltage is < threshold value for Ra attach
- */
-int pd_tcpc_cc_ra(int port, int cc_volt, int cc_sel);
-
-/**
- * Set Rp or Rd resistor for CC lines
- *
- * This function is used to configure the CC pullup or pulldown resistor to
- * the requested value.
- *
- * @param port USB-C port number
- * @param cc_pull 1 for Rp and 0 for Rd
- * @param rp_value If cc_pull == 1, the value of Rp to use
- * @return 1 if cc_pull == 1 and Rp is invalid, otherwise 0
- */
-int pd_set_rp_rd(int port, int cc_pull, int rp_value);
-
-/**
- * Get board HW ID version
- *
- * @return HW ID version
- */
-int board_get_version(void);
-
-/**
- * Enable or disable external HPD detection
- *
- * @param enable Enable external HPD detection if true, otherwise disable
- */
-void ext_hpd_detection_enable(int enable);
-
-/**
- * Enable or disable CCD
- *
- * @param enable Enable CCD if true, otherwise disable
- */
-void ccd_enable(int enable);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/servo_v4p1/build.mk b/board/servo_v4p1/build.mk
deleted file mode 100644
index 872b4d4281..0000000000
--- a/board/servo_v4p1/build.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072RBT6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-# Not enough SRAM: Disable all tests
-test-list-y=
-
-# These files are compiled into RO and RW
-board-y=board.o
-board-y+=ioexpanders.o
-board-y+=dacs.o
-board-y+=pi3usb9201.o
-
-# These files are compiled into RO only
-board-ro+=ccd_measure_sbu.o
-board-ro+=pathsel.o
-board-ro+=chg_control.o
-board-ro+=ina231s.o
-board-ro+=usb_pd_policy.o
-board-ro+=fusb302b.o
-board-ro+=usb_sm.o
-board-ro+=usb_tc_snk_sm.o
-
-all_deps=$(patsubst ro,,$(def_all_deps))
diff --git a/board/servo_v4p1/ccd_measure_sbu.c b/board/servo_v4p1/ccd_measure_sbu.c
deleted file mode 100644
index b9c9680cc9..0000000000
--- a/board/servo_v4p1/ccd_measure_sbu.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* 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.
- */
-/* CCD Measure SBU */
-
-#include "adc.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ioexpanders.h"
-#include "timer.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/*
- * Define voltage thresholds for SBU USB detection.
- *
- * Max observed USB low across sampled systems: 666mV
- * Min observed USB high across sampled systems: 3026mV
- */
-#define GND_MAX_MV 700
-#define USB_HIGH_MV 2500
-#define SBU_DIRECT 0
-#define SBU_FLIP 1
-
-#define MODE_SBU_DISCONNECT 0
-#define MODE_SBU_CONNECT 1
-#define MODE_SBU_FLIP 2
-#define MODE_SBU_OTHER 3
-
-static void ccd_measure_sbu(void);
-DECLARE_DEFERRED(ccd_measure_sbu);
-static void ccd_measure_sbu(void)
-{
- int sbu1;
- int sbu2;
- int mux_en;
- static int count /* = 0 */;
- static int last /* = 0 */;
- static int polarity /* = 0 */;
-
- /* Read sbu voltage levels */
- sbu1 = adc_read_channel(ADC_SBU1_DET);
- sbu2 = adc_read_channel(ADC_SBU2_DET);
- mux_en = gpio_get_level(GPIO_SBU_MUX_EN);
-
- /*
- * While SBU_MUX is disabled (SuzyQ unplugged), we'll poll the SBU lines
- * to check if an idling, unconfigured USB device is present.
- * USB FS pulls one line high for connect request.
- * If so, and it persists for 500ms, we'll enable the SuzyQ in that
- * orientation.
- */
- if ((!mux_en) && (sbu1 > USB_HIGH_MV) && (sbu2 < GND_MAX_MV)) {
- /* Check flip connection polarity. */
- if (last != MODE_SBU_FLIP) {
- last = MODE_SBU_FLIP;
- polarity = SBU_FLIP;
- count = 0;
- } else {
- count++;
- }
- } else if ((!mux_en) && (sbu2 > USB_HIGH_MV) && (sbu1 < GND_MAX_MV)) {
- /* Check direct connection polarity. */
- if (last != MODE_SBU_CONNECT) {
- last = MODE_SBU_CONNECT;
- polarity = SBU_DIRECT;
- count = 0;
- } else {
- count++;
- }
- /*
- * If SuzyQ is enabled, we'll poll for a persistent no-signal
- * for 500ms. Since USB is differential, we should never see
- * GND/GND while the device is connected.
- * If disconnected, electrically remove SuzyQ.
- */
- } else if ((mux_en) && (sbu1 < GND_MAX_MV) && (sbu2 < GND_MAX_MV)) {
- /* Check for SBU disconnect if connected. */
- if (last != MODE_SBU_DISCONNECT) {
- last = MODE_SBU_DISCONNECT;
- count = 0;
- } else {
- count++;
- }
- } else {
- /* Didn't find anything, reset state. */
- last = MODE_SBU_OTHER;
- count = 0;
- }
-
- /*
- * We have seen a new state continuously for 500ms.
- * Let's update the mux to enable/disable SuzyQ appropriately.
- */
- if (count > 5) {
- if (mux_en) {
- /* Disable mux as it's disconnected now. */
- gpio_set_level(GPIO_SBU_MUX_EN, 0);
- msleep(10);
- CPRINTS("CCD: disconnected.");
- } else {
- /* SBU flip = polarity */
- sbu_flip_sel(polarity);
- gpio_set_level(GPIO_SBU_MUX_EN, 1);
- msleep(10);
- CPRINTS("CCD: connected %s",
- polarity ? "flip" : "noflip");
- }
- }
-
- /* Measure every 100ms, forever. */
- hook_call_deferred(&ccd_measure_sbu_data, 100 * MSEC);
-}
-
-void ccd_enable(int enable)
-{
- if (enable) {
- hook_call_deferred(&ccd_measure_sbu_data, 0);
- } else {
- gpio_set_level(GPIO_SBU_MUX_EN, 0);
- hook_call_deferred(&ccd_measure_sbu_data, -1);
- }
-}
-
-void start_ccd_meas_sbu_cycle(void)
-{
- hook_call_deferred(&ccd_measure_sbu_data, 1000 * MSEC);
-}
diff --git a/board/servo_v4p1/ccd_measure_sbu.h b/board/servo_v4p1/ccd_measure_sbu.h
deleted file mode 100644
index 0dd1ce0de7..0000000000
--- a/board/servo_v4p1/ccd_measure_sbu.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_CCD_MEASURE_SBU_H
-#define __CROS_EC_CCD_MEASURE_SBU_H
-
-/**
- * Enables or disables CCD for use with SuzyQ cable
- *
- * @param en 0 - Disable CCD
- * 1 - Enable CCD
- */
-void ccd_enable(int enable);
-
-/**
- * Triggers the detection of a SuzyQ cable every 100mS
- */
-void start_ccd_meas_sbu_cycle(void);
-
-#endif /* __CROS_EC_CCD_MEASURE_SBU_H */
diff --git a/board/servo_v4p1/chg_control.c b/board/servo_v4p1/chg_control.c
deleted file mode 100644
index 19be03a755..0000000000
--- a/board/servo_v4p1/chg_control.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* 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.
- */
-
-#include "chg_control.h"
-#include "gpio.h"
-#include "ioexpanders.h"
-#include "registers.h"
-#include "timer.h"
-#include "usb_pd.h"
-
-#define CHG_P5V_POWER 0
-#define CHG_VBUS_POWER 1
-
-void chg_reset(void)
-{
- /* Disconnect DUT Power */
- chg_power_select(CHG_POWER_OFF);
-
- /* Disconnect CHG CC1(Rd) and CC2(Rd) */
- chg_attach_cc_rds(0);
-
- /* Give time for CHG to detach, use tErrorRecovery. */
- msleep(PD_T_ERROR_RECOVERY);
-
- /* Connect CHG CC1(Rd) and CC2(Rd) to detect charger */
- chg_attach_cc_rds(1);
-}
-
-void chg_power_select(enum chg_power_select_t type)
-{
- switch (type) {
- case CHG_POWER_OFF:
- dut_chg_en(0);
- vbus_dischrg_en(1);
- break;
- case CHG_POWER_PP5000:
- vbus_dischrg_en(0);
- host_or_chg_ctl(CHG_P5V_POWER);
- dut_chg_en(1);
- break;
- case CHG_POWER_VBUS:
- vbus_dischrg_en(0);
- host_or_chg_ctl(CHG_VBUS_POWER);
- dut_chg_en(1);
- break;
- }
-}
-
-void chg_attach_cc_rds(bool en)
-{
- if (en) {
- /*
- * Configure USB_CHG_CC1_MCU and USB_CHG_CC2_MCU as
- * ANALOG input
- */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- | (3 << (2*2)) | /* PA2 in ANALOG mode */
- (3 << (2*4))); /* PA4 in ANALOG mode */
- } else {
- /*
- * Configure USB_CHG_CC1_MCU and USB_CHG_CC2_MCU as GPIO and
- * drive high to trigger disconnect.
- * NOTE: The CC line has an external fixed Rd pull-down.
- * Driving the CC line High overrides the pull down and this
- * triggers a disconnection.
- */
- /* Set level high */
- gpio_set_level(GPIO_USB_CHG_CC1_MCU, 1);
- gpio_set_level(GPIO_USB_CHG_CC2_MCU, 1);
-
- /* Disable Analog mode and Enable GPO */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A)
- & ~(3 << (2*2) | /* PA2 disable ADC */
- 3 << (2*4))) /* PA4 disable ADC */
- | (1 << (2*2) | /* Set as GPO */
- 1 << (2*4)); /* Set as GPO */
- }
-}
diff --git a/board/servo_v4p1/chg_control.h b/board/servo_v4p1/chg_control.h
deleted file mode 100644
index 8b81708ccc..0000000000
--- a/board/servo_v4p1/chg_control.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_CHG_CONTROL_H
-#define __CROS_EC_CHG_CONTROL_H
-
-#include <stdbool.h>
-
-enum chg_cc_t {
- CHG_OPEN,
- CHG_CC1,
- CHG_CC2
-};
-
-enum chg_power_select_t {
- CHG_POWER_OFF,
- CHG_POWER_PP5000,
- CHG_POWER_VBUS,
-};
-
-/*
- * Triggers a disconnect and reconnect on the DUT Charger port
- */
-void chg_reset(void);
-
-/*
- * Disables or selects the DUT Charger Power source
- *
- * @param type Power source used for DUT
- */
-void chg_power_select(enum chg_power_select_t type);
-
-/*
- * Attaches or Removes the DUT Charger Ports CC1 and CC2 Rd resistors
- *
- * @param en True the CC RDs are attached else they are removed
- */
-void chg_attach_cc_rds(bool en);
-
-#endif /* __CROS_EC_CHG_CONTROL_H */
diff --git a/board/servo_v4p1/dacs.c b/board/servo_v4p1/dacs.c
deleted file mode 100644
index 087a334873..0000000000
--- a/board/servo_v4p1/dacs.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/* 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.
- */
-
-#include "dacs.h"
-#include "i2c.h"
-#include "ioexpanders.h"
-#include "util.h"
-
-#define MAX_MV 5000
-
-#define CC1_DAC_ADDR 0x48
-#define CC2_DAC_ADDR 0x49
-
-#define REG_NOOP 0
-#define REG_DEVID 1
-#define REG_SYNC 2
-#define REG_CONFIG 3
-#define REG_GAIN 4
-#define REG_TRIGGER 5
-#define REG_STATUS 7
-#define REG_DAC 8
-
-#define DAC1 BIT(0)
-#define DAC2 BIT(1)
-
-static uint8_t dac_enabled;
-
-void init_dacs(void)
-{
- /* Disable both DACS by default */
- enable_dac(CC1_DAC, 0);
- enable_dac(CC2_DAC, 0);
- dac_enabled = 0;
-}
-
-void enable_dac(enum dac_t dac, uint8_t en)
-{
- switch (dac) {
- case CC1_DAC:
- if (en) {
- fault_clear_cc(1);
- fault_clear_cc(0);
- en_vout_buf_cc1(1);
- /* Power ON DAC */
- i2c_write8(1, CC1_DAC_ADDR, REG_CONFIG, 0);
- dac_enabled |= DAC1;
- } else {
- en_vout_buf_cc1(0);
- /* Power OFF DAC */
- i2c_write8(1, CC1_DAC_ADDR, REG_CONFIG, 1);
- dac_enabled &= ~DAC1;
- }
- break;
- case CC2_DAC:
- if (en) {
- fault_clear_cc(1);
- fault_clear_cc(0);
- en_vout_buf_cc2(1);
- i2c_write8(1, CC2_DAC_ADDR, REG_CONFIG, 0);
- dac_enabled |= DAC2;
- } else {
- en_vout_buf_cc2(0);
- /* Power down DAC */
- i2c_write8(1, CC2_DAC_ADDR, REG_CONFIG, 1);
- dac_enabled &= ~DAC2;
- }
- break;
- }
-}
-
-int write_dac(enum dac_t dac, uint16_t value)
-{
- uint16_t tmp;
-
- /*
- * Data are MSB aligned in straight binary format, and
- * use the following format: DATA[13:0], 0, 0
- */
- tmp = (value << 8) & 0xff00;
- tmp |= (value >> 8) & 0xff;
- tmp <<= 2;
-
- switch (dac) {
- case CC1_DAC:
- if (!(dac_enabled & DAC1)) {
- ccprintf("CC1_DAC is disabled\n");
- return EC_ERROR_ACCESS_DENIED;
- }
- i2c_write16(1, CC1_DAC_ADDR, REG_DAC, tmp);
- break;
- case CC2_DAC:
- if (!(dac_enabled & DAC2)) {
- ccprintf("CC2_DAC is disabled\n");
- return EC_ERROR_ACCESS_DENIED;
- }
- i2c_write16(1, CC2_DAC_ADDR, REG_DAC, tmp);
- break;
- }
- return EC_SUCCESS;
-}
-
-#ifdef SECTION_IS_RO
-static int cmd_cc_dac(int argc, char *argv[])
-{
- uint8_t dac;
- uint64_t mv;
- uint64_t round_up;
- char *e;
-
- if (argc < 3)
- return EC_ERROR_PARAM_COUNT;
-
- dac = strtoi(argv[1], &e, 10);
- if (*e || (dac != CC1_DAC && dac != CC2_DAC))
- return EC_ERROR_PARAM2;
-
- if (!strcasecmp(argv[2], "on")) {
- enable_dac(dac, 1);
- } else if (!strcasecmp(argv[2], "off")) {
- enable_dac(dac, 0);
- } else {
- /* get value in mV */
- mv = strtoi(argv[2], &e, 10);
- /* 5000 mV max */
- if (*e || mv > MAX_MV)
- return EC_ERROR_PARAM3;
- /* 305176 = (5V / 2^14) * 1000000 */
- /* 152588 = 305176 / 2 : used for round up after division */
- round_up = (((mv * 1000000) + 152588) / 305176);
- if (!write_dac(dac, (uint16_t)round_up))
- ccprintf("Setting DAC to %lld counts\n", round_up);
- }
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(cc_dac, cmd_cc_dac,
- "dac <\"on\"|\"off\"|mv>",
- "Set Servo v4.1 CC dacs");
-#endif
diff --git a/board/servo_v4p1/dacs.h b/board/servo_v4p1/dacs.h
deleted file mode 100644
index bd0ecd67da..0000000000
--- a/board/servo_v4p1/dacs.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* 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.
- */
-#ifndef __CROS_EC_DACS_H
-#define __CROS_EC_DACS_H
-
-#include <stdint.h>
-
-enum dac_t {
- CC1_DAC = 1,
- CC2_DAC,
-};
-
-/*
- * Initialize the DACs
- */
-void init_dacs(void);
-
-/*
- * Enable/Disable one of the DACs
- *
- * @param dac DAC to enable or disable
- * @param en 0 to disable or 1 to enable
- */
-void enable_dac(enum dac_t dac, uint8_t en);
-
-/*
- * Write a value to the DAC
- *
- * @param dac DAC to write to
- * @param value to write to the DAC in mV. (0 to 5000mV)
- * @return EC_SUCCESS or EC_ERROR_ACCESS_DENIED on failure
- */
-int write_dac(enum dac_t dac, uint16_t value);
-
-#endif /* __CROS_EC_DACS_H */
diff --git a/board/servo_v4p1/ec.tasklist b/board/servo_v4p1/ec.tasklist
deleted file mode 100644
index 07250f018e..0000000000
--- a/board/servo_v4p1/ec.tasklist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RO(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS_RO(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS_RO(PD_C2, snk_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/servo_v4p1/fusb302b.c b/board/servo_v4p1/fusb302b.c
deleted file mode 100644
index 4e144dec05..0000000000
--- a/board/servo_v4p1/fusb302b.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* 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.
- */
-
-#include "i2c.h"
-#include "fusb302b.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ioexpanders.h"
-#include "util.h"
-#include "task.h"
-#include "time.h"
-#include "usb_pd.h"
-
-static int port;
-static int status0;
-static int status1;
-static int interrupt;
-static struct mutex measure_lock;
-
-static int tcpc_write(int reg, int val)
-{
- return i2c_write8(port, FUSB302_I2C_ADDR_FLAGS, reg, val);
-}
-
-static int tcpc_read(int reg, int *val)
-{
- return i2c_read8(port, FUSB302_I2C_ADDR_FLAGS, reg, val);
-}
-
-int init_fusb302b(int p)
-{
- int ret;
- int reg;
- int interrupta;
- int interruptb;
-
- /* Configure fusb302b for SNK only operation */
- port = p;
-
- ret = tcpc_write(TCPC_REG_RESET, TCPC_REG_RESET_SW_RESET);
- if (ret)
- return ret;
-
- /* Create interrupt masks */
- reg = 0xFF;
- /* CC level changes */
- reg &= ~TCPC_REG_MASK_BC_LVL;
- /* misc alert */
- reg &= ~TCPC_REG_MASK_ALERT;
- /* VBUS threshold crossed (~4.0V) */
- reg &= ~TCPC_REG_MASK_VBUSOK;
- tcpc_write(TCPC_REG_MASK, reg);
-
- /* Interrupt Enable */
- ret = tcpc_read(TCPC_REG_CONTROL0, &reg);
- if (ret)
- return ret;
-
- reg &= ~TCPC_REG_CONTROL0_INT_MASK;
- ret = tcpc_write(TCPC_REG_CONTROL0, reg);
- if (ret)
- return ret;
-
- ret = tcpc_write(TCPC_REG_POWER, TCPC_REG_POWER_PWR_ALL);
- if (ret)
- return ret;
-
- /* reading interrupt registers clears them */
- ret = tcpc_read(TCPC_REG_INTERRUPT, &interrupt);
- if (ret)
- return ret;
-
-
- ret = tcpc_read(TCPC_REG_INTERRUPTA, &interrupta);
- if (ret)
- return ret;
-
- ret = tcpc_read(TCPC_REG_INTERRUPTB, &interruptb);
- if (ret)
- return ret;
-
- /* Call this, will detect a charger that's already plugged in */
- update_status_fusb302b();
-
- /* Enable interrupt */
- gpio_enable_interrupt(GPIO_CHGSRV_TCPC_INT_ODL);
-
- return EC_SUCCESS;
-}
-
-void fusb302b_irq(void)
-{
- tcpc_read(TCPC_REG_INTERRUPT, &interrupt);
- tcpc_read(TCPC_REG_STATUS0, &status0);
- tcpc_read(TCPC_REG_STATUS1, &status1);
-
- task_wake(TASK_ID_PD_C2);
-}
-DECLARE_DEFERRED(fusb302b_irq);
-
-int update_status_fusb302b(void)
-{
- hook_call_deferred(&fusb302b_irq_data, 0);
- return EC_SUCCESS;
-}
-
-int is_vbus_present(void)
-{
- return (status0 & 0x80);
-}
-
-/* Convert BC LVL values (in FUSB302) to Type-C CC Voltage Status */
-static int convert_bc_lvl(int bc_lvl)
-{
- int ret;
-
- switch (bc_lvl) {
- case 1:
- ret = TYPEC_CC_VOLT_RP_DEF;
- break;
- case 2:
- ret = TYPEC_CC_VOLT_RP_1_5;
- break;
- case 3:
- ret = TYPEC_CC_VOLT_RP_3_0;
- break;
- default:
- ret = TYPEC_CC_VOLT_OPEN;
- }
-
- return ret;
-}
-
-int get_cc(int *cc1, int *cc2)
-{
- int reg;
- int orig_meas_cc1;
- int orig_meas_cc2;
- int bc_lvl_cc1;
- int bc_lvl_cc2;
-
- mutex_lock(&measure_lock);
-
- /*
- * Measure CC1 first.
- */
- tcpc_read(TCPC_REG_SWITCHES0, &reg);
-
- /* save original state to be returned to later... */
- if (reg & TCPC_REG_SWITCHES0_MEAS_CC1)
- orig_meas_cc1 = 1;
- else
- orig_meas_cc1 = 0;
-
- if (reg & TCPC_REG_SWITCHES0_MEAS_CC2)
- orig_meas_cc2 = 1;
- else
- orig_meas_cc2 = 0;
-
-
- /* Disable CC2 measurement switch, enable CC1 measurement switch */
- reg &= ~TCPC_REG_SWITCHES0_MEAS_CC2;
- reg |= TCPC_REG_SWITCHES0_MEAS_CC1;
-
- tcpc_write(TCPC_REG_SWITCHES0, reg);
-
- /* CC1 is now being measured by FUSB302. */
-
- /* Wait on measurement */
- usleep(250);
-
- tcpc_read(TCPC_REG_STATUS0, &bc_lvl_cc1);
-
- /* mask away unwanted bits */
- bc_lvl_cc1 &= (TCPC_REG_STATUS0_BC_LVL0 | TCPC_REG_STATUS0_BC_LVL1);
-
- /*
- * Measure CC2 next.
- */
-
- tcpc_read(TCPC_REG_SWITCHES0, &reg);
-
- /* Disable CC1 measurement switch, enable CC2 measurement switch */
- reg &= ~TCPC_REG_SWITCHES0_MEAS_CC1;
- reg |= TCPC_REG_SWITCHES0_MEAS_CC2;
-
- tcpc_write(TCPC_REG_SWITCHES0, reg);
-
- /* CC2 is now being measured by FUSB302. */
-
- /* Wait on measurement */
- usleep(250);
-
- tcpc_read(TCPC_REG_STATUS0, &bc_lvl_cc2);
-
- /* mask away unwanted bits */
- bc_lvl_cc2 &= (TCPC_REG_STATUS0_BC_LVL0 | TCPC_REG_STATUS0_BC_LVL1);
-
- *cc1 = convert_bc_lvl(bc_lvl_cc1);
- *cc2 = convert_bc_lvl(bc_lvl_cc2);
-
- /* return MEAS_CC1/2 switches to original state */
- tcpc_read(TCPC_REG_SWITCHES0, &reg);
- if (orig_meas_cc1)
- reg |= TCPC_REG_SWITCHES0_MEAS_CC1;
- else
- reg &= ~TCPC_REG_SWITCHES0_MEAS_CC1;
- if (orig_meas_cc2)
- reg |= TCPC_REG_SWITCHES0_MEAS_CC2;
- else
- reg &= ~TCPC_REG_SWITCHES0_MEAS_CC2;
-
- tcpc_write(TCPC_REG_SWITCHES0, reg);
-
- mutex_unlock(&measure_lock);
- return 0;
-}
diff --git a/board/servo_v4p1/fusb302b.h b/board/servo_v4p1/fusb302b.h
deleted file mode 100644
index ec89c0c207..0000000000
--- a/board/servo_v4p1/fusb302b.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/* 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.
- */
-
-/* USB Power delivery port management */
-/* For Fairchild FUSB302 */
-#ifndef __CROS_EC_DRIVER_TCPM_FUSB302_H
-#define __CROS_EC_DRIVER_TCPM_FUSB302_H
-
-/* Chip Device ID - 302A or 302B */
-#define FUSB302_DEVID_302A 0x08
-#define FUSB302_DEVID_302B 0x09
-
-/* I2C address varies by part number */
-/* FUSB302BUCX / FUSB302BMPX */
-#define FUSB302_I2C_ADDR_FLAGS 0x22
-/* FUSB302B01MPX */
-#define FUSB302_I2C_ADDR_B01_FLAGS 0x23
-/* FUSB302B10MPX */
-#define FUSB302_I2C_ADDR_B10_FLAGS 0x24
-/* FUSB302B11MPX */
-#define FUSB302_I2C_ADDR_B11_FLAGS 0x25
-
-#define TCPC_REG_DEVICE_ID 0x01
-
-#define TCPC_REG_SWITCHES0 0x02
-#define TCPC_REG_SWITCHES0_CC2_PU_EN (1<<7)
-#define TCPC_REG_SWITCHES0_CC1_PU_EN (1<<6)
-#define TCPC_REG_SWITCHES0_VCONN_CC2 (1<<5)
-#define TCPC_REG_SWITCHES0_VCONN_CC1 (1<<4)
-#define TCPC_REG_SWITCHES0_MEAS_CC2 (1<<3)
-#define TCPC_REG_SWITCHES0_MEAS_CC1 (1<<2)
-#define TCPC_REG_SWITCHES0_CC2_PD_EN (1<<1)
-#define TCPC_REG_SWITCHES0_CC1_PD_EN (1<<0)
-
-#define TCPC_REG_SWITCHES1 0x03
-#define TCPC_REG_SWITCHES1_POWERROLE (1<<7)
-#define TCPC_REG_SWITCHES1_SPECREV1 (1<<6)
-#define TCPC_REG_SWITCHES1_SPECREV0 (1<<5)
-#define TCPC_REG_SWITCHES1_DATAROLE (1<<4)
-#define TCPC_REG_SWITCHES1_AUTO_GCRC (1<<2)
-#define TCPC_REG_SWITCHES1_TXCC2_EN (1<<1)
-#define TCPC_REG_SWITCHES1_TXCC1_EN (1<<0)
-
-#define TCPC_REG_MEASURE 0x04
-#define TCPC_REG_MEASURE_MDAC_MASK 0x3F
-#define TCPC_REG_MEASURE_VBUS (1<<6)
-/*
- * MDAC reference voltage step size is 42 mV. Round our thresholds to reduce
- * maximum error, which also matches suggested thresholds in datasheet
- * (Table 3. Host Interrupt Summary).
- */
-#define TCPC_REG_MEASURE_MDAC_MV(mv) (DIV_ROUND_NEAREST((mv), 42) & 0x3f)
-
-#define TCPC_REG_CONTROL0 0x06
-#define TCPC_REG_CONTROL0_TX_FLUSH (1<<6)
-#define TCPC_REG_CONTROL0_INT_MASK (1<<5)
-#define TCPC_REG_CONTROL0_HOST_CUR_MASK (3<<2)
-#define TCPC_REG_CONTROL0_HOST_CUR_3A0 (3<<2)
-#define TCPC_REG_CONTROL0_HOST_CUR_1A5 (2<<2)
-#define TCPC_REG_CONTROL0_HOST_CUR_USB (1<<2)
-#define TCPC_REG_CONTROL0_TX_START (1<<0)
-
-#define TCPC_REG_CONTROL1 0x07
-#define TCPC_REG_CONTROL1_ENSOP2DB (1<<6)
-#define TCPC_REG_CONTROL1_ENSOP1DB (1<<5)
-#define TCPC_REG_CONTROL1_BIST_MODE2 (1<<4)
-#define TCPC_REG_CONTROL1_RX_FLUSH (1<<2)
-#define TCPC_REG_CONTROL1_ENSOP2 (1<<1)
-#define TCPC_REG_CONTROL1_ENSOP1 (1<<0)
-
-#define TCPC_REG_CONTROL2 0x08
-/* two-bit field, valid values below */
-#define TCPC_REG_CONTROL2_MODE_MASK (0x3<<TCPC_REG_CONTROL2_MODE_POS)
-#define TCPC_REG_CONTROL2_MODE_DFP (0x3)
-#define TCPC_REG_CONTROL2_MODE_UFP (0x2)
-#define TCPC_REG_CONTROL2_MODE_DRP (0x1)
-#define TCPC_REG_CONTROL2_MODE_POS (1)
-#define TCPC_REG_CONTROL2_TOGGLE (1<<0)
-
-#define TCPC_REG_CONTROL3 0x09
-#define TCPC_REG_CONTROL3_SEND_HARDRESET (1<<6)
-#define TCPC_REG_CONTROL3_BIST_TMODE (1<<5) /* 302B Only */
-#define TCPC_REG_CONTROL3_AUTO_HARDRESET (1<<4)
-#define TCPC_REG_CONTROL3_AUTO_SOFTRESET (1<<3)
-/* two-bit field */
-#define TCPC_REG_CONTROL3_N_RETRIES (1<<1)
-#define TCPC_REG_CONTROL3_N_RETRIES_POS (1)
-#define TCPC_REG_CONTROL3_N_RETRIES_SIZE (2)
-#define TCPC_REG_CONTROL3_AUTO_RETRY (1<<0)
-
-#define TCPC_REG_MASK 0x0A
-#define TCPC_REG_MASK_VBUSOK (1<<7)
-#define TCPC_REG_MASK_ACTIVITY (1<<6)
-#define TCPC_REG_MASK_COMP_CHNG (1<<5)
-#define TCPC_REG_MASK_CRC_CHK (1<<4)
-#define TCPC_REG_MASK_ALERT (1<<3)
-#define TCPC_REG_MASK_WAKE (1<<2)
-#define TCPC_REG_MASK_COLLISION (1<<1)
-#define TCPC_REG_MASK_BC_LVL (1<<0)
-
-#define TCPC_REG_POWER 0x0B
-#define TCPC_REG_POWER_PWR (1<<0) /* four-bit field */
-#define TCPC_REG_POWER_PWR_LOW 0x1 /* Bandgap + Wake circuitry */
-#define TCPC_REG_POWER_PWR_MEDIUM 0x3 /* LOW + Receiver + Current refs */
-#define TCPC_REG_POWER_PWR_HIGH 0x7 /* MEDIUM + Measure block */
-#define TCPC_REG_POWER_PWR_ALL 0xF /* HIGH + Internal Oscillator */
-
-#define TCPC_REG_RESET 0x0C
-#define TCPC_REG_RESET_PD_RESET (1<<1)
-#define TCPC_REG_RESET_SW_RESET (1<<0)
-
-#define TCPC_REG_MASKA 0x0E
-#define TCPC_REG_MASKA_OCP_TEMP (1<<7)
-#define TCPC_REG_MASKA_TOGDONE (1<<6)
-#define TCPC_REG_MASKA_SOFTFAIL (1<<5)
-#define TCPC_REG_MASKA_RETRYFAIL (1<<4)
-#define TCPC_REG_MASKA_HARDSENT (1<<3)
-#define TCPC_REG_MASKA_TX_SUCCESS (1<<2)
-#define TCPC_REG_MASKA_SOFTRESET (1<<1)
-#define TCPC_REG_MASKA_HARDRESET (1<<0)
-
-#define TCPC_REG_MASKB 0x0F
-#define TCPC_REG_MASKB_GCRCSENT (1<<0)
-
-#define TCPC_REG_STATUS0A 0x3C
-#define TCPC_REG_STATUS0A_SOFTFAIL (1<<5)
-#define TCPC_REG_STATUS0A_RETRYFAIL (1<<4)
-#define TCPC_REG_STATUS0A_POWER (1<<2) /* two-bit field */
-#define TCPC_REG_STATUS0A_RX_SOFT_RESET (1<<1)
-#define TCPC_REG_STATUS0A_RX_HARD_RESEt (1<<0)
-
-#define TCPC_REG_STATUS1A 0x3D
-/* three-bit field, valid values below */
-#define TCPC_REG_STATUS1A_TOGSS (1<<3)
-#define TCPC_REG_STATUS1A_TOGSS_RUNNING 0x0
-#define TCPC_REG_STATUS1A_TOGSS_SRC1 0x1
-#define TCPC_REG_STATUS1A_TOGSS_SRC2 0x2
-#define TCPC_REG_STATUS1A_TOGSS_SNK1 0x5
-#define TCPC_REG_STATUS1A_TOGSS_SNK2 0x6
-#define TCPC_REG_STATUS1A_TOGSS_AA 0x7
-#define TCPC_REG_STATUS1A_TOGSS_POS (3)
-#define TCPC_REG_STATUS1A_TOGSS_MASK (0x7)
-
-#define TCPC_REG_STATUS1A_RXSOP2DB (1<<2)
-#define TCPC_REG_STATUS1A_RXSOP1DB (1<<1)
-#define TCPC_REG_STATUS1A_RXSOP (1<<0)
-
-#define TCPC_REG_INTERRUPTA 0x3E
-#define TCPC_REG_INTERRUPTA_OCP_TEMP (1<<7)
-#define TCPC_REG_INTERRUPTA_TOGDONE (1<<6)
-#define TCPC_REG_INTERRUPTA_SOFTFAIL (1<<5)
-#define TCPC_REG_INTERRUPTA_RETRYFAIL (1<<4)
-#define TCPC_REG_INTERRUPTA_HARDSENT (1<<3)
-#define TCPC_REG_INTERRUPTA_TX_SUCCESS (1<<2)
-#define TCPC_REG_INTERRUPTA_SOFTRESET (1<<1)
-#define TCPC_REG_INTERRUPTA_HARDRESET (1<<0)
-
-#define TCPC_REG_INTERRUPTB 0x3F
-#define TCPC_REG_INTERRUPTB_GCRCSENT (1<<0)
-
-#define TCPC_REG_STATUS0 0x40
-#define TCPC_REG_STATUS0_VBUSOK (1<<7)
-#define TCPC_REG_STATUS0_ACTIVITY (1<<6)
-#define TCPC_REG_STATUS0_COMP (1<<5)
-#define TCPC_REG_STATUS0_CRC_CHK (1<<4)
-#define TCPC_REG_STATUS0_ALERT (1<<3)
-#define TCPC_REG_STATUS0_WAKE (1<<2)
-#define TCPC_REG_STATUS0_BC_LVL1 (1<<1) /* two-bit field */
-#define TCPC_REG_STATUS0_BC_LVL0 (1<<0) /* two-bit field */
-
-#define TCPC_REG_STATUS1 0x41
-#define TCPC_REG_STATUS1_RXSOP2 (1<<7)
-#define TCPC_REG_STATUS1_RXSOP1 (1<<6)
-#define TCPC_REG_STATUS1_RX_EMPTY (1<<5)
-#define TCPC_REG_STATUS1_RX_FULL (1<<4)
-#define TCPC_REG_STATUS1_TX_EMPTY (1<<3)
-#define TCPC_REG_STATUS1_TX_FULL (1<<2)
-
-#define TCPC_REG_INTERRUPT 0x42
-#define TCPC_REG_INTERRUPT_VBUSOK (1<<7)
-#define TCPC_REG_INTERRUPT_ACTIVITY (1<<6)
-#define TCPC_REG_INTERRUPT_COMP_CHNG (1<<5)
-#define TCPC_REG_INTERRUPT_CRC_CHK (1<<4)
-#define TCPC_REG_INTERRUPT_ALERT (1<<3)
-#define TCPC_REG_INTERRUPT_WAKE (1<<2)
-#define TCPC_REG_INTERRUPT_COLLISION (1<<1)
-#define TCPC_REG_INTERRUPT_BC_LVL (1<<0)
-
-#define TCPC_REG_FIFOS 0x43
-
-/* Tokens defined for the FUSB302 TX FIFO */
-enum fusb302_txfifo_tokens {
- FUSB302_TKN_TXON = 0xA1,
- FUSB302_TKN_SYNC1 = 0x12,
- FUSB302_TKN_SYNC2 = 0x13,
- FUSB302_TKN_SYNC3 = 0x1B,
- FUSB302_TKN_RST1 = 0x15,
- FUSB302_TKN_RST2 = 0x16,
- FUSB302_TKN_PACKSYM = 0x80,
- FUSB302_TKN_JAMCRC = 0xFF,
- FUSB302_TKN_EOP = 0x14,
- FUSB302_TKN_TXOFF = 0xFE,
-};
-
-/**
- * Initializes the FUSB302 to operate
- * as a SNK only.
- *
- * @param port The i2c bus of the FUSB302B
- *
- * @returns EC_SUCCESS or EC_XXX on error
- */
-int init_fusb302b(int port);
-
-/**
- * Should be called from the interrupt generated
- * by the FUSB302. This function reads status
- * and interrupt registers in the FUSB302.
- */
-int update_status_fusb302b(void);
-
-/**
- * Returns true if VBUS is present, else false
- */
-int is_vbus_present(void);
-
-/*
- * Reads the status of the CC lines
- *
- * @returns EC_SUCCESS or EC_XXX on failure
- */
-int get_cc(int *cc1, int *cc2);
-
-#endif /* __CROS_EC_DRIVER_TCPM_FUSB302_H */
diff --git a/board/servo_v4p1/gpio.inc b/board/servo_v4p1/gpio.inc
deleted file mode 100644
index 070aa90098..0000000000
--- a/board/servo_v4p1/gpio.inc
+++ /dev/null
@@ -1,127 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-#ifdef SECTION_IS_RO
-GPIO_INT(USB_DET_PP_CHG, PIN(C, 13), GPIO_INT_BOTH, vbus0_evt)
-GPIO_INT(USB_DET_PP_DUT, PIN(C, 12), GPIO_INT_BOTH, vbus1_evt)
-GPIO_INT(STM_FAULT_IRQ_L, PIN(A, 8), GPIO_INT_FALLING, tca_evt)
-GPIO_INT(DP_HPD, PIN(A, 15), GPIO_INT_BOTH, dp_evt)
-GPIO_INT(CHGSRV_TCPC_INT_ODL, PIN(C, 0), GPIO_INT_FALLING, tcpc_evt)
-GPIO_INT(USBH_I2C_BUSY_INT, PIN(C, 9), GPIO_INT_FALLING, hub_evt)
-GPIO_INT(DUT_PWR_IRQ_ODL, PIN(F, 1), GPIO_INT_FALLING, dut_pwr_evt)
-#endif /* SECTION_IS_RO */
-
-/* Outputs */
-GPIO(HOST_USB_HUB_RESET_L, PIN(D, 2), GPIO_ODR_HIGH)
-GPIO(FASTBOOT_DUTHUB_MUX_SEL, PIN(B, 5), GPIO_OUT_HIGH)
-GPIO(SBU_MUX_EN, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(FASTBOOT_DUTHUB_MUX_EN_L, PIN(B, 7), GPIO_OUT_LOW)
-/* Power on init has reset asserted, we will pull the hub out of reset
- * in the board init to help avoid brownout.
- */
-GPIO(DUT_HUB_USB_RESET_L, PIN(B, 9), GPIO_ODR_HIGH)
-GPIO(ATMEL_HWB_L, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(USB3_A1_MUX_EN_L, PIN(F, 0), GPIO_OUT_HIGH)
-
-/* Inputs */
-
-/* Type-C */
-/* PD RX/TX */
-GPIO(USB_C_REF, PIN(A, 1), GPIO_ANALOG)
-GPIO(USB_CHG_CC1_MCU, PIN(A, 2), GPIO_ANALOG)
-GPIO(USB_CHG_CC2_MCU, PIN(A, 4), GPIO_ANALOG)
-GPIO(USB_DUT_CC1_MCU, PIN(A, 0), GPIO_ANALOG)
-GPIO(USB_DUT_CC2_MCU, PIN(A, 5), GPIO_ANALOG)
-
-GPIO(USB_CHG_CC1_TX_DATA, PIN(B, 4), GPIO_INPUT)
-GPIO(USB_CHG_CC2_TX_DATA, PIN(A, 6), GPIO_INPUT)
-GPIO(USB_DUT_CC1_TX_DATA, PIN(B, 14), GPIO_INPUT)
-GPIO(USB_DUT_CC2_TX_DATA, PIN(C, 2), GPIO_INPUT)
-
-GPIO(USB_DUT_CC1_RPUSB, PIN(C, 3), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RD, PIN(C, 6), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RA, PIN(C, 7), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RP3A0, PIN(C, 14), GPIO_INPUT)
-GPIO(USB_DUT_CC1_RP1A5, PIN(C, 15), GPIO_INPUT)
-
-GPIO(USB_DUT_CC2_RPUSB, PIN(B, 0), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RD, PIN(B, 1), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RA, PIN(B, 2), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RP1A5, PIN(C, 1), GPIO_INPUT)
-GPIO(USB_DUT_CC2_RP3A0, PIN(C, 8), GPIO_INPUT)
-
-/* Alternate PD functions */
-GPIO(USB_CHG_TX_CLKOUT, PIN(B, 8), GPIO_INPUT)
-GPIO(USB_CHG_TX_CLKIN, PIN(B, 3), GPIO_INPUT)
-GPIO(USB_DUT_TX_CLKOUT, PIN(B, 15), GPIO_INPUT)
-GPIO(USB_DUT_TX_CLKIN, PIN(B, 13), GPIO_INPUT)
-
-/* I2C pins should be configured as inputs until I2C module is */
-/* initialized. This will avoid driving the lines unintentionally.*/
-GPIO(MASTER_I2C_SCL, PIN(B, 10), GPIO_INPUT)
-GPIO(MASTER_I2C_SDA, PIN(B, 11), GPIO_INPUT)
-
-/* IOEX */
-#ifdef SECTION_IS_RO
-
-IOEX(SBU_UART_SEL, EXPIN(0, 0, 0), GPIO_OUT_LOW)
-IOEX(ATMEL_RESET_L, EXPIN(0, 0, 1), GPIO_OUT_LOW)
-IOEX(SBU_FLIP_SEL, EXPIN(0, 0, 2), GPIO_OUT_HIGH)
-IOEX(USB3_A0_MUX_SEL, EXPIN(0, 0, 3), GPIO_OUT_HIGH)
-IOEX(USB3_A0_MUX_EN_L, EXPIN(0, 0, 4), GPIO_OUT_LOW)
-IOEX(USB3_A0_PWR_EN, EXPIN(0, 0, 5), GPIO_OUT_LOW)
-IOEX(UART_18_SEL, EXPIN(0, 0, 6), GPIO_OUT_LOW)
-IOEX(USERVO_POWER_EN, EXPIN(0, 0, 7), GPIO_OUT_LOW)
-IOEX(USERVO_FASTBOOT_MUX_SEL, EXPIN(0, 1, 0), GPIO_OUT_LOW)
-IOEX(USB3_A1_PWR_EN, EXPIN(0, 1, 1), GPIO_OUT_LOW)
-IOEX(USB3_A1_MUX_SEL, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-IOEX(BOARD_ID_DET0, EXPIN(0, 1, 3), GPIO_INPUT)
-IOEX(BOARD_ID_DET1, EXPIN(0, 1, 4), GPIO_INPUT)
-IOEX(BOARD_ID_DET2, EXPIN(0, 1, 5), GPIO_INPUT)
-IOEX(VBUS_DISCHRG_EN, EXPIN(0, 1, 6), GPIO_OUT_LOW)
-IOEX(DONGLE_DET, EXPIN(0, 1, 7), GPIO_INPUT)
-
-IOEX(EN_PP5000_ALT_3P3, EXPIN(1, 0, 0), GPIO_OUT_LOW)
-IOEX(EN_PP3300_ETH, EXPIN(1, 0, 1), GPIO_OUT_HIGH)
-IOEX(EN_PP3300_DP, EXPIN(1, 0, 2), GPIO_OUT_HIGH)
-IOEX(FAULT_CLEAR_CC, EXPIN(1, 0, 3), GPIO_OUT_LOW)
-IOEX(EN_VOUT_BUF_CC1, EXPIN(1, 0, 4), GPIO_OUT_LOW)
-IOEX(EN_VOUT_BUF_CC2, EXPIN(1, 0, 5), GPIO_OUT_LOW)
-IOEX(DUT_CHG_EN, EXPIN(1, 0, 6), GPIO_OUT_LOW)
-IOEX(HOST_OR_CHG_CTL, EXPIN(1, 0, 7), GPIO_OUT_LOW)
-IOEX(USERVO_FAULT_L, EXPIN(1, 1, 0), GPIO_INPUT)
-IOEX(USB3_A0_FAULT_L, EXPIN(1, 1, 1), GPIO_INPUT)
-IOEX(USB3_A1_FAULT_L, EXPIN(1, 1, 2), GPIO_INPUT)
-IOEX(USB_DUTCHG_FLT_ODL, EXPIN(1, 1, 3), GPIO_INPUT)
-IOEX(PP3300_DP_FAULT_L, EXPIN(1, 1, 4), GPIO_INPUT)
-IOEX(DAC_BUF1_LATCH_FAULT_L, EXPIN(1, 1, 5), GPIO_INPUT)
-IOEX(DAC_BUF2_LATCH_FAULT_L, EXPIN(1, 1, 6), GPIO_INPUT)
-IOEX(PP5000_SRC_SEL, EXPIN(1, 1, 7), GPIO_INPUT)
-IOEX(HOST_CHRG_DET, EXPIN(1, 2, 0), GPIO_INPUT)
-IOEX(USBH_PWRDN_L, EXPIN(1, 2, 1), GPIO_OUT_HIGH)
-IOEX(ATMEL_SS, EXPIN(1, 2, 2), GPIO_INPUT)
-IOEX(ATMEL_SCLK, EXPIN(1, 2, 3), GPIO_INPUT)
-IOEX(ATMEL_MOSI, EXPIN(1, 2, 4), GPIO_INPUT)
-IOEX(ATMEL_MISO, EXPIN(1, 2, 5), GPIO_INPUT)
-IOEX(SYS_PWR_IRQ_ODL, EXPIN(1, 2, 6), GPIO_INPUT)
-IOEX(TCA_GPIO_DBG_LED_K_ODL, EXPIN(1, 2, 7), GPIO_OUT_LOW)
-
-#endif
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_USART, 0) /* USART1: PA9/PA10 - Servo DBG UART1 */
-ALTERNATE(PIN_MASK(C, 0x0030), 1, MODULE_USART, 0) /* USART3: PC4/PC5 - Servo DUT UART3 */
-ALTERNATE(PIN_MASK(C, 0x0C00), 0, MODULE_USART, 0) /* USART4: PC10/PC11 - Servo UART4 */
-ALTERNATE(PIN_MASK(B, 0x0C00), 1, MODULE_I2C, GPIO_ODR_HIGH) /* I2C MASTER:PB10/11 */
-ALTERNATE(PIN_MASK(B, 0x0008), 0, MODULE_USB_PD, 0) /* SPI1_SCK: PB3 */
-ALTERNATE(PIN_MASK(B, 0x2000), 0, MODULE_USB_PD, 0) /* SPI2_SCK: PB13 */
-ALTERNATE(PIN_MASK(B, 0x0100), 2, MODULE_USB_PD, 0) /* TIM16_CH1: PB8 */
-ALTERNATE(PIN_MASK(B, 0x8000), 1, MODULE_USB_PD, 0) /* TIM15_CH2: PB15 */
-
diff --git a/board/servo_v4p1/ina231s.c b/board/servo_v4p1/ina231s.c
deleted file mode 100644
index 3382686f3f..0000000000
--- a/board/servo_v4p1/ina231s.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* 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.
- */
-
-#include "common.h"
-#include "ina2xx.h"
-#include "util.h"
-
-#define PP_DUT_IDX 0
-#define PP_CHG_IDX 1
-#define SR_CHG_IDX 2
-
-void init_ina231s(void)
-{
- /* Calibrate INA0 (PP DUT) with 1mA/LSB scale */
- ina2xx_init(PP_DUT_IDX, 0x8000, INA2XX_CALIB_1MA(5 /*mOhm*/));
-
- /* Calibrate INA1 (PP CHG) with 1mA/LSB scale */
- ina2xx_init(PP_CHG_IDX, 0x8000, INA2XX_CALIB_1MA(5 /*mOhm*/));
-
- /* Calibrate INA2 (SR CHG) with 1mA/LSB scale*/
- ina2xx_init(SR_CHG_IDX, 0x8000, INA2XX_CALIB_1MA(5 /*mOhm*/));
-}
-
-int pp_dut_voltage(void)
-{
- return ina2xx_get_voltage(PP_DUT_IDX);
-}
-
-int pp_dut_current(void)
-{
- return ina2xx_get_current(PP_DUT_IDX);
-}
-
-int pp_dut_power(void)
-{
- return ina2xx_get_power(PP_DUT_IDX);
-}
-
-int pp_chg_voltage(void)
-{
- return ina2xx_get_voltage(PP_CHG_IDX);
-}
-
-int pp_chg_current(void)
-{
- return ina2xx_get_current(PP_CHG_IDX);
-}
-
-int pp_chg_power(void)
-{
- return ina2xx_get_power(PP_CHG_IDX);
-}
-
-int sr_chg_voltage(void)
-{
- return ina2xx_get_voltage(SR_CHG_IDX);
-}
-
-int sr_chg_current(void)
-{
- return ina2xx_get_current(SR_CHG_IDX);
-}
-
-int sr_chg_power(void)
-{
- return ina2xx_get_power(SR_CHG_IDX);
-}
diff --git a/board/servo_v4p1/ina231s.h b/board/servo_v4p1/ina231s.h
deleted file mode 100644
index 9c3804e769..0000000000
--- a/board/servo_v4p1/ina231s.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_INA231S_H
-#define __CROS_EC_INA231S_H
-
-/*
- * Initialize the INA231s
- */
-void init_ina231s(void);
-
-/*
- * Return dut vbus voltage in milliVolts
- */
-int pp_dut_voltage(void);
-
-/*
- * Return current in milliAmps
- */
-int pp_dut_current(void);
-
-/*
- * Return power in milliWatts
- */
-int pp_dut_power(void);
-
-/*
- * Return bus voltage in milliVolts
- */
-int pp_chg_voltage(void);
-
-/*
- * Return current in milliAmps
- */
-int pp_chg_current(void);
-
-/*
- * Return power in milliWatts
- */
-int pp_chg_power(void);
-
-/*
- * Return bus voltage in milliVolts
- */
-int sr_chg_voltage(void);
-
-/*
- * Return current in milliAmps
- */
-int sr_chg_current(void);
-
-/*
- * Return power in milliWatts
- */
-int sr_chg_power(void);
-
-#endif /* __CROS_EC_INA231S_H */
diff --git a/board/servo_v4p1/ioexpanders.c b/board/servo_v4p1/ioexpanders.c
deleted file mode 100644
index 7482038879..0000000000
--- a/board/servo_v4p1/ioexpanders.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/* 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.
- */
-
-#include "hooks.h"
-#include "i2c.h"
-#include "ioexpander.h"
-#include "ioexpanders.h"
-
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-/******************************************************************************
- * Initialize IOExpanders.
- */
-
-static enum servo_board_id board_id_val = BOARD_ID_UNSET;
-
-#ifdef SECTION_IS_RO
-
-static int dut_chg_en_state;
-static int bc12_charger;
-
-/* Enable all ioexpander outputs. */
-int init_ioexpanders(void)
-{
- /* Clear any faults and other IRQs*/
- read_faults();
- read_irqs();
-
- /*
- * Cache initial value for BC1.2 indicator. This is the only pin, which
- * notifies about event on both low and high levels, while notification
- * should happen only when state has changed.
- */
- ioex_get_level(IOEX_HOST_CHRG_DET, &bc12_charger);
-
- return EC_SUCCESS;
-}
-
-static void ioexpanders_irq(void)
-{
- int fault, irqs;
-
- fault = read_faults();
- irqs = read_irqs();
-
- if (!(fault & USERVO_FAULT_L)) {
- ec_uservo_power_en(0);
- CPRINTF("FAULT: Microservo USB A port load switch\n");
- }
-
- if (!(fault & USB3_A0_FAULT_L)) {
- ec_usb3_a0_pwr_en(0);
- CPRINTF("FAULT: USB3 A0 port load switch\n");
- }
-
- if (!(fault & USB3_A1_FAULT_L)) {
- ec_usb3_a1_pwr_en(0);
- CPRINTF("FAULT: USB3 A1 port load switch\n");
- }
-
- if (!(fault & USB_DUTCHG_FLT_ODL)) {
- CPRINTF("FAULT: Overcurrent on Charger or DUT CC/SBU lines\n");
- }
-
- if (!(fault & PP3300_DP_FAULT_L)) {
- CPRINTF("FAULT: Overcurrent on DisplayPort\n");
- }
-
- if (!(fault & DAC_BUF1_LATCH_FAULT_L)) {
- CPRINTF("FAULT: CC1 drive circuitry has exceeded thermal "
- "or current limits. The CC1 DAC has been disabled "
- "and disconnected.\n");
-
- en_vout_buf_cc1(0);
- }
-
- if (!(fault & DAC_BUF2_LATCH_FAULT_L)) {
- CPRINTF("FAULT: CC2 drive circuitry has exceeded thermal "
- "or current limits. The CC2 DAC has been disabled "
- "and disconnected.\n");
-
- en_vout_buf_cc2(0);
- }
-
- /*
- * In case of both DACs' faults, we should clear them only after
- * disabling both DACs.
- */
- if ((fault & (DAC_BUF1_LATCH_FAULT_L | DAC_BUF2_LATCH_FAULT_L)) !=
- (DAC_BUF1_LATCH_FAULT_L | DAC_BUF2_LATCH_FAULT_L)) {
- fault_clear_cc(1);
- fault_clear_cc(0);
- }
-
- if ((!!(irqs & HOST_CHRG_DET) != bc12_charger) &&
- (board_id_det() <= BOARD_ID_REV1)) {
- CPRINTF("BC1.2 charger %s\n",
- (irqs & HOST_CHRG_DET) ? "plugged" : "unplugged");
- bc12_charger = !!(irqs & HOST_CHRG_DET);
- }
-
- if (!(irqs & SYS_PWR_IRQ_ODL)) {
- CPRINTF("System full power threshold exceeded\n");
- }
-}
-DECLARE_DEFERRED(ioexpanders_irq);
-
-int irq_ioexpanders(void)
-{
- hook_call_deferred(&ioexpanders_irq_data, 0);
- return 0;
-}
-
-inline int sbu_uart_sel(int en)
-{
- return ioex_set_level(IOEX_SBU_UART_SEL, en);
-}
-
-inline int atmel_reset_l(int en)
-{
- return ioex_set_level(IOEX_ATMEL_RESET_L, en);
-}
-
-inline int sbu_flip_sel(int en)
-{
- return ioex_set_level(IOEX_SBU_FLIP_SEL, en);
-}
-
-inline int usb3_a0_mux_sel(int en)
-{
- return ioex_set_level(IOEX_USB3_A0_MUX_SEL, en);
-}
-
-inline int usb3_a0_mux_en_l(int en)
-{
- return ioex_set_level(IOEX_USB3_A0_MUX_EN_L, en);
-}
-
-inline int ec_usb3_a0_pwr_en(int en)
-{
- return ioex_set_level(IOEX_USB3_A0_PWR_EN, en);
-}
-
-inline int uart_18_sel(int en)
-{
- return ioex_set_level(IOEX_UART_18_SEL, en);
-}
-
-inline int ec_uservo_power_en(int en)
-{
- return ioex_set_level(IOEX_USERVO_POWER_EN, en);
-}
-
-inline int uservo_fastboot_mux_sel(enum uservo_fastboot_mux_sel_t sel)
-{
- return ioex_set_level(IOEX_USERVO_FASTBOOT_MUX_SEL, (int)sel);
-}
-
-inline int ec_usb3_a1_pwr_en(int en)
-{
- return ioex_set_level(IOEX_USB3_A1_PWR_EN, en);
-}
-
-inline int usb3_a1_mux_sel(int en)
-{
- return ioex_set_level(IOEX_USB3_A1_MUX_SEL, en);
-}
-
-inline int board_id_det(void)
-{
- if (board_id_val == BOARD_ID_UNSET) {
- int id;
-
- /* Cache board ID at init */
- if (ioex_get_port(IOEX_GET_INFO(IOEX_BOARD_ID_DET0)->ioex,
- IOEX_GET_INFO(IOEX_BOARD_ID_DET0)->port,
- &id))
- return id;
-
- /* Board ID consists of bits 5, 4, and 3 */
- board_id_val = (id >> BOARD_ID_DET_OFFSET) & BOARD_ID_DET_MASK;
- }
-
- return board_id_val;
-}
-
-inline int dongle_det(void)
-{
- int val;
- ioex_get_level(IOEX_DONGLE_DET, &val);
- return val;
-}
-
-inline int get_host_chrg_det(void)
-{
- int val;
- ioex_get_level(IOEX_HOST_CHRG_DET, &val);
- return val;
-}
-
-inline int en_pp5000_alt_3p3(int en)
-{
- return ioex_set_level(IOEX_EN_PP5000_ALT_3P3, en);
-}
-
-inline int en_pp3300_eth(int en)
-{
- return ioex_set_level(IOEX_EN_PP3300_ETH, en);
-}
-
-inline int en_pp3300_dp(int en)
-{
- return ioex_set_level(IOEX_EN_PP3300_DP, en);
-}
-
-inline int fault_clear_cc(int en)
-{
- return ioex_set_level(IOEX_FAULT_CLEAR_CC, en);
-}
-
-inline int en_vout_buf_cc1(int en)
-{
- return ioex_set_level(IOEX_EN_VOUT_BUF_CC1, en);
-}
-
-inline int en_vout_buf_cc2(int en)
-{
- return ioex_set_level(IOEX_EN_VOUT_BUF_CC2, en);
-}
-
-int dut_chg_en(int en)
-{
- dut_chg_en_state = en;
- return ioex_set_level(IOEX_DUT_CHG_EN, en);
-}
-
-int get_dut_chg_en(void)
-{
- return dut_chg_en_state;
-}
-
-inline int host_or_chg_ctl(int en)
-{
- return ioex_set_level(IOEX_HOST_OR_CHG_CTL, en);
-}
-
-inline int read_faults(void)
-{
- int val;
-
- ioex_get_port(IOEX_GET_INFO(IOEX_USERVO_FAULT_L)->ioex,
- IOEX_GET_INFO(IOEX_USERVO_FAULT_L)->port,
- &val);
-
- return val;
-}
-
-inline int read_irqs(void)
-{
- int val;
-
- ioex_get_port(IOEX_GET_INFO(IOEX_SYS_PWR_IRQ_ODL)->ioex,
- IOEX_GET_INFO(IOEX_SYS_PWR_IRQ_ODL)->port,
- &val);
-
- return val;
-}
-
-inline int vbus_dischrg_en(int en)
-{
- return ioex_set_level(IOEX_VBUS_DISCHRG_EN, en);
-}
-
-inline int usbh_pwrdn_l(int en)
-{
- return ioex_set_level(IOEX_USBH_PWRDN_L, en);
-}
-
-inline int tca_gpio_dbg_led_k_odl(int en)
-{
- return ioex_set_level(IOEX_TCA_GPIO_DBG_LED_K_ODL, !en);
-}
-
-#else /* SECTION_IS_RO */
-
-/*
- * Due to lack of flash in RW section, it is not possible to use IOEX subsystem
- * in it. Instead, RO section uses IOEX, and RW implements only required
- * function with raw i2c operation. This function is required by 'version'
- * console command and should work without any special initialization.
- */
-inline int board_id_det(void)
-{
- if (board_id_val == BOARD_ID_UNSET) {
- int id;
- int res;
-
- /* Cache board ID at init */
- res = i2c_read8(TCA6416A_PORT,
- TCA6416A_ADDR,
- BOARD_ID_DET_PORT,
- &id);
- if (res != EC_SUCCESS)
- return res;
-
- /* Board ID consists of bits 5, 4, and 3 */
- board_id_val = (id >> BOARD_ID_DET_OFFSET) & BOARD_ID_DET_MASK;
- }
-
- /* Board ID consists of bits 5, 4, and 3 */
- return board_id_val;
-}
-
-#endif /* SECTION_IS_RO */
diff --git a/board/servo_v4p1/ioexpanders.h b/board/servo_v4p1/ioexpanders.h
deleted file mode 100644
index 6565992857..0000000000
--- a/board/servo_v4p1/ioexpanders.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_IOEXPANDERS_H
-#define __CROS_EC_IOEXPANDERS_H
-
-#define BOARD_ID_DET_MASK 0x7
-#define BOARD_ID_DET_OFFSET 3
-#define BOARD_ID_DET_PORT 1
-
-enum uservo_fastboot_mux_sel_t {
- MUX_SEL_USERVO = 0,
- MUX_SEL_FASTBOOT = 1
-};
-
-/*
- * Initialize Ioexpanders
- */
-int init_ioexpanders(void);
-
-/*
- * Calls the Ioexpanders Deferred handler for interrupts
- * Should be called from the ioexpanders IRQ handler
- */
-int irq_ioexpanders(void);
-
-/**
- * SBU Crosspoint select
- *
- * @param en 0 - HOST SBU to DUT SBU connected
- * 1 - STM UART to DUT SBU connected
- * @return EC_SUCCESS or EC_xxx on error
- */
-int sbu_uart_sel(int en);
-
-/**
- * Host KBC Controller reset
- *
- * @param en 0 - Assert reset
- * 1 - Deassert reset
- * @return EC_SUCCESS or EC_xxx on error
- */
-int atmel_reset_l(int en);
-
-/**
- * SBU Crosspoint polarity flip for DTU SBU to STM USART/Host SBU
- *
- * @param en 0 - Retain polarity (no inversion)
- * 1 - Swap P for N polarity
- * @return EC_SUCCESS or EC_xxx on error
- */
-int sbu_flip_sel(int en);
-
-/**
- * USB data path for general USB type A port
- *
- * @param en 0 - Host hub
- * 1 - DUT hub
- * @return EC_SUCCESS or EC_xxx on error
- */
-int usb3_a0_mux_sel(int en);
-
-/**
- * USB data path enable for general USB type A port, first on J2
- *
- * @param en 0 - Data connected / enabled
- * 1 - Data disconnected
- * @return EC_SUCCESS or EC_xxx on error
- */
-int usb3_a0_mux_en_l(int en);
-
-/**
- * Controls load switches for 5V to general USB type A.
- *
- * @param en 0 - Disable power
- * 1 - Enable power
- * @return EC_SUCCESS or EC_xxx on error
- */
-int ec_usb3_a0_pwr_en(int en);
-
-/**
- * Controls logic to select 1.8V or 3.3V UART from STM to DUT on SBU lines
- *
- * @param en 0 - 3.3V level
- * 1 - 1.8V level
- * @return EC_SUCCESS or EC_xxx on error
- */
-int uart_18_sel(int en);
-
-/**
- * Controls load switches for 5V to uservo USB type A port
- *
- * @param en 0 - Disable power
- * 1 - Enable power
- * @return EC_SUCCESS or EC_xxx on error
- */
-int ec_uservo_power_en(int en);
-
-/**
- * USB data path enable from host hub to downstream userv or DUT peripheral
- *
- * @param sel MUX_SEL_USERVO - hub connected to uservo
- * MUX_SEL_FASTBOOT - hub connected to DUT
- * @return EC_SUCCESS or EC_xxx on error
- */
-int uservo_fastboot_mux_sel(enum uservo_fastboot_mux_sel_t sel);
-
-/**
- * Controls load switches for 5V to general USB type A second port
- *
- * @param en 0 - power off
- * 1 - power enabled
- * @return EC_SUCCESS or EC_xxx on error
- */
-int ec_usb3_a1_pwr_en(int en);
-
-/**
- * USB data path for general USB type A port, second on J2
- *
- * @param en 0 - Host hub
- * 1 - DUT hub
- * @return EC_SUCCESS or EC_xxx on error
- */
-int usb3_a1_mux_sel(int en);
-
-/**
- * Reads the 3-bit Servo V4.1 version ID
- *
- * @return version ID
- */
-int board_id_det(void);
-
-/**
- * Reads the TypeA/TypeC DUT cable assembly pigtail
- *
- * @return 0 - for TypeA
- * 1 - for TypeC
- */
-int dongle_det(void);
-
-/**
- * Reads state of BC1.2 on host connection
- *
- * @return 0 - BC1.2 not present
- * 1 - BC1.2 present
- */
-int get_host_chrg_det(void);
-
-/**
- * Enable signal for supplemental power supply. This supply will support higher
- * wattage servo needs. 10ms after enabling this bit, the server supply should
- * switch over from the host supply and the higher wattage will be available
- *
- * @param en 0 - Alternate supply disabled
- * 1 - Supply enabled
- * @return EC_SUCCESS or EC_xxx on error
- */
-int en_pp5000_alt_3p3(int en);
-
-/**
- * Controls load switches for the RTL8153. By default, ethernet is enabled but
- * power can be removed as a way to clear any bad conditions
- *
- * @param en 0 - disable power
- * 1 - enable power
- * @return EC_SUCCESS or EC_xxx on error
- */
-int en_pp3300_eth(int en);
-
-/**
- * Controls load switches that enables 3.3V supply on the Display Port
- * connector. On by default
- *
- * @param en 0 - disable 3.3V to DP connector
- * 1 - enable 3.3V to DP connector
- * @return EC_SUCCESS or EC_xxx on error
- */
-int en_pp3300_dp(int en);
-
-/**
- * The rising edge of this signal clears the latched condition when thermal
- * or overcurrent fault has occurred from both CC1 and CC2 channels. Note
- * that if the CC drive circuitry continues to be overheated, it will reset
- * the fault regardless of the FAULT_CLEAR_CC signal.
- *
- * @param en 0 to 1 transition - clear fault
- * 1 to 0 transition, 0, or 1 - No change in fault
- * @return EC_SUCCESS or EC_xxx on error
- */
-int fault_clear_cc(int en);
-
-/**
- * CC1 Drive circuitry enable
- *
- * @param en 0 - disable CC1 high output drive (normal CC Operation by STM)
- * 1 - enable CC1 high drive output
- * @return EC_SUCCESS or EC_xxx on error
- */
-int en_vout_buf_cc1(int en);
-
-/**
- * CC2 Drive circuitry enable
- *
- * @param en 0 - disable CC2 high output drive (normal CC Operation by STM)
- * 1 - enable CC2 high drive output
- * @return EC_SUCCESS or EC_xxx on error
- */
-int en_vout_buf_cc2(int en);
-
-/**
- * Controls load switches for servo to power DUT Vusb
- *
- * @param en 0 - disable power
- * 1 - enable power
- * @return EC_SUCCESS or EC_xxx on error
- */
-int dut_chg_en(int en);
-
-/**
- * Get state of DUT Vusb
- *
- * @return 0 - power is disabled
- * 1 - power is enabled
- * @return EC_SUCCESS or EC_xxx on error
- */
-int get_dut_chg_en(void);
-
-/**
- * Selects power source for DUT Vusb from servo
- *
- * @param en 0 - 5V
- * 1 - charger Vbus
- * @return EC_SUCCESS or EC_xxx on error
- */
-int host_or_chg_ctl(int en);
-
-#define USERVO_FAULT_L BIT(0)
-#define USB3_A0_FAULT_L BIT(1)
-#define USB3_A1_FAULT_L BIT(2)
-#define USB_DUTCHG_FLT_ODL BIT(3)
-#define PP3300_DP_FAULT_L BIT(4)
-#define DAC_BUF1_LATCH_FAULT_L BIT(5)
-#define DAC_BUF2_LATCH_FAULT_L BIT(6)
-#define PP5000_SRC_SEL BIT(7)
-
-/**
- * Read any faults that may have occurred. A fault has occurred if the
- * corresponding bit is 0.
- *
- * BIT:
- * 0 (USERVO_FAULT_L) - Fault for port microservo USB A load switch
- * 1 (USB3_A0_FAULT_L) - Fault for general port USB A load switch
- * 2 (USB3_A1_FAULT_L) - Fault for general port USB A load switch
- * 3 (USB_DUTCHG_FLT_ODL) - Overcurrent fault on Charger or DUB CC/SBU lines
- * 4 (PP3300_DP_FAULT_L) - Overcurrent fault on DisplayPort
- * 5 (DAC_BUF1_LATCH_FAULT_L) - Fault to indicate CC drive circuitry has
- * exceeded thermal limits or exceeded current
- * limits; when faults occur, the driver is
- * disabled and needs to be reset.
- * 6 (DAC_BUF2_LATCH_FAULT_L) - Fault to indicate CC drive circuitry has
- * exceeded thermal limits or exceeded current
- * limits; when faults occur, the driver is
- * disabled and needs to be reset.
- * 7 (PP5000_SRC_SEL) - Used to monitor whether Host power or Servo Charger
- * USBC is providing source to PP5000. This may flip
- * sources upon fault and should be monitored.
- * 0 - USBC Servo charger is source
- * 1 - host cable is source
- */
-int read_faults(void);
-
-#define HOST_CHRG_DET BIT(0)
-#define SYS_PWR_IRQ_ODL BIT(6)
-
-/**
- * Read irqs which indicate some system event.
- *
- * BIT
- * 0 (HOST_CHRG_DET) - Change of state of BC1.2 on host connection
- * 0 - BC1.2 not present
- * 1 - BC1.2 present
- * 6 (SYS_PWR_IRQ_ODL) - IRQ from system full power INA231 monitor. IRQ can be
- * programmed to trip on wattage threshold.
- * 0 - IRQ asserted
- * 1 - no IRQ
- */
-int read_irqs(void);
-
-/**
- * Enables active discharge for USB DUT Charger
- *
- * @param en 0 - disable active discharge (default)
- * 1 - enable active discharge circuitry
- * @return EC_SUCCESS or EC_xxx on error
- */
-int vbus_dischrg_en(int en);
-
-/**
- * Enables Hub
- *
- * @param en 0 - place hub in suspend (low power state)
- * 1 - enable hub activity (including i2c)
- * @return EC_SUCCESS or EC_xxx on error
- */
-int usbh_pwrdn_l(int en);
-
-/**
- * Debug LED
- *
- * @param en 0 - LED is OFF
- * 1 - LED is ON
- * @return EC_SUCCESS or EC_xxx on error
- */
-int tca_gpio_dbg_led_k_odl(int en);
-
-#endif /* __CROS_EC_IOEXPANDERS_H */
diff --git a/board/servo_v4p1/pathsel.c b/board/servo_v4p1/pathsel.c
deleted file mode 100644
index 7b71fba169..0000000000
--- a/board/servo_v4p1/pathsel.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* 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.
- */
-
-#include "gl3590.h"
-#include "gpio.h"
-#include "ioexpanders.h"
-#include "pathsel.h"
-
-static void hh_usb3_a0_pwr_en(int en)
-{
- gl3590_enable_ports(0, GL3590_DFP2, en);
-}
-
-static void hh_usb3_a1_pwr_en(int en)
-{
- gl3590_enable_ports(0, GL3590_DFP1, en);
-}
-
-void init_pathsel(void)
-{
- /* Connect TypeA port to DUT hub */
- usb3_a0_to_dut();
- /* Connect data lines */
- usb3_a0_mux_en_l(0);
-
- /* Enable power */
- ec_usb3_a0_pwr_en(1);
-
- hh_usb3_a0_pwr_en(1);
-
- /* Connect TypeA port to DUT hub */
- usb3_a1_to_dut();
- /* Connect data lines */
- gpio_set_level(GPIO_USB3_A1_MUX_EN_L, 0);
-
- /* Enable power */
- ec_usb3_a1_pwr_en(1);
-
- hh_usb3_a1_pwr_en(1);
-}
-
-void usb3_a0_to_dut(void)
-{
- usb3_a0_mux_sel(1);
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_SEL, 1);
-}
-
-void usb3_a1_to_dut(void)
-{
- usb3_a1_mux_sel(1);
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_SEL, 1);
-}
-
-void usb3_a0_to_host(void)
-{
- usb3_a0_mux_sel(0);
-}
-
-void usb3_a1_to_host(void)
-{
- usb3_a1_mux_sel(0);
-}
-
-void dut_to_host(void)
-{
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_SEL, 0);
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_EN_L, 0);
- uservo_fastboot_mux_sel(MUX_SEL_FASTBOOT);
-}
-
-void uservo_to_host(void)
-{
- uservo_fastboot_mux_sel(MUX_SEL_USERVO);
-}
diff --git a/board/servo_v4p1/pathsel.h b/board/servo_v4p1/pathsel.h
deleted file mode 100644
index 7365d3adf3..0000000000
--- a/board/servo_v4p1/pathsel.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_PATHSEL_H
-#define __CROS_EC_PATHSEL_H
-
-/**
- * Both USB3_TypeA0 and USB3_TypeA1 are routed to the DUT by default.
- */
-void init_pathsel(void);
-
-/**
- * Routes USB3_TypeA0 port to DUT
- */
-void usb3_a0_to_dut(void);
-
-/**
- * Routes USB3_TypeA1 port to DUT
- */
-void usb3_a1_to_dut(void);
-
-/**
- * Routes USB3_TypeA0 port to HOST
- */
-void usb3_a0_to_host(void);
-
-/**
- * Routes USB3_TypeA1 port to HOST
- */
-void usb3_a1_to_host(void);
-
-/**
- * Routes the DUT to the HOST. Used for fastboot
- */
-void dut_to_host(void);
-
-/**
- * Routes the Micro Servo to the Host
- */
-void uservo_to_host(void);
-
-#endif /* __CROS_EC_PATHSEL_H */
diff --git a/board/servo_v4p1/pi3usb9201.c b/board/servo_v4p1/pi3usb9201.c
deleted file mode 100644
index 102eaf790d..0000000000
--- a/board/servo_v4p1/pi3usb9201.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* 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.
- */
-
-#include "i2c.h"
-#include "pi3usb9201.h"
-
-#define PI3USB9201_ADDR 0x5f
-
-inline void init_pi3usb9201(void)
-{
- /*
- * Write 0x08 (Client mode detection and Enable USB switch auto ON) to
- * control Reg 2
- * Write 0x08 (Client Mode) to Control Reg 1
- */
- i2c_write16(1, PI3USB9201_ADDR, CTRL_REG1, 0x0808);
-}
-
-inline void write_pi3usb9201(enum pi3usb9201_reg_t reg,
- enum pi3usb9201_dat_t dat)
-{
- i2c_write8(1, PI3USB9201_ADDR, reg, dat);
-}
-
-inline uint8_t read_pi3usb9201(enum pi3usb9201_reg_t reg)
-{
- int tmp;
-
- i2c_read8(1, PI3USB9201_ADDR, reg, &tmp);
-
- return tmp;
-}
diff --git a/board/servo_v4p1/pi3usb9201.h b/board/servo_v4p1/pi3usb9201.h
deleted file mode 100644
index 826db8b871..0000000000
--- a/board/servo_v4p1/pi3usb9201.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* 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.
- */
-
-#ifndef __CROS_EC_PI3USB9201_H
-#define __CROS_EC_PI3USB9201_H
-
-enum pi3usb9201_reg_t {
- CTRL_REG1,
- CTRL_REG2,
- CLIENT_STATUS,
- HOST_STATUS
-};
-
-enum pi3usb9201_dat_t {
- POWER_DOWN = 0x0,
- SDP_HOST_MODE = 0x2,
- DCP_HOST_MODE = 0x4,
- CDP_HOST_MODE = 0x6,
- CLIENT_MODE = 0x8,
- USB_PATH_ON = 0xe
-};
-
-
-/* Client Status bits */
-#define CS_DCP BIT(7)
-#define CS_SDP BIT(6)
-#define CS_CDP BIT(5)
-#define CS_1A_CHARGER BIT(3)
-#define CS_2A_CHARGER BIT(2)
-#define CS_2_4A_CHARGER BIT(1)
-
-/* Host Status bits */
-#define HS_USB_UNPLUGGED BIT(2)
-#define HS_USB_PLUGGED BIT(1)
-#define HS_BC1_2 BIT(0)
-
-/**
- * Selects Client Mode and client mode detection
- */
-void init_pi3usb9201(void);
-
-/**
- * Write a byte to the pi3usb9201
- *
- * @param reg register to write
- * @param dat data to write to the register
- */
-void write_pi3usb9201(enum pi3usb9201_reg_t reg, enum pi3usb9201_dat_t dat);
-
-/**
- * Read a byte from the pi3usb9201
- *
- * @param return data byte read from pi3usb9201
- */
-uint8_t read_pi3usb9201(enum pi3usb9201_reg_t reg);
-
-#endif /* __CROS_EC_PI3USB9201_H */
diff --git a/board/servo_v4p1/usb_pd_config.h b/board/servo_v4p1/usb_pd_config.h
deleted file mode 100644
index 63fb6b5728..0000000000
--- a/board/servo_v4p1/usb_pd_config.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "chip/stm32/registers.h"
-#include "console.h"
-#include "gpio.h"
-#include "ec_commands.h"
-#include "usb_pd_tcpm.h"
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_CHG 16
-#define TIM_CLOCK_PD_RX_CHG 1
-#define TIM_CLOCK_PD_TX_DUT 15
-#define TIM_CLOCK_PD_RX_DUT 3
-
-/* Timer channel */
-#define TIM_TX_CCR_CHG 1
-#define TIM_RX_CCR_CHG 1
-#define TIM_TX_CCR_DUT 2
-#define TIM_RX_CCR_DUT 1
-
-#define TIM_CLOCK_PD_TX(p) ((p) ? TIM_CLOCK_PD_TX_DUT : TIM_CLOCK_PD_TX_CHG)
-#define TIM_CLOCK_PD_RX(p) ((p) ? TIM_CLOCK_PD_RX_DUT : TIM_CLOCK_PD_RX_CHG)
-
-/* RX timer capture/compare register */
-#define TIM_CCR_CHG (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_CHG, TIM_RX_CCR_CHG))
-#define TIM_CCR_DUT (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_DUT, TIM_RX_CCR_DUT))
-#define TIM_RX_CCR_REG(p) ((p) ? TIM_CCR_DUT : TIM_CCR_CHG)
-
-/* TX and RX timer register */
-#define TIM_REG_TX_CHG (STM32_TIM_BASE(TIM_CLOCK_PD_TX_CHG))
-#define TIM_REG_RX_CHG (STM32_TIM_BASE(TIM_CLOCK_PD_RX_CHG))
-#define TIM_REG_TX_DUT (STM32_TIM_BASE(TIM_CLOCK_PD_TX_DUT))
-#define TIM_REG_RX_DUT (STM32_TIM_BASE(TIM_CLOCK_PD_RX_DUT))
-#define TIM_REG_TX(p) ((p) ? TIM_REG_TX_DUT : TIM_REG_TX_CHG)
-#define TIM_REG_RX(p) ((p) ? TIM_REG_RX_DUT : TIM_REG_RX_CHG)
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* Servo v4 CC configuration */
-#define CC_DETACH BIT(0) /* Emulate detach: both CC open */
-#define CC_DISABLE_DTS BIT(1) /* Apply resistors to single or both CC? */
-#define CC_ALLOW_SRC BIT(2) /* Allow charge through by policy? */
-#define CC_ENABLE_DRP BIT(3) /* Enable dual-role port */
-#define CC_SNK_WITH_PD BIT(4) /* Force enabling PD comm for sink role */
-#define CC_POLARITY BIT(5) /* CC polarity */
-#define CC_EMCA_SERVO BIT(6) /*
- * Emulate Electronically Marked Cable Assembly
- * (EMCA) servo (or non-EMCA)
- */
-#define CC_FASTBOOT_DFP BIT(7) /* Allow mux uServo->Fastboot on DFP */
-
-/* Servo v4 DP alt-mode configuration */
-#define ALT_DP_ENABLE BIT(0) /* Enable DP alt-mode or not */
-#define ALT_DP_PIN_C BIT(1) /* Pin assignment C supported */
-#define ALT_DP_PIN_D BIT(2) /* Pin assignment D supported */
-#define ALT_DP_MF_PREF BIT(3) /* Multi-Function preferred */
-#define ALT_DP_PLUG BIT(4) /* Plug or receptacle */
-#define ALT_DP_OVERRIDE_HPD BIT(5) /* Override the HPD signal */
-#define ALT_DP_HPD_LVL BIT(6) /* HPD level if overridden */
-
-/* TX uses SPI1 on PB3-4 for CHG port, SPI2 on PB 13-14 for DUT port */
-#define SPI_REGS(p) ((p) ? STM32_SPI2_REGS : STM32_SPI1_REGS)
-static inline void spi_enable_clock(int port)
-{
- if (port == CHG)
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
- else
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-}
-
-/* DMA for transmit uses DMA CH3 for CHG and DMA_CH7 for DUT */
-#define DMAC_SPI_TX(p) ((p) ? STM32_DMAC_CH7 : STM32_DMAC_CH3)
-
-/* RX uses COMP1 and TIM1_CH1 on port CHG and COMP2 and TIM3_CH1 for port DUT*/
-/* DUT RX use CMP1, TIM3_CH1, DMA_CH6 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM3_IC1
-/* CHG RX use CMP2, TIM1_CH1, DMA_CH2 */
-#define CMP2OUTSEL STM32_COMP_CMP2OUTSEL_TIM1_IC1
-
-#define TIM_TX_CCR_IDX(p) ((p) ? TIM_TX_CCR_DUT : TIM_TX_CCR_CHG)
-#define TIM_RX_CCR_IDX(p) ((p) ? TIM_RX_CCR_DUT : TIM_RX_CCR_CHG)
-#define TIM_CCR_CS 1
-
-/*
- * EXTI line 21 is connected to the CMP1 output,
- * EXTI line 22 is connected to the CMP2 output,
- * CHG uses CMP2, and DUT uses CMP1.
- */
-#define EXTI_COMP_MASK(p) ((p) ? (1<<21) : BIT(22))
-
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-/* DMA for receive uses DMA_CH2 for CHG and DMA_CH6 for DUT */
-#define DMAC_TIM_RX(p) ((p) ? STM32_DMAC_CH6 : STM32_DMAC_CH2)
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- if (port == CHG) {
- /* 40 MHz pin speed on SPI PB3&4,
- * (USB_CHG_TX_CLKIN & USB_CHG_CC1_TX_DATA)
- */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000003C0;
- /* 40 MHz pin speed on TIM16_CH1 (PB8),
- * (USB_CHG_TX_CLKOUT)
- */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x00030000;
- } else {
- /* 40 MHz pin speed on SPI PB13/14,
- * (USB_DUT_TX_CLKIN & USB_DUT_CC1_TX_DATA)
- */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x3C000000;
- /* 40 MHz pin speed on TIM15_CH2 (PB15) */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xC0000000;
- }
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- if (port == CHG) {
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
- } else {
- /* Reset SPI2 */
- STM32_RCC_APB1RSTR |= BIT(14);
- STM32_RCC_APB1RSTR &= ~BIT(14);
- }
-}
-
-static const uint8_t tx_gpio[2 /* port */][2 /* polarity */] = {
- { GPIO_USB_CHG_CC1_TX_DATA, GPIO_USB_CHG_CC2_TX_DATA },
- { GPIO_USB_DUT_CC1_TX_DATA, GPIO_USB_DUT_CC2_TX_DATA },
-};
-static const uint8_t ref_gpio[2 /* port */][2 /* polarity */] = {
- { GPIO_USB_CHG_CC1_MCU, GPIO_USB_CHG_CC2_MCU },
- { GPIO_USB_DUT_CC1_MCU, GPIO_USB_DUT_CC2_MCU },
-};
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
-#ifndef VIF_BUILD /* genvif doesn't like tricks with GPIO macros */
- const struct gpio_info *tx = gpio_list + tx_gpio[port][polarity];
- const struct gpio_info *ref = gpio_list + ref_gpio[port][polarity];
-
- /* use directly GPIO registers, latency before the PD preamble is key */
-
- /* switch the TX pin Mode from Input (00) to Alternate (10) for SPI */
- STM32_GPIO_MODER(tx->port) |= 2 << ((31 - __builtin_clz(tx->mask)) * 2);
- /* switch the ref pin Mode from analog (11) to Out (01) for low level */
- STM32_GPIO_MODER(ref->port) &=
- ~(2 << ((31 - __builtin_clz(ref->mask)) * 2));
-#endif /* !VIF_BUILD */
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- const struct gpio_info *tx = gpio_list + tx_gpio[port][polarity];
- const struct gpio_info *ref = gpio_list + ref_gpio[port][polarity];
-
- gpio_set_flags_by_mask(tx->port, tx->mask, GPIO_INPUT);
- gpio_set_flags_by_mask(ref->port, ref->mask, GPIO_ANALOG);
-}
-
-/* we know the plug polarity, do the right configuration */
-static inline void pd_select_polarity(int port, int polarity)
-{
- uint32_t val = STM32_COMP_CSR;
-
- /* Use window mode so that COMP1 and COMP2 share non-inverting input */
- val |= STM32_COMP_CMP1EN | STM32_COMP_CMP2EN | STM32_COMP_WNDWEN;
-
- if (port == CHG) {
- /* CHG use the right comparator inverted input for COMP2 */
- STM32_COMP_CSR = (val & ~STM32_COMP_CMP2INSEL_MASK) |
- (polarity ? STM32_COMP_CMP2INSEL_INM4 /* PA4: C0_CC2 */
- : STM32_COMP_CMP2INSEL_INM6);/* PA2: C0_CC1 */
- } else {
- /* DUT use the right comparator inverted input for COMP1 */
- STM32_COMP_CSR = (val & ~STM32_COMP_CMP1INSEL_MASK) |
- (polarity ? STM32_COMP_CMP1INSEL_INM5 /* PA5: C1_CC2 */
- : STM32_COMP_CMP1INSEL_INM6);/* PA0: C1_CC1 */
- }
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- const struct gpio_info *c2 = gpio_list + GPIO_USB_CHG_CC2_TX_DATA;
- const struct gpio_info *c1 = gpio_list + GPIO_USB_CHG_CC1_TX_DATA;
- const struct gpio_info *d2 = gpio_list + GPIO_USB_DUT_CC2_TX_DATA;
- const struct gpio_info *d1 = gpio_list + GPIO_USB_DUT_CC1_TX_DATA;
-
- gpio_config_module(MODULE_USB_PD, 1);
- /* Select the proper alternate SPI function on TX_DATA pins */
- /* USB_CHG_CC2_TX_DATA: PA6 is SPI1 MISO (AF0) */
- gpio_set_alternate_function(c2->port, c2->mask, 0);
- gpio_set_flags_by_mask(c2->port, c2->mask, GPIO_INPUT);
- /* USB_CHG_CC1_TX_DATA: PB4 is SPI1 MISO (AF0) */
- gpio_set_alternate_function(c1->port, c1->mask, 0);
- gpio_set_flags_by_mask(c1->port, c1->mask, GPIO_INPUT);
- /* USB_DUT_CC2_TX_DATA: PC2 is SPI2 MISO (AF1) */
- gpio_set_alternate_function(d2->port, d2->mask, 1);
- gpio_set_flags_by_mask(d2->port, d2->mask, GPIO_INPUT);
- /* USB_DUT_CC1_TX_DATA: PB14 is SPI2 MISO (AF0) */
- gpio_set_alternate_function(d1->port, d1->mask, 0);
- gpio_set_flags_by_mask(d1->port, d1->mask, GPIO_INPUT);
-}
-
-static inline void pd_set_host_mode(int port, int enable)
-{
- /*
- * CHG (port == 0) port has fixed Rd attached and therefore can only
- * present as a SNK device. If port != DUT (port == 1), then nothing to
- * do in this function.
- */
- if (port != DUT)
- return;
-
- if (enable) {
- /*
- * Servo_v4 in SRC mode acts as a DTS (debug test
- * accessory) and needs to present Rp on both CC
- * lines. In order to support orientation detection, and
- * advertise the correct TypeC current level, the
- * values of Rp1/Rp2 need to asymmetric with Rp1 > Rp2. This
- * function is called without a specified Rp value so assume the
- * servo_v4 default of USB level current. If a higher current
- * can be supported, then the Rp value will get adjusted when
- * VBUS is enabled.
- */
- pd_set_rp_rd(port, TYPEC_CC_RP, TYPEC_RP_USB);
-
- gpio_set_flags(GPIO_USB_DUT_CC1_TX_DATA, GPIO_INPUT);
- gpio_set_flags(GPIO_USB_DUT_CC2_TX_DATA, GPIO_INPUT);
- } else {
- /* Select Rd, the Rp value is a don't care */
- pd_set_rp_rd(port, TYPEC_CC_RD, TYPEC_RP_RESERVED);
- }
-}
-
-/**
- * Initialize various GPIOs and interfaces to safe state at start of pd_task.
- *
- * These include:
- * VBUS, charge path based on power role.
- * Physical layer CC transmit.
- *
- * @param port USB-C port number
- * @param power_role Power role of device
- */
-static inline void pd_config_init(int port, uint8_t power_role)
-{
- /*
- * Set CC pull resistors. The PD state machine will then transit and
- * enable VBUS after it detects valid voltages on CC lines.
- */
- pd_set_host_mode(port, power_role);
-
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
-
-}
-
-int pd_adc_read(int port, int cc);
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
-
diff --git a/board/servo_v4p1/usb_pd_policy.c b/board/servo_v4p1/usb_pd_policy.c
deleted file mode 100644
index c4d7c239a1..0000000000
--- a/board/servo_v4p1/usb_pd_policy.c
+++ /dev/null
@@ -1,1516 +0,0 @@
-/* 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.
- */
-
-#include "atomic.h"
-#include "chg_control.h"
-#include "charge_manager.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "ioexpanders.h"
-#include "pathsel.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_common.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_config.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define DUT_PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP |\
- PDO_FIXED_COMM_CAP)
-
-#define CHG_PDO_FIXED_FLAGS (PDO_FIXED_DATA_SWAP)
-
-#define VBUS_UNCHANGED(curr, pend, new) (curr == new && pend == new)
-
-/* Macros to config the PD role */
-#define CONF_SET_CLEAR(c, set, clear) ((c | (set)) & ~(clear))
-#define CONF_SRC(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS | CC_ALLOW_SRC, \
- CC_ENABLE_DRP | CC_SNK_WITH_PD)
-#define CONF_SNK(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS, \
- CC_ALLOW_SRC | CC_ENABLE_DRP | CC_SNK_WITH_PD)
-#define CONF_PDSNK(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS | CC_SNK_WITH_PD, \
- CC_ALLOW_SRC | CC_ENABLE_DRP)
-#define CONF_DRP(c) CONF_SET_CLEAR(c, \
- CC_DISABLE_DTS | CC_ALLOW_SRC | CC_ENABLE_DRP, \
- CC_SNK_WITH_PD)
-#define CONF_SRCDTS(c) CONF_SET_CLEAR(c, \
- CC_ALLOW_SRC, \
- CC_ENABLE_DRP | CC_DISABLE_DTS | CC_SNK_WITH_PD)
-#define CONF_SNKDTS(c) CONF_SET_CLEAR(c, \
- 0, \
- CC_ALLOW_SRC | CC_ENABLE_DRP | \
- CC_DISABLE_DTS | CC_SNK_WITH_PD)
-#define CONF_PDSNKDTS(c) CONF_SET_CLEAR(c, \
- CC_SNK_WITH_PD, \
- CC_ALLOW_SRC | CC_ENABLE_DRP | CC_DISABLE_DTS)
-#define CONF_DRPDTS(c) CONF_SET_CLEAR(c, \
- CC_ALLOW_SRC | CC_ENABLE_DRP, \
- CC_DISABLE_DTS | CC_SNK_WITH_PD)
-
-/* Macros to apply Rd/Rp to CC lines */
-#define DUT_ACTIVE_CC_SET(r, flags) \
- gpio_set_flags(cc_config & CC_POLARITY ? \
- CONCAT2(GPIO_USB_DUT_CC2_, r) : \
- CONCAT2(GPIO_USB_DUT_CC1_, r), \
- flags)
-#define DUT_INACTIVE_CC_SET(r, flags) \
- gpio_set_flags(cc_config & CC_POLARITY ? \
- CONCAT2(GPIO_USB_DUT_CC1_, r) : \
- CONCAT2(GPIO_USB_DUT_CC2_, r), \
- flags)
-#define DUT_BOTH_CC_SET(r, flags) \
- do { \
- gpio_set_flags(CONCAT2(GPIO_USB_DUT_CC1_, r), flags); \
- gpio_set_flags(CONCAT2(GPIO_USB_DUT_CC2_, r), flags); \
- } while (0)
-
-#define DUT_ACTIVE_CC_PU(r) DUT_ACTIVE_CC_SET(r, GPIO_OUT_HIGH)
-#define DUT_INACTIVE_CC_PU(r) DUT_INACTIVE_CC_SET(r, GPIO_OUT_HIGH)
-#define DUT_ACTIVE_CC_PD(r) DUT_ACTIVE_CC_SET(r, GPIO_OUT_LOW)
-#define DUT_INACTIVE_CC_PD(r) DUT_INACTIVE_CC_SET(r, GPIO_OUT_LOW)
-#define DUT_BOTH_CC_PD(r) DUT_BOTH_CC_SET(r, GPIO_OUT_LOW)
-#define DUT_BOTH_CC_OPEN(r) DUT_BOTH_CC_SET(r, GPIO_INPUT)
-#define DUT_ACTIVE_CC_OPEN(r) DUT_ACTIVE_CC_SET(r, GPIO_INPUT)
-#define DUT_INACTIVE_CC_OPEN(r) DUT_INACTIVE_CC_SET(r, GPIO_INPUT)
-
-/*
- * Dynamic PDO that reflects capabilities present on the CHG port. Allow for
- * multiple entries so that we can offer greater than 5V charging. The 1st
- * entry will be fixed 5V, but its current value may change based on the CHG
- * port vbus info. Subsequent entries are used for when offering vbus greater
- * than 5V.
- */
-static const uint16_t pd_src_voltages_mv[] = {
- 5000, 9000, 10000, 12000, 15000, 20000,
-};
-static uint32_t pd_src_chg_pdo[ARRAY_SIZE(pd_src_voltages_mv)];
-static uint8_t chg_pdo_cnt;
-
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, CHG_PDO_FIXED_FLAGS),
- PDO_BATT(4750, 21000, 15000),
- PDO_VAR(4750, 21000, 3000),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-struct vbus_prop {
- int mv;
- int ma;
-};
-static struct vbus_prop vbus[CONFIG_USB_PD_PORT_MAX_COUNT];
-static int active_charge_port = CHARGE_PORT_NONE;
-static enum charge_supplier active_charge_supplier;
-static uint8_t vbus_rp = TYPEC_RP_RESERVED;
-
-static int cc_config = CC_ALLOW_SRC | CC_EMCA_SERVO;
-
-/* Voltage thresholds for no connect in DTS mode */
-static int pd_src_vnc_dts[TYPEC_RP_RESERVED][2] = {
- {PD_SRC_3_0_VNC_MV, PD_SRC_1_5_VNC_MV},
- {PD_SRC_1_5_VNC_MV, PD_SRC_DEF_VNC_MV},
- {PD_SRC_3_0_VNC_MV, PD_SRC_DEF_VNC_MV},
-};
-/* Voltage thresholds for Ra attach in DTS mode */
-static int pd_src_rd_threshold_dts[TYPEC_RP_RESERVED][2] = {
- {PD_SRC_3_0_RD_THRESH_MV, PD_SRC_1_5_RD_THRESH_MV},
- {PD_SRC_1_5_RD_THRESH_MV, PD_SRC_DEF_RD_THRESH_MV},
- {PD_SRC_3_0_RD_THRESH_MV, PD_SRC_DEF_RD_THRESH_MV},
-};
-/* Voltage thresholds for no connect in normal SRC mode */
-static int pd_src_vnc[TYPEC_RP_RESERVED] = {
- PD_SRC_DEF_VNC_MV,
- PD_SRC_1_5_VNC_MV,
- PD_SRC_3_0_VNC_MV,
-};
-/* Voltage thresholds for Ra attach in normal SRC mode */
-static int pd_src_rd_threshold[TYPEC_RP_RESERVED] = {
- PD_SRC_DEF_RD_THRESH_MV,
- PD_SRC_1_5_RD_THRESH_MV,
- PD_SRC_3_0_RD_THRESH_MV,
-};
-
-/* Saved value for the duration of faking PD disconnect */
-static int fake_pd_disconnect_duration_us;
-
-/* Shadow what would be in TCPC register state. */
-static int rp_value_stored = TYPEC_RP_USB;
-/*
- * Make sure the below matches CC_EMCA_SERVO
- * otherwise you'll have a bad time.
- */
-static int cc_pull_stored = TYPEC_CC_RD;
-
-static int user_limited_max_mv = 20000;
-
-static uint8_t allow_pr_swap = 1;
-static uint8_t allow_dr_swap = 1;
-
-static uint32_t max_supported_voltage(void)
-{
- return user_limited_max_mv;
-}
-
-static int charge_port_is_active(void)
-{
- return active_charge_port == CHG && vbus[CHG].mv > 0;
-}
-
-static int is_charge_through_allowed(void)
-{
- return charge_port_is_active() && cc_config & CC_ALLOW_SRC;
-}
-
-static int get_dual_role_of_src(void)
-{
- return cc_config & CC_ENABLE_DRP ? PD_DRP_TOGGLE_ON :
- PD_DRP_FORCE_SOURCE;
-}
-
-static void dut_allow_charge(void)
-{
- /*
- * Update to charge enable if charger still present and not
- * already charging.
- */
- if (is_charge_through_allowed() &&
- pd_get_dual_role(DUT) != PD_DRP_FORCE_SOURCE &&
- pd_get_dual_role(DUT) != PD_DRP_TOGGLE_ON) {
- CPRINTS("Enable DUT charge through");
- pd_set_dual_role(DUT, get_dual_role_of_src());
- /*
- * If DRP role, don't set any CC pull resistor, the PD
- * state machine will toggle and set the pull resistors
- * when needed.
- */
- if (!(cc_config & CC_ENABLE_DRP))
- pd_set_host_mode(DUT, 1);
-
- /*
- * Enable PD comm. The PD comm may be disabled during
- * the power charge-through was detached.
- */
- pd_comm_enable(DUT, 1);
-
- pd_update_contract(DUT);
- }
-}
-DECLARE_DEFERRED(dut_allow_charge);
-
-static void board_manage_dut_port(void)
-{
- enum pd_dual_role_states allowed_role;
- enum pd_dual_role_states current_role;
-
- /*
- * This function is called by the CHG port whenever there has been a
- * change in its vbus voltage or current. That change may necessitate
- * that the DUT port present a different Rp value or renogiate its PD
- * contract if it is connected.
- */
-
- /* Assume the default value of Rd */
- allowed_role = PD_DRP_FORCE_SINK;
-
- /* If VBUS charge through is available, mark as such. */
- if (is_charge_through_allowed())
- allowed_role = get_dual_role_of_src();
-
- current_role = pd_get_dual_role(DUT);
- if (current_role != allowed_role) {
- /* Update role. */
- if (allowed_role == PD_DRP_FORCE_SINK) {
- /* We've lost charge through. Disable VBUS. */
- chg_power_select(CHG_POWER_OFF);
- dut_chg_en(0);
-
- /* Mark as SNK only. */
- pd_set_dual_role(DUT, PD_DRP_FORCE_SINK);
- pd_set_host_mode(DUT, 0);
-
- /*
- * Disable PD comm. It matches the user expectation that
- * unplugging the power charge-through makes servo v4 as
- * a passive hub, without any PD support.
- *
- * There is an exception that servo v4 is explicitly set
- * to have PD, like the "pnsnk" mode.
- */
- pd_comm_enable(DUT, cc_config & CC_SNK_WITH_PD ? 1 : 0);
- } else {
- /* Allow charge through after PD negotiate. */
- hook_call_deferred(&dut_allow_charge_data, 2000 * MSEC);
- }
- }
-
- /*
- * Update PD contract to reflect new available CHG
- * voltage/current values.
- */
- pd_update_contract(DUT);
-}
-
-static void update_ports(void)
-{
- int pdo_index, src_index, snk_index, i;
- uint32_t pdo, max_ma, max_mv, unused;
-
- /*
- * CHG Vbus has changed states, update PDO that reflects CHG port
- * state
- */
- if (!charge_port_is_active()) {
- /* CHG Vbus has dropped, so become SNK. */
- chg_pdo_cnt = 0;
- } else {
- /* Advertise the 'best' PDOs at various discrete voltages */
- if (active_charge_supplier == CHARGE_SUPPLIER_PD) {
- src_index = 0;
- snk_index = -1;
-
- for (i = 0; i < ARRAY_SIZE(pd_src_voltages_mv); ++i) {
- /* Adhere to board voltage limits */
- if (pd_src_voltages_mv[i] >
- max_supported_voltage())
- break;
-
- /* Find the 'best' PDO <= voltage */
- pdo_index =
- pd_find_pdo_index(pd_get_src_cap_cnt(CHG),
- pd_get_src_caps(CHG),
- pd_src_voltages_mv[i], &pdo);
- /* Don't duplicate PDOs */
- if (pdo_index == snk_index)
- continue;
- /* Skip battery / variable PDOs */
- if ((pdo & PDO_TYPE_MASK) != PDO_TYPE_FIXED)
- continue;
-
- snk_index = pdo_index;
- pd_extract_pdo_power(pdo, &max_ma, &max_mv,
- &unused);
- pd_src_chg_pdo[src_index++] =
- PDO_FIXED_VOLT(max_mv) |
- PDO_FIXED_CURR(max_ma) |
- DUT_PDO_FIXED_FLAGS |
- PDO_FIXED_UNCONSTRAINED;
- }
- chg_pdo_cnt = src_index;
- } else {
- /* 5V PDO */
- pd_src_chg_pdo[0] = PDO_FIXED_VOLT(PD_MIN_MV) |
- PDO_FIXED_CURR(vbus[CHG].ma) |
- DUT_PDO_FIXED_FLAGS |
- PDO_FIXED_UNCONSTRAINED;
-
- chg_pdo_cnt = 1;
- }
- }
-
- /* Call DUT port manager to update Rp and possible PD contract */
- board_manage_dut_port();
-}
-
-int board_set_active_charge_port(int charge_port)
-{
- if (charge_port == DUT)
- return -1;
-
- active_charge_port = charge_port;
- update_ports();
-
- if (!charge_port_is_active())
- /* Don't negotiate > 5V, except in lockstep with DUT */
- pd_set_external_voltage_limit(CHG, PD_MIN_MV);
-
- return 0;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- if (port != CHG)
- return;
-
- active_charge_supplier = supplier;
-
- /* Update the voltage/current values for CHG port */
- vbus[CHG].ma = charge_ma;
- vbus[CHG].mv = charge_mv;
- update_ports();
-}
-
-__override uint8_t board_get_src_dts_polarity(int port)
-{
- /*
- * When servo configured as srcdts, the CC polarity is based
- * on the flags.
- */
- if (port == DUT)
- return !!(cc_config & CC_POLARITY);
-
- return 0;
-}
-
-int pd_tcpc_cc_nc(int port, int cc_volt, int cc_sel)
-{
- int rp_index;
- int nc;
-
- /* Can never be called from CHG port as it's sink only */
- if (port != DUT)
- return 0;
-
- rp_index = vbus_rp;
- /*
- * If rp_index > 2, then always return not connected. This case should
- * only happen when all Rp GPIO controls are tri-stated.
- */
- if (rp_index >= TYPEC_RP_RESERVED)
- return 1;
-
- /* Select the correct voltage threshold for current Rp and DTS mode */
- if (cc_config & CC_DISABLE_DTS)
- nc = cc_volt >= pd_src_vnc[rp_index];
- else
- nc = cc_volt >= pd_src_vnc_dts[rp_index][
- cc_config & CC_POLARITY ? !cc_sel : cc_sel];
-
- return nc;
-}
-
-int pd_tcpc_cc_ra(int port, int cc_volt, int cc_sel)
-{
- int rp_index;
- int ra;
-
- /* Can never be called from CHG port as it's sink only */
- if (port != DUT)
- return 0;
-
- rp_index = vbus_rp;
- /*
- * If rp_index > 2, then can't be Ra. This case should
- * only happen when all Rp GPIO controls are tri-stated.
- */
- if (rp_index >= TYPEC_RP_RESERVED)
- return 0;
-
- /* Select the correct voltage threshold for current Rp and DTS mode */
- if (cc_config & CC_DISABLE_DTS)
- ra = cc_volt < pd_src_rd_threshold[rp_index];
- else
- ra = cc_volt < pd_src_rd_threshold_dts[rp_index][
- cc_config & CC_POLARITY ? !cc_sel : cc_sel];
-
- return ra;
-}
-
-/* DUT CC readings aren't valid if we aren't applying CC pulls */
-bool cc_is_valid(void)
-{
- if ((cc_config & CC_DETACH) || (cc_pull_stored == TYPEC_CC_OPEN) ||
- ((cc_pull_stored == TYPEC_CC_RP) &&
- (rp_value_stored == TYPEC_RP_RESERVED)))
- return false;
- return true;
-}
-
-int pd_adc_read(int port, int cc)
-{
- int mv = -1;
-
- if (port == CHG)
- mv = adc_read_channel(cc ? ADC_CHG_CC2_PD : ADC_CHG_CC1_PD);
- else if (cc_is_valid()) {
- /*
- * In servo v4 hardware logic, both CC lines are wired directly
- * to DUT. When servo v4 as a snk, DUT may source Vconn to CC2
- * (CC1 if polarity flip) and make the voltage high as vRd-3.0,
- * which makes the PD state mess up. As the PD state machine
- * doesn't handle this case. It assumes that CC2 (CC1 if
- * polarity flip) is separated by a Type-C cable, resulting a
- * voltage lower than the max of vRa.
- *
- * It fakes the voltage within vRa.
- */
-
- /*
- * TODO(b/161260559): Fix this logic because of leakage
- * "phantom detects" Or flat-out mis-detects..... talking on
- * leaking CC2 line. And Vconn-swap case... and Ra on second
- * line (SERVO_EMCA)...
- *
- * This is basically a hack faking "vOpen" from TCPCI spec.
- */
- if ((cc_config & CC_DISABLE_DTS) &&
- port == DUT &&
- cc == ((cc_config & CC_POLARITY) ? 0 : 1)) {
-
- if ((cc_pull_stored == TYPEC_CC_RD) ||
- (cc_pull_stored == TYPEC_CC_RA) ||
- (cc_pull_stored == TYPEC_CC_RA_RD))
- mv = -1;
- else if (cc_pull_stored == TYPEC_CC_RP)
- mv = 3301;
- } else
- mv = adc_read_channel(cc ? ADC_DUT_CC2_PD :
- ADC_DUT_CC1_PD);
- } else {
- /*
- * When emulating detach, fake the voltage on CC to 0 to avoid
- * triggering some debounce logic.
- *
- * The servo v4 makes Rd/Rp open but the DUT may present Rd/Rp
- * alternatively that makes the voltage on CC falls into some
- * unexpected range and triggers the PD state machine switching
- * between SNK_DISCONNECTED and SNK_DISCONNECTED_DEBOUNCE.
- */
- mv = -1;
- }
-
- return mv;
-}
-
-static int board_set_rp(int rp)
-{
- if (cc_config & CC_DISABLE_DTS) {
- /* TODO: Add SRC-EMCA mode (CC_EMCA_SERVO=1) */
- /* TODO: Add SRC-nonEMCA mode (CC_EMCA_SERVO=0)*/
-
- /*
- * DTS mode is disabled, so only present the requested Rp value
- * on CC1 (active) and leave all Rp/Rd resistors on CC2
- * (inactive) disconnected.
- */
- switch (rp) {
- case TYPEC_RP_USB:
- DUT_ACTIVE_CC_PU(RPUSB);
- break;
- case TYPEC_RP_1A5:
- DUT_ACTIVE_CC_PU(RP1A5);
- break;
- case TYPEC_RP_3A0:
- DUT_ACTIVE_CC_PU(RP3A0);
- break;
- case TYPEC_RP_RESERVED:
- /*
- * This case can be used to force a detach event since
- * all values are set to inputs above. Nothing else to
- * set.
- */
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- /* TODO: Verify this (CC_EMCA_SERVO) statement works */
- if (cc_config & CC_EMCA_SERVO)
- DUT_INACTIVE_CC_PD(RA);
- else
- DUT_INACTIVE_CC_OPEN(RA);
- } else {
- /* DTS mode is enabled. The rp parameter is used to select the
- * Type C current limit to advertise. The combinations of Rp on
- * each CC line is shown in the table below.
- *
- * CC values for Debug sources (DTS)
- *
- * Source type Mode of Operation CC1 CC2
- * ---------------------------------------------
- * DTS Default USB Power Rp3A0 Rp1A5
- * DTS USB-C @ 1.5 A Rp1A5 RpUSB
- * DTS USB-C @ 3 A Rp3A0 RpUSB
- */
- switch (rp) {
- case TYPEC_RP_USB:
- DUT_ACTIVE_CC_PU(RP3A0);
- DUT_INACTIVE_CC_PU(RP1A5);
- break;
- case TYPEC_RP_1A5:
- DUT_ACTIVE_CC_PU(RP1A5);
- DUT_INACTIVE_CC_PU(RPUSB);
- break;
- case TYPEC_RP_3A0:
- DUT_ACTIVE_CC_PU(RP3A0);
- DUT_INACTIVE_CC_PU(RPUSB);
- break;
- case TYPEC_RP_RESERVED:
- /*
- * This case can be used to force a detach event since
- * all values are set to inputs above. Nothing else to
- * set.
- */
- break;
- default:
- return EC_ERROR_INVAL;
- }
- }
- /* Save new Rp value for DUT port */
- vbus_rp = rp;
-
- return EC_SUCCESS;
-}
-
-int pd_set_rp_rd(int port, int cc_pull, int rp_value)
-{
- int rv = EC_SUCCESS;
-
- if (port != DUT)
- return EC_ERROR_UNIMPLEMENTED;
-
- /* CC is disabled for emulating detach. Don't change Rd/Rp. */
- if (cc_config & CC_DETACH)
- return EC_SUCCESS;
-
- /* By default disconnect all Rp/Rd resistors from both CC lines */
- /* Set Rd for CC1/CC2 to High-Z. */
- DUT_BOTH_CC_OPEN(RD);
- /* Set Ra for CC1/CC2 to High-Z. */
- DUT_BOTH_CC_OPEN(RA);
- /* Set Rp for CC1/CC2 to High-Z. */
- DUT_BOTH_CC_OPEN(RP3A0);
- DUT_BOTH_CC_OPEN(RP1A5);
- DUT_BOTH_CC_OPEN(RPUSB);
- /* Set TX Hi-Z */
- DUT_BOTH_CC_OPEN(TX_DATA);
-
- if (cc_pull == TYPEC_CC_RP) {
- rv = board_set_rp(rp_value);
- } else if ((cc_pull == TYPEC_CC_RD) || (cc_pull == TYPEC_CC_RA_RD) ||
- (cc_pull == TYPEC_CC_RA)) {
- /*
- * The DUT port uses a captive cable. It can present Rd on both
- * CC1 and CC2. If DTS mode is enabled, then present Rd on both
- * CC lines. However, if DTS mode is disabled only present Rd on
- * CC1 (active).
- *
- * TODO: EXCEPT if you have Ra_Rd or are "faking" an EMCA.....
- * ... or are applying RA+RA....can't make assumptions with
- * test equipment!
- */
- if (cc_config & CC_DISABLE_DTS) {
- if (cc_pull == TYPEC_CC_RD) {
- DUT_ACTIVE_CC_PD(RD);
- /*
- * TODO: Verify this (CC_EMCA_SERVO)
- * statement works
- */
- if (cc_config & CC_EMCA_SERVO)
- DUT_INACTIVE_CC_PD(RA);
- else
- DUT_INACTIVE_CC_OPEN(RA);
- } else if (cc_pull == TYPEC_CC_RA) {
- DUT_ACTIVE_CC_PD(RA);
- /*
- * TODO: Verify this (CC_EMCA_SERVO)
- * statement works
- */
- if (cc_config & CC_EMCA_SERVO)
- DUT_INACTIVE_CC_PD(RA);
- else
- DUT_INACTIVE_CC_OPEN(RA);
- } else if (cc_pull == TYPEC_CC_RA_RD) {
- /*
- * TODO: Verify this silly (TYPEC_CC_RA_RD)
- * from TCPMv works
- */
- DUT_ACTIVE_CC_PD(RD);
- DUT_INACTIVE_CC_PD(RA);
- }
- } else
- DUT_BOTH_CC_PD(RD);
-
- rv = EC_SUCCESS;
- } else
- return EC_ERROR_UNIMPLEMENTED;
-
- rp_value_stored = rp_value;
- cc_pull_stored = cc_pull;
-
- return rv;
-}
-
-int board_select_rp_value(int port, int rp)
-{
- if (port != DUT)
- return EC_ERROR_UNIMPLEMENTED;
-
- /*
- * Update Rp value to indicate non-pd power available.
- * Do not change pull direction though.
- */
- if ((rp != rp_value_stored) && (cc_pull_stored == TYPEC_CC_RP)) {
- rp_value_stored = rp;
- return pd_set_rp_rd(port, TYPEC_CC_RP, rp);
- }
-
- return EC_SUCCESS;
-}
-
-int charge_manager_get_source_pdo(const uint32_t **src_pdo, const int port)
-{
- int pdo_cnt = 0;
-
- /*
- * If CHG is providing VBUS, then advertise what's available on the CHG
- * port, otherwise we provide no power.
- */
- if (charge_port_is_active()) {
- *src_pdo = pd_src_chg_pdo;
- pdo_cnt = chg_pdo_cnt;
- }
-
- return pdo_cnt;
-}
-
-__override void pd_transition_voltage(int idx)
-{
- timestamp_t deadline;
- uint32_t ma, mv, unused;
-
- pd_extract_pdo_power(pd_src_chg_pdo[idx - 1], &ma, &mv, &unused);
- /* Is this a transition to a new voltage? */
- if (charge_port_is_active() && vbus[CHG].mv != mv) {
- /*
- * Alter voltage limit on charge port, this should cause
- * the port to select the desired PDO.
- */
- pd_set_external_voltage_limit(CHG, mv);
-
- /* Wait for CHG transition */
- deadline.val = get_time().val + PD_T_PS_TRANSITION;
- CPRINTS("Waiting for CHG port transition");
- while (charge_port_is_active() &&
- vbus[CHG].mv != mv &&
- get_time().val < deadline.val)
- msleep(10);
-
- if (vbus[CHG].mv != mv) {
- CPRINTS("Missed CHG transition, resetting DUT");
- pd_power_supply_reset(DUT);
- return;
- }
-
- CPRINTS("CHG transitioned");
- }
-
- vbus[DUT].mv = vbus[CHG].mv;
- vbus[DUT].ma = vbus[CHG].ma;
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Port 0 can never provide vbus. */
- if (port == CHG)
- return EC_ERROR_INVAL;
-
- if (charge_port_is_active()) {
- /* Enable VBUS */
- chg_power_select(CHG_POWER_VBUS);
- dut_chg_en(1);
-
- if (vbus[CHG].mv != PD_MIN_MV)
- CPRINTS("ERROR, CHG port voltage %d != PD_MIN_MV",
- vbus[CHG].mv);
-
- vbus[DUT].mv = vbus[CHG].mv;
- vbus[DUT].ma = vbus[CHG].mv;
- pd_set_dual_role(DUT, get_dual_role_of_src());
- } else {
- vbus[DUT].mv = 0;
- vbus[DUT].ma = 0;
- dut_chg_en(0);
- pd_set_dual_role(DUT, PD_DRP_FORCE_SINK);
- return EC_ERROR_NOT_POWERED;
- }
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Port 0 can never provide vbus. */
- if (port == CHG)
- return;
-
- /* Disable VBUS */
- chg_power_select(CHG_POWER_OFF);
- dut_chg_en(0);
-
- /* DUT is lost, back to 5V limit on CHG */
- pd_set_external_voltage_limit(CHG, PD_MIN_MV);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return gpio_get_level(port ? GPIO_USB_DET_PP_DUT :
- GPIO_USB_DET_PP_CHG);
-}
-
-__override int pd_check_power_swap(int port)
-{
- /*
- * When only host VBUS is available, then servo_v4 is not setting
- * PDO_FIXED_UNCONSTRAINED in the src_pdo sent to the DUT. When this bit
- * is not set, the DUT will always attempt to swap its power role to
- * SRC. Let servo_v4 have more control over its power role by always
- * rejecting power swap requests from the DUT.
- */
-
- /* Port 0 can never provide vbus. */
- if (port == CHG)
- return 0;
-
- if (pd_get_power_role(port) == PD_ROLE_SINK && !(cc_config & CC_ALLOW_SRC))
- return 0;
-
- if (pd_snk_is_vbus_provided(CHG))
- return allow_pr_swap;
-
- return 0;
-}
-
-__override int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /*
- * Servo should allow data role swaps to let DUT see the USB hub, but
- * doing it on CHG port is a waste as its data lines is unconnected.
- */
- if (port == CHG)
- return 0;
-
- return allow_dr_swap;
-}
-
-__override void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- if (port == CHG)
- return;
-
- switch (data_role) {
- case PD_ROLE_DFP:
- if (cc_config & CC_FASTBOOT_DFP) {
- dut_to_host();
- } else {
- /* Disable USB2 lines from DUT */
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_EN_L, 1);
- uservo_to_host();
- }
- break;
- case PD_ROLE_UFP:
- /* Ensure that FASTBOOT is disabled */
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_SEL, 1);
-
- /* Enable USB2 lines */
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_EN_L, 0);
-
- /*
- * By default, uServo port will be enabled. Only if the user
- * explicitly enable CC_FASTBOOT_DFP then uServo is disabled.
- */
- if (!(cc_config & CC_FASTBOOT_DFP))
- uservo_to_host();
- break;
- case PD_ROLE_DISCONNECTED:
- /* Disable USB2 lines */
- gpio_set_level(GPIO_FASTBOOT_DUTHUB_MUX_EN_L, 1);
-
- if (!(cc_config & CC_FASTBOOT_DFP))
- uservo_to_host();
- break;
- default:
- CPRINTS("C%d: %s: Invalid data_role:%d", port, __func__, data_role);
- }
-}
-
-__override void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
- /*
- * Don't define any policy to initiate power role swap.
- *
- * CHG port is SNK only. DUT port requires a user to switch its
- * role by commands. So don't do anything implicitly.
- */
-}
-
-__override void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
- if (port == CHG)
- return;
-
- /* If DFP, try to switch to UFP, to let DUT see the USB hub. */
- if ((flags & PD_FLAGS_PARTNER_DR_DATA) && dr_role == PD_ROLE_DFP)
- pd_request_data_swap(port);
-}
-
-
-/* ----------------- Vendor Defined Messages ------------------ */
-/*
- * DP alt-mode config, user configurable.
- * Default is the mode disabled, supporting the C and D pin assignment,
- * multi-function preferred, and a plug.
- */
-static int alt_dp_config = (ALT_DP_PIN_C | ALT_DP_PIN_D | ALT_DP_MF_PREF |
- ALT_DP_PLUG);
-
-/**
- * Get the pins based on the user config.
- */
-static int alt_dp_config_pins(void)
-{
- int pins = 0;
-
- if (alt_dp_config & ALT_DP_PIN_C)
- pins |= MODE_DP_PIN_C;
- if (alt_dp_config & ALT_DP_PIN_D)
- pins |= MODE_DP_PIN_D;
- return pins;
-}
-
-/**
- * Get the cable outlet value (plug or receptacle) based on the user config.
- */
-static int alt_dp_config_cable(void)
-{
- return (alt_dp_config & ALT_DP_PLUG) ? CABLE_PLUG : CABLE_RECEPTACLE;
-}
-
-const uint32_t vdo_idh = VDO_IDH(0, /* data caps as USB host */
- 1, /* data caps as USB device */
- IDH_PTYPE_AMA, /* Alternate mode */
- 1, /* supports alt modes */
- USB_VID_GOOGLE);
-
-const uint32_t vdo_product = VDO_PRODUCT(CONFIG_USB_PID, CONFIG_USB_BCD_DEV);
-
-const uint32_t vdo_ama = VDO_AMA(CONFIG_USB_PD_IDENTITY_HW_VERS,
- CONFIG_USB_PD_IDENTITY_SW_VERS,
- 0, 0, 0, 0, /* SS[TR][12] */
- 0, /* Vconn power */
- 0, /* Vconn power required */
- 0, /* Vbus power required */
- AMA_USBSS_U31_GEN1 /* USB SS support */);
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- int dp_supported = (alt_dp_config & ALT_DP_ENABLE) != 0;
-
- if (dp_supported) {
- payload[VDO_I(IDH)] = vdo_idh;
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- payload[VDO_I(AMA)] = vdo_ama;
- return VDO_I(AMA) + 1;
- } else {
- return 0;
- }
-}
-
-static int svdm_response_svids(int port, uint32_t *payload)
-{
- payload[1] = VDO_SVID(USB_SID_DISPLAYPORT, 0);
- return 2;
-}
-
-#define MODE_CNT 1
-#define OPOS 1
-
-/*
- * The Type-C demux TUSB1064 supports pin assignment C and D. Response the DP
- * capabilities with supporting all of them.
- */
-uint32_t vdo_dp_mode[MODE_CNT];
-
-static int svdm_response_modes(int port, uint32_t *payload)
-{
- vdo_dp_mode[0] =
- VDO_MODE_DP(0, /* UFP pin cfg supported: none */
- alt_dp_config_pins(), /* DFP pin */
- 1, /* no usb2.0 signalling in AMode */
- alt_dp_config_cable(), /* plug or receptacle */
- MODE_DP_V13, /* DPv1.3 Support, no Gen2 */
- MODE_DP_SNK); /* Its a sink only */
-
- /* CCD uses the SBU lines; don't enable DP when dts-mode enabled */
- if (!(cc_config & CC_DISABLE_DTS))
- return 0; /* NAK */
-
- if (PD_VDO_VID(payload[0]) != USB_SID_DISPLAYPORT)
- return 0; /* NAK */
-
- memcpy(payload + 1, vdo_dp_mode, sizeof(vdo_dp_mode));
- return MODE_CNT + 1;
-}
-
-static void set_typec_mux(int pin_cfg)
-{
- mux_state_t mux_mode = USB_PD_MUX_NONE;
-
- switch (pin_cfg) {
- case 0: /* return to USB3 only */
- mux_mode = USB_PD_MUX_USB_ENABLED;
- CPRINTS("PinCfg:off");
- break;
- case MODE_DP_PIN_C: /* DisplayPort 4 lanes */
- mux_mode = USB_PD_MUX_DP_ENABLED;
- CPRINTS("PinCfg:C");
- break;
- case MODE_DP_PIN_D: /* DP + USB */
- mux_mode = USB_PD_MUX_DOCK;
- CPRINTS("PinCfg:D");
- break;
- default:
- CPRINTS("PinCfg not supported: %d", pin_cfg);
- return;
- }
-
- usb_mux_set(DUT, mux_mode, USB_SWITCH_CONNECT,
- !!(cc_config & CC_POLARITY));
-}
-
-static int get_hpd_level(void)
-{
- if (alt_dp_config & ALT_DP_OVERRIDE_HPD)
- return (alt_dp_config & ALT_DP_HPD_LVL) != 0;
- else
- return gpio_get_level(GPIO_DP_HPD);
-}
-
-static int dp_status(int port, uint32_t *payload)
-{
- int opos = PD_VDO_OPOS(payload[0]);
- int hpd = get_hpd_level();
- mux_state_t state = usb_mux_get(DUT);
- int dp_enabled = !!(state & USB_PD_MUX_DP_ENABLED);
-
- if (opos != OPOS)
- return 0; /* NAK */
-
- payload[1] = VDO_DP_STATUS(
- 0, /* IRQ_HPD */
- hpd, /* HPD_HI|LOW */
- 0, /* request exit DP */
- 0, /* request exit USB */
- (alt_dp_config & ALT_DP_MF_PREF) != 0, /* MF pref */
- dp_enabled,
- 0, /* power low */
- hpd ? 0x2 : 0);
-
- return 2;
-}
-
-static int dp_config(int port, uint32_t *payload)
-{
- if (PD_DP_CFG_DPON(payload[1]))
- set_typec_mux(PD_DP_CFG_PIN(payload[1]));
-
- return 1;
-}
-
-/* Whether alternate mode has been entered or not */
-static int alt_mode;
-
-static int svdm_enter_mode(int port, uint32_t *payload)
-{
- /* SID & mode request is valid */
- if ((PD_VDO_VID(payload[0]) != USB_SID_DISPLAYPORT) ||
- (PD_VDO_OPOS(payload[0]) != OPOS))
- return 0; /* NAK */
-
- alt_mode = OPOS;
- return 1;
-}
-
-int pd_alt_mode(int port, enum tcpci_msg_type type, uint16_t svid)
-{
- if (type != TCPCI_MSG_SOP)
- return 0;
-
- if (svid == USB_SID_DISPLAYPORT)
- return alt_mode;
-
- return 0;
-}
-
-static int svdm_exit_mode(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) == USB_SID_DISPLAYPORT)
- set_typec_mux(0);
-
- alt_mode = 0;
-
- return 1; /* Must return ACK */
-}
-
-static struct amode_fx dp_fx = {
- .status = &dp_status,
- .config = &dp_config,
-};
-
-const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = &svdm_response_svids,
- .modes = &svdm_response_modes,
- .enter_mode = &svdm_enter_mode,
- .amode = &dp_fx,
- .exit_mode = &svdm_exit_mode,
-};
-
-__override int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- int cmd = PD_VDO_CMD(payload[0]);
-
- /* make sure we have some payload */
- if (cnt == 0)
- return 0;
-
- switch (cmd) {
- case VDO_CMD_VERSION:
- /* guarantee last byte of payload is null character */
- *(payload + cnt - 1) = 0;
- CPRINTF("ver: %s\n", (char *)(payload+1));
- break;
- case VDO_CMD_CURRENT:
- CPRINTF("Current: %dmA\n", payload[1]);
- break;
- }
-
- return 0;
-}
-
-__override const struct svdm_amode_fx supported_modes[] = {};
-__override const int supported_modes_cnt = ARRAY_SIZE(supported_modes);
-
-static void print_cc_mode(void)
-{
- /* Get current CCD status */
- ccprintf("cc: %s\n", cc_config & CC_DETACH ? "off" : "on");
- ccprintf("dts mode: %s\n", cc_config & CC_DISABLE_DTS ? "off" : "on");
- ccprintf("chg mode: %s\n",
- get_dut_chg_en() ? "on" : "off");
- ccprintf("chg allowed: %s\n", cc_config & CC_ALLOW_SRC ? "on" : "off");
- ccprintf("drp enabled: %s\n", cc_config & CC_ENABLE_DRP ? "on" : "off");
- ccprintf("cc polarity: %s\n", cc_config & CC_POLARITY ? "cc2" :
- "cc1");
- ccprintf("pd enabled: %s\n", pd_comm_is_enabled(DUT) ? "on" : "off");
- ccprintf("emca: %s\n", cc_config & CC_EMCA_SERVO ?
- "emarked" : "non-emarked");
-}
-
-
-static void do_cc(int cc_config_new)
-{
- int chargeable;
- int dualrole;
-
- if (cc_config_new != cc_config) {
- if (!(cc_config & CC_DETACH)) {
- /* Force detach */
- pd_power_supply_reset(DUT);
- /* Always set to 0 here so both CC lines are changed */
- cc_config &= ~(CC_DISABLE_DTS & CC_ALLOW_SRC);
-
- /* Remove Rp/Rd on both CC lines */
- pd_comm_enable(DUT, 0);
- pd_set_rp_rd(DUT, TYPEC_CC_RP, TYPEC_RP_RESERVED);
-
- /*
- * If just changing mode (cc keeps enabled), give some
- * time for DUT to detach, use tErrorRecovery.
- */
- if (!(cc_config_new & CC_DETACH))
- usleep(PD_T_ERROR_RECOVERY);
- }
-
- if ((cc_config & ~cc_config_new) & CC_DISABLE_DTS) {
- /* DTS-disabled -> DTS-enabled */
- ccd_enable(1);
- ext_hpd_detection_enable(0);
- } else if ((cc_config_new & ~cc_config) & CC_DISABLE_DTS) {
- /* DTS-enabled -> DTS-disabled */
- ccd_enable(0);
- if (!(alt_dp_config & ALT_DP_OVERRIDE_HPD))
- ext_hpd_detection_enable(1);
- }
-
- /* Accept new cc_config value */
- cc_config = cc_config_new;
-
- if (!(cc_config & CC_DETACH)) {
- /* Can we source? */
- chargeable = is_charge_through_allowed();
- dualrole = chargeable ? get_dual_role_of_src() :
- PD_DRP_FORCE_SINK;
- pd_set_dual_role(DUT, dualrole);
- /*
- * If force_source or force_sink role, explicitly set
- * the Rp or Rd resistors on CC lines.
- *
- * If DRP role, don't set any CC pull resistor, the PD
- * state machine will toggle and set the pull resistors
- * when needed.
- */
- if (dualrole != PD_DRP_TOGGLE_ON)
- pd_set_host_mode(DUT, chargeable);
-
- /*
- * For the normal lab use, emulating a sink has no PD
- * comm, like a passive hub. For the PD FAFT use, we
- * need to validate some PD behavior, so a flag
- * CC_SNK_WITH_PD to force enabling PD comm.
- */
- if (cc_config & CC_SNK_WITH_PD)
- pd_comm_enable(DUT, 1);
- else
- pd_comm_enable(DUT, chargeable);
- }
- }
-}
-
-static int command_cc(int argc, char **argv)
-{
- int cc_config_new = cc_config;
-
- if (argc < 2) {
- print_cc_mode();
- return EC_SUCCESS;
- }
-
- if (!strcasecmp(argv[1], "off")) {
- cc_config_new |= CC_DETACH;
- } else if (!strcasecmp(argv[1], "on")) {
- cc_config_new &= ~CC_DETACH;
- } else {
- cc_config_new &= ~CC_DETACH;
- if (!strcasecmp(argv[1], "src"))
- cc_config_new = CONF_SRC(cc_config_new);
- else if (!strcasecmp(argv[1], "snk"))
- cc_config_new = CONF_SNK(cc_config_new);
- else if (!strcasecmp(argv[1], "pdsnk"))
- cc_config_new = CONF_PDSNK(cc_config_new);
- else if (!strcasecmp(argv[1], "drp"))
- cc_config_new = CONF_DRP(cc_config_new);
- else if (!strcasecmp(argv[1], "srcdts"))
- cc_config_new = CONF_SRCDTS(cc_config_new);
- else if (!strcasecmp(argv[1], "snkdts"))
- cc_config_new = CONF_SNKDTS(cc_config_new);
- else if (!strcasecmp(argv[1], "pdsnkdts"))
- cc_config_new = CONF_PDSNKDTS(cc_config_new);
- else if (!strcasecmp(argv[1], "drpdts"))
- cc_config_new = CONF_DRPDTS(cc_config_new);
- else if (!strcasecmp(argv[1], "emca"))
- cc_config_new |= CC_EMCA_SERVO;
- else if (!strcasecmp(argv[1], "nonemca"))
- cc_config_new &= ~CC_EMCA_SERVO;
- else
- return EC_ERROR_PARAM2;
- }
-
- if (!strcasecmp(argv[2], "cc1"))
- cc_config_new &= ~CC_POLARITY;
- else if (!strcasecmp(argv[2], "cc2"))
- cc_config_new |= CC_POLARITY;
- else if (argc >= 3)
- return EC_ERROR_PARAM3;
-
- do_cc(cc_config_new);
- print_cc_mode();
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(cc, command_cc,
- "[off|on|src|snk|pdsnk|drp|srcdts|snkdts|pdsnkdts|"
- "drpdts|emca|nonemca] [cc1|cc2]",
- "Servo_v4 DTS and CHG mode");
-
-static void fake_disconnect_end(void)
-{
- /* Reenable CC lines with previous dts and src modes */
- do_cc(cc_config & ~CC_DETACH);
-}
-DECLARE_DEFERRED(fake_disconnect_end);
-
-static void fake_disconnect_start(void)
-{
- /* Disable CC lines */
- do_cc(cc_config | CC_DETACH);
-
- hook_call_deferred(&fake_disconnect_end_data,
- fake_pd_disconnect_duration_us);
-}
-DECLARE_DEFERRED(fake_disconnect_start);
-
-static int cmd_fake_disconnect(int argc, char *argv[])
-{
- int delay_ms, duration_ms;
- char *e;
-
- if (argc < 3)
- return EC_ERROR_PARAM_COUNT;
-
- delay_ms = strtoi(argv[1], &e, 0);
- if (*e || delay_ms < 0)
- return EC_ERROR_PARAM1;
- duration_ms = strtoi(argv[2], &e, 0);
- if (*e || duration_ms < 0)
- return EC_ERROR_PARAM2;
-
- /* Cancel any pending function calls */
- hook_call_deferred(&fake_disconnect_start_data, -1);
- hook_call_deferred(&fake_disconnect_end_data, -1);
-
- fake_pd_disconnect_duration_us = duration_ms * MSEC;
- hook_call_deferred(&fake_disconnect_start_data, delay_ms * MSEC);
-
- ccprintf("Fake disconnect for %d ms starting in %d ms.\n",
- duration_ms, delay_ms);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(fakedisconnect, cmd_fake_disconnect,
- "<delay_ms> <duration_ms>", NULL);
-
-static int cmd_ada_srccaps(int argc, char *argv[])
-{
- int i;
- const uint32_t * const ada_srccaps = pd_get_src_caps(CHG);
-
- for (i = 0; i < pd_get_src_cap_cnt(CHG); ++i) {
- uint32_t max_ma, max_mv, unused;
-
- if (IS_ENABLED(CONFIG_USB_PD_ONLY_FIXED_PDOS) &&
- (ada_srccaps[i] & PDO_TYPE_MASK) != PDO_TYPE_FIXED)
- continue;
-
- pd_extract_pdo_power(ada_srccaps[i], &max_ma, &max_mv, &unused);
-
- ccprintf("%d: %dmV/%dmA\n", i, max_mv, max_ma);
- }
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(ada_srccaps, cmd_ada_srccaps,
- "",
- "Print adapter SrcCap");
-
-static int cmd_dp_action(int argc, char *argv[])
-{
- int i;
- char *e;
-
- if (argc < 1)
- return EC_ERROR_PARAM_COUNT;
-
- if (argc == 1) {
- CPRINTS("DP alt-mode: %s",
- (alt_dp_config & ALT_DP_ENABLE) ? "enable" : "disable");
- }
-
- if (!strcasecmp(argv[1], "enable")) {
- alt_dp_config |= ALT_DP_ENABLE;
- } else if (!strcasecmp(argv[1], "disable")) {
- alt_dp_config &= ~ALT_DP_ENABLE;
- } else if (!strcasecmp(argv[1], "pins")) {
- if (argc >= 3) {
- alt_dp_config &= ~(ALT_DP_PIN_C | ALT_DP_PIN_D);
- for (i = 0; i < 3; i++) {
- if (!argv[2][i])
- break;
-
- switch (argv[2][i]) {
- case 'c':
- case 'C':
- alt_dp_config |= ALT_DP_PIN_C;
- break;
- case 'd':
- case 'D':
- alt_dp_config |= ALT_DP_PIN_D;
- break;
- }
- }
- }
- CPRINTS("Pins: %s%s",
- (alt_dp_config & ALT_DP_PIN_C) ? "C" : "",
- (alt_dp_config & ALT_DP_PIN_D) ? "D" : "");
- } else if (!strcasecmp(argv[1], "mf")) {
- if (argc >= 3) {
- i = strtoi(argv[2], &e, 10);
- if (*e)
- return EC_ERROR_PARAM3;
- if (i)
- alt_dp_config |= ALT_DP_MF_PREF;
- else
- alt_dp_config &= ~ALT_DP_MF_PREF;
- }
- CPRINTS("MF pref: %d", (alt_dp_config & ALT_DP_MF_PREF) != 0);
- } else if (!strcasecmp(argv[1], "plug")) {
- if (argc >= 3) {
- i = strtoi(argv[2], &e, 10);
- if (*e)
- return EC_ERROR_PARAM3;
- if (i)
- alt_dp_config |= ALT_DP_PLUG;
- else
- alt_dp_config &= ~ALT_DP_PLUG;
- }
- CPRINTS("Plug or receptacle: %d",
- (alt_dp_config & ALT_DP_PLUG) != 0);
- } else if (!strcasecmp(argv[1], "hpd")) {
- if (argc >= 3) {
- if (!strncasecmp(argv[2], "ext", 3)) {
- alt_dp_config &= ~ALT_DP_OVERRIDE_HPD;
- ext_hpd_detection_enable(1);
- } else if (!strncasecmp(argv[2], "h", 1)) {
- alt_dp_config |= ALT_DP_OVERRIDE_HPD;
- alt_dp_config |= ALT_DP_HPD_LVL;
- /*
- * Modify the HPD to high. Need to enable the
- * external HPD signal monitoring. A monitor
- * may send a IRQ at any time to notify DUT.
- */
- ext_hpd_detection_enable(1);
- pd_send_hpd(DUT, hpd_high);
- } else if (!strncasecmp(argv[2], "l", 1)) {
- alt_dp_config |= ALT_DP_OVERRIDE_HPD;
- alt_dp_config &= ~ALT_DP_HPD_LVL;
- ext_hpd_detection_enable(0);
- pd_send_hpd(DUT, hpd_low);
- } else if (!strcasecmp(argv[2], "irq")) {
- pd_send_hpd(DUT, hpd_irq);
- }
- }
- CPRINTS("HPD source: %s",
- (alt_dp_config & ALT_DP_OVERRIDE_HPD) ? "overridden"
- : "external");
- CPRINTS("HPD level: %d", get_hpd_level());
- } else if (!strcasecmp(argv[1], "help")) {
- CPRINTS("Usage: usbc_action dp [enable|disable|hpd|mf|pins|"
- "plug]");
- }
-
- return EC_SUCCESS;
-}
-
-static int cmd_usbc_action(int argc, char *argv[])
-{
- if (argc >= 2 && !strcasecmp(argv[1], "dp"))
- return cmd_dp_action(argc - 1, &argv[1]);
-
- if (argc != 2 && argc != 3)
- return EC_ERROR_PARAM_COUNT;
-
- /* TODO(b:140256624): drop *v command if we migrate to chg cmd. */
- if (!strcasecmp(argv[1], "5v")) {
- do_cc(CONF_SRC(cc_config));
- user_limited_max_mv = 5000;
- update_ports();
- } else if (!strcasecmp(argv[1], "12v")) {
- do_cc(CONF_SRC(cc_config));
- user_limited_max_mv = 12000;
- update_ports();
- } else if (!strcasecmp(argv[1], "20v")) {
- do_cc(CONF_SRC(cc_config));
- user_limited_max_mv = 20000;
- update_ports();
- } else if (!strcasecmp(argv[1], "dev")) {
- /* Set the limit back to original */
- user_limited_max_mv = 20000;
- do_cc(CONF_PDSNK(cc_config));
- } else if (!strcasecmp(argv[1], "pol0")) {
- do_cc(cc_config & ~CC_POLARITY);
- } else if (!strcasecmp(argv[1], "pol1")) {
- do_cc(cc_config | CC_POLARITY);
- } else if (!strcasecmp(argv[1], "drp")) {
- /* Toggle the DRP state, compatible with Plankton. */
- do_cc(cc_config ^ CC_ENABLE_DRP);
- CPRINTF("DRP = %d, host_mode = %d\n",
- !!(cc_config & CC_ENABLE_DRP),
- !!(cc_config & CC_ALLOW_SRC));
- } else if (!strcasecmp(argv[1], "chg")) {
- int sink_v;
-
- if (argc != 3)
- return EC_ERROR_PARAM2;
-
- sink_v = atoi(argv[2]);
- if (!sink_v)
- return EC_ERROR_PARAM2;
-
- user_limited_max_mv = sink_v * 1000;
- do_cc(CONF_SRC(cc_config));
- update_ports();
- /*
- * TODO(b:140256624): servod captures 'chg SRC' keyword to
- * recognize if this command is supported in the firmware.
- * Drop this message if when we phase out the usbc_role control.
- */
- ccprintf("CHG SRC %dmV\n", user_limited_max_mv);
- } else if (!strcasecmp(argv[1], "drswap")) {
- if (argc == 2) {
- CPRINTF("allow_dr_swap = %d\n", allow_dr_swap);
- return EC_SUCCESS;
- }
-
- if (argc != 3)
- return EC_ERROR_PARAM2;
-
- allow_dr_swap = !!atoi(argv[2]);
-
- } else if (!strcasecmp(argv[1], "prswap")) {
- if (argc == 2) {
- CPRINTF("allow_pr_swap = %d\n", allow_pr_swap);
- return EC_SUCCESS;
- }
-
- if (argc != 3)
- return EC_ERROR_PARAM2;
-
- allow_pr_swap = !!atoi(argv[2]);
- } else if (!strcasecmp(argv[1], "fastboot")) {
- if (argc == 2) {
- CPRINTF("fastboot = %d\n",
- !!(cc_config & CC_FASTBOOT_DFP));
- return EC_SUCCESS;
- }
-
- if (argc != 3)
- return EC_ERROR_PARAM2;
-
- if (!!atoi(argv[2]))
- cc_config |= CC_FASTBOOT_DFP;
- else
- cc_config &= ~CC_FASTBOOT_DFP;
- } else {
- return EC_ERROR_PARAM1;
- }
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(usbc_action, cmd_usbc_action,
- "5v|12v|20v|dev|pol0|pol1|drp|dp|chg x(x=voltage)|"
- "drswap [1|0]|prswap [1|0]",
- "Set Servo v4 type-C port state");
diff --git a/board/servo_v4p1/usb_sm.c b/board/servo_v4p1/usb_sm.c
deleted file mode 100644
index 94b5e0c08d..0000000000
--- a/board/servo_v4p1/usb_sm.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/* 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "stdbool.h"
-#include "usb_pd.h"
-#include "usb_sm.h"
-#include "util.h"
-
-#ifdef CONFIG_COMMON_RUNTIME
-#define CPRINTF(format, args...) cprintf(CC_USB, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USB, format, ## args)
-#else /* CONFIG_COMMON_RUNTIME */
-#define CPRINTF(format, args...)
-#define CPRINTS(format, args...)
-#endif
-
-/* Private structure (to this file) used to track state machine context */
-struct internal_ctx {
- usb_state_ptr last_entered;
- uint32_t running : 1;
- uint32_t enter : 1;
- uint32_t exit : 1;
-};
-BUILD_ASSERT(sizeof(struct internal_ctx) ==
- member_size(struct sm_ctx, internal));
-
-/* Gets the first shared parent state between a and b (inclusive) */
-static usb_state_ptr shared_parent_state(usb_state_ptr a, usb_state_ptr b)
-{
- const usb_state_ptr orig_b = b;
-
- /* There are no common ancestors */
- if (b == NULL)
- return NULL;
-
- /* This assumes that both A and B are NULL terminated without cycles */
- while (a != NULL) {
- /* We found a match return */
- if (a == b)
- return a;
-
- /*
- * Otherwise, increment b down the list for comparison until we
- * run out, then increment a and start over on b for comparison
- */
- if (b->parent == NULL) {
- a = a->parent;
- b = orig_b;
- } else {
- b = b->parent;
- }
- }
-
- return NULL;
-}
-
-/*
- * Call all entry functions of parents before children. If set_state is called
- * during one of the entry functions, then do not call any remaining entry
- * functions.
- */
-static void call_entry_functions(const int port,
- struct internal_ctx *const internal,
- const usb_state_ptr stop,
- const usb_state_ptr current)
-{
- if (current == stop)
- return;
-
- call_entry_functions(port, internal, stop, current->parent);
-
- /*
- * If the previous entry function called set_state, then don't enter
- * remaining states.
- */
- if (!internal->enter)
- return;
-
- /* Track the latest state that was entered, so we can exit properly. */
- internal->last_entered = current;
- if (current->entry)
- current->entry(port);
-}
-
-/*
- * Call all exit functions of children before parents. Note set_state is ignored
- * during an exit function.
- */
-static void call_exit_functions(const int port, const usb_state_ptr stop,
- const usb_state_ptr current)
-{
- if (current == stop)
- return;
-
- if (current->exit)
- current->exit(port);
-
- call_exit_functions(port, stop, current->parent);
-}
-
-void set_state(const int port, struct sm_ctx *const ctx,
- const usb_state_ptr new_state)
-{
- struct internal_ctx * const internal = (void *) ctx->internal;
- usb_state_ptr last_state;
- usb_state_ptr shared_parent;
-
- /*
- * It does not make sense to call set_state in an exit phase of a state
- * since we are already in a transition; we would always ignore the
- * intended state to transition into.
- */
- if (internal->exit) {
- CPRINTF("C%d: Ignoring set state to 0x%pP within 0x%pP",
- port, new_state, ctx->current);
- return;
- }
-
- /*
- * Determine the last state that was entered. Normally it is current,
- * but we could have called set_state within an entry phase, so we
- * shouldn't exit any states that weren't fully entered.
- */
- last_state = internal->enter ? internal->last_entered : ctx->current;
-
- /* We don't exit and re-enter shared parent states */
- shared_parent = shared_parent_state(last_state, new_state);
-
- /*
- * Exit all of the non-common states from the last state.
- */
- internal->exit = true;
- call_exit_functions(port, shared_parent, last_state);
- internal->exit = false;
-
- ctx->previous = ctx->current;
- ctx->current = new_state;
-
- /*
- * Enter all new non-common states. last_entered will contain the last
- * state that successfully entered before another set_state was called.
- */
- internal->last_entered = NULL;
- internal->enter = true;
- call_entry_functions(port, internal, shared_parent, ctx->current);
- /*
- * Setting enter to false ensures that all pending entry calls will be
- * skipped (in the case of a parent state calling set_state, which means
- * we should not enter any child states)
- */
- internal->enter = false;
-
- /*
- * If we set_state while we are running a child state, then stop running
- * any remaining parent states.
- */
- internal->running = false;
-}
-
-/*
- * Call all run functions of children before parents. If set_state is called
- * during one of the entry functions, then do not call any remaining entry
- * functions.
- */
-static void call_run_functions(const int port,
- const struct internal_ctx *const internal,
- const usb_state_ptr current)
-{
- if (!current)
- return;
-
- /* If set_state is called during run, don't call remain functions. */
- if (!internal->running)
- return;
-
- if (current->run)
- current->run(port);
-
- call_run_functions(port, internal, current->parent);
-}
-
-void run_state(const int port, struct sm_ctx *const ctx)
-{
- struct internal_ctx * const internal = (void *) ctx->internal;
-
- internal->running = true;
- call_run_functions(port, internal, ctx->current);
- internal->running = false;
-}
diff --git a/board/servo_v4p1/usb_tc_snk_sm.c b/board/servo_v4p1/usb_tc_snk_sm.c
deleted file mode 100644
index f9a3966434..0000000000
--- a/board/servo_v4p1/usb_tc_snk_sm.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* 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.
- */
-
-#include "common.h"
-#include "console.h"
-#include "fusb302b.h"
-#include "ioexpanders.h"
-#include "system.h"
-#include "task.h"
-#include "usb_common.h"
-#include "usb_pd.h"
-#include "usb_sm.h"
-#include "usb_tc_sm.h"
-
-#define EVT_TIMEOUT_NEVER (-1)
-#define EVT_TIMEOUT_5MS (5 * MSEC)
-
-/*
- * USB Type-C Sink
- * See Figure 4-13 in Release 1.4 of USB Type-C Spec.
- */
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* Type-C Layer Flags */
-
-/* List of all TypeC-level states */
-enum usb_tc_state {
- TC_UNATTACHED_SNK,
- TC_ATTACH_WAIT_SNK,
- TC_ATTACHED_SNK,
-};
-/* Forward declare the full list of states. This is indexed by usb_tc_state */
-static const struct usb_state tc_states[];
-
-/* TypeC Power strings */
-static const char * const pwr2_5_str = "5V/0.5A";
-static const char * const pwr7_5_str = "5V/1.5A";
-static const char * const pwr15_str = "5V/3A";
-
-static struct type_c {
- /* state machine context */
- struct sm_ctx ctx;
- /* Port polarity */
- enum tcpc_cc_polarity polarity;
- /* event timeout */
- uint64_t evt_timeout;
- /* Time a port shall wait before it can determine it is attached */
- uint64_t cc_debounce;
- /*
- * Time a Sink port shall wait before it can determine it is detached
- * due to the potential for USB PD signaling on CC as described in
- * the state definitions.
- */
- uint64_t pd_debounce;
- /* The cc state */
- enum pd_cc_states cc_state;
- /* Generic timer */
- uint64_t timeout;
- /* Voltage on CC pin */
- enum tcpc_cc_voltage_status cc_voltage;
- /* Current CC1 value */
- int cc1;
- /* Current CC2 value */
- int cc2;
-} tc;
-
-/* Forward declare common, private functions */
-static void set_state_tc(const enum usb_tc_state new_state);
-
-static void restart_tc_sm(enum usb_tc_state start_state)
-{
- int res;
-
- res = init_fusb302b(1);
- CPRINTS("FUSB302b init %s", res ? "failed" : "ready");
-
- /* State machine is disabled if init_fusb302b fails */
- if (!res)
- set_state_tc(start_state);
-
- /* Disable timeout. Task will wake on interrupt */
- tc.evt_timeout = EVT_TIMEOUT_NEVER;
-}
-
-/*
- * Private Functions
- */
-
-/* Set the TypeC state machine to a new state. */
-static void set_state_tc(const enum usb_tc_state new_state)
-{
- set_state(0, &tc.ctx, &tc_states[new_state]);
-}
-
-static void print_alt_power(void)
-{
- enum tcpc_cc_voltage_status cc;
- char const *pwr;
-
- cc = tc.polarity ? tc.cc2 : tc.cc1;
- if (cc == TYPEC_CC_VOLT_OPEN ||
- cc == TYPEC_CC_VOLT_RA || cc == TYPEC_CC_VOLT_RD) {
- /* Supply removed or not detected */
- return;
- }
-
- if (cc == TYPEC_CC_VOLT_RP_1_5)
- pwr = pwr7_5_str;
- else if (cc == TYPEC_CC_VOLT_RP_3_0)
- pwr = pwr15_str;
- else
- pwr = pwr2_5_str;
-
- CPRINTS("ALT: Switching to alternate supply @ %s", pwr);
-}
-
-static void sink_power_sub_states(void)
-{
- enum tcpc_cc_voltage_status cc;
- enum tcpc_cc_voltage_status new_cc_voltage;
-
- cc = tc.polarity ? tc.cc2 : tc.cc1;
-
- if (cc == TYPEC_CC_VOLT_RP_DEF)
- new_cc_voltage = TYPEC_CC_VOLT_RP_DEF;
- else if (cc == TYPEC_CC_VOLT_RP_1_5)
- new_cc_voltage = TYPEC_CC_VOLT_RP_1_5;
- else if (cc == TYPEC_CC_VOLT_RP_3_0)
- new_cc_voltage = TYPEC_CC_VOLT_RP_3_0;
- else
- new_cc_voltage = TYPEC_CC_VOLT_OPEN;
-
- /* Debounce the cc state */
- if (new_cc_voltage != tc.cc_voltage) {
- tc.cc_voltage = new_cc_voltage;
- tc.cc_debounce = get_time().val + PD_T_RP_VALUE_CHANGE;
- return;
- }
-
- if (tc.cc_debounce == 0 || get_time().val < tc.cc_debounce)
- return;
-
- tc.cc_debounce = 0;
- print_alt_power();
-}
-
-/*
- * TYPE-C State Implementations
- */
-
-/**
- * Unattached.SNK
- */
-static void tc_unattached_snk_entry(int port)
-{
- tc.evt_timeout = EVT_TIMEOUT_NEVER;
-}
-
-static void tc_unattached_snk_run(int port)
-{
- /*
- * The port shall transition to AttachWait.SNK when a Source
- * connection is detected, as indicated by the SNK.Rp state
- * on at least one of its CC pins.
- */
- if (cc_is_rp(tc.cc1) || cc_is_rp(tc.cc2))
- set_state_tc(TC_ATTACH_WAIT_SNK);
-}
-
-/**
- * AttachWait.SNK
- */
-static void tc_attach_wait_snk_entry(int port)
-{
- tc.evt_timeout = EVT_TIMEOUT_5MS;
- tc.cc_state = PD_CC_UNSET;
-}
-
-static void tc_attach_wait_snk_run(int port)
-{
- enum pd_cc_states new_cc_state;
-
- if (cc_is_rp(tc.cc1) && cc_is_rp(tc.cc2))
- new_cc_state = PD_CC_DFP_DEBUG_ACC;
- else if (cc_is_rp(tc.cc1) || cc_is_rp(tc.cc2))
- new_cc_state = PD_CC_DFP_ATTACHED;
- else
- new_cc_state = PD_CC_NONE;
-
- /* Debounce the cc state */
- if (new_cc_state != tc.cc_state) {
- tc.cc_debounce = get_time().val + PD_T_CC_DEBOUNCE;
- tc.pd_debounce = get_time().val + PD_T_PD_DEBOUNCE;
- tc.cc_state = new_cc_state;
- return;
- }
-
- /* Wait for CC debounce */
- if (get_time().val < tc.cc_debounce)
- return;
-
- /*
- * The port shall transition to Attached.SNK after the state of only
- * one of the CC1 or CC2 pins is SNK.Rp for at least tCCDebounce and
- * VBUS is detected.
- */
- if (is_vbus_present() && (new_cc_state == PD_CC_DFP_ATTACHED))
- set_state_tc(TC_ATTACHED_SNK);
- else
- set_state_tc(TC_UNATTACHED_SNK);
-}
-
-/**
- * Attached.SNK
- */
-static void tc_attached_snk_entry(int port)
-{
- print_alt_power();
-
- tc.evt_timeout = EVT_TIMEOUT_NEVER;
- tc.cc_debounce = 0;
-
- /* Switch over to alternate supply */
- en_pp5000_alt_3p3(1);
-}
-
-static void tc_attached_snk_run(int port)
-{
- /* Detach detection */
- if (!is_vbus_present()) {
- set_state_tc(TC_UNATTACHED_SNK);
- return;
- }
-
- /* Run Sink Power Sub-State */
- sink_power_sub_states();
-}
-
-static void tc_attached_snk_exit(int port)
-{
- /* Alternate charger removed. Switch back to host power */
- en_pp5000_alt_3p3(0);
-}
-
-/*
- * Type-C State
- *
- * TC_UNATTACHED_SNK
- * TC_ATTACH_WAIT_SNK
- * TC_TRY_WAIT_SNK
- * TC_ATTACHED_SNK
- */
-static const struct usb_state tc_states[] = {
- [TC_UNATTACHED_SNK] = {
- .entry = tc_unattached_snk_entry,
- .run = tc_unattached_snk_run,
- },
- [TC_ATTACH_WAIT_SNK] = {
- .entry = tc_attach_wait_snk_entry,
- .run = tc_attach_wait_snk_run,
- },
- [TC_ATTACHED_SNK] = {
- .entry = tc_attached_snk_entry,
- .run = tc_attached_snk_run,
- .exit = tc_attached_snk_exit,
- },
-};
-
-void snk_task(void *u)
-{
- /* Unattached.SNK is the default starting state. */
- restart_tc_sm(TC_UNATTACHED_SNK);
-
- while (1) {
- /* wait for next event or timeout expiration */
- task_wait_event(tc.evt_timeout);
-
- /* Sample CC lines */
- get_cc(&tc.cc1, &tc.cc2);
-
- /* Detect polarity */
- tc.polarity = (tc.cc1 > tc.cc2) ? POLARITY_CC1 : POLARITY_CC2;
-
- /* Run TypeC state machine */
- run_state(0, &tc.ctx);
- }
-}
-
diff --git a/board/shuboz/analyzestack.yaml b/board/shuboz/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/shuboz/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/shuboz/battery.c b/board/shuboz/battery.c
deleted file mode 100644
index 155cadab41..0000000000
--- a/board/shuboz/battery.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "common.h"
-#include "hooks.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-/*
- * Battery info for all Zork battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* CM1500 50Wh */
- [BATTERY_CM1500] = {
- .fuel_gauge = {
- .manuf_name = "AS3GXXD3KB",
- .device_name = "C140243",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000c,
- .disconnect_val = 0x000c,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11880, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_CM1500;
-
-static uint16_t current_table[] = {
- 2200,
- 1800,
- 1700,
- 1600,
-};
-#define NUM_CURRENT_LEVELS ARRAY_SIZE(current_table)
-
-#define TEMP_THRESHOLD 54
-static int current_level;
-
-/* Called by hook task every hook second (1 sec) */
-static void current_update(void)
-{
- int t, temp;
- int rv;
- static int Uptime;
- static int Dntime;
-
- rv = temp_sensor_read(TEMP_SENSOR_CHARGER, &t);
- if (rv != EC_SUCCESS)
- return;
-
- temp = K_TO_C(t);
-
- if (temp > TEMP_THRESHOLD) {
- Dntime = 0;
- if (Uptime < 5)
- Uptime++;
- else {
- Uptime = 0;
- current_level++;
- }
- } else if (current_level != 0 && temp < TEMP_THRESHOLD) {
- Uptime = 0;
- if (Dntime < 5)
- Dntime++;
- else {
- Dntime = 0;
- current_level--;
- }
- } else {
- Uptime = 0;
- Dntime = 0;
- }
-
- if (current_level < 0)
- current_level = 0;
- else if (current_level > NUM_CURRENT_LEVELS)
- current_level = NUM_CURRENT_LEVELS;
-}
-DECLARE_HOOK(HOOK_SECOND, current_update, HOOK_PRIO_DEFAULT);
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- /*
- * Precharge must be executed when communication is failed on
- * dead battery.
- */
- if (!(curr->batt.flags & BATT_FLAG_RESPONSIVE))
- return 0;
-
- if (current_level != 0) {
- if (curr->requested_current > current_table[current_level-1])
- curr->requested_current =
- current_table[current_level - 1];
- }
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/shuboz/board.c b/board/shuboz/board.c
deleted file mode 100644
index 84e2249e44..0000000000
--- a/board/shuboz/board.c
+++ /dev/null
@@ -1,629 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "button.h"
-#include "cbi_ssfc.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/aoz1380.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "driver/usb_mux/ps8740.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "thermal.h"
-#include "usb_charge.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-int I2C_PORT_BATTERY = I2C_PORT_BATTERY_V1;
-
-#include "gpio_list.h"
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0 },
- { 0, FLOAT_TO_FP(-1), 0 },
- { 0, 0, FLOAT_TO_FP(-1) },
-};
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-static const mat33_fp_t base_standard_ref_icm = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(-1), 0},
- {0, 0, FLOAT_TO_FP(-1)},
-};
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs. */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .int_signal = GPIO_6AXIS_INT_L,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void setup_base_gyro_config(void)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_BASE_GYRO_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else
- ccprints("BASE GYRO is BMI160");
-}
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_BASE_GYRO_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-/*****************************************************************************
- * Board suspend / resume
- */
-
-static void board_chipset_resume(void)
-{
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_suspend(void)
-{
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-static int board_ps8743_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int res;
-
- if (mux_state & USB_PD_MUX_DP_ENABLED)
- /* Enable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 1);
- else
- /* Disable IN_HPD on the DB */
- ioex_set_level(IOEX_USB_C1_HPD_IN_DB, 0);
-
- res = ps8743_write(me, PS8743_REG_USB_EQ_RX, 0xB0);
- return res;
-}
-
-
-/*****************************************************************************
- * USB-C
- */
-
-/*
- * USB C0 port SBU mux use standalone FSUSB42UMX
- * chip and it need a board specific driver.
- * Overall, it will use chained mux framework.
- */
-static int fsusb42umx_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
- if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
- else
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 0);
-
- return EC_SUCCESS;
-}
-
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-const struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = fsusb42umx_set_mux,
-};
-
-/*
- * Since FSUSB42UMX is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-const struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
-
-struct usb_mux usbc1_amd_fp5_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .flags = USB_MUX_FLAG_SET_WITHOUT_FLIP,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PS8743_I2C_ADDR1_FLAG,
- .driver = &ps8743_usb_mux_driver,
- .board_set = &board_ps8743_mux_set,
- .next_mux = &usbc1_amd_fp5_usb_mux,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- /* Device does not talk I2C */
- .drv = &aoz1380_drv
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NX20P3483_ADDR1_FLAGS,
- .drv = &nx20p348x_drv
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_FAULT_ODL:
- aoz1380_interrupt(USBC_PORT_C0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- /*
- * Sensitive only to falling edges; GPIO is configured for both
- * because this input may be used for HDMI HPD instead.
- */
- if (!gpio_get_level(signal))
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
-
- default:
- break;
- }
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTSUSB("Disabling all charger ports");
-
- /* Disable all ports. */
- for (i = 0; i < ppc_cnt; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("Disabling C%d as sink failed.", i);
- }
-
- return EC_SUCCESS;
- } else if (!is_valid_port) {
- return EC_ERROR_INVAL;
- }
-
-
- /* Check if the port is sourcing VBUS. */
- if (ppc_is_sourcing_vbus(port)) {
- CPRINTFUSB("Skip enable C%d", port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTSUSB("New charge port: C%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < ppc_cnt; i++) {
- if (i == port)
- continue;
-
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("C%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (ppc_vbus_sink_enable(port, 1)) {
- CPRINTSUSB("C%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- switch (port) {
- case USBC_PORT_C0:
- ioex_set_level(IOEX_USB_C0_FAULT_ODL, !is_overcurrented);
- break;
-
- case USBC_PORT_C1:
- ioex_set_level(IOEX_USB_C1_FAULT_ODL, !is_overcurrented);
- break;
-
- default:
- break;
- }
-}
-
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-static void reset_nct38xx_port(int port)
-{
- enum gpio_signal reset_gpio_l;
-
- if (port == USBC_PORT_C0)
- reset_gpio_l = GPIO_USB_C0_TCPC_RST_L;
- else if (port == USBC_PORT_C1)
- reset_gpio_l = GPIO_USB_C1_TCPC_RST_L;
- else
- /* Invalid port: do nothing */
- return;
-
- gpio_set_level(reset_gpio_l, 0);
- msleep(NCT38XX_RESET_HOLD_DELAY_MS);
- gpio_set_level(reset_gpio_l, 1);
- nct38xx_reset_notify(port);
- if (NCT3807_RESET_POST_DELAY_MS != 0)
- msleep(NCT3807_RESET_POST_DELAY_MS);
-}
-
-
-void board_reset_pd_mcu(void)
-{
- /* Reset TCPC0 */
- reset_nct38xx_port(USBC_PORT_C0);
-
- /* Reset TCPC1 */
- reset_nct38xx_port(USBC_PORT_C1);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
-
- return status;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-int board_pd_set_frs_enable(int port, int enable)
-{
- int rv = EC_SUCCESS;
-
- /* Use the TCPC to enable fast switch when FRS included */
- if (port == USBC_PORT_C0) {
- rv = ioex_set_level(IOEX_USB_C0_TCPC_FASTSW_CTL_EN,
- !!enable);
- } else {
- rv = ioex_set_level(IOEX_USB_C1_TCPC_FASTSW_CTL_EN,
- !!enable);
- }
-
- return rv;
-}
-
-static void setup_fw_config(void)
-{
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_FAULT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC 1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-
- /* Enable SBU fault interrupts */
- ioex_enable_interrupt(IOEX_USB_C0_SBU_FAULT_ODL);
- ioex_enable_interrupt(IOEX_USB_C1_SBU_FAULT_DB_ODL);
-
- /* Config Thermal params */
- thermal_params[0].temp_host[EC_TEMP_THRESH_HIGH] = C_TO_K(72);
- thermal_params[0].temp_host[EC_TEMP_THRESH_HALT] = C_TO_K(80);
- thermal_params[0].temp_host_release[EC_TEMP_THRESH_HIGH] = C_TO_K(67);
- thermal_params[1].temp_host[EC_TEMP_THRESH_HIGH] = C_TO_K(72);
- thermal_params[1].temp_host[EC_TEMP_THRESH_HALT] = C_TO_K(80);
- thermal_params[1].temp_host_release[EC_TEMP_THRESH_HIGH] = C_TO_K(67);
-
- if (ec_config_has_lid_angle_tablet_mode()) {
- setup_base_gyro_config();
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-/*
- * Use HOOK_PRIO_INIT_I2C + 2 to be after ioex_init().
- */
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
- [IOEX_C1_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB,
-};
-
diff --git a/board/shuboz/board.h b/board/shuboz/board.h
deleted file mode 100644
index 6c64cf5dda..0000000000
--- a/board/shuboz/board.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* 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.
- */
-
-/* Trembyle board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_DALBOZ
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_USBC_PPC_NX20P3483
-#define CONFIG_USB_MUX_PS8740
-#define CONFIG_USB_MUX_PS8743
-#define CONFIG_USB_MUX_RUNTIME_CONFIG
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PORT_ENABLE_DYNAMIC
-
-#undef PD_MAX_CURRENT_MA
-#define PD_MAX_CURRENT_MA 3000
-#undef CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
-#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 40000
-
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-
-/* USB-A config */
-#define GPIO_USB1_ILIM_SEL IOEX_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL IOEX_USB_A1_CHARGE_EN_DB_L
-
-/* Power LEDs */
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_KX022
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/*
- * Jelboz's battery takes several seconds to come back out of its disconnect
- * state (~4 seconds on the unit I have, so give it a little more for margin).
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 5
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-#ifndef __ASSEMBLER__
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-extern int I2C_PORT_BATTERY;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_CM1500,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT3807 = 0,
- IOEX_C1_NCT3807,
- IOEX_PORT_COUNT
-};
-
-#define PORT_TO_HPD(port) ((port == 0) \
- ? GPIO_USB3_C0_DP2_HPD \
- : GPIO_DP1_HPD)
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-/**
- * SHUBOZ_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: none
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- SHUBOZ_MB_USBAC = 0,
-};
-
-/**
- * SHUBOZ_DB_D_OPT1_USBAC
- * USB-A1 Speed: 5 Gbps
- * Retimer: TUSB522
- * USB-C1 Speed: 5 Gbps
- * Retimer: PS8740
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: no
- * Retimer: none
- * MST Hub: none
- */
-enum ec_cfg_usb_db_type {
- SHUBOZ_DB_D_OPT1_USBAC = 0,
-};
-
-#include "cbi_ec_fw_config.h"
-
-void board_reset_pd_mcu(void);
-
-/* Common definition for the USB PD interrupt handlers. */
-void tcpc_alert_event(enum gpio_signal signal);
-void bc12_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/shuboz/build.mk b/board/shuboz/build.mk
deleted file mode 100644
index 1c0cbc4f63..0000000000
--- a/board/shuboz/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/shuboz/ec.tasklist b/board/shuboz/ec.tasklist
deleted file mode 100644
index d9c1606eb2..0000000000
--- a/board/shuboz/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/shuboz/gpio.inc b/board/shuboz/gpio.inc
deleted file mode 100644
index b093a7e6d6..0000000000
--- a/board/shuboz/gpio.inc
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-/* PPC interrupts trigger on falling edge, but HDMI HPD triggers on rising edge. */
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_BOTH | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, motion_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 7), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(7, 0), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB3_C0_DP2_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-
-/*
- * Dalboz has 2 DB options, with different IO expanders. IOEX_C1_NCT3807 is the
- * OPT1 DB (USB-C1), IOEX_HDMI_PCAL6408 is the OPT2 DB (HDMI).
- */
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(IOEX_C1_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_C0_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C0_NCT3807, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(IOEX_C0_NCT3807, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(IOEX_C0_NCT3807, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(EN_USB_A0_5V, EXPIN(IOEX_C0_NCT3807, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(IOEX_C0_NCT3807, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-IOEX(USB_C0_SBU_FLIP, EXPIN(IOEX_C0_NCT3807, 1, 7), GPIO_OUT_LOW) /* C0 SBU Flip */
-
-IOEX(USB_A1_RETIMER_EN, EXPIN(IOEX_C1_NCT3807, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(IOEX_C1_NCT3807, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C1_NCT3807, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_PPC_EN_L, EXPIN(IOEX_C1_NCT3807, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(IOEX_C1_NCT3807, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB, EXPIN(IOEX_C1_NCT3807, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L, EXPIN(IOEX_C1_NCT3807, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(I2C_AUDIO_USB_HUB_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_AUDIO_USB_HUB_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_BATT_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/shuboz/led.c b/board/shuboz/led.c
deleted file mode 100644
index af91f32ec6..0000000000
--- a/board/shuboz/led.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {LED_OFF, 2 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_FULL_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/shuboz/vif_override.xml b/board/shuboz/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/shuboz/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/soraka b/board/soraka
deleted file mode 120000
index e61be5c7db..0000000000
--- a/board/soraka
+++ /dev/null
@@ -1 +0,0 @@
-poppy \ No newline at end of file
diff --git a/board/spherion/battery.c b/board/spherion/battery.c
deleted file mode 100644
index 3613a4750c..0000000000
--- a/board/spherion/battery.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "gpio.h"
-#include "temp_sensor.h"
-#include "util.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C235] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWRc3KA",
- .device_name = "C235-41",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x0c,
- .disconnect_val = 0x0c,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC_AP15O5L] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00305013",
- .device_name = "AP15O5L",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AP15O5L;
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int charger_temp, charger_temp_c;
- int on;
-
- /* charge confrol if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON);
- if (!on)
- return 0;
-
- /* charge control if outside of allowable temperature range */
- if (curr->state == ST_CHARGE) {
- temp_sensor_read(TEMP_SENSOR_CHARGER, &charger_temp);
- charger_temp_c = K_TO_C(charger_temp);
- if (charger_temp_c > 52)
- curr->requested_current = MIN(curr->requested_current,
- 2200);
- else if (charger_temp_c > 48)
- curr->requested_current = MIN(curr->requested_current,
- CONFIG_CHARGER_MAX_INPUT_CURRENT);
- }
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/spherion/board.c b/board/spherion/board.c
deleted file mode 100644
index 1119b1f077..0000000000
--- a/board/spherion/board.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 2021 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.
- */
-/* Spherion board configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/mt6360.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/usb_mux/it5205.h"
-#include "driver/usb_mux/ps8743.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "regulator.h"
-#include "spi.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- /* Convert to mV (3000mV/1024). */
- {"VBUS_C0", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0, CHIP_ADC_CH0},
- {"BOARD_ID_0", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH1},
- {"BOARD_ID_1", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH2},
- /* AMON/BMON gain = 17.97 */
- {"CHARGER_AMON_R", ADC_MAX_MVOLT * 1000 / 17.97, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH3},
- {"VBUS_C1", ADC_MAX_MVOLT * 10, ADC_READ_MAX + 1, 0, CHIP_ADC_CH5},
- {"CHARGER_PMON", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0, CHIP_ADC_CH6},
- {"TEMP_SENSOR_CHARGER", ADC_MAX_MVOLT, ADC_READ_MAX + 1, 0,
- CHIP_ADC_CH7},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* PWM */
-
-/*
- * PWM channels. Must be in the exactly same order as in enum pwm_channel.
- * There total three 16 bits clock prescaler registers for all pwm channels,
- * so use the same frequency and prescaler register setting is required if
- * number of pwm channel greater than three.
- */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = PWM_HW_CH_DCR2,
- .flags = 0,
- .freq_hz = 10000,
- .pcfsr_sel = PWM_PRESCALER_C4
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void kb_backlight_enable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-void board_usb_mux_init(void)
-{
- if (board_get_sub_board() == SUB_BOARD_TYPEC)
- ps8743_tune_usb_eq(&usb_muxes[1],
- PS8743_USB_EQ_TX_12_8_DB,
- PS8743_USB_EQ_RX_12_8_DB);
-}
-DECLARE_HOOK(HOOK_INIT, board_usb_mux_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void board_suspend(void)
-{
- gpio_set_level(GPIO_EN_5V_USM, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- gpio_set_level(GPIO_EN_5V_USM, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
diff --git a/board/spherion/board.h b/board/spherion/board.h
deleted file mode 100644
index a27258bc94..0000000000
--- a/board/spherion/board.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright 2021 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.
- */
-/* Spherion board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* Chipset config */
-
-/* Optional features */
-#define CONFIG_LTO
-#undef CONFIG_LOW_POWER_S0
-
-/*
- * TODO: Remove this option once the VBAT no longer keeps high when
- * system's power isn't presented.
- */
-#define CONFIG_IT83XX_RESET_PD_CONTRACT_IN_BRAM
-
-/* Temperature sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Keyboard backliht */
-#define CONFIG_PWM_KBLIGHT
-
-/* Charger*/
-#define CONFIG_CHARGER_MAX_INPUT_CURRENT 3100
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-
-/* PD / USB-C / PPC */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define PD_MAX_POWER_MW 65000
-#define PD_MAX_CURRENT_MA CONFIG_CHARGER_MAX_INPUT_CURRENT
-#define PD_MAX_VOLTAGE_MV 20000
-#define PD_OPERATING_POWER_MW 15000
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
-#undef CONFIG_SYV682X_HV_ILIM
-#define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_5_50
-
-/* Optional console commands */
-#define CONFIG_CMD_FLASH
-#define CONFIG_CMD_SCRATCHPAD
-#define CONFIG_CMD_STACKOVERFLOW
-
-/* Sensor */
-
-/* SPI / Host Command */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* USB-A */
-#define USBA_PORT_COUNT 1
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_C235,
- BATTERY_PANASONIC_AP15O5L,
- BATTERY_TYPE_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum adc_channel {
- ADC_VBUS_C0, /* ADC 0 */
- ADC_BOARD_ID_0, /* ADC 1 */
- ADC_BOARD_ID_1, /* ADC 2 */
- ADC_CHARGER_AMON_R, /* ADC 3 */
- ADC_VBUS_C1, /* ADC 5 */
- ADC_CHARGER_PMON, /* ADC 6 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC 7 */
- /* Number of ADC channels */
- ADC_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/spherion/build.mk b/board/spherion/build.mk
deleted file mode 100644
index 4dc5a3e62e..0000000000
--- a/board/spherion/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-
-# the IC is ITE IT8xxx2
-CHIP:=it83xx
-CHIP_FAMILY:=it8xxx2
-CHIP_VARIANT:=it81202bx_1024
-BASEBOARD:=asurada
-
-board-y+=battery.o board.o led.o
diff --git a/board/spherion/ec.tasklist b/board/spherion/ec.tasklist
deleted file mode 100644
index c92920ade6..0000000000
--- a/board/spherion/ec.tasklist
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(PDCMD, pd_command_task, NULL, 1024) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, 1280) \
-
diff --git a/board/spherion/gpio.inc b/board/spherion/gpio.inc
deleted file mode 100644
index b618911e02..0000000000
--- a/board/spherion/gpio.inc
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(POWER_BUTTON_L, PIN(E, 4), GPIO_INT_BOTH | GPIO_PULL_UP |
- GPIO_HIB_WAKE_HIGH, power_button_interrupt) /* H1_EC_PWR_BTN_ODL */
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- lid_interrupt)
-
-/* Chipset interrupts */
-GPIO_INT(AP_EC_WARM_RST_REQ, PIN(D, 3), GPIO_INT_RISING | GPIO_SEL_1P8V,
- chipset_reset_request_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(C, 7), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- chipset_watchdog_interrupt)
-GPIO_INT(AP_IN_SLEEP_L, PIN(F, 2),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PMIC_EC_PWRGD, PIN(F, 3),
- GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt)
-
-/* Sensor Interrupts */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(D, 1), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL,PIN(J, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_L, PIN(J, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(VOLUME_DOWN_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLDN_BTN_ODL */
-GPIO_INT(VOLUME_UP_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP,
- button_interrupt) /* EC_VOLUP_BTN_ODL */
-
-/* Other interrupts */
-GPIO_INT(AP_XHCI_INIT_DONE, PIN(D, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V,
- usb_a0_interrupt)
-GPIO_INT(AC_PRESENT, PIN(E, 5), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH,
- extpower_interrupt) /* AC_OK / AC_PRESENT in rev1+ */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING,
- uart_deepsleep_interrupt) /* UART_DEBUG_TX_EC_RX */
-GPIO_INT(WP, PIN(I, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V,
- switch_interrupt) /* EC_FLASH_WP_OD */
-GPIO_INT(SPI0_CS, PIN(M, 5), GPIO_INT_FALLING,
- spi_event) /* SPI slave Chip Select -- AP_SPI_EC_CS_L */
-GPIO_INT(X_EC_GPIO2, PIN(B, 2), GPIO_ODR_HIGH, x_ec_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EC_PMIC_EN_ODL, PIN(D, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_PMIC_WATCHDOG_L, PIN(H, 0), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_A, PIN(C, 6), GPIO_OUT_HIGH)
-GPIO(PG_MT6315_PROC_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(PG_MT6360_ODL, PIN(F, 1), GPIO_INPUT)
-GPIO(PG_PP5000_A_ODL, PIN(A, 6), GPIO_INPUT)
-GPIO(EN_SLP_Z, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(B, 6), GPIO_ODR_LOW)
-GPIO(EC_BL_EN_OD, PIN(B, 5), GPIO_ODR_LOW | GPIO_SEL_1P8V)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(E, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V) /* EC_AP_INT_ODL */
-
-/* USB and USBC Signals */
-GPIO(DP_AUX_PATH_SEL, PIN(G, 0), GPIO_OUT_HIGH)
-GPIO(EC_DPBRDG_HPD_ODL, PIN(J, 0), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EN_PP5000_USB_A0_VBUS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS_EN, PIN(H, 3), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT)
-GPIO(BC12_DET_EN, PIN(J, 5), GPIO_OUT_LOW) /* EN_USB_C0_BC12_DET */
-GPIO(EN_EC_ID_ODL, PIN(H, 5), GPIO_ODR_LOW)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(EC_KB_BL_EN, PIN(G, 3), GPIO_OUT_LOW) /* Keyboard backlight enable */
-GPIO(EN_5V_USM, PIN(D, 7), GPIO_OUT_LOW)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT) /* I2C_CHG_BATT_SCL */
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT) /* I2C_CHG_BATT_SDA */
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SCL */
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* I2C_SENSOR_SDA */
-GPIO(I2C_C_SCL, PIN(F, 6), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT) /* I2C_USB_C0_SCL */
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT) /* I2C_USB_C1_SCL */
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT) /* I2C_USB_C1_SDA */
-
-/* SPI pins - Alternate function below configures SPI module on these pins */
-
-/* NC / TP */
-
-/* Keyboard pins */
-
-/* Subboards HDMI/TYPEC */
-GPIO(EC_X_GPIO1, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EC_X_GPIO3, PIN(J, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x18), 1, MODULE_I2C, 0) /* I2C A */
-ALTERNATE(PIN_MASK(C, 0x06), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C B */
-ALTERNATE(PIN_MASK(F, 0xC0), 1, MODULE_I2C, 0) /* I2C C */
-ALTERNATE(PIN_MASK(E, 0x81), 1, MODULE_I2C, 0) /* I2C E */
-
-/* UART */
-ALTERNATE(PIN_MASK(B, 0x03), 1, MODULE_UART, 0) /* EC to Servo */
-
-/* ADC */
-ALTERNATE(PIN_MASK(I, 0xEF), 0, MODULE_ADC, 0) /* ADC 0,1,2,3,5,6,7 */
-
-/* SPI */
-ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI */
-
-/* Unimplemented Pins */
-GPIO(SET_VMC_VOLT_AT_1V8, PIN(D, 4), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-GPIO(PACKET_MODE_EN, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(UNUSED_GPIOA0, PIN(A, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOA1, PIN(A, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOA2, PIN(A, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(UNUSED_GPIOF0, PIN(F, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOJ2, PIN(J, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOJ3, PIN(J, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOJ7, PIN(J, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-/* b/160218054: behavior not defined */
-/* *_ODL pin has external pullup so don't pull it down. */
-GPIO(USB_A0_FAULT_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(CHARGER_PROCHOT_ODL, PIN(C, 3), GPIO_INPUT)
-GPIO(PG_MT6315_GPU_ODL, PIN(H, 6), GPIO_INPUT)
-GPIO(EN_PP3000_SD_U, PIN(G, 1), GPIO_INPUT | GPIO_PULL_DOWN | GPIO_SEL_1P8V)
-/* reserved for future use */
-GPIO(CCD_MODE_ODL, PIN(C, 4), GPIO_INPUT)
-
-/* NC pins, enable internal pull-up/down to avoid floating state. */
-GPIO(NC_GPM2, PIN(M, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPM3, PIN(M, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(NC_GPM6, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(SPI_CLK_GPG6, PIN(G, 6), GPIO_INPUT | GPIO_PULL_UP)
-/*
- * These 3 pins don't have internal pull-down capability,
- * so we set them as output low.
- */
-GPIO(SPI_MOSI_GPG4, PIN(G, 4), GPIO_OUT_LOW)
-GPIO(SPI_MISO_GPG5, PIN(G, 5), GPIO_OUT_LOW)
-GPIO(SPI_CS_GPG7, PIN(G, 7), GPIO_OUT_LOW)
diff --git a/board/spherion/led.c b/board/spherion/led.c
deleted file mode 100644
index aad85d02c1..0000000000
--- a/board/spherion/led.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery LED control for Spherion
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-#include "driver/bc12/mt6360.h"
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- mt6360_led_set_brightness(MT6360_LED_RGB1, 50);
- mt6360_led_set_brightness(MT6360_LED_RGB3, 50);
-
- switch (color) {
- case EC_LED_COLOR_AMBER:
- mt6360_led_enable(MT6360_LED_RGB1, 1);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- case EC_LED_COLOR_BLUE:
- mt6360_led_enable(MT6360_LED_RGB1, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 1);
- break;
- default: /* LED_OFF and other unsupported colors */
- mt6360_led_enable(MT6360_LED_RGB1, 0);
- mt6360_led_enable(MT6360_LED_RGB3, 0);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] =
- MT6360_LED_BRIGHTNESS_MAX;
- brightness_range[EC_LED_COLOR_BLUE] =
- MT6360_LED_BRIGHTNESS_MAX;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/spherion/vif_override.xml b/board/spherion/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/spherion/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/staff b/board/staff
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/staff
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/star b/board/star
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/star
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/stern/battery.c b/board/stern/battery.c
deleted file mode 100644
index 50d2bf397c..0000000000
--- a/board/stern/battery.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_C235] = {
- .fuel_gauge = {
- .manuf_name = "AS3GWRc3KA",
- .device_name = "C235-41",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x0c,
- .disconnect_val = 0x0c,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C235;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/stern/board.c b/board/stern/board.c
deleted file mode 100644
index 609dfdf7e5..0000000000
--- a/board/stern/board.c
+++ /dev/null
@@ -1,455 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = board_set_active_charge_port(port);
- if (ret)
- return ret;
- force_discharge = enable;
-
- return charger_discharge_on_ac(enable);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(-1), 0},
- {0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(1) }
-};
-
-/* sensor private data */
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags =
- ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return board_get_version() == 1 ? 2 : 1;
-}
diff --git a/board/stern/board.h b/board/stern/board.h
deleted file mode 100644
index 5bf23a6733..0000000000
--- a/board/stern/board.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Kukui */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-/* TODO(b:135086465) led implementation */
-#undef CONFIG_LED_COMMON
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#undef I2C_BITBANG_PORT_COUNT
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_COMMON
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_LIS2DWL /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_BATTERY 2
-#define I2C_PORT_CHARGER board_get_charger_i2c()
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_C235,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger */
-int board_get_charger_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/stern/build.mk b/board/stern/build.mk
deleted file mode 100644
index a6e1c010d7..0000000000
--- a/board/stern/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/stern/ec.tasklist b/board/stern/ec.tasklist
deleted file mode 100644
index 36be2e96a4..0000000000
--- a/board/stern/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, 1024) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/stern/gpio.inc b/board/stern/gpio.inc
deleted file mode 100644
index 3a162d6124..0000000000
--- a/board/stern/gpio.inc
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- bmi160_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH,
- gmr_tablet_switch_isr)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
-IOEX(BAT_LED_WHITE_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
-IOEX(BAT_LED_AMBER_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/stern/led.c b/board/stern/led.c
deleted file mode 100644
index ac4813c8c0..0000000000
--- a/board/stern/led.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Damu
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_ON_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL);
- ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_ON_LVL);
- break;
- default:
- ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- } else {
- return EC_ERROR_INVAL;
- }
- return EC_SUCCESS;
-}
diff --git a/board/stern/vif_override.xml b/board/stern/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/stern/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/stm32f446e-eval/board.c b/board/stm32f446e-eval/board.c
deleted file mode 100644
index fc796464e2..0000000000
--- a/board/stm32f446e-eval/board.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "common.h"
-#include "dma.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "gpio_list.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "registers.h"
-#include "stm32-dma.h"
-#include "usb_descriptor.h"
-#include "usb_dwc_console.h"
-#include "usb_hw.h"
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("stm32f446-eval"),
- [USB_STR_SERIALNO] = USB_STRING_DESC("1234-a"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("EC Shell"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-struct dwc_usb usb_ctl = {
- .ep = {
- &ep0_ctl,
- &ep_console_ctl,
- },
- .speed = USB_SPEED_FS,
- .phy_type = USB_PHY_ULPI,
- .dma_en = 1,
- .irq = STM32_IRQ_OTG_HS,
-};
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"i2c1", I2C_PORT_0, 100,
- GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"fmpi2c4", FMPI2C_PORT_3, 100,
- GPIO_FMPI2C_SCL, GPIO_FMPI2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-#define GPIO_SET_HS(bank, number) \
- (STM32_GPIO_OSPEEDR(GPIO_##bank) |= (0x3 << ((number) * 2)))
-
-void board_config_post_gpio_init(void)
-{
- /* We use MCO2 clock passthrough to provide a clock to USB HS */
- gpio_config_module(MODULE_MCO, 1);
- /* GPIO PC9 to high speed */
- GPIO_SET_HS(C, 9);
-
- /* Set USB GPIO to high speed */
- GPIO_SET_HS(A, 11);
- GPIO_SET_HS(A, 12);
-
- GPIO_SET_HS(C, 3);
- GPIO_SET_HS(C, 2);
- GPIO_SET_HS(C, 0);
- GPIO_SET_HS(A, 5);
-
- GPIO_SET_HS(B, 5);
- GPIO_SET_HS(B, 13);
- GPIO_SET_HS(B, 12);
- GPIO_SET_HS(B, 2);
- GPIO_SET_HS(B, 10);
- GPIO_SET_HS(B, 1);
- GPIO_SET_HS(B, 0);
- GPIO_SET_HS(A, 3);
-
- /* Set I2C GPIO to HS */
- GPIO_SET_HS(B, 6);
- GPIO_SET_HS(B, 7);
- GPIO_SET_HS(F, 1);
- GPIO_SET_HS(F, 0);
- GPIO_SET_HS(A, 8);
- GPIO_SET_HS(B, 4);
- GPIO_SET_HS(C, 6);
- GPIO_SET_HS(C, 7);
-}
-
diff --git a/board/stm32f446e-eval/board.h b/board/stm32f446e-eval/board.h
deleted file mode 100644
index aa498d6caa..0000000000
--- a/board/stm32f446e-eval/board.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* STM32F446E-Eval board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Use external clock */
-#define CONFIG_STM32_CLOCK_HSE_HZ 8000000
-
-#define CONFIG_BOARD_POST_GPIO_INIT
-
-#define CONFIG_FLASH_WRITE_SIZE STM32_FLASH_WRITE_SIZE_3300
-
-/* Enable console recasting of GPIO type. */
-#define CONFIG_CMD_GPIO_EXTENDED
-
-/* The UART console is on USART1 (PA9/PA10) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 1
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-#define CONFIG_UART_TX_REQ_CH 4
-#define CONFIG_UART_RX_REQ_CH 4
-
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_0 0
-#define FMPI2C_PORT_3 3
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x500f
-#define CONFIG_USB_CONSOLE
-
-#define CONFIG_USB_SELF_POWERED
-
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_COUNT 1
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_COUNT 2
-
-/* This is not actually an EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_WATCHDOG
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_DMA_HELP
-#define CONFIG_FLASH_CROS
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 5
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_CONSOLE_NAME,
- USB_STR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/stm32f446e-eval/build.mk b/board/stm32f446e-eval/build.mk
deleted file mode 100644
index 6b06f2bb8f..0000000000
--- a/board/stm32f446e-eval/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-CHIP:=stm32
-CHIP_FAMILY:=stm32f4
-CHIP_VARIANT:=stm32f446
-
-board-y=board.o
diff --git a/board/stm32f446e-eval/ec.tasklist b/board/stm32f446e-eval/ec.tasklist
deleted file mode 100644
index 2a1ffbf652..0000000000
--- a/board/stm32f446e-eval/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/stm32f446e-eval/gpio.inc b/board/stm32f446e-eval/gpio.inc
deleted file mode 100644
index afc8d1e486..0000000000
--- a/board/stm32f446e-eval/gpio.inc
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Outputs */
-GPIO(PD11, PIN(D, 11), GPIO_OUT_HIGH)
-
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(FMPI2C_SCL, PIN(C, 6), GPIO_INPUT)
-GPIO(FMPI2C_SDA, PIN(C, 7), GPIO_INPUT)
-
-/* USART3 TX/RX */
-GPIO(MCU_UART1_TX, PIN(A, 9), GPIO_INPUT)
-GPIO(MCU_UART1_RX, PIN(A, 10), GPIO_INPUT)
-GPIO(MCU_UART3_TX, PIN(C, 10), GPIO_INPUT)
-GPIO(MCU_UART3_RX, PIN(C, 11), GPIO_INPUT)
-
-GPIO(USB_FS_DM, PIN(A, 11), GPIO_INPUT)
-GPIO(USB_FS_DP, PIN(A, 12), GPIO_INPUT)
-
-
-GPIO(USB_HS_ULPI_NXT, PIN(C, 3), GPIO_INPUT)
-GPIO(USB_HS_ULPI_DIR, PIN(C, 2), GPIO_INPUT)
-GPIO(USB_HS_ULPI_STP, PIN(C, 0), GPIO_INPUT)
-GPIO(USB_HS_ULPI_CK, PIN(A, 5), GPIO_INPUT)
-
-GPIO(USB_HS_ULPI_D7, PIN(B, 5), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D6, PIN(B,13), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D5, PIN(B,12), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D4, PIN(B, 2), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D3, PIN(B,10), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D2, PIN(B, 1), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D1, PIN(B, 0), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D0, PIN(A, 3), GPIO_INPUT)
-
-
-
-/* Unimplemented signals since this is a dev board */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0600), 7, MODULE_UART, 0) /* USART1: PA9/PA10 - Console */
-ALTERNATE(PIN_MASK(C, 0x0C00), 7, MODULE_USART, 0) /* USART3: PC10/PC11 - NOT Console */
-ALTERNATE(PIN_MASK(A, 0x0100), 0, MODULE_MCO, 0) /* MCO1: PA8 */
-ALTERNATE(PIN_MASK(C, 0x0200), 0, MODULE_MCO, 0) /* MCO2: PC9 */
-
-ALTERNATE(PIN_MASK(B, 0x0300), 4, MODULE_I2C, GPIO_ODR_HIGH | GPIO_PULL_UP) /* I2C1: PB8-9 */
-ALTERNATE(PIN_MASK(D, 0x3000), 4, MODULE_I2C, GPIO_ODR_HIGH | GPIO_PULL_UP) /* FMPI2C MASTER:PD12/13 */
-
-ALTERNATE(PIN_MASK(A, 0x1800), 10, MODULE_USB, 0) /* DWC USB OTG: PA11/12 */
-
-/* OTG HS */
-ALTERNATE(PIN_MASK(A, 0x0028), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(B, 0x3427), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(C, 0x000d), 10, MODULE_USB, 0) /* DWC USB OTG HS */
diff --git a/board/stm32l476g-eval/board.c b/board/stm32l476g-eval/board.c
deleted file mode 100644
index c7ebc2c6b8..0000000000
--- a/board/stm32l476g-eval/board.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#include "common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "i2c.h"
-
-#ifdef CTS_MODULE
-/*
- * Mock interrupt handler. It's supposed to be overwritten by each suite
- * if needed.
- */
-__attribute__((weak)) void cts_irq(enum gpio_signal signal)
-{
-}
-#endif
-
-#include "gpio_list.h"
-
-void tick_event(void)
-{
- static int count;
-
- gpio_set_level(GPIO_LED_GREEN, (count & 0x03) == 0);
-
- count++;
-}
-DECLARE_HOOK(HOOK_TICK, tick_event, HOOK_PRIO_DEFAULT);
-
-#ifdef CTS_MODULE_I2C
-const struct i2c_port_t i2c_ports[] = {
- {"test", STM32_I2C2_PORT, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-#endif
diff --git a/board/stm32l476g-eval/board.h b/board/stm32l476g-eval/board.h
deleted file mode 100644
index e8ce99845f..0000000000
--- a/board/stm32l476g-eval/board.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* STM32L476G-Eval board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#ifdef CTS_MODULE
-/* CTS tests are small. We can use smaller size to expedite flash time. */
-#undef CONFIG_FLASH_SIZE_BYTES
-#define CONFIG_FLASH_SIZE_BYTES 0x00040000 /* 256k */
-#endif
-
-/* Optional features */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/* Console is on LPUART (PG7/8). Undef it to use USART1 (PB6/7). */
-#define STM32L476G_EVAL_USE_LPUART_CONSOLE
-#undef CONFIG_UART_CONSOLE
-
-#ifdef STM32L476G_EVAL_USE_LPUART_CONSOLE
-#define CONFIG_UART_CONSOLE 9
-#define CONFIG_UART_TX_DMA_CH STM32_DMAC_CH14
-#define CONFIG_UART_TX_DMA_PH 4
-#else
-#define CONFIG_UART_CONSOLE 1
-#define CONFIG_UART_TX_DMA_CH STM32_DMAC_USART1_TX
-#define CONFIG_UART_TX_DMA_PH 2
-#endif
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-
-#ifdef CTS_MODULE_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_PERIPHERAL
-#define CONFIG_HOSTCMD_I2C_SLAVE_ADDR 0x3c
-#define I2C_PORT_EC STM32_I2C2_PORT
-#endif
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-#undef CONFIG_FLASH_CROS
-#undef CONFIG_FLASH_PHYSICAL
-
-/* Timer selection */
-#define TIM_CLOCK32 5
-
-/* External clock speeds (8 MHz) */
-#define STM32_HSE_CLOCK 8000000
-
-/* PLL configuration. Freq = STM32_HSE_CLOCK * n/m/r */
-#undef STM32_PLLM
-#define STM32_PLLM 1
-#undef STM32_PLLN
-#define STM32_PLLN 10
-#undef STM32_PLLR
-#define STM32_PLLR 2
-
-#include "gpio_signal.h"
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/stm32l476g-eval/build.mk b/board/stm32l476g-eval/build.mk
deleted file mode 100644
index 23c7cd9d38..0000000000
--- a/board/stm32l476g-eval/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-CHIP:=stm32
-CHIP_FAMILY:=stm32l4
-CHIP_VARIANT:=stm32l476
-
-board-y=board.o
diff --git a/board/stm32l476g-eval/ec.tasklist b/board/stm32l476g-eval/ec.tasklist
deleted file mode 100644
index adfd7c7e92..0000000000
--- a/board/stm32l476g-eval/ec.tasklist
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
-
diff --git a/board/stm32l476g-eval/gpio.inc b/board/stm32l476g-eval/gpio.inc
deleted file mode 100644
index 9cf5bc0aa4..0000000000
--- a/board/stm32l476g-eval/gpio.inc
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-#ifdef CTS_MODULE
-#ifndef CTS_MODULE_GPIO
-/* Overload C10 for notification. Enabled only for non-GPIO suites as
- * GPIO tests don't require a separate notification line. */
-GPIO_INT(CTS_NOTIFY, PIN(C, 10), GPIO_INT_FALLING | GPIO_PULL_UP , cts_irq)
-#endif
-#endif
-
-/* Outputs */
-GPIO(LED_GREEN, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(LED_RED, PIN(C, 1), GPIO_OUT_LOW)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(B, 0xC0), GPIO_ALT_F7, MODULE_UART, 0) /* USART1: PB6/7 */
-ALTERNATE(PIN_MASK(G, 0x0180), GPIO_ALT_F8, MODULE_UART, 0) /* LPUART: PG7/8 */
-
-#ifdef CTS_MODULE
-/* CTS Signals */
-GPIO(HANDSHAKE_OUTPUT, PIN(A, 9), GPIO_ODR_LOW)
-GPIO(HANDSHAKE_INPUT, PIN(A, 8), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(OUTPUT_TEST, PIN(C, 11), GPIO_ODR_LOW)
-GPIO(CTS_IRQ2, PIN(C, 12), GPIO_ODR_LOW)
-#ifdef CTS_MODULE_GPIO
-GPIO(INPUT_TEST, PIN(C, 10), GPIO_INPUT | GPIO_PULL_UP)
-#endif
-
-GPIO(I2C2_SCL, PIN(B, 10), GPIO_ODR_HIGH) /* I2C port 2 SCL */
-GPIO(I2C2_SDA, PIN(B, 11), GPIO_ODR_HIGH) /* I2C port 2 SDA */
-
-ALTERNATE(PIN_MASK(B, 0x0C00), GPIO_ALT_F4, MODULE_I2C, GPIO_ODR_HIGH) /* I2C2: PB10/11 */
-#endif \ No newline at end of file
diff --git a/board/stm32l476g-eval/openocd-flash.cfg b/board/stm32l476g-eval/openocd-flash.cfg
deleted file mode 100644
index a347f88b79..0000000000
--- a/board/stm32l476g-eval/openocd-flash.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2016 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.
-
-source [find board/stm32l4discovery.cfg]
-
-# For flashing, force the board into reset on connect, this ensures that
-# code running on the core can't interfere with programming.
-reset_config connect_assert_srst
-
-gdb_port 0
-tcl_port 0
-telnet_port 0
-init
-reset init
-flash write_image erase $BUILD_DIR/ec.bin 0x08000000
-reset halt
-resume
-shutdown
diff --git a/board/storo/battery.c b/board/storo/battery.c
deleted file mode 100644
index d273b391e7..0000000000
--- a/board/storo/battery.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all Storo battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* C21N2018 Battery Information */
- [BATTERY_C21N2018] = {
- .fuel_gauge = {
- .manuf_name = "AS3GXXD3KA",
- .device_name = "C110160",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000C,
- .disconnect_val = 0x000C,
- .cfet_mask = 0x0004,
- .cfet_off_val = 0x0004
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7890, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C21N2018;
diff --git a/board/storo/board.c b/board/storo/board.c
deleted file mode 100644
index 4981bedc8e..0000000000
--- a/board/storo/board.c
+++ /dev/null
@@ -1,897 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Storo configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cros_board_info.h"
-#include "cbi_ssfc.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm42607.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-static void pen_detect_interrupt(enum gpio_signal s)
-{
- int pen_detect = !gpio_get_level(GPIO_PEN_DET_ODL);
-
- gpio_set_level(GPIO_EN_PP3300_PEN, pen_detect);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_TEMP_SENSOR_3] = {
- .name = "TEMP_SENSOR3",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH15
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-/* USB Retimer */
-enum tusb544_conf {
- USB_DP = 0,
- USB_DP_INV,
- USB,
- USB_INV,
- DP,
- DP_INV
-};
-
-static int board_tusb544_set(const struct usb_mux *me, mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
- int reg;
- enum tusb544_conf usb_mode = 0;
-
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* USB with DP */
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_DP_INV
- : USB_DP;
- } else {
- /* USB without DP */
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_INV
- : USB;
- }
- } else if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* DP without USB */
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? DP_INV
- : DP;
- } else {
- return EC_SUCCESS;
- }
-
- rv = i2c_read8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL6, &reg);
- if (rv)
- return rv;
-
- reg |= TUSB544_VOD_DCGAIN_OVERRIDE;
- reg &= ~TUSB544_VOD_DCGAIN_SEL;
- reg |= (TUSB544_VOD_DCGAIN_SETTING_5 << 2);
-
- rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL6, reg);
- if (rv)
- return rv;
-
- /* Write the retimer config byte */
- if (usb_mode == USB_INV) {
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x15);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0xff);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0xff);
- } else if (usb_mode == USB) {
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x11);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0xff);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0xff);
- } else if (usb_mode == USB_DP_INV) {
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1F);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0xff);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0xff);
- } else if (usb_mode == USB_DP) {
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1B);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_1, 0xff);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_USB3_1_2, 0xff);
- } else if (usb_mode == DP_INV) {
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1E);
- } else if (usb_mode == DP) {
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_GENERAL4, 0x1A);
- }
-
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_1, 0x66);
- rv |= i2c_write8(me->i2c_port, me->i2c_addr_flags,
- TUSB544_REG_DISPLAYPORT_2, 0x66);
- if (rv)
- return EC_ERROR_UNKNOWN;
- else
- return EC_SUCCESS;
-}
-
-/* USB Retimer */
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS0,
- .driver = &tusb544_drv,
- .board_set = &board_tusb544_set,
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- },
-};
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- raa489000_hibernate(CHARGER_PRIMARY, true);
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(CHARGER_SECONDARY, true);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-__override void board_pulse_entering_rw(void)
-{
- /*
- * On the ITE variants, the EC_ENTERING_RW signal was connected to a pin
- * which is active high by default. This causes Cr50 to think that the
- * EC has jumped to its RW image even though this may not be the case.
- * The pin is changed to GPIO_EC_ENTERING_RW2.
- */
- gpio_set_level(GPIO_EC_ENTERING_RW, 1);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 1);
- usleep(MSEC);
- gpio_set_level(GPIO_EC_ENTERING_RW, 0);
- gpio_set_level(GPIO_EC_ENTERING_RW2, 0);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, !!enable);
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ? "en" : "dis");
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- /* If the port is not changing, we should do nothing */
- if (old_port == port)
- return EC_SUCCESS;
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 3;
- *kp_div = 14;
-
- *ki = 3;
- *ki_div = 500;
-
- *kd = 4;
- *kd_div = 40;
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR2_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static const mat33_fp_t lid_lis2dwl_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-struct motion_sensor_t lis2dwl_lid_accel = {
-
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_lis2dwl_ref,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-static const mat33_fp_t lid_KX022_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static struct kionix_accel_data g_kx022_data;
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_KX022_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-static struct icm_drv_data_t g_icm42607_data;
-const mat33_fp_t based_ref_icm42607 = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-struct motion_sensor_t icm42607_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm42607_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &based_ref_icm42607,
- .min_frequency = ICM42607_ACCEL_MIN_FREQ,
- .max_frequency = ICM42607_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm42607_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm42607_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &based_ref_icm42607,
- .min_frequency = ICM42607_GYRO_MIN_FREQ,
- .max_frequency = ICM42607_GYRO_MAX_FREQ,
-};
-
-void board_init(void)
-{
- int on;
- uint32_t board_id;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL))
- hook_call_deferred(&check_c0_line_data, 0);
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL))
- hook_call_deferred(&check_c1_line_data, 0);
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- /* Enable gpio interrupt for pen detect */
- gpio_enable_interrupt(GPIO_PEN_DET_ODL);
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- if (!gpio_get_level(GPIO_PEN_DET_ODL))
- gpio_set_level(GPIO_EN_PP3300_PEN, 1);
-
- cbi_get_board_version(&board_id);
-
- if (board_id > 2) {
- if (get_cbi_fw_config_tablet_mode()) {
- if (get_cbi_ssfc_base_sensor() ==
- SSFC_SENSOR_ICM42607) {
- motion_sensors[BASE_ACCEL] =
- icm42607_base_accel;
- motion_sensors[BASE_GYRO] = icm42607_base_gyro;
- CPRINTF("BASE GYRO is ICM42607");
- } else {
- CPRINTF("BASE GYRO is BMI160");
- }
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LIS2DWL) {
- motion_sensors[LID_ACCEL] = lis2dwl_lid_accel;
- CPRINTF("LID_ACCEL is LIS2DWL");
- } else if (get_cbi_ssfc_lid_sensor() ==
- SSFC_SENSOR_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- CPRINTF("LID_ACCEL is KX022");
- } else {
- CPRINTF("LID_ACCEL is BMA253");
- }
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /*
- * Base accel is not stuffed, don't allow
- * line to float.
- */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
- } else {
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_ICM42607) {
- motion_sensors[BASE_ACCEL] = icm42607_base_accel;
- motion_sensors[BASE_GYRO] = icm42607_base_gyro;
- CPRINTF("BASE GYRO is ICM42607");
- } else {
- CPRINTF("BASE GYRO is BMI160");
- }
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LIS2DWL) {
- motion_sensors[LID_ACCEL] = lis2dwl_lid_accel;
- CPRINTF("LID_ACCEL is LIS2DWL");
- } else if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- CPRINTF("LID_ACCEL is KX022");
- } else {
- CPRINTF("LID_ACCEL is BMA253");
- }
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (get_cbi_ssfc_base_sensor()) {
- case SSFC_SENSOR_ICM42607:
- icm42607_interrupt(signal);
- break;
- case SSFC_SENSOR_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
- [TEMP_SENSOR_3] = {.name = "Cpu",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/storo/board.h b/board/storo/board.h
deleted file mode 100644
index a89bde6fcf..0000000000
--- a/board/storo/board.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Storo board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-/* EC console commands */
-#define CONFIG_CMD_TCPC_DUMP
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_USB_C1_INT_ODL
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-#define CONFIG_LED_ONOFF_STATES_BAT_LOW 10
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_KX022
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCELGYRO_ICM42607
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCELGYRO_ICM42607_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-#define CONFIG_USBC_RETIMER_TUSB544 /* C1 Redriver: TUSB544 */
-
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_TEMP_SENSOR_3, /* ADC15*/
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_3,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_C21N2018,
- BATTERY_TYPE_COUNT,
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/storo/build.mk b/board/storo/build.mk
deleted file mode 100644
index 8167ca9966..0000000000
--- a/board/storo/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/storo/cbi_ssfc.c b/board/storo/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/storo/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/storo/cbi_ssfc.h b/board/storo/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/storo/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/storo/ec.tasklist b/board/storo/ec.tasklist
deleted file mode 100644
index d6fa610141..0000000000
--- a/board/storo/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/storo/gpio.inc b/board/storo/gpio.inc
deleted file mode 100644
index b7541c5259..0000000000
--- a/board/storo/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(SUB_USB_C1_INT_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt)
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(PEN_DET_ODL, PIN(J, 1), GPIO_INT_BOTH | GPIO_PULL_UP, pen_detect_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW) /* Board rev 1, NC board rev 0 */
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW2, PIN(C, 7), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(B, 5), GPIO_OUT_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED_COLOR_AMBER, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(LED_COLOR_WHITE, PIN(A, 2), GPIO_OUT_HIGH)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOA3_NC, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC4_NC, PIN(C, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC6_NC, PIN(C, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF0_NC, PIN(F, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF1_NC, PIN(F, 1), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF4_NC, PIN(F, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOF5_NC, PIN(F, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH2_NC, PIN(H, 2), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH4_NC, PIN(H, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOH6_NC, PIN(H, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ3_NC, PIN(J, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL0_NC, PIN(L, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL3_NC, PIN(L, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 EEPROM */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 BATTERY */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V SENSOR */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 SUB_USB_C1 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 USB_C0 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(2)), 0, MODULE_ADC, 0) /* ADC15:TEMP_SENSOR3 */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
diff --git a/board/storo/led.c b/board/storo/led.c
deleted file mode 100644
index d5094f1f30..0000000000
--- a/board/storo/led.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Storo
- */
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_COLOR_AMBER, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_COLOR_WHITE, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_COLOR_AMBER, LED_ON_LVL);
- gpio_set_level(GPIO_LED_COLOR_WHITE, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_COLOR_AMBER, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_COLOR_WHITE, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
-
-__override enum led_states board_led_get_state(enum led_states desired_state)
-{
- /*
- * Battery error LED behavior as below:
- * S0: Blinking Amber LED, 1s on/ 1s off
- * S3/S5: following S3/S5 behavior
- * Add function to let battery error LED follow S3/S5 behavior in S3/S5.
- */
-
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
-}
diff --git a/board/storo/usb_pd_policy.c b/board/storo/usb_pd_policy.c
deleted file mode 100644
index b0e1098e4d..0000000000
--- a/board/storo/usb_pd_policy.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/storo/vif_override.xml b/board/storo/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/storo/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/stryke/battery.c b/board/stryke/battery.c
deleted file mode 100644
index 0144c049b5..0000000000
--- a/board/stryke/battery.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Stryke battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP LIS Dell FMXMT Battery Information */
- [BATTERY_SMP_LIS] = {
- .fuel_gauge = {
- .manuf_name = "SMP-LIS3.78",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7660, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP SDI Dell FMXMT Battery Information */
- [BATTERY_SMP_SDI] = {
- .fuel_gauge = {
- .manuf_name = "SMP-SDI-3727",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7660, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP_SDI;
diff --git a/board/stryke/board.c b/board/stryke/board.c
deleted file mode 100644
index 3275ff7fa9..0000000000
--- a/board/stryke/board.c
+++ /dev/null
@@ -1,416 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Stryke board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "spi.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_pd.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* GPIO to enable/disable the USB Type-A port. */
-const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(0);
- break;
-
- case GPIO_USB_C1_PPC_INT_ODL:
- sn5s330_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- baseboard_mst_enable_control(MST_HDMI, gpio_get_level(signal));
-}
-
-static void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-/******************************************************************************/
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- [PWM_CH_FAN] = {.channel = 5, .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000},
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_RESET_ACTIVE_HIGH,
- },
- [USB_PD_PORT_TCPC_1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- [USB_PD_PORT_TCPC_0] = {
- .usb_port = USB_PD_PORT_TCPC_0,
- .driver = &anx7447_usb_mux_driver,
- .hpd_update = &anx7447_tcpc_update_hpd_status,
- },
- [USB_PD_PORT_TCPC_1] = {
- .usb_port = USB_PD_PORT_TCPC_1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USB_PD_PORT_TCPC_0] = {
- .i2c_port = I2C_PORT_PPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-
- [USB_PD_PORT_TCPC_1] = {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-/* Sensors */
-/* Base Sensor mutex */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-/* Base accel private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* BMA255 private data */
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/*
- * TODO(b/124337208): P0 boards don't have this sensor mounted so the rotation
- * matrix can't be tested properly. This needs to be revisited after EVT to make
- * sure the rotaiton matrix for the lid sensor is correct.
- */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support lid angle calculation. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/* Default */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3100,
- .rpm_start = 3100,
- .rpm_max = 6900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = { .conf = &fan_conf_0, .rpm = &fan_rpm_0, },
-};
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {NPCX_MFT_MODULE_1, TCKC_LFCLK, PWM_CH_FAN},
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_2] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Temp1",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Temp2",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-
-/* Stryke Temperature sensors */
-/*
- * TODO(b/124316213): These setting need to be reviewed and set appropriately
- * for Stryke. They matter when the EC is controlling the fan as opposed to DPTF
- * control.
- */
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(50),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_a;
-}
-
-/* Sets the gpio flags correct taking into account warm resets */
-static void reset_gpio_flags(enum gpio_signal signal, int flags)
-{
- /*
- * If the system was already on, we cannot set the value otherwise we
- * may change the value from the previous image which could cause a
- * brownout.
- */
- if (system_is_reboot_warm() || system_jumped_late())
- flags &= ~(GPIO_LOW | GPIO_HIGH);
-
- gpio_set_flags(signal, flags);
-}
-
-/* Runtime GPIO defaults */
-enum gpio_signal gpio_en_pp5000_a = GPIO_EN_PP5000_A_V1;
-
-static void board_gpio_set_pp5000(void)
-{
- uint32_t board_id = 0;
-
- /* Errors will count as board_id 0 */
- cbi_get_board_version(&board_id);
-
- if (board_id == 0) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V0, GPIO_OUT_LOW);
- /* Change runtime default for V0 */
- gpio_en_pp5000_a = GPIO_EN_PP5000_A_V0;
- } else if (board_id >= 1) {
- reset_gpio_flags(GPIO_EN_PP5000_A_V1, GPIO_OUT_LOW);
- }
-
-}
-
-static void board_init(void)
-{
- /* Initialize Fans */
- setup_fans();
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- /* Enable HDMI HPD interrupt. */
- gpio_enable_interrupt(GPIO_HDMI_CONN_HPD);
- /* Select correct gpio signal for PP5000_A control */
- board_gpio_set_pp5000();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC_ODL, !is_overcurrented);
-}
-
-bool board_is_convertible(void)
-{
- const uint8_t sku = get_board_sku();
-
- return (sku == 255);
-}
diff --git a/board/stryke/board.h b/board/stryke/board.h
deleted file mode 100644
index 4bc1839787..0000000000
--- a/board/stryke/board.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Stryke board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_POWER_BUTTON
-#define CONFIG_KEYBOARD_PROTOCOL_8042
-#define CONFIG_LED_COMMON
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_HOSTCMD_ESPI
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Keyboard features */
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_COMM_LOCKED
-#define CONFIG_USB_PD_TCPM_ANX7447
-#define CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
-#define CONFIG_USB_PD_TCPM_PS8751
-#define BOARD_TCPC_C0_RESET_HOLD_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C0_RESET_POST_DELAY ANX74XX_RESET_HOLD_MS
-#define BOARD_TCPC_C1_RESET_HOLD_DELAY PS8XXX_RESET_DELAY_MS
-#define BOARD_TCPC_C1_RESET_POST_DELAY 0
-#define GPIO_USB_C1_TCPC_RST GPIO_USB_C1_TCPC_RST_ODL
-
-/* USB Type A Features */
-#define CONFIG_USB_PORT_POWER_SMART
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define GPIO_USB1_ILIM_SEL GPIO_EN_USB_A_LOW_PWR_OD
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger features */
-/*
- * The IDCHG current limit is set in 512 mA steps. The value set here is
- * somewhat specific to the battery pack being currently used. The limit here
- * was set based on the battery's discharge current limit and what was tested to
- * prevent the AP rebooting with low charge level batteries.
- *
- * TODO(b/133447140): Revisit this threshold once peak power consumption tuning
- * for the AP is completed.
- */
-#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
-
-/* Volume Button feature */
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-
-/* Fan features */
-#define CONFIG_FANS 1
-#undef CONFIG_FAN_INIT_SPEED
-#define CONFIG_FAN_INIT_SPEED 50
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_A_RAILS
-#define CONFIG_THERMISTOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* MST */
-/*
- * TDOD (b/124068003): This inherently assumes the MST chip is connected to only
- * one Type C port. This will need to be chagned to support 2 Type C ports
- * connected to the same MST chip.
- */
-#define USB_PD_PORT_TCPC_MST USB_PD_PORT_TCPC_1
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S4_L GPIO_SLP_S4_L
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* GPIO signals updated base on board version. */
-#define GPIO_EN_PP5000_A gpio_en_pp5000_a
-extern enum gpio_signal gpio_en_pp5000_a;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- /* Number of FAN channels */
- FAN_CH_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_SMP_LIS,
- BATTERY_SMP_SDI,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/stryke/build.mk b/board/stryke/build.mk
deleted file mode 100644
index 733912454f..0000000000
--- a/board/stryke/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=hatch
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/stryke/ec.tasklist b/board/stryke/ec.tasklist
deleted file mode 100644
index 4a1024a091..0000000000
--- a/board/stryke/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
-
diff --git a/board/stryke/gpio.inc b/board/stryke/gpio.inc
deleted file mode 100644
index 8b241b2850..0000000000
--- a/board/stryke/gpio.inc
+++ /dev/null
@@ -1,144 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(PG_EC_RSMRST_L, PIN(E, 2), GPIO_INT_BOTH, intel_x86_rsmrst_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PP5000_A_PG_OD, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, bmi160_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 5), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(E, 4), GPIO_INT_FALLING, bc12_interrupt)
-
-GPIO_INT(HDMI_CONN_HPD, PIN(7, 2), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-
-GPIO(SYS_RESET_L, PIN(C, 5), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-/* Power Sequencing Signals */
-GPIO(EN_PP5000_A_V1, PIN(A, 4), GPIO_DEFAULT)
-GPIO(EN_PP5000_A_V0, PIN(7, 3), GPIO_DEFAULT)
-GPIO(EN_A_RAILS, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_IN_OD, PIN(3, 4), GPIO_INPUT)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* USB and USBC Signals */
-GPIO(USB_C_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST, PIN(9, 7), GPIO_OUT_LOW)
-GPIO(USB_C1_TCPC_RST_ODL, PIN(3, 2), GPIO_ODR_HIGH)
-GPIO(EN_USB_A_5V, PIN(3, 5), GPIO_OUT_LOW)
-GPIO(EN_USB_A_LOW_PWR_OD, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Misc Signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Yellow (hatch) */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* White (hatch) */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH)
-GPIO(LED_4_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight */
-GPIO(EDP_BKLTEN_OD, PIN(D, 3), GPIO_ODR_HIGH) /* Display backlight */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-GPIO(EN_MST, PIN(9, 6), GPIO_OUT_LOW)
-
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_1V8_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SDA */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_USB_C0_TCPC_SCL */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 1.8V */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 - Keyboard backlight */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* PWM5 - FAN */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA1 - Fan Tachometer */
-
-/* ADC */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/stryke/led.c b/board/stryke/led.c
deleted file mode 100644
index f68b39361e..0000000000
--- a/board/stryke/led.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control for Stryke
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/stryke/vif_override.xml b/board/stryke/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/stryke/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/sweetberry/board.c b/board/sweetberry/board.c
deleted file mode 100644
index 66b21a81b9..0000000000
--- a/board/sweetberry/board.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright 2016 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.
- */
-/* Sweetberry board configuration */
-
-#include "common.h"
-#include "dma.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "gpio_list.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "registers.h"
-#include "stm32-dma.h"
-#include "task.h"
-#include "update_fw.h"
-#include "usb_descriptor.h"
-#include "usb_dwc_console.h"
-#include "usb_dwc_i2c.h"
-#include "usb_dwc_stream.h"
-#include "usb_dwc_update.h"
-#include "usb_hw.h"
-#include "usb_power.h"
-#include "util.h"
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Sweetberry"),
- [USB_STR_SERIALNO] = USB_STRING_DESC("1234-a"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_I2C_NAME] = USB_STRING_DESC("I2C"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Sweetberry EC Shell"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/* USB power interface. */
-USB_POWER_CONFIG(sweetberry_power, USB_IFACE_POWER, USB_EP_POWER);
-
-struct dwc_usb usb_ctl = {
- .ep = {
- &ep0_ctl,
- &ep_console_ctl,
- &usb_update_ep_ctl,
- &sweetberry_power_ep_ctl,
- &i2c_usb__ep_ctl,
- },
- .speed = USB_SPEED_FS,
- .phy_type = USB_PHY_ULPI,
- .dma_en = 1,
- .irq = STM32_IRQ_OTG_HS,
-};
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"i2c1", I2C_PORT_0, 400,
- GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"i2c2", I2C_PORT_1, 400,
- GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"i2c3", I2C_PORT_2, 400,
- GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"fmpi2c4", FMPI2C_PORT_3, 900,
- GPIO_FMPI2C_SCL, GPIO_FMPI2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-int usb_i2c_board_is_enabled(void) { return 1; }
-
-#define GPIO_SET_HS(bank, number) \
- (STM32_GPIO_OSPEEDR(GPIO_##bank) |= (0x3 << ((number) * 2)))
-
-void board_config_post_gpio_init(void)
-{
- /* We use MCO2 clock passthrough to provide a clock to USB HS */
- gpio_config_module(MODULE_MCO, 1);
- /* GPIO PC9 to high speed */
- GPIO_SET_HS(C, 9);
-
- if (usb_ctl.phy_type == USB_PHY_ULPI)
- gpio_set_level(GPIO_USB_MUX_SEL, 0);
- else
- gpio_set_level(GPIO_USB_MUX_SEL, 1);
-
- /* Set USB GPIO to high speed */
- GPIO_SET_HS(A, 11);
- GPIO_SET_HS(A, 12);
-
- GPIO_SET_HS(C, 3);
- GPIO_SET_HS(C, 2);
- GPIO_SET_HS(C, 0);
- GPIO_SET_HS(A, 5);
-
- GPIO_SET_HS(B, 5);
- GPIO_SET_HS(B, 13);
- GPIO_SET_HS(B, 12);
- GPIO_SET_HS(B, 2);
- GPIO_SET_HS(B, 10);
- GPIO_SET_HS(B, 1);
- GPIO_SET_HS(B, 0);
- GPIO_SET_HS(A, 3);
-
- /* Set I2C GPIO to HS */
- GPIO_SET_HS(B, 6);
- GPIO_SET_HS(B, 7);
- GPIO_SET_HS(F, 1);
- GPIO_SET_HS(F, 0);
- GPIO_SET_HS(A, 8);
- GPIO_SET_HS(B, 4);
- GPIO_SET_HS(C, 6);
- GPIO_SET_HS(C, 7);
-}
-
-static void board_init(void)
-{
- uint8_t tmp;
-
- /* i2c 0 has a tendancy to get wedged. TODO(nsanders): why? */
- i2c_xfer(0, 0, NULL, 0, &tmp, 1);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/sweetberry/board.h b/board/sweetberry/board.h
deleted file mode 100644
index 55aab7d1ee..0000000000
--- a/board/sweetberry/board.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/* Sweetberry configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define CONFIG_LTO
-
-/* Use external clock */
-#define CONFIG_STM32_CLOCK_HSE_HZ 24000000
-
-#define CONFIG_BOARD_POST_GPIO_INIT
-
-#define CONFIG_FLASH_WRITE_SIZE STM32_FLASH_WRITE_SIZE_3300
-
-/* Enable console recasting of GPIO type. */
-#define CONFIG_CMD_GPIO_EXTENDED
-
-/* The UART console can be on flex USART3 (PC10/PC11) */
-/* The UART console can be on header USART4 (PA0/PA1) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 4
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-/* Don't waste precious DMA channels on console. */
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-#define CONFIG_UART_TX_REQ_CH 4
-#define CONFIG_UART_RX_REQ_CH 4
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x5020
-#define CONFIG_USB_CONSOLE
-#define CONFIG_STREAM_USB
-#define CONFIG_USB_UPDATE
-#define CONFIG_USB_POWER
-
-#undef CONFIG_USB_MAXPOWER_MA
-#define CONFIG_USB_MAXPOWER_MA 100
-
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_UPDATE 1
-#define USB_IFACE_POWER 2
-#define USB_IFACE_I2C 3
-#define USB_IFACE_COUNT 4
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_UPDATE 2
-#define USB_EP_POWER 3
-#define USB_EP_I2C 4
-#define USB_EP_COUNT 5
-
-#define CONFIG_USB_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_0 0
-#define I2C_PORT_1 1
-#define I2C_PORT_2 2
-#define FMPI2C_PORT_3 3
-#define I2C_PORT_COUNT 4
-
-/* This is not actually a Chromium EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_WATCHDOG
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 5
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_I2C_NAME,
- USB_STR_CONSOLE_NAME,
- USB_STR_UPDATE_NAME,
- USB_STR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/sweetberry/build.mk b/board/sweetberry/build.mk
deleted file mode 100644
index 6b06f2bb8f..0000000000
--- a/board/sweetberry/build.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- makefile -*-
-# Copyright 2016 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.
-#
-# Board specific files build
-
-CHIP:=stm32
-CHIP_FAMILY:=stm32f4
-CHIP_VARIANT:=stm32f446
-
-board-y=board.o
diff --git a/board/sweetberry/ec.tasklist b/board/sweetberry/ec.tasklist
deleted file mode 100644
index c1fb169118..0000000000
--- a/board/sweetberry/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2016 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE)
diff --git a/board/sweetberry/gpio.inc b/board/sweetberry/gpio.inc
deleted file mode 100644
index cfab7fc1f3..0000000000
--- a/board/sweetberry/gpio.inc
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2016 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Outputs */
-GPIO(MUX_EN_L, PIN(A, 7), GPIO_INPUT)
-GPIO(USB_MUX_SEL, PIN(A, 6), GPIO_OUT_HIGH)
-GPIO(PHY_RESET, PIN(C, 4), GPIO_INPUT)
-GPIO(LED_BLUE, PIN(A, 2), GPIO_ODR_LOW)
-GPIO(LED_GRN, PIN(B, 8), GPIO_ODR_LOW)
-GPIO(LED_RED, PIN(B, 15), GPIO_ODR_LOW)
-
-/* Inputs */
-GPIO(GPIO_1, PIN(A, 1), GPIO_INPUT)
-GPIO(GPIO_2, PIN(A, 0), GPIO_INPUT)
-
-/* Clock function */
-GPIO(MCU_TO_PHY_MCO, PIN(C, 9), GPIO_INPUT)
-
-
-/* GPIO to DUT */
-GPIO(DUT_XTAL_STATUS_3V3, PIN(D, 8), GPIO_INPUT)
-GPIO(DUT_TO_MCU_1_3V3, PIN(D, 9), GPIO_INPUT)
-GPIO(DUT_TO_MCU_2_3V3, PIN(D, 10), GPIO_INPUT)
-GPIO(MCU_TO_DUT_INT_3V3, PIN(D, 12), GPIO_INPUT)
-
-/* I2C pins should be configured as inputs until I2C module is */
-/* initialized. This will avoid driving the lines unintentionally.*/
-GPIO(I2C1_SCL, PIN(B, 6), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 7), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(F, 1), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(F, 0), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 8), GPIO_INPUT)
-GPIO(I2C3_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(FMPI2C_SCL, PIN(C, 6), GPIO_INPUT)
-GPIO(FMPI2C_SDA, PIN(C, 7), GPIO_INPUT)
-
-/* These pin assignments aren't used as GPIO. Let's note them here
- * for readability but not initialize them.
- * USART3 TX/RX
- * GPIO(MCU_UART3_TX, PIN(C, 10), GPIO_INPUT)
- * GPIO(MCU_UART3_RX, PIN(C, 11), GPIO_INPUT)
- * USART4 TX/RX
- * GPIO(MCU_UART4_TX, PIN(A, 0), GPIO_INPUT)
- * GPIO(MCU_UART4_RX, PIN(A, 1), GPIO_INPUT)
- */
-
-/* USB pins */
-GPIO(USB_FS_DM, PIN(A, 11), GPIO_INPUT)
-GPIO(USB_FS_DP, PIN(A, 12), GPIO_INPUT)
-
-GPIO(USB_HS_ULPI_NXT, PIN(C, 3), GPIO_INPUT)
-GPIO(USB_HS_ULPI_DIR, PIN(C, 2), GPIO_INPUT)
-GPIO(USB_HS_ULPI_STP, PIN(C, 0), GPIO_INPUT)
-GPIO(USB_HS_ULPI_CK, PIN(A, 5), GPIO_INPUT)
-
-GPIO(USB_HS_ULPI_D7, PIN(B, 5), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D6, PIN(B,13), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D5, PIN(B,12), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D4, PIN(B, 2), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D3, PIN(B,10), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D2, PIN(B, 1), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D1, PIN(B, 0), GPIO_INPUT)
-GPIO(USB_HS_ULPI_D0, PIN(A, 3), GPIO_INPUT)
-
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-
-ALTERNATE(PIN_MASK(C, 0x0c00), 7, MODULE_UART, 0) /* USART3: PC10/PC11 - Console */
-ALTERNATE(PIN_MASK(A, 0x0003), 8, MODULE_UART, 0) /* USART4: PA0/PA1 - Console */
-
-ALTERNATE(PIN_MASK(B, 0x00c0), 4, MODULE_I2C, GPIO_ODR_HIGH | GPIO_PULL_UP) /* I2C1 MASTER:PB6/7 */
-ALTERNATE(PIN_MASK(F, 0x0003), 4, MODULE_I2C, GPIO_ODR_HIGH | GPIO_PULL_UP) /* I2C2 MASTER:PF1/0 */
-ALTERNATE(PIN_MASK(A, 0x0100), 4, MODULE_I2C, GPIO_ODR_HIGH | GPIO_PULL_UP) /* I2C3 MASTER:PA8 */
-ALTERNATE(PIN_MASK(B, 0x0010), 4, MODULE_I2C, GPIO_ODR_HIGH | GPIO_PULL_UP) /* I2C3 MASTER:PB4 */
-ALTERNATE(PIN_MASK(C, 0x00c0), 4, MODULE_I2C, GPIO_ODR_HIGH | GPIO_PULL_UP) /* FMPI2C MASTER:PC6/7 */
-
-/* OTG FS */
-ALTERNATE(PIN_MASK(A, 0x1800), 10, MODULE_USB, 0) /* DWC USB OTG: PA11/12 */
-
-/* OTG HS */
-ALTERNATE(PIN_MASK(A, 0x0028), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(B, 0x3427), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(C, 0x000d), 10, MODULE_USB, 0) /* DWC USB OTG HS */
-ALTERNATE(PIN_MASK(C, 0x0200), 0, MODULE_MCO, 0) /* MCO2: PC9 */
diff --git a/board/taeko/battery.c b/board/taeko/battery.c
deleted file mode 100644
index 09f9ec46c7..0000000000
--- a/board/taeko/battery.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "common.h"
-#include "util.h"
-/*
- * Battery info for all Taeko battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L21M4PG4",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8900, /* mV */
- .voltage_normal = 7720, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 330, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L21D4PG4",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 8900, /* mV */
- .voltage_normal = 7720, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 330, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
-
-__override bool board_battery_is_initialized(void)
-{
- bool batt_initialization_state;
- int batt_status;
-
- batt_initialization_state = (battery_status(&batt_status) ? false :
- !!(batt_status & STATUS_INITIALIZED));
- return batt_initialization_state;
-}
diff --git a/board/taeko/board.c b/board/taeko/board.c
deleted file mode 100644
index d7fe4e4399..0000000000
--- a/board/taeko/board.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "button.h"
-#include "charge_ramp.h"
-#include "charger.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dso.h"
-#include "driver/als_tcs3400.h"
-#include "fw_config.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power_button.h"
-#include "power.h"
-#include "registers.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "usbc_config.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA_R,
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
-
-/******************************************************************************/
-
-__override void board_cbi_init(void)
-{
- config_usb_db_type();
-}
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Allow keyboard backlight to be enabled */
-
- if (ec_cfg_has_keyboard_backlight() == 1)
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 1);
- else
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /* Turn off the keyboard backlight if it's on. */
-
- if (ec_cfg_has_keyboard_backlight() == 1)
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 0);
- else
- gpio_set_level(GPIO_EC_KB_BL_EN_L, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-#ifdef CONFIG_CHARGE_RAMP_SW
-
-/*
- * TODO: tune this threshold
- */
-
-#define BC12_MIN_VOLTAGE 4400
-
-/**
- * Return true if VBUS is too low
- */
-int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
-{
- int voltage;
-
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
-
- if (voltage == 0) {
- CPRINTS("%s: must be disconnected", __func__);
- return 1;
- }
-
- if (voltage < BC12_MIN_VOLTAGE) {
- CPRINTS("%s: port %d: vbus %d lower than %d", __func__,
- port, voltage, BC12_MIN_VOLTAGE);
- return 1;
- }
-
- return 0;
-}
-
-#endif /* CONFIG_CHARGE_RAMP_SW */
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/taeko/board.h b/board/taeko/board.h
deleted file mode 100644
index 7b7995f001..0000000000
--- a/board/taeko/board.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Taeko board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "compile_time_macros.h"
-
-/*
- * Taeko boards are set up for vivaldi
- */
-#define CONFIG_KEYBOARD_VIVALDI
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#define CONFIG_SYSTEM_UNLOCKED
-
-/*
- * This will happen automatically on NPCX9 ES2 and later. Do not remove
- * until we can confirm all earlier chips are out of service.
- */
-#define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
-
-#define CONFIG_MP2964
-
-/* LED */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Sensors */
-
-/* TODO(b/194765820)
- * Check if project support dynamic motion sensor count
- */
-/* #define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT */
-
-#define CONFIG_ACCELGYRO_LSM6DSO /* Base accel */
-#define CONFIG_ACCEL_LSM6DSO_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL))
-
-/* Lid accel */
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_ACCEL_BMA4XX
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_LIS2DW_AS_BASE
-#define CONFIG_ACCEL_LIS2DW12_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-/* Sensor console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-
-#define CONFIG_IO_EXPANDER
-#define CONFIG_IO_EXPANDER_NCT38XX
-#define CONFIG_IO_EXPANDER_PORT_COUNT 1
-
-#define CONFIG_USB_PD_TCPM_PS8815
-
-#define CONFIG_USBC_PPC_SYV682X
-#define CONFIG_USBC_PPC_NX20P3483
-
-/* TODO: b/177608416 - measure and check these values on brya */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-#define PD_VCONN_SWAP_DELAY 5000 /* us */
-
-/*
- * Passive USB-C cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT GPIO_EC_EN_EDP_BL
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_GSC_PACKET_MODE
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_L
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/*
- * GPIO_EC_PCH_INT_ODL is used for MKBP events as well as a PCH wakeup
- * signal.
- */
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
-#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
-#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_SEQ_EC_RSMRST_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_ODL
-
-/* System has back-lit keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* I2C Bus Configuration */
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0_TCPC NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1
-#define I2C_PORT_USB_C0_PPC NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1
-#define I2C_PORT_USB_C0_BC12 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1
-#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_CHARGER NPCX_I2C_PORT7_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-#define I2C_ADDR_MP2964_FLAGS 0x20
-
-/* Thermal features */
-#define CONFIG_THERMISTOR
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK
-#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
-
-/* Fan */
-#define CONFIG_FANS FAN_CH_COUNT
-
-/* Charger defines */
-#define CONFIG_CHARGER_BQ25720
-#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
-#define CONFIG_CHARGE_RAMP_SW
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h" /* needed by registers.h */
-#include "registers.h"
-#include "usbc_config.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1_DDR_SOC,
- ADC_TEMP_SENSOR_2_FAN,
- ADC_TEMP_SENSOR_3_CHARGER,
- ADC_TEMP_SENSOR_4_CPUCHOKE,
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1_DDR_SOC,
- TEMP_SENSOR_2_FAN,
- TEMP_SENSOR_3_CHARGER,
- TEMP_SENSOR_4_CPUCHOKE,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT38XX = 0,
- IOEX_PORT_COUNT
-};
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0, /* PWM3 */
- PWM_CH_FAN, /* PWM5 */
- PWM_CH_COUNT
-};
-
-enum fan_channel {
- FAN_CH_0 = 0,
- FAN_CH_COUNT
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- MFT_CH_COUNT
-};
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/taeko/build.mk b/board/taeko/build.mk
deleted file mode 100644
index 442d30718f..0000000000
--- a/board/taeko/build.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Taeko board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx9
-CHIP_VARIANT:=npcx9m3f
-BASEBOARD:=brya
-
-board-y=
-board-y+=battery.o
-board-y+=board.o
-board-y+=charger.o
-board-y+=fans.o
-board-y+=fw_config.o
-board-y+=i2c.o
-board-y+=keyboard.o
-board-y+=led.o
-board-y+=pwm.o
-board-y+=sensors.o
-board-y+=usbc_config.o
diff --git a/board/taeko/charger.c b/board/taeko/charger.c
deleted file mode 120000
index 476ce97df2..0000000000
--- a/board/taeko/charger.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/brya/charger_bq25720.c \ No newline at end of file
diff --git a/board/taeko/ec.tasklist b/board/taeko/ec.tasklist
deleted file mode 100644
index 290c17c748..0000000000
--- a/board/taeko/ec.tasklist
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- *
- * USB_CHG_Px tasks must be contiguous (see USB_CHG_PORT_TO_TASK_ID(x)).
- * PD_Cx tasks must be contiguous (see PD_PORT_TO_TASK_ID(x))
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/taeko/fans.c b/board/taeko/fans.c
deleted file mode 100644
index e6273ec210..0000000000
--- a/board/taeko/fans.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "fan_chip.h"
-#include "fan.h"
-#include "hooks.h"
-#include "pwm.h"
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-static const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * TOOD(b/194774929): need to update for real fan
- *
- * Prototype fan spins at about 7200 RPM at 100% PWM.
- * Set minimum at around 30% PWM.
- */
-static const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2200,
- .rpm_start = 2200,
- .rpm_max = 7200,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-#ifndef CONFIG_FANS
-
-/*
- * TODO(b/194774929): use static fan speeds until fan and sensors are
- * tuned. for now, use:
- *
- * AP off: 33%
- * AP on: 100%
- */
-
-static void fan_slow(void)
-{
- const int duty_pct = 33;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-static void fan_max(void)
-{
- const int duty_pct = 100;
-
- ccprints("%s: speed %d%%", __func__, duty_pct);
-
- pwm_enable(PWM_CH_FAN, 1);
- pwm_set_duty(PWM_CH_FAN, duty_pct);
-}
-
-DECLARE_HOOK(HOOK_INIT, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, fan_slow, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_RESET, fan_max, HOOK_PRIO_FIRST);
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, fan_max, HOOK_PRIO_DEFAULT);
-
-#endif /* CONFIG_FANS */
diff --git a/board/taeko/fw_config.c b/board/taeko/fw_config.c
deleted file mode 100644
index 4e450b7dfa..0000000000
--- a/board/taeko/fw_config.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "fw_config.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static union taeko_cbi_fw_config fw_config;
-BUILD_ASSERT(sizeof(fw_config) == sizeof(uint32_t));
-
-/*
- * FW_CONFIG defaults for Taeko if the CBI.FW_CONFIG data is not
- * initialized.
- */
-static const union taeko_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PS8815,
- .kb_bl = KEYBOARD_BACKLIGHT_ENABLED,
-};
-
-/****************************************************************************
- * Taeko FW_CONFIG access
- */
-void board_init_fw_config(void)
-{
- if (cbi_get_fw_config(&fw_config.raw_value)) {
- CPRINTS("CBI: Read FW_CONFIG failed, using board defaults");
- fw_config = fw_config_defaults;
- }
-
- if (get_board_id() == 0) {
- /*
- * Early boards have a zero'd out FW_CONFIG, so replace
- * it with a sensible default value. If DB_USB_ABSENT2
- * was used as an alternate encoding of DB_USB_ABSENT to
- * avoid the zero check, then fix it.
- */
- if (fw_config.raw_value == 0) {
- CPRINTS("CBI: FW_CONFIG is zero, using board defaults");
- fw_config = fw_config_defaults;
- } else if (fw_config.usb_db == DB_USB_ABSENT2) {
- fw_config.usb_db = DB_USB_ABSENT;
- }
- }
-}
-
-union taeko_cbi_fw_config get_fw_config(void)
-{
- return fw_config;
-}
-
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void)
-{
- return fw_config.usb_db;
-}
-
-bool ec_cfg_has_keyboard_backlight(void)
-{
- return (fw_config.kb_bl == KEYBOARD_BACKLIGHT_ENABLED);
-}
diff --git a/board/taeko/fw_config.h b/board/taeko/fw_config.h
deleted file mode 100644
index db4c6d60c0..0000000000
--- a/board/taeko/fw_config.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef __BOARD_TAEKO_FW_CONFIG_H_
-#define __BOARD_TAEKO_FW_CONFIG_H_
-
-#include <stdint.h>
-
-/****************************************************************************
- * CBI FW_CONFIG layout for Taeko board.
- *
- * Source of truth is the project/taeko/taeko/config.star configuration file.
- */
-
-enum ec_cfg_usb_db_type {
- DB_USB_ABSENT = 0,
- DB_USB3_PS8815 = 1,
- DB_USB_ABSENT2 = 15
-};
-
-enum ec_cfg_keyboard_backlight_type {
- KEYBOARD_BACKLIGHT_DISABLED = 0,
- KEYBOARD_BACKLIGHT_ENABLED = 1
-};
-
-union taeko_cbi_fw_config {
- struct {
- enum ec_cfg_usb_db_type usb_db : 4;
- uint32_t sd_db : 2;
- uint32_t lte_db : 1;
- enum ec_cfg_keyboard_backlight_type kb_bl : 1;
- uint32_t audio : 3;
- uint32_t reserved_1 : 21;
- };
- uint32_t raw_value;
-};
-
-/**
- * Read the cached FW_CONFIG. Guaranteed to have valid values.
- *
- * @return the FW_CONFIG for the board.
- */
-union taeko_cbi_fw_config get_fw_config(void);
-
-/**
- * Get the USB daughter board type from FW_CONFIG.
- *
- * @return the USB daughter board type.
- */
-enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void);
-
-/**
- * Check if the FW_CONFIG has enabled keyboard backlight.
- *
- * @return true if board supports keyboard backlight, false if the board
- * doesn't support it.
- */
-bool ec_cfg_has_keyboard_backlight(void);
-
-#endif /* __BOARD_TAEKO_FW_CONFIG_H_ */
diff --git a/board/taeko/gpio.inc b/board/taeko/gpio.inc
deleted file mode 100644
index 7e97007af6..0000000000
--- a/board/taeko/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-#define MODULE_KB MODULE_KEYBOARD_SCAN
-
-/* INTERRUPT GPIOs: */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_ACCEL_INT_R_L, PIN(8, 1), GPIO_SEL_1P8V | GPIO_INT_FALLING, motion_interrupt)
-GPIO_INT(EC_IMU_INT_R_L, PIN(5, 6), GPIO_SEL_1P8V | GPIO_INT_FALLING, lsm6dso_interrupt)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(5, 0), GPIO_INT_FALLING, bc12_interrupt)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt)
-
-/* USED GPIOs: */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT)
-GPIO(CHARGER_VAP_OTG_EN, PIN(7, 3), GPIO_OUT_LOW)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-GPIO(EC_BATT_PRES_ODL, PIN(A, 3), GPIO_INPUT)
-GPIO(EC_ENTERING_RW, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EC_EN_EDP_BL, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(EC_GSC_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-GPIO(EC_I2C_BAT_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BAT_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_USB_C0_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_RT_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_RT_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_TCPC_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_KB_BL_EN_L, PIN(8, 6), GPIO_OUT_HIGH)
-GPIO(EC_PCHHOT_ODL, PIN(7, 4), GPIO_INPUT)
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_R_ODL, PIN(C, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-GPIO(EN_PP5000_USBA_R, PIN(D, 7), GPIO_OUT_LOW)
-GPIO(EN_S5_RAILS, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(IMVP9_VRRDY_OD, PIN(4, 3), GPIO_INPUT)
-GPIO(PCH_PWROK, PIN(7, 2), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(USB_C0_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RT_INT_ODL, PIN(A, 0), GPIO_INPUT)
-GPIO(USB_C1_RT_RST_R_ODL, PIN(0, 2), GPIO_ODR_LOW)
-GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW)
-
-/* UART alternate functions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */
-
-/* I2C alternate functions */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */
-ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, GPIO_SEL_1P8V) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */
-ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */
-ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */
-
-/* PWM alternate functions */
-ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* GPIO40/TA1 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* GPIO80/PWM3 */
-ALTERNATE(PIN_MASK(B, 0x80), 0, MODULE_PWM, 0) /* GPIOB7/PWM5 */
-
-/* ADC alternate functions */
-ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */
-ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */
-ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */
-
-/* KB alternate functions */
-ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */
-ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */
-ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */
-
-/* PMU alternate functions */
-ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */
-ALTERNATE(PIN_MASK(0, 0x02), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW) /* GPIO01/PSL_IN3_L&GPI01 */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN1_L&GPID2/GPIOD2 */
-
-/* Unused Pins */
-UNUSED(PIN(B, 1)) /* KSO17/GPIOB1/CR_SIN4 */
-UNUSED(PIN(D, 4)) /* GPIOD4/CR_SIN3 */
-UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */
-UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */
-UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */
-UNUSED(PIN(4, 1)) /* GPIO41/ADC4 */
-UNUSED(PIN(6, 6)) /* GPIO66 */
-
-/* Pre-configured PSL balls: J8 K6 */
-
-/*
- * The NPCX keyboard driver does not use named GPIOs to access
- * keyboard scan pins, so we do not list them in *gpio.inc. However, when
- * KEYBOARD_COL2_INVERTED is defined, this name is required.
- */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW)
-
-/* GPIO02_P2 to PU */
-/* GPIO03_P2 to PU */
-IOEX(USB_C0_OC_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 4), GPIO_ODR_HIGH)
-IOEX(USB_C0_FRS_EN, EXPIN(IOEX_C0_NCT38XX, 0, 6), GPIO_LOW)
-
-/* LED */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery - Red LED */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery - Green LED */
-GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH) /* Power - White LED */
diff --git a/board/taeko/i2c.c b/board/taeko/i2c.c
deleted file mode 100644
index 0a32a502ab..0000000000
--- a/board/taeko/i2c.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "compile_time_macros.h"
-
-#include "i2c.h"
-
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- /* I2C0 */
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C_SENSOR_SCL,
- .sda = GPIO_EC_I2C_SENSOR_SDA,
- },
- {
- /* I2C1 */
- .name = "tcpc0",
- .port = I2C_PORT_USB_C0_TCPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_TCPC_SDA,
- },
- {
- /* I2C2 */
- .name = "ppc0",
- .port = I2C_PORT_USB_C0_PPC,
- .kbps = 1000,
- .scl = GPIO_EC_I2C_USB_C0_PPC_BC_SCL,
- .sda = GPIO_EC_I2C_USB_C0_PPC_BC_SDA,
- },
- {
- /* I2C4 C1 TCPC */
- .name = "tcpc1",
- .port = I2C_PORT_USB_C1_TCPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL,
- .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA,
- },
- {
- /* I2C5 */
- .name = "battery",
- .port = I2C_PORT_BATTERY,
- .kbps = 100,
- .scl = GPIO_EC_I2C_BAT_SCL,
- .sda = GPIO_EC_I2C_BAT_SDA,
- },
- {
- /* I2C6 */
- .name = "ppc1",
- .port = I2C_PORT_USB_C1_PPC,
- .kbps = 400,
- .scl = GPIO_EC_I2C_USB_C1_MIX_SCL,
- .sda = GPIO_EC_I2C_USB_C1_MIX_SDA,
- },
- {
- /* I2C7 */
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C_MISC_SCL_R,
- .sda = GPIO_EC_I2C_MISC_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/taeko/keyboard.c b/board/taeko/keyboard.c
deleted file mode 100644
index a9f033130d..0000000000
--- a/board/taeko/keyboard.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "keyboard_scan.h"
-#include "timer.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
diff --git a/board/taeko/led.c b/board/taeko/led.c
deleted file mode 100644
index 35d4fe4146..0000000000
--- a/board/taeko/led.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Taeko specific PWM LED settings: there are 2 LEDs on each side of the board,
- * each one can be controlled separately. The LED colors are white or amber,
- * and the default behavior is tied to the charging process: both sides are
- * amber while charging the battery and white when the battery is charged.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/taeko/pwm.c b/board/taeko/pwm.c
deleted file mode 100644
index b5fef384f9..0000000000
--- a/board/taeko/pwm.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-
-#include "compile_time_macros.h"
-#include "hooks.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void board_pwm_init(void)
-{
-
- pwm_enable(PWM_CH_KBLIGHT, 1);
- pwm_set_duty(PWM_CH_KBLIGHT, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT);
diff --git a/board/taeko/sensors.c b/board/taeko/sensors.c
deleted file mode 100644
index 0d4c85f0df..0000000000
--- a/board/taeko/sensors.c
+++ /dev/null
@@ -1,357 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "common.h"
-#include "accelgyro.h"
-#include "adc_chip.h"
-#include "driver/accel_bma422.h"
-#include "driver/accel_bma4xx.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dso.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "motion_sense.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "temp_sensor/thermistor.h"
-
-#if 0
-#define CPRINTS(format, args...) ccprints(format, ## args)
-#define CPRINTF(format, args...) ccprintf(format, ## args)
-#else
-#define CPRINTS(format, args...)
-#define CPRINTF(format, args...)
-#endif
-
-/* ADC configuration */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1_DDR_SOC] = {
- .name = "TEMP_DDR_SOC",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2_FAN] = {
- .name = "TEMP_FAN",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_3_CHARGER] = {
- .name = "TEMP_CHARGER",
- .input_ch = NPCX_ADC_CH6,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_4_CPUCHOKE] = {
- .name = "CPU_CHOKE",
- .input_ch = NPCX_ADC_CH7,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-K_MUTEX_DEFINE(g_lid_accel_mutex);
-K_MUTEX_DEFINE(g_base_accel_mutex);
-static struct stprivate_data g_lis2dw12_data;
-static struct lsm6dso_data lsm6dso_data;
-static struct accelgyro_saved_data_t g_bma422_data;
-
-/* TODO(b/184779333): calibrate the orientation matrix on later board stage */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* TODO(b/184779743): verify orientation matrix */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-
-struct motion_sensor_t bma422_lid_accel = {
- .name = "Lid Accel - BMA",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA422,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma4_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma422_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA4_I2C_ADDR_PRIMARY, /* 0x18 */
- .rot_standard_ref = &lid_standard_ref, /* identity matrix */
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = BMA4_ACCEL_MIN_FREQ,
- .max_frequency = BMA4_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 12500 | ROUND_UP_FLAG,
- .ec_rate = 0,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel - ST",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DW12,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_lis2dw12_data,
- .int_signal = GPIO_EC_ACCEL_INT_R_L,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DW12_ADDR1, /* 0x19 */
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .rot_standard_ref = &lid_standard_ref, /* identity matrix */
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = &lsm6dso_data,
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSO,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dso_drv,
- .mutex = &g_base_accel_mutex,
- .drv_data = &lsm6dso_data,
- .int_signal = GPIO_EC_IMU_INT_R_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSO_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSO_ODR_MIN_VAL,
- .max_frequency = LSM6DSO_ODR_MAX_VAL,
- },
-
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_detect_motionsensor(void)
-{
- int ret;
- int val;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
-
- /*
- * TODO:b/194765820 - Dynamic motion sensor count
- * Clamshell un-support motion sensor.
- * We should ignore to detect motion sensor for clamshell.
- * List this TODO item until we know how to identify DUT type.
- */
-
- /* Check lid accel chip */
- ret = i2c_read8(I2C_PORT_SENSOR, LIS2DW12_ADDR1,
- LIS2DW12_WHO_AM_I_REG, &val);
- if (ret == 0 && val == LIS2DW12_WHO_AM_I) {
- CPRINTS("LID_ACCEL is IS2DW12");
- /* Enable gpio interrupt for lid accel sensor */
- gpio_enable_interrupt(GPIO_EC_ACCEL_INT_R_L);
- return;
- }
-
- ret = i2c_read8(I2C_PORT_SENSOR, BMA4_I2C_ADDR_PRIMARY,
- BMA4_CHIP_ID_ADDR, &val);
- if (ret == 0 && val == BMA422_CHIP_ID) {
- CPRINTS("LID_ACCEL is BMA422");
- motion_sensors[LID_ACCEL] = bma422_lid_accel;
- /*
- * The driver for BMA422 doesn't have code to support
- * INT1. So, it doesn't need to enable interrupt.
- * Vendor recommend to configure EC gpio as high-z if
- * we don't use INT1. Keep this pin as input w/o enable
- * interrupt.
- */
- return;
- }
-
- /* Lid accel is not stuffed, don't allow line to float */
- gpio_disable_interrupt(GPIO_EC_ACCEL_INT_R_L);
- gpio_set_flags(GPIO_EC_ACCEL_INT_R_L, GPIO_INPUT | GPIO_PULL_DOWN);
- CPRINTS("No LID_ACCEL");
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-
-
-static void baseboard_sensors_init(void)
-{
- CPRINTS("baseboard_sensors_init");
- /*
- * GPIO_EC_ACCEL_INT_R_L
- * The interrupt of lid accel is disabled by default.
- * We'll enable it later if lid accel is LIS2DW12.
- */
-
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_INIT_I2C + 1);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (motion_sensors[LID_ACCEL].chip == MOTIONSENSE_CHIP_LIS2DW12) {
- lis2dw12_interrupt(signal);
- CPRINTS("IS2DW12 interrupt");
- return;
- }
-
- /*
- * From other project, ex. guybrush, it seem BMA422 doesn't have
- * interrupt handler when EC_ACCEL_INT_R_L is asserted.
- * However, I don't see BMA422 assert EC_ACCEL_INT_R_L when it has
- * power. That could be the reason EC code doesn't register any
- * interrupt handler.
- */
- CPRINTS("BMA422 interrupt");
-
-}
-
-/* Temperature sensor configuration */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1_DDR_SOC] = {
- .name = "DDR and SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1_DDR_SOC
- },
- [TEMP_SENSOR_2_FAN] = {
- .name = "FAN",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2_FAN
- },
- [TEMP_SENSOR_3_CHARGER] = {
- .name = "CHARGER",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_3_CHARGER
- },
- [TEMP_SENSOR_4_CPUCHOKE] = {
- .name = "CPU CHOKE",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_30k9_47k_4050b,
- .idx = ADC_TEMP_SENSOR_4_CPUCHOKE
- },
-};
-
-
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-static const struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * TODO(b/180681346): update for Alder Lake/brya
- *
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-static const struct ec_thermal_config thermal_fan = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-/* this should really be "const" */
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_2_FAN] = thermal_fan,
- [TEMP_SENSOR_3_CHARGER] = thermal_fan,
- [TEMP_SENSOR_4_CPUCHOKE] = thermal_fan,
-};
-
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
diff --git a/board/taeko/usbc_config.c b/board/taeko/usbc_config.c
deleted file mode 100644
index 993b10c99f..0000000000
--- a/board/taeko/usbc_config.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "console.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/tcpm/ps8xxx_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "ec_commands.h"
-#include "fw_config.h"
-#include "gpio.h"
-#include "gpio_signal.h"
-#include "hooks.h"
-#include "ioexpander.h"
-#include "system.h"
-#include "task.h"
-#include "task_id.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0_TCPC,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1_TCPC,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_PPC,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- /* Compatible with Silicon Mitus SM536A0 */
- .i2c_port = I2C_PORT_USB_C1_PPC,
- .i2c_addr_flags = NX20P3483_ADDR2_FLAGS,
- .drv = &nx20p348x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* USBC mux configuration - Alder Lake includes internal mux */
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set
- * to the virtual_usb_mux_driver so the AP gets notified of mux changes
- * and updates the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- /* PS8815 DB */
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/*
- * USB C0 and C2 uses burnside bridge chips and have their reset
- * controlled by their respective TCPC chips acting as GPIO expanders.
- *
- * ioex_init() is normally called before we take the TCPCs out of
- * reset, so we need to start in disabled mode, then explicitly
- * call ioex_init().
- */
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT38XX] = {
- .i2c_host_port = I2C_PORT_USB_C0_TCPC,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- .flags = IOEX_FLAGS_DISABLED,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-void config_usb_db_type(void)
-{
- enum ec_cfg_usb_db_type db_type = ec_cfg_usb_db_type();
-
- /*
- * TODO(b/194515356): implement multiple DB types
- */
-
- CPRINTS("Configured USB DB type number is %d", db_type);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b/194618663): figure out correct timing
- */
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 0);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 0);
-
- /*
- * delay for power-on to reset-off and min. assertion time
- */
-
- msleep(20);
-
- gpio_set_level(GPIO_USB_C0_TCPC_RST_ODL, 1);
- gpio_set_level(GPIO_USB_C1_RT_RST_R_ODL, 1);
-
- /* wait for chips to come up */
-
- msleep(50);
-}
-
-
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late()) {
- board_reset_pd_mcu();
-
- /*
- * These IO expander pins are implemented using the
- * C0/C2 TCPC, so they must be set up after the TCPC has
- * been taken out of reset.
- */
- ioex_config[0].flags &= ~IOEX_FLAGS_DISABLED;
- ioex_init(0);
- }
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_0 | PD_STATUS_TCPC_ALERT_2;
-
- if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0)
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else if (port == USBC_PORT_C1)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
- return 0;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_TCPC_INT_ODL:
- schedule_deferred_pd_interrupt(USBC_PORT_C1);
- break;
- default:
- break;
- }
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
- case GPIO_USB_C1_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- break;
- default:
- break;
- }
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- nx20p348x_interrupt(USBC_PORT_C1);
- break;
-
- default:
- break;
- }
-}
-
-__override bool board_is_dts_port(int port)
-{
- return port == USBC_PORT_C0;
-}
diff --git a/board/taeko/usbc_config.h b/board/taeko/usbc_config.h
deleted file mode 100644
index 89fb1863c8..0000000000
--- a/board/taeko/usbc_config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Taeko board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void config_usb_db_type(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
-
diff --git a/board/taeko/vif_override.xml b/board/taeko/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/taeko/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/terrador/battery.c b/board/terrador/battery.c
deleted file mode 100644
index d129ede528..0000000000
--- a/board/terrador/battery.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC\011 L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC011;
diff --git a/board/terrador/board.c b/board/terrador/board.c
deleted file mode 100644
index 5adc65fc70..0000000000
--- a/board/terrador/board.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/als_tcs3400.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Terrador if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PASSIVE,
-};
-
-static void board_init(void)
-{
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_0_mix",
- .port = I2C_PORT_USB_0_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_0_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_0_MIX_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C4_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C4_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1_BLUE] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED2_RED] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED3_GREEN] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-
-static void kb_backlight_enable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
- /* TODO(b/159025015): Terrador: check USB PD reset operation */
-}
-
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc0_usb4_mb_retimer = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_0_MIX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
-};
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration.
- */
-static void setup_mux(void)
-{
- CPRINTS("C0 supports bb-retimer");
- /* USB-C port 0 have a retimer */
- usb_muxes[USBC_PORT_C0].next_mux = &usbc0_usb4_mb_retimer;
-}
-
-__override void board_cbi_init(void)
-{
- /*
- * TODO(b/159025015): Terrador: check FW_CONFIG fields for USB DB type
- */
- setup_mux();
- /* Reassign USB_C0_RT_RST_ODL */
- bb_controls[USBC_PORT_C0].usb_ls_en_gpio = GPIO_USB_C0_LS_EN;
- bb_controls[USBC_PORT_C0].retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL;
-
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- /* USB-C port 0 doesn't have a retimer */
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
diff --git a/board/terrador/board.h b/board/terrador/board.h
deleted file mode 100644
index 90e13a45aa..0000000000
--- a/board/terrador/board.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_PWM
-/* Although there are 2 LEDs, they are both controlled by the same lines. */
-#define CONFIG_LED_PWM_COUNT 1
-
-/* Keyboard features */
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-
-/* BMI260 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x40
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-#undef CONFIG_FANS
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_0_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_LGC011,
- BATTERY_LGC_AP18C8K,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1_BLUE = 0,
- PWM_CH_LED2_RED,
- PWM_CH_LED3_GREEN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/terrador/build.mk b/board/terrador/build.mk
deleted file mode 100644
index b78172d3cf..0000000000
--- a/board/terrador/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/terrador/ec.tasklist b/board/terrador/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/terrador/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/terrador/gpio.inc b/board/terrador/gpio.inc
deleted file mode 100644
index 3ec22924f9..0000000000
--- a/board/terrador/gpio.inc
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi260_interrupt)
-GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-/*
- * USB_C1 moved from GPIO32 to GPIO83 on boards with board ID >=1.
- * GPIO83/EN_PP1800_A is DNS on board ID 0 and GPIO32 is N/C on board ID >=1
- * so it's safe to define GPIOs compatible with both designs.
- * TODO (b/149858568): remove board ID=0 support.
- */
-GPIO(USB_C0_RT_RST_ODL, PIN(6, 1), GPIO_ODR_LOW) /* USB_C0 Reset */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C0_RT_INT_ODL, PIN(B, 7), GPIO_INPUT)
-GPIO(USB_C1_RT_INT_ODL, PIN(4, 0), GPIO_INPUT)
-GPIO(USB_C0_FRS_EN, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight enable*/
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(C, BIT(2) | BIT(3) | BIT(4)), 0, MODULE_PWM, 0) /* LED_{3,2,1}_L */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/terrador/led.c b/board/terrador/led.c
deleted file mode 100644
index 640312bd64..0000000000
--- a/board/terrador/led.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Volteer
- */
-
-#include "charge_manager.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_pwm.h"
-#include "pwm.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-struct pwm_led_color_map led_color_map[] = {
- /* Green, Red, Blue */
- [EC_LED_COLOR_GREEN] = { 100, 0, 0 },
- [EC_LED_COLOR_RED] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- /* The green LED seems to be brighter than the others, so turn down
- * green from its natural level for these secondary colors.
- */
- [EC_LED_COLOR_YELLOW] = { 70, 100, 0 },
- [EC_LED_COLOR_WHITE] = { 70, 100, 100 },
- [EC_LED_COLOR_AMBER] = { 20, 100, 0 },
-};
-
-struct pwm_led pwm_leds[] = {
- /* 2 RGB diffusers controlled by 1 set of 3 channels. */
- [PWM_LED0] = {
- .ch0 = PWM_CH_LED3_GREEN,
- .ch1 = PWM_CH_LED2_RED,
- .ch2 = PWM_CH_LED1_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 255;
- brightness_range[EC_LED_COLOR_GREEN] = 255;
- brightness_range[EC_LED_COLOR_BLUE] = 255;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/terrador/sensors.c b/board/terrador/sensors.c
deleted file mode 100644
index 9997591cb6..0000000000
--- a/board/terrador/sensors.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI260 private data */
-static struct bmi_drv_data_t g_bmi260_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/146166425 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Note - BMA253 interrupt unused by EC */
-
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L);
- /* Enable interrupt for the BMI260 accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/terrador/vif_override.xml b/board/terrador/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/terrador/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/tglrvp_ish/board.c b/board/tglrvp_ish/board.c
deleted file mode 100644
index a0584410b3..0000000000
--- a/board/tglrvp_ish/board.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* TGL RVP ISH board-specific configuration */
-
-#include "accelgyro_lsm6dsm.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "task.h"
-
-#include "gpio_list.h" /* has to be included last */
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 1000
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Sensor config */
-static struct mutex g_base_mutex;
-/* sensor private data */
-static struct lsm6dsm_data lsm6dsm_a_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_LSM6DS3,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_a_data,
- MOTIONSENSE_TYPE_ACCEL),
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* TODO rotate correctly */
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-int chipset_in_state(int state_mask)
-{
- return state_mask & CHIPSET_STATE_ON;
-}
-
-int chipset_in_or_transitioning_to_state(int state_mask)
-{
- return state_mask & CHIPSET_STATE_ON;
-}
-
-void chipset_force_shutdown(enum chipset_shutdown_reason reason)
-{
-}
-
-int board_idle_task(void *unused)
-{
- while (1)
- task_wait_event(-1);
-}
diff --git a/board/tglrvp_ish/board.h b/board/tglrvp_ish/board.h
deleted file mode 100644
index 03044a5bb8..0000000000
--- a/board/tglrvp_ish/board.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* TGL RVP ISH board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands.
- * TODO: Don't use this on production systems.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/*
- * By default, enable all console messages except HC, ACPI and event
- * The sensor stack is generating a lot of activity.
- */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* ISH specific */
-#undef CONFIG_DEBUG_ASSERT
-#define CONFIG_CLOCK_CRYSTAL
-#define CONFIG_ISH_UART_0
-/* EC */
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_ACCELGYRO_LSM6DSM /* For LSM6DS3 */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(BASE_ACCEL)
-
-/* Host command over HECI */
-#define CONFIG_HOSTCMD_HECI
-
-/* I2C ports */
-#define I2C_PORT_SENSOR ISH_I2C1
-#define CONFIG_CMD_I2C_XFER
-
-/* EC Console Commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_TIMERINFO
-
-/* Undefined features */
-#undef CONFIG_CMD_HASH
-#undef CONFIG_CMD_I2C_SCAN
-#undef CONFIG_CMD_KEYBOARD
-#undef CONFIG_CMD_POWER_AP
-#undef CONFIG_CMD_POWERINDEBUG
-#undef CONFIG_CMD_SHMEM
-#undef CONFIG_EXTPOWER
-#undef CONFIG_KEYBOARD_KSO_BASE
-#undef CONFIG_FLASH_CROS
-#undef CONFIG_FMAP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_SWITCH
-#undef CONFIG_WATCHDOG
-
-/* Modules we want to exclude */
-#undef CONFIG_CMD_HASH
-#undef CONFIG_CMD_TEMP_SENSOR
-#undef CONFIG_ADC
-#undef CONFIG_SHA256
-
-/* DMA paging between SRAM and DRAM */
-#define CONFIG_DMA_PAGING
-
-/* power management definitions */
-#define CONFIG_LOW_POWER_IDLE
-
-#define CONFIG_ISH_PM_D0I1
-#define CONFIG_ISH_PM_D0I2
-#define CONFIG_ISH_PM_D0I3
-#define CONFIG_ISH_PM_D3
-#define CONFIG_ISH_PM_RESET_PREP
-
-#define CONFIG_ISH_IPAPG
-
-#define CONFIG_ISH_D0I2_MIN_USEC (15*MSEC)
-#define CONFIG_ISH_D0I3_MIN_USEC (50*MSEC)
-
-#define CONFIG_ISH_NEW_PM
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* Motion sensors */
-enum sensor_id {
- BASE_ACCEL,
- SENSOR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/tglrvp_ish/build.mk b/board/tglrvp_ish/build.mk
deleted file mode 100644
index 74ec3c865f..0000000000
--- a/board/tglrvp_ish/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=ish
-CHIP_FAMILY:=ish5
-CHIP_VARIANT:=ish5p4
-
-board-y=board.o
diff --git a/board/tglrvp_ish/ec.tasklist b/board/tglrvp_ish/ec.tasklist
deleted file mode 100644
index a4db486e9a..0000000000
--- a/board/tglrvp_ish/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, HUGE_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, LARGER_TASK_STACK_SIZE, 0) \
- TASK_NOTEST(CHIPSET, board_idle_task, NULL, IDLE_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(HECI_RX, heci_rx_task, NULL, HUGE_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(IPC_MNG, ipc_mng_task, NULL, LARGER_TASK_STACK_SIZE, 0)
diff --git a/board/tglrvp_ish/gpio.inc b/board/tglrvp_ish/gpio.inc
deleted file mode 100644
index 286309e388..0000000000
--- a/board/tglrvp_ish/gpio.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/*
- * We don't have a ENTERING_RW signal wired to the cr50 but common code needs
- * it to be defined.
- */
-UNIMPLEMENTED(ENTERING_RW)
diff --git a/board/tglrvpu_ite/battery.c b/board/tglrvpu_ite/battery.c
deleted file mode 100644
index d529f7677e..0000000000
--- a/board/tglrvpu_ite/battery.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "common.h"
-#include "util.h"
-
-const struct board_batt_params board_battery_info[] = {
- /*
- * Simplo Battery (SMP-HHP-408) Information
- * Fuel gauge: BQ40Z50
- */
- [BATTERY_SIMPLO_SMP_HHP_408] = {
- .fuel_gauge = {
- .manuf_name = "SMP-HHP-408",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = SB_BATTERY_STATUS,
- .reg_mask = STATUS_INITIALIZED,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6100,
- .precharge_current = 204, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
- /*
- * Simplo Battery (SMP-CA-445) Information
- * Fuel gauge: BQ30Z554
- */
- [BATTERY_SIMPLO_SMP_CA_445] = {
- .fuel_gauge = {
- .manuf_name = "SMP-CA-445",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = SB_BATTERY_STATUS,
- .reg_mask = STATUS_INITIALIZED,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700, /* mV */
- .voltage_normal = 7600,
- .voltage_min = 6100,
- .precharge_current = 150, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_SMP_HHP_408;
diff --git a/board/tglrvpu_ite/board.c b/board/tglrvpu_ite/board.c
deleted file mode 100644
index 4c96576b28..0000000000
--- a/board/tglrvpu_ite/board.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Intel TGL-U-RVP-ITE board-specific configuration */
-
-#include "button.h"
-#include "charger.h"
-#include "driver/charger/isl9241.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "extpower.h"
-#include "i2c.h"
-#include "intc.h"
-#include "it83xx_pd.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power/icelake.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-
-#include "gpio_list.h"
-
-#define CPRINTS(format, args...) cprints(CC_COMMAND, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_COMMAND, format, ## args)
-
-/* Mutex for shared NVM access */
-static struct mutex bb_nvm_mutex;
-
-/* TCPC gpios */
-const struct tcpc_gpio_config_t tcpc_gpios[] = {
- [TYPE_C_PORT_0] = {
- .vbus = {
- .pin = GPIO_USB_C0_VBUS_INT,
- .pin_pol = 1,
- },
- .src = {
- .pin = GPIO_USB_C0_SRC_EN,
- .pin_pol = 1,
- },
- .snk = {
- .pin = GPIO_USB_C0_SNK_EN_L,
- .pin_pol = 0,
- },
- .vconn = {
- .cc1_pin = GPIO_USB_C0_CC1_VCONN_EN,
- .cc2_pin = GPIO_USB_C0_CC2_VCONN_EN,
- .pin_pol = 1,
- },
- .src_ilim = {
- .pin = GPIO_USB_C0_SRC_HI_ILIM,
- .pin_pol = 1,
- },
- },
- [TYPE_C_PORT_1] = {
- .vbus = {
- .pin = GPIO_USB_C1_VBUS_INT,
- .pin_pol = 1,
- },
- .src = {
- .pin = GPIO_USB_C1_SRC_EN,
- .pin_pol = 1,
- },
- .snk = {
- .pin = GPIO_USB_C1_SNK_EN_L,
- .pin_pol = 0,
- },
- .vconn = {
- .cc1_pin = GPIO_USB_C1_CC1_VCONN_EN,
- .cc2_pin = GPIO_USB_C1_CC2_VCONN_EN,
- .pin_pol = 1,
- },
- .src_ilim = {
- .pin = GPIO_USB_C1_SRC_HI_ILIM,
- .pin_pol = 1,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_gpios) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* USB-C TPCP Configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [TYPE_C_PORT_0] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so no i2c config needed */
- .drv = &it83xx_tcpm_drv,
- },
- [TYPE_C_PORT_1] = {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- /* TCPC is embedded within EC so no i2c config needed */
- .drv = &it83xx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* BB Retimers configuration */
-const struct bb_usb_control bb_controls[] = {
- [TYPE_C_PORT_0] = {
- .usb_ls_en_gpio = GPIO_USB_C0_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C0_RETIMER_RST,
- },
- [TYPE_C_PORT_1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RETIMER_RST,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* USB retimer Configuration */
-struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = TYPE_C_PORT_0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = TYPE_C_PORT_1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-/* USB muxes Configuration */
-const struct usb_mux usb_muxes[] = {
- [TYPE_C_PORT_0] = {
- .usb_port = TYPE_C_PORT_0,
- .next_mux = &usbc0_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT0_BB_RETIMER,
- .i2c_addr_flags = I2C_PORT0_BB_RETIMER_ADDR,
- },
- [TYPE_C_PORT_1] = {
- .usb_port = TYPE_C_PORT_1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT1_BB_RETIMER,
- .i2c_addr_flags = I2C_PORT1_BB_RETIMER_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- /* Flash EC */
- [I2C_CHAN_FLASH] = {
- .name = "chan-A",
- .port = IT83XX_I2C_CH_A,
- .kbps = 100,
- .scl = GPIO_I2C_A_SCL,
- .sda = GPIO_I2C_A_SDA,
- },
- /*
- * Port-80 Display, Charger, Battery, IO-expanders, EEPROM,
- * IMVP9, AUX-rail, power-monitor.
- */
- [I2C_CHAN_BATT_CHG] = {
- .name = "batt_chg",
- .port = IT83XX_I2C_CH_B,
- .kbps = 100,
- .scl = GPIO_I2C_B_SCL,
- .sda = GPIO_I2C_B_SDA,
- },
- /* Retimers, PDs */
- [I2C_CHAN_RETIMER] = {
- .name = "retimer",
- .port = IT83XX_I2C_CH_E,
- .kbps = 100,
- .scl = GPIO_I2C_E_SCL,
- .sda = GPIO_I2C_E_SDA,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_CHAN_COUNT);
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Charger Chips */
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_CHARGER,
- .i2c_addr_flags = ISL9241_ADDR_FLAGS,
- .drv = &isl9241_drv,
- },
-};
-
-/******************************************************************************/
-/* PWROK signal configuration */
-/*
- * On TGLRVP the ALL_SYS_PWRGD, VCCST_PWRGD, PCH_PWROK, and SYS_PWROK
- * signals are handled by the board. No EC control needed.
- */
-const struct intel_x86_pwrok_signal pwrok_signal_assert_list[] = {};
-const int pwrok_signal_assert_count = ARRAY_SIZE(pwrok_signal_assert_list);
-
-const struct intel_x86_pwrok_signal pwrok_signal_deassert_list[] = {};
-const int pwrok_signal_deassert_count = ARRAY_SIZE(pwrok_signal_assert_list);
-
-/*
- * Returns board information (board id[7:0] and Fab id[15:8]) on success
- * -1 on error.
- */
-int board_get_version(void)
-{
- int port0, port1;
- int fab_id, board_id, bom_id;
-
- if (ioexpander_read_intelrvp_version(&port0, &port1))
- return -1;
- /*
- * Port0: bit 0 - BOM ID(2)
- * bit 2:1 - FAB ID(1:0) + 1
- * Port1: bit 7:6 - BOM ID(1:0)
- * bit 5:0 - BOARD ID(5:0)
- */
- bom_id = ((port1 & 0xC0) >> 6) | ((port0 & 0x01) << 2);
- fab_id = ((port0 & 0x06) >> 1) + 1;
- board_id = port1 & 0x3F;
-
- CPRINTS("BID:0x%x, FID:0x%x, BOM:0x%x", board_id, fab_id, bom_id);
-
- return board_id | (fab_id << 8);
-}
-
-__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable)
-{
- const struct bb_usb_control *control = &bb_controls[me->usb_port];
-
- /*
- * LSx based F/W updating is a POR, however to avoid the rework on
- * RVP retain the FORCE_PWR GPIO with EC.
- */
- enum gpio_signal force_power_gpio = me->usb_port ?
- GPIO_USB_C1_RETIMER_FORCE_PWR : GPIO_USB_C0_RETIMER_FORCE_PWR;
-
- /* handle retimer's power domain */
- if (enable) {
- /*
- * BB retimer NVM can be shared between multiple ports, hence
- * lock enabling the retimer until the current retimer request
- * is complete.
- */
- mutex_lock(&bb_nvm_mutex);
-
- gpio_set_level(control->usb_ls_en_gpio, 1);
- /*
- * Tpw, minimum time from VCC to RESET_N de-assertion is 100us.
- * For boards that don't provide a load switch control, the
- * retimer_init() function ensures power is up before calling
- * this function.
- */
- msleep(1);
- gpio_set_level(control->retimer_rst_gpio, 1);
- msleep(10);
- gpio_set_level(force_power_gpio, 1);
-
- /* Allow 20ms time for the retimer to be initialized. */
- msleep(20);
-
- mutex_unlock(&bb_nvm_mutex);
- } else {
- gpio_set_level(force_power_gpio, 0);
- msleep(1);
- gpio_set_level(control->retimer_rst_gpio, 0);
- msleep(1);
- gpio_set_level(control->usb_ls_en_gpio, 0);
- }
- return EC_SUCCESS;
-}
diff --git a/board/tglrvpu_ite/board.h b/board/tglrvpu_ite/board.h
deleted file mode 100644
index 9351fe5982..0000000000
--- a/board/tglrvpu_ite/board.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Intel TGL-U-RVP-ITE board-specific configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* ITE EC variant */
-#define VARIANT_INTELRVP_EC_IT8320
-
-/* MECC config */
-#define CONFIG_INTEL_RVP_MECC_VERSION_0_9
-
-/* USB MUX */
-#define CONFIG_USB_MUX_VIRTUAL
-
-#define CONFIG_USBC_VCONN
-
-/* FAN configs */
-#define CONFIG_FANS 1
-#define BOARD_FAN_MIN_RPM 3000
-#define BOARD_FAN_MAX_RPM 10000
-
-/* Temperature sensor */
-#define CONFIG_TEMP_SENSOR
-
-/* Support early firmware selection */
-#define CONFIG_VBOOT_EFS2
-#define GPIO_PACKET_MODE_EN GPIO_ME_G3_TO_ME_EC
-
-#include "baseboard.h"
-
-#define CONFIG_CHIPSET_TIGERLAKE
-#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_L_PGOOD
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_L
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-#define GPIO_BAT_LED_RED_L GPIO_BAT_LED_GREEN_L
-#define GPIO_PWR_LED_WHITE_L GPIO_AC_LED_GREEN_L
-
-/* Charger */
-#define CONFIG_CHARGER_ISL9241
-
-/* DC Jack charge ports */
-#undef CONFIG_DEDICATED_CHARGE_PORT_COUNT
-#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 1
-
-/* USB ports */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define DEDICATED_CHARGE_PORT 2
-
-/* USB PD config */
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 2
-
-/* Config BB retimer */
-#define CONFIG_USBC_RETIMER_INTEL_BB
-
-/* Thermal configs */
-
-/* I2C ports */
-#define CONFIG_IT83XX_SMCLK2_ON_GPC7
-
-#define I2C_PORT_CHARGER IT83XX_I2C_CH_B
-#define I2C_PORT_BATTERY IT83XX_I2C_CH_B
-#define I2C_PORT_PCA9555_BOARD_ID_GPIO IT83XX_I2C_CH_B
-#define I2C_PORT_PORT80 IT83XX_I2C_CH_B
-#define I2C_PORT0_BB_RETIMER IT83XX_I2C_CH_E
-#define I2C_PORT1_BB_RETIMER IT83XX_I2C_CH_E
-
-#define I2C_ADDR_PCA9555_BOARD_ID_GPIO 0x22
-#define PORT80_I2C_ADDR MAX695X_I2C_ADDR1_FLAGS
-#if defined(BOARD_TGLRVPU_ITE) || defined(BOARD_TGLRVPU_ITE_TCPMV1)
- #define I2C_PORT0_BB_RETIMER_ADDR 0x42
- #define I2C_PORT1_BB_RETIMER_ADDR 0x43
-#else /* BOARD_TGLRVPY_ITE */
- #define I2C_PORT0_BB_RETIMER_ADDR 0x42
- #define I2C_PORT1_BB_RETIMER_ADDR 0x41
-#endif /* BOARD_TGLRVPU_ITE */
-
-/* Enabling SOP* communication */
-#define CONFIG_USB_PD_DECODE_SOP
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-
-#ifndef __ASSEMBLER__
-
-enum tglrvp_charge_ports {
- TYPE_C_PORT_0,
- TYPE_C_PORT_1,
-};
-
-enum tglrvp_i2c_channel {
- I2C_CHAN_FLASH,
- I2C_CHAN_BATT_CHG,
- I2C_CHAN_RETIMER,
- I2C_CHAN_COUNT,
-};
-
-enum battery_type {
- BATTERY_SIMPLO_SMP_HHP_408,
- BATTERY_SIMPLO_SMP_CA_445,
- BATTERY_TYPE_COUNT,
-};
-
-/* Define max power */
-#define PD_MAX_POWER_MW 60000
-
-int board_get_version(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/tglrvpu_ite/build.mk b/board/tglrvpu_ite/build.mk
deleted file mode 100644
index 4d8fd44fdf..0000000000
--- a/board/tglrvpu_ite/build.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Intel TGL-U-RVP-ITE board-specific configuration
-#
-
-#it8320
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=intelrvp
-
-board-y=board.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/tglrvpu_ite/ec.tasklist b/board/tglrvpu_ite/ec.tasklist
deleted file mode 100644
index 4e65a446e4..0000000000
--- a/board/tglrvpu_ite/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2019 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.
- */
-
-/*
- * Intel TGL-U-RVP-ITE board-specific configuration.
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/tglrvpu_ite/gpio.inc b/board/tglrvpu_ite/gpio.inc
deleted file mode 100644
index e0bce1ddd8..0000000000
--- a/board/tglrvpu_ite/gpio.inc
+++ /dev/null
@@ -1,209 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Intel TGL-U-RVP-ITE board-specific configuration */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power sequencing interrupts */
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(C, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(ALL_SYS_PWRGD, PIN(F, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_L_PGOOD, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S0_L, PIN(G, 6), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(PCH_SLP_S3_L, PIN(F, 2), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4
-GPIO_INT(PCH_SLP_S4_L, PIN(F, 3), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-
-/* Button interrupts */
-GPIO_INT(VOLUME_UP_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(POWER_BUTTON_L,PIN(E, 4), GPIO_INT_BOTH, power_button_interrupt)
-
-GPIO_INT(AC_PRESENT, PIN(A, 7), GPIO_INT_BOTH, extpower_interrupt)
-
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING, uart_deepsleep_interrupt) /* UART1 RX input */
-
-GPIO_INT(WP_L, PIN(I, 4), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-
-#ifdef CONFIG_HOSTCMD_ESPI
-/* enable 1.8v input of EC's espi_reset pin, and then this pin takes effect. */
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt) /* eSPI_reset# */
-#endif
-
-GPIO_INT(TABLET_MODE_L, PIN(K, 1), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* DC Jack presence coming from +VADP_OUT */
-GPIO_INT(DC_JACK_PRESENT, PIN(J, 2), GPIO_INT_BOTH, board_dc_jack_interrupt)
-
-/* Type-C interrupts */
-#if defined(BOARD_TGLRVPU_ITE) || defined(BOARD_TGLRVPU_ITE_TCPMV1)
-GPIO_INT(USB_C0_VBUS_INT, PIN(L, 5), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_VBUS_INT, PIN(D, 4), GPIO_INT_BOTH, tcpc_alert_event)
-#else /* BOARD_TGLRVPY_ITE */
-GPIO_INT(USB_C0_VBUS_INT, PIN(D, 4), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_VBUS_INT, PIN(L, 5), GPIO_INT_BOTH, tcpc_alert_event)
-#endif /* BOARD_TGLRVPU_ITE */
-
-/* Power sequencing GPIOs */
-GPIO(CPU_PROCHOT, PIN(B, 2), GPIO_INPUT)
-GPIO(SYS_RESET_L, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(PCH_RSMRST_L, PIN(C, 6), GPIO_OUT_LOW)
-GPIO(PCH_PWRBTN_L, PIN(D, 0), GPIO_ODR_HIGH)
-GPIO(EC_SPI_OE_N, PIN(I, 2), GPIO_OUT_LOW)
-/*
- * PCH_SYS_PWROK is an input, driven by the Silego chip. The common x86
- * power sequencing expects that PCH_SYS_PWROK is an output and will drive
- * this signal if GPIO_PCH_SYS_PWROK is configured. Map this pin as no-connect
- * so that state can be monitored using the console.
- */
-GPIO(NC_PCH_SYS_PWROK, PIN(K, 4), GPIO_INPUT)
-GPIO(EN_PP5000, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_PCH_DSW_PWROK, PIN(L, 6), GPIO_OUT_LOW)
-
-/* Host communication GPIOs */
-GPIO(PCH_WAKE_L, PIN(J, 0), GPIO_ODR_HIGH)
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO(PCH_PLTRST_L, PIN(E, 3), GPIO_INPUT | GPIO_PULL_UP)
-#endif
-
-/* Battery present */
-GPIO(EC_BATT_PRES_L, PIN(K, 0), GPIO_INPUT)
-
-/* Type-C GPIOs */
-#if defined(BOARD_TGLRVPU_ITE) || defined(BOARD_TGLRVPU_ITE_TCPMV1)
-GPIO(USB_C0_SRC_EN, PIN(L, 1), GPIO_OUT_LOW)
-GPIO(USB_C0_SNK_EN_L, PIN(H, 6), GPIO_ODR_LOW)
-GPIO(USB_C0_SRC_HI_ILIM, PIN(M, 6), GPIO_OUT_LOW)
-GPIO(USB_C0_HPD, PIN(E, 6), GPIO_INPUT)
-GPIO(USB_C0_FRS_EN, PIN(L, 7), GPIO_INPUT)
-
-GPIO(USB_C1_SRC_EN, PIN(G, 1), GPIO_OUT_LOW)
-GPIO(USB_C1_SNK_EN_L, PIN(I, 5), GPIO_ODR_LOW)
-GPIO(USB_C1_SRC_HI_ILIM, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_HPD, PIN(D, 3), GPIO_INPUT)
-GPIO(USB_C1_FRS_EN, PIN(K, 5), GPIO_INPUT)
-
-/* Retimer GPIOs */
-GPIO(USB_C0_LS_EN, PIN(J, 1), GPIO_OUT_LOW)
-GPIO(USB_C0_RETIMER_RST, PIN(J, 5), GPIO_OUT_LOW)
-GPIO(USB_C0_RETIMER_FORCE_PWR, PIN(J, 3), GPIO_OUT_LOW)
-
-GPIO(USB_C1_LS_EN, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RETIMER_RST, PIN(J, 4), GPIO_OUT_LOW)
-GPIO(USB_C1_RETIMER_FORCE_PWR, PIN(H, 5), GPIO_OUT_LOW)
-#else /* BOARD_TGLRVPY_ITE */
-GPIO(USB_C0_SRC_EN, PIN(G, 1), GPIO_OUT_LOW)
-GPIO(USB_C0_SNK_EN_L, PIN(I, 5), GPIO_ODR_LOW | GPIO_PULL_DOWN)
-GPIO(USB_C0_SRC_HI_ILIM, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(USB_C0_HPD, PIN(D, 3), GPIO_INPUT)
-GPIO(USB_C0_FRS_EN, PIN(K, 5), GPIO_INPUT)
-
-GPIO(USB_C1_SRC_EN, PIN(L, 1), GPIO_OUT_LOW)
-GPIO(USB_C1_SNK_EN_L, PIN(H, 6), GPIO_ODR_LOW | GPIO_PULL_DOWN)
-GPIO(USB_C1_SRC_HI_ILIM, PIN(M, 6), GPIO_OUT_LOW)
-GPIO(USB_C1_HPD, PIN(E, 6), GPIO_INPUT)
-GPIO(USB_C1_FRS_EN, PIN(L, 7), GPIO_INPUT)
-
-/* Retimer GPIOs */
-GPIO(USB_C0_LS_EN, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(USB_C0_RETIMER_RST, PIN(J, 4), GPIO_OUT_LOW)
-GPIO(USB_C0_RETIMER_FORCE_PWR, PIN(H, 5), GPIO_OUT_LOW)
-
-GPIO(USB_C1_LS_EN, PIN(J, 1), GPIO_OUT_LOW)
-GPIO(USB_C1_RETIMER_RST, PIN(J, 5), GPIO_OUT_LOW)
-GPIO(USB_C1_RETIMER_FORCE_PWR, PIN(J, 3), GPIO_OUT_LOW)
-#endif /* BOARD_TGLRVPU_ITE */
-
-/* Type-C BC1.2 GPIOs */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(A, 1), GPIO_INPUT)
-GPIO(USB_C0_BC12_VBUS_ON_ODL, PIN(H, 4), GPIO_ODR_HIGH)
-
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(B, 7), GPIO_INPUT)
-GPIO(USB_C1_BC12_VBUS_ON_ODL, PIN(J, 6), GPIO_ODR_HIGH)
-
-/* VCONN enable pins */
-GPIO(USB_C0_CC1_VCONN_EN, PIN(D, 1), GPIO_OUT_LOW)
-GPIO(USB_C0_CC2_VCONN_EN, PIN(G, 2), GPIO_OUT_LOW)
-GPIO(USB_C1_CC1_VCONN_EN, PIN(E, 5), GPIO_OUT_LOW)
-GPIO(USB_C1_CC2_VCONN_EN, PIN(I, 0), GPIO_OUT_LOW)
-
-/* USB-A GPIOs */
-GPIO(USB_A_5V_EN, PIN(K, 3), GPIO_INPUT)
-
-/* LED */
-GPIO(BAT_LED_GREEN_L, PIN(A, 6), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(AC_LED_GREEN_L, PIN(A, 3), GPIO_OUT_HIGH) /* LED_1_L */
-
-/* FAN control pins */
-GPIO(FAN_POWER_EN, PIN(K, 6), GPIO_OUT_LOW)
-
-/* H1 pins */
-GPIO(CCD_MODE_ODL, PIN(B, 5), GPIO_INPUT)
-GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW)
-/* ME_GE_TO_ME_EC pin is re-purposed for H1 Packet Mode indication */
-GPIO(ME_G3_TO_ME_EC, PIN(H, 3), GPIO_OUT_LOW)
-
-/* Used with Discrete TBT and or with PD on RVP */
-GPIO(NC_TBT_C0_RESET_N, PIN(KSO_H, 7), GPIO_INPUT)
-GPIO(NC_TBT_C1_RESET_N, PIN(K, 7), GPIO_INPUT)
-GPIO(NC_USB_C0_RETIMER_ALRT, PIN(I, 7), GPIO_INPUT)
-GPIO(NC_USB_C1_RETIMER_ALRT, PIN(G, 0), GPIO_INPUT)
-
-/* Used if Base EC is present */
-GPIO(NC_EC_BASE_DET, PIN(I, 3), GPIO_INPUT)
-
-#ifndef CONFIG_HOSTCMD_ESPI
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INPUT)
-#endif
-
-/* Unused pins */
-GPIO(NC_SUSWARN, PIN(E, 1), GPIO_INPUT)
-GPIO(NC_BATT_DISABLE, PIN(H, 0), GPIO_INPUT)
-GPIO(NC_SMC_ONOFF_N, PIN(L, 3), GPIO_INPUT) /* Power button interrupt without H1 */
-
-/*
- * I2C pins should be configure as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(I2C_C_SCL, PIN(C, 7), GPIO_INPUT)
-GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT)
-GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(I2C_F_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(I2C_F_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* Alternate pins for I2C */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C F SCL/SDA A4/A5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C A SCL/SDA B3/B4 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C B SCL/SDA C1/C2 */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C E SCL/SDA E0/E7 */
-ALTERNATE(PIN_MASK(C, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SCL C7 */
-ALTERNATE(PIN_MASK(F, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SDA F7 */
-
-/* Alternate pins for UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), GPIO_ALT_FUNC_DEFAULT, MODULE_UART, GPIO_PULL_UP) /* UART1 B0/B1 */
-
-/* Alternate pins for ADC */
-ALTERNATE(PIN_MASK(I, BIT(1) | BIT(6)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 1,6 -> I1,I6 */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 13,15 -> L0,L2 */
-
-/* Alternate pins for FAN */
-ALTERNATE(PIN_MASK(A, BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* PWM2 A2 */
-ALTERNATE(PIN_MASK(D, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* TACH1A D7 */
diff --git a/board/tglrvpu_ite/vif_override.xml b/board/tglrvpu_ite/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/tglrvpu_ite/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/tglrvpu_ite_tcpmv1 b/board/tglrvpu_ite_tcpmv1
deleted file mode 120000
index 05edd4d22f..0000000000
--- a/board/tglrvpu_ite_tcpmv1
+++ /dev/null
@@ -1 +0,0 @@
-tglrvpu_ite \ No newline at end of file
diff --git a/board/tglrvpy_ite b/board/tglrvpy_ite
deleted file mode 120000
index 05edd4d22f..0000000000
--- a/board/tglrvpy_ite
+++ /dev/null
@@ -1 +0,0 @@
-tglrvpu_ite \ No newline at end of file
diff --git a/board/tglrvpy_ite_tcpmv1 b/board/tglrvpy_ite_tcpmv1
deleted file mode 120000
index 560115c8ab..0000000000
--- a/board/tglrvpy_ite_tcpmv1
+++ /dev/null
@@ -1 +0,0 @@
-tglrvpy_ite \ No newline at end of file
diff --git a/board/tigertail/board.c b/board/tigertail/board.c
deleted file mode 100644
index f4d0382b9c..0000000000
--- a/board/tigertail/board.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Tigertail board configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "ina2xx.h"
-#include "queue_policies.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "update_fw.h"
-#include "usart-stm32f0.h"
-#include "usart_tx_dma.h"
-#include "usart_rx_dma.h"
-#include "usb_i2c.h"
-#include "usb-stream.h"
-#include "util.h"
-
-#include "gpio_list.h"
-
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-
-/******************************************************************************
- * Forward UARTs as a USB serial interface.
- */
-
-#define USB_STREAM_RX_SIZE 16
-#define USB_STREAM_TX_SIZE 16
-
-/******************************************************************************
- * Forward USART1 as a simple USB serial interface.
- */
-static struct usart_config const usart1;
-struct usb_stream_config const usart1_usb;
-
-static struct queue const usart1_to_usb = QUEUE_DIRECT(64, uint8_t,
- usart1.producer, usart1_usb.consumer);
-static struct queue const usb_to_usart1 = QUEUE_DIRECT(64, uint8_t,
- usart1_usb.producer, usart1.consumer);
-
-static struct usart_config const usart1 =
- USART_CONFIG(usart1_hw,
- usart_rx_interrupt,
- usart_tx_interrupt,
- 115200,
- 0,
- usart1_to_usb,
- usb_to_usart1);
-
-USB_STREAM_CONFIG(usart1_usb,
- USB_IFACE_USART1_STREAM,
- USB_STR_USART1_STREAM_NAME,
- USB_EP_USART1_STREAM,
- USB_STREAM_RX_SIZE,
- USB_STREAM_TX_SIZE,
- usb_to_usart1,
- usart1_to_usb)
-
-
-/******************************************************************************
- * Define the strings used in our USB descriptors.
- */
-const void *const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Tigertail"),
- [USB_STR_SERIALNO] = 0,
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_I2C_NAME] = USB_STRING_DESC("I2C"),
- [USB_STR_USART1_STREAM_NAME] = USB_STRING_DESC("DUT UART"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Tigertail Console"),
- [USB_STR_UPDATE_NAME] = USB_STRING_DESC("Firmware update"),
-};
-
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
-
-/******************************************************************************
- * ADC support for SBU flip detect.
- */
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_SBU1] = {"SBU1", 3300, 4096, 0, STM32_AIN(6)},
- [ADC_SBU2] = {"SBU2", 3300, 4096, 0, STM32_AIN(7)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-
-
-/******************************************************************************
- * Support I2C bridging over USB.
- */
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 100,
- GPIO_MASTER_I2C_SCL, GPIO_MASTER_I2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-int usb_i2c_board_is_enabled(void) { return 1; }
-
-/******************************************************************************
- * Console commands.
- */
-
-/* State to indicate current GPIO config. */
-static int uart_state = UART_OFF;
-/* State to indicate current autodetect mode. */
-static int uart_detect = UART_DETECT_AUTO;
-
-const char *const uart_state_names[] = {
- [UART_OFF] = "off",
- [UART_ON_PP1800] = "on @ 1.8v",
- [UART_FLIP_PP1800] = "flip @ 1.8v",
- [UART_ON_PP3300] = "on @ 3.3v",
- [UART_FLIP_PP3300] = "flip @ 3.3v",
- [UART_AUTO] = "auto",
-};
-
-/* Set GPIOs to configure UART mode. */
-static void set_uart_gpios(int state)
-{
- int uart = GPIO_INPUT;
- int dir = 0;
- int voltage = 1; /* 1: 1.8v, 0: 3.3v */
- int enabled = 0;
-
- gpio_set_level(GPIO_ST_UART_LVL_DIS, 1);
-
- switch (state) {
- case UART_ON_PP1800:
- uart = GPIO_ALTERNATE;
- dir = 1;
- voltage = 1;
- enabled = 1;
- break;
-
- case UART_FLIP_PP1800:
- uart = GPIO_ALTERNATE;
- dir = 0;
- voltage = 1;
- enabled = 1;
- break;
-
- case UART_ON_PP3300:
- uart = GPIO_ALTERNATE;
- dir = 1;
- voltage = 0;
- enabled = 1;
- break;
-
- case UART_FLIP_PP3300:
- uart = GPIO_ALTERNATE;
- dir = 0;
- voltage = 0;
- enabled = 1;
- break;
-
- default:
- /* Default to UART_OFF. */
- uart = GPIO_INPUT;
- dir = 0;
- enabled = 0;
- }
-
- /* Set level shifter direction and voltage. */
- gpio_set_level(GPIO_ST_UART_VREF, voltage);
- gpio_set_level(GPIO_ST_UART_TX_DIR, dir);
- gpio_set_level(GPIO_ST_UART_TX_DIR_N, !dir);
-
- /* Enable STM pinmux */
- gpio_set_flags(GPIO_USART1_TX, uart);
- gpio_set_flags(GPIO_USART1_RX, uart);
-
- /* Flip uart orientation if necessary. */
- STM32_USART_CR1(STM32_USART1_BASE) &= ~(STM32_USART_CR1_UE);
- if (dir)
- STM32_USART_CR2(STM32_USART1_BASE) &= ~(STM32_USART_CR2_SWAP);
- else
- STM32_USART_CR2(STM32_USART1_BASE) |= (STM32_USART_CR2_SWAP);
- STM32_USART_CR1(STM32_USART1_BASE) |= STM32_USART_CR1_UE;
-
- /* Enable level shifter. */
- usleep(1000);
- gpio_set_level(GPIO_ST_UART_LVL_DIS, !enabled);
-}
-
-/*
- * Detect if a UART is plugged into SBU. Tigertail UART must be off
- * for this to return useful info.
- */
-static int is_low(int mv)
-{
- return (mv < 190);
-}
-
-static int is_3300(int mv)
-{
- return ((mv > 3000) && (mv < 3400));
-}
-
-static int is_1800(int mv)
-{
- return ((mv > 1600) && (mv < 1900));
-}
-
-static int detect_uart_orientation(void)
-{
- int sbu1 = adc_read_channel(ADC_SBU1);
- int sbu2 = adc_read_channel(ADC_SBU2);
- int state = UART_OFF;
-
- /*
- * Here we check if one or the other SBU is 1.8v, as DUT
- * TX should idle high.
- */
- if (is_low(sbu1) && is_1800(sbu2))
- state = UART_ON_PP1800;
- else if (is_low(sbu2) && is_1800(sbu1))
- state = UART_FLIP_PP1800;
- else if (is_low(sbu1) && is_3300(sbu2))
- state = UART_ON_PP3300;
- else if (is_low(sbu2) && is_3300(sbu1))
- state = UART_FLIP_PP3300;
- else
- state = UART_OFF;
-
- return state;
-}
-
-/*
- * Detect if UART has been unplugged. Normal UARTs should
- * have both lines idling high at 1.8v.
- */
-static int detect_uart_idle(void)
-{
- int sbu1 = adc_read_channel(ADC_SBU1);
- int sbu2 = adc_read_channel(ADC_SBU2);
- int enabled = 0;
-
- if (is_1800(sbu1) && is_1800(sbu2))
- enabled = 1;
-
- if (is_3300(sbu1) && is_3300(sbu2))
- enabled = 1;
-
- return enabled;
-}
-
-/* Set the UART state and gpios, and autodetect if necessary. */
-void set_uart_state(int state)
-{
- if (state == UART_AUTO) {
- set_uart_gpios(UART_OFF);
- msleep(10);
-
- uart_detect = UART_DETECT_AUTO;
- state = detect_uart_orientation();
- } else {
- uart_detect = UART_DETECT_OFF;
- }
-
- uart_state = state;
- set_uart_gpios(state);
-}
-
-/*
- * Autodetect UART state:
- * We will check every 250ms, and change state if 1 second has passed
- * in the new state.
- */
-void uart_sbu_tick(void)
-{
- static int debounce; /* = 0 */
-
- if (uart_detect != UART_DETECT_AUTO)
- return;
-
- if (uart_state == UART_OFF) {
- int state = detect_uart_orientation();
-
- if (state != UART_OFF) {
- debounce++;
- if (debounce > 4) {
- debounce = 0;
- CPRINTS("UART autoenable %s",
- uart_state_names[state]);
- uart_state = state;
- set_uart_gpios(state);
- }
- return;
- }
- } else {
- int enabled = detect_uart_idle();
-
- if (!enabled) {
- debounce++;
- if (debounce > 4) {
- debounce = 0;
- CPRINTS("UART autodisable");
- uart_state = UART_OFF;
- set_uart_gpios(UART_OFF);
- }
- return;
- }
- }
- debounce = 0;
-}
-DECLARE_HOOK(HOOK_TICK, uart_sbu_tick, HOOK_PRIO_DEFAULT);
-
-static int command_uart(int argc, char **argv)
-{
- const char *uart_state_str = "off";
- const char *uart_detect_str = "manual";
-
- if (argc > 1) {
- if (!strcasecmp("off", argv[1]))
- set_uart_state(UART_OFF);
- else if (!strcasecmp("on18", argv[1]))
- set_uart_state(UART_ON_PP1800);
- else if (!strcasecmp("on33", argv[1]))
- set_uart_state(UART_ON_PP3300);
- else if (!strcasecmp("flip18", argv[1]))
- set_uart_state(UART_FLIP_PP1800);
- else if (!strcasecmp("flip33", argv[1]))
- set_uart_state(UART_FLIP_PP3300);
- else if (!strcasecmp("auto", argv[1]))
- set_uart_state(UART_AUTO);
- else
- return EC_ERROR_PARAM1;
- }
-
- uart_state_str = uart_state_names[uart_state];
- if (uart_detect == UART_DETECT_AUTO)
- uart_detect_str = "auto";
- ccprintf("UART mux is: %s, setting: %s\n",
- uart_state_str, uart_detect_str);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(uart, command_uart,
- "[off|on18|on33|flip18|flip33|auto]",
- "Set the sbu uart state\n"
- "WARNING: 3.3v may damage 1.8v devices.\n");
-
-static void set_led_a(int r, int g, int b)
-{
- /* LEDs are active low */
- gpio_set_level(GPIO_LED_R_L, !r);
- gpio_set_level(GPIO_LED_G_L, !g);
- gpio_set_level(GPIO_LED_B_L, !b);
-}
-
-static void set_led_b(int r, int g, int b)
-{
- gpio_set_level(GPIO_LED2_R_L, !r);
- gpio_set_level(GPIO_LED2_G_L, !g);
- gpio_set_level(GPIO_LED2_B_L, !b);
-}
-
-/* State we intend the mux GPIOs to be set. */
-static int mux_state = MUX_OFF;
-static int last_mux_state = MUX_OFF;
-
-/* Set the state variable and GPIO configs to mux as requested. */
-void set_mux_state(int state)
-{
- int enabled = (state == MUX_A) || (state == MUX_B);
- /* dir: 0 -> A, dir: 1 -> B */
- int dir = (state == MUX_B);
-
- if (mux_state != state)
- last_mux_state = mux_state;
-
- /* Disconnect first. */
- gpio_set_level(GPIO_USB_C_OE_N, 1);
- gpio_set_level(GPIO_SEL_RELAY_A, 0);
- gpio_set_level(GPIO_SEL_RELAY_B, 0);
-
- /* Let USB disconnect. */
- msleep(100);
-
- /* Reconnect VBUS/CC in the requested direction. */
- gpio_set_level(GPIO_SEL_RELAY_A, !dir && enabled);
- gpio_set_level(GPIO_SEL_RELAY_B, dir && enabled);
-
- /* Reconnect data. */
- msleep(10);
-
- gpio_set_level(GPIO_USB_C_SEL_B, dir);
- gpio_set_level(GPIO_USB_C_OE_N, !enabled);
-
- if (!enabled)
- mux_state = MUX_OFF;
- else
- mux_state = state;
-
- if (state == MUX_A)
- set_led_a(0, 1, 0);
- else
- set_led_a(1, 0, 0);
-
- if (state == MUX_B)
- set_led_b(0, 1, 0);
- else
- set_led_b(1, 0, 0);
-}
-
-
-/* On button press, toggle between mux A, B, off. */
-static int button_ready = 1;
-void button_interrupt_deferred(void)
-{
- switch (mux_state) {
- case MUX_OFF:
- if (last_mux_state == MUX_A)
- set_mux_state(MUX_B);
- else
- set_mux_state(MUX_A);
- break;
-
- case MUX_A:
- case MUX_B:
- default:
- set_mux_state(MUX_OFF);
- break;
- }
-
- button_ready = 1;
-}
-DECLARE_DEFERRED(button_interrupt_deferred);
-
-/* On button press, toggle between mux A, B, off. */
-void button_interrupt(enum gpio_signal signal)
-{
- if (!button_ready)
- return;
-
- button_ready = 0;
- /*
- * button_ready is not set until set_mux_state completes,
- * which has ~100ms settle time for the mux, which also
- * provides for debouncing.
- */
- hook_call_deferred(&button_interrupt_deferred_data, 0);
-}
-
-static int command_mux(int argc, char **argv)
-{
- char *mux_state_str = "off";
-
- if (argc > 1) {
- if (!strcasecmp("off", argv[1]))
- set_mux_state(MUX_OFF);
- else if (!strcasecmp("a", argv[1]))
- set_mux_state(MUX_A);
- else if (!strcasecmp("b", argv[1]))
- set_mux_state(MUX_B);
- else
- return EC_ERROR_PARAM1;
- }
-
- if (mux_state == MUX_A)
- mux_state_str = "A";
- if (mux_state == MUX_B)
- mux_state_str = "B";
- ccprintf("TYPE-C mux is %s\n", mux_state_str);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(mux, command_mux,
- "[off|A|B]",
- "Get/set the mux and enable state of the TYPE-C mux");
-
-/******************************************************************************
- * Initialize board.
- */
-static void board_init(void)
-{
- /* USB to serial queues */
- queue_init(&usart1_to_usb);
- queue_init(&usb_to_usart1);
-
- /* UART init */
- usart_init(&usart1);
-
- /*
- * Default to port A, to allow easier charging and
- * detection of unconfigured devices.
- */
- set_mux_state(MUX_A);
-
- /* Note that we can't enable AUTO until after init. */
- set_uart_gpios(UART_OFF);
-
- /* Calibrate INA0 (VBUS) with 1mA/LSB scale */
- ina2xx_init(0, 0x8000, INA2XX_CALIB_1MA(15 /*mOhm*/));
- ina2xx_init(1, 0x8000, INA2XX_CALIB_1MA(15 /*mOhm*/));
- ina2xx_init(4, 0x8000, INA2XX_CALIB_1MA(15 /*mOhm*/));
-
- gpio_enable_interrupt(GPIO_BUTTON_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/tigertail/board.h b/board/tigertail/board.h
deleted file mode 100644
index 3b15c4c774..0000000000
--- a/board/tigertail/board.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/* Tigertail configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* Enable USART1 USB streams */
-#define CONFIG_STREAM_USART
-#define CONFIG_STREAM_USART1
-#define CONFIG_STREAM_USB
-#define CONFIG_CMD_USART_INFO
-
-/* The UART console is on USART1 (PA9/PA10) */
-#undef CONFIG_UART_CONSOLE
-#define CONFIG_UART_CONSOLE 2
-#undef CONFIG_UART_TX_DMA
-#undef CONFIG_UART_RX_DMA
-
-/* Optional features */
-#define CONFIG_STM_HWTIMER32
-#define CONFIG_HW_CRC
-
-/* USB Configuration */
-#define CONFIG_USB
-#define CONFIG_USB_PID 0x5027
-#define CONFIG_USB_CONSOLE
-#define CONFIG_USB_UPDATE
-
-#undef CONFIG_USB_MAXPOWER_MA
-#define CONFIG_USB_MAXPOWER_MA 100
-
-#define CONFIG_USB_SERIALNO
-#define DEFAULT_SERIALNO "Uninitialized"
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_UPDATE 1
-#define USB_IFACE_USART1_STREAM 2
-#define USB_IFACE_I2C 3
-#define USB_IFACE_COUNT 4
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-#define USB_EP_UPDATE 2
-#define USB_EP_USART1_STREAM 3
-#define USB_EP_I2C 4
-#define USB_EP_COUNT 5
-
-/* Enable console recasting of GPIO type. */
-#define CONFIG_CMD_GPIO_EXTENDED
-
-/* This is not actually an EC so disable some features. */
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-
-/* Enable control of I2C over USB */
-#define CONFIG_USB_I2C
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define I2C_PORT_MASTER 0
-#define CONFIG_INA231
-
-/* Enable ADC */
-#define CONFIG_ADC
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-
-#ifndef __ASSEMBLER__
-
-/* Timer selection */
-#define TIM_CLOCK32 2
-#define TIM_ADC 3
-
-
-
-#include "gpio_signal.h"
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_SERIALNO,
- USB_STR_VERSION,
- USB_STR_I2C_NAME,
- USB_STR_USART1_STREAM_NAME,
- USB_STR_CONSOLE_NAME,
- USB_STR_UPDATE_NAME,
-
- USB_STR_COUNT
-};
-
-/* ADC signal */
-enum adc_channel {
- ADC_SBU1 = 0,
- ADC_SBU2,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-void set_uart_state(int state);
-
-enum uart_states {
- UART_OFF = 0,
- UART_ON_PP1800,
- UART_FLIP_PP1800,
- UART_ON_PP3300,
- UART_FLIP_PP3300,
- UART_AUTO,
-};
-
-enum uart_detect_states {
- UART_DETECT_OFF = 0,
- UART_DETECT_AUTO,
-};
-
-void set_mux_state(int state);
-enum mux_states {
- MUX_OFF = 0,
- MUX_A,
- MUX_B,
-};
-
-void button_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/tigertail/build.mk b/board/tigertail/build.mk
deleted file mode 100644
index 9e7fae1c07..0000000000
--- a/board/tigertail/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2017 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072CBU6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o
diff --git a/board/tigertail/ec.tasklist b/board/tigertail/ec.tasklist
deleted file mode 100644
index afdb5dedc7..0000000000
--- a/board/tigertail/ec.tasklist
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2017 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE)
diff --git a/board/tigertail/gpio.inc b/board/tigertail/gpio.inc
deleted file mode 100644
index 107d3b2a2e..0000000000
--- a/board/tigertail/gpio.inc
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2017 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.
- */
-
-/* Interrupt enables. */
-GPIO_INT(BUTTON_L, PIN(C, 13), \
- GPIO_INT_RISING | GPIO_PULL_UP, button_interrupt)
-
-/* Outputs */
-GPIO(SEL_CC2_A, PIN(A, 14), GPIO_OUT_LOW)
-GPIO(SEL_VBUS_A, PIN(A, 15), GPIO_OUT_LOW)
-GPIO(SEL_CC2_B, PIN(B, 0), GPIO_OUT_LOW)
-GPIO(SEL_VBUS_B, PIN(B, 1), GPIO_OUT_LOW)
-GPIO(SEL_RELAY_A, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(SEL_RELAY_B, PIN(B, 3), GPIO_OUT_LOW)
-GPIO(USB_C_SEL_B, PIN(B, 4), GPIO_OUT_LOW)
-GPIO(USB_C_OE_N, PIN(B, 5), GPIO_OUT_HIGH)
-
-GPIO(ST_UART_LVL_DIS, PIN(B, 10), GPIO_OUT_HIGH)
-GPIO(ST_UART_TX_DIR, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(ST_UART_TX_DIR_N, PIN(B, 15), GPIO_OUT_LOW)
-/* SBU_VSET, 1=1.8V, 0=3.3V */
-GPIO(ST_UART_VREF, PIN(B, 7), GPIO_OUT_HIGH)
-
-GPIO(LED2_G_L, PIN(A, 5), GPIO_OUT_HIGH)
-GPIO(LED2_B_L, PIN(A, 8), GPIO_OUT_HIGH)
-GPIO(LED2_R_L, PIN(A, 13), GPIO_OUT_LOW)
-
-GPIO(LED_G_L, PIN(B, 11), GPIO_OUT_HIGH)
-GPIO(LED_R_L, PIN(B, 13), GPIO_OUT_LOW)
-GPIO(LED_B_L, PIN(B, 14), GPIO_OUT_HIGH)
-
-/* Inputs */
-GPIO(USB_C_SBU1_DET, PIN(A, 6), GPIO_INPUT)
-GPIO(USB_C_SBU2_DET, PIN(A, 7), GPIO_INPUT)
-
-/* USART interface */
-GPIO(USART2_CTS, PIN(A, 0), GPIO_INPUT)
-GPIO(USART2_RTS, PIN(A, 1), GPIO_INPUT)
-GPIO(USART2_TX, PIN(A, 2), GPIO_INPUT)
-GPIO(USART2_RX, PIN(A, 3), GPIO_INPUT)
-GPIO(USART2_CK, PIN(A, 4), GPIO_INPUT)
-
-GPIO(USART1_TX, PIN(A, 9), GPIO_INPUT)
-GPIO(USART1_RX, PIN(A, 10), GPIO_INPUT)
-
-/* I2C pins should be configured as inputs until I2C module is */
-/* initialized. This will avoid driving the lines unintentionally.*/
-GPIO(MASTER_I2C_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(MASTER_I2C_SDA, PIN(B, 9), GPIO_INPUT)
-
-/* Unimplemented signals since we are not an EC */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-/* USART2: PA2/PA3 - Console UART */
-ALTERNATE(PIN_MASK(A, 0x000C), 1, MODULE_UART, 0)
-/* USART1: PA09/PA10 - AP/SBU UART */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_USART, 0)
-
-/* I2C MASTER:PB8/9 GPIO_ODR_HIGH */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, 0)
diff --git a/board/todor/battery.c b/board/todor/battery.c
deleted file mode 100644
index d129ede528..0000000000
--- a/board/todor/battery.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC\011 L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC011;
diff --git a/board/todor/board.c b/board/todor/board.c
deleted file mode 100644
index c4e2395adc..0000000000
--- a/board/todor/board.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Todor if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PASSIVE,
-};
-
-static void board_init(void)
-{
-
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- /* Routing length exceeds 205mm prior to connection to re-timer */
- if (port == USBC_PORT_C1)
- return TBT_SS_U32_GEN1_GEN2;
-
- /*
- * Thunderbolt-compatible mode not supported
- *
- * TODO (b/147726366): All the USB-C ports need to support same speed.
- * Need to fix once USB-C feature set is known for Volteer.
- */
- return TBT_SS_RES_0;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- /*
- * On Proto-1 only Port 1 supports TBT & USB4
- *
- * TODO (b/147732807): All the USB-C ports need to support same
- * features. Need to fix once USB-C feature set is known for Volteer.
- */
- return port == USBC_PORT_C1;
-}
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_0_mix",
- .port = I2C_PORT_USB_0_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_0_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_0_MIX_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C4_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C4_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1_BLUE] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED2_GREEN] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED3_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-
-static void kb_backlight_enable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
- /* TODO(b/159025015): Terrador: check USB PD reset operation */
-}
-
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc0_usb4_mb_retimer = {
- .usb_port = USBC_PORT_C0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_0_MIX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
-};
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration.
- */
-static void setup_mux(void)
-{
- CPRINTS("C0 supports bb-retimer");
- /* USB-C port 0 have a retimer */
- usb_muxes[USBC_PORT_C0].next_mux = &usbc0_usb4_mb_retimer;
-}
-
-__override void board_cbi_init(void)
-{
- /*
- * TODO(b/159025015): Terrador: check FW_CONFIG fields for USB DB type
- */
- setup_mux();
- /* Reassign USB_C0_RT_RST_ODL */
- bb_controls[USBC_PORT_C0].usb_ls_en_gpio = GPIO_USB_C0_LS_EN;
- bb_controls[USBC_PORT_C0].retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL;
-
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .next_mux = &usbc1_tcss_usb_mux,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- /* USB-C port 0 doesn't have a retimer */
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/todor/board.h b/board/todor/board.h
deleted file mode 100644
index dd63c5c04b..0000000000
--- a/board/todor/board.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* LED defines */
-#define CONFIG_LED_PWM
-/* Although there are 2 LEDs, they are both controlled by the same lines. */
-#define CONFIG_LED_PWM_COUNT 1
-
-/* Keyboard features */
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-
-/* BMI260 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x40
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-#undef CONFIG_FANS
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_UART2_EC_RX
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_0_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_LGC011,
- BATTERY_LGC_AP18C8K,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1_BLUE = 0,
- PWM_CH_LED2_GREEN,
- PWM_CH_LED3_RED,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/todor/build.mk b/board/todor/build.mk
deleted file mode 100644
index b78172d3cf..0000000000
--- a/board/todor/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/todor/ec.tasklist b/board/todor/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/todor/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/todor/gpio.inc b/board/todor/gpio.inc
deleted file mode 100644
index 606a17fcb6..0000000000
--- a/board/todor/gpio.inc
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi260_interrupt)
-GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-/* The EC does not buffer this signal on Volteer. */
-UNIMPLEMENTED(PCH_DSW_PWROK)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-
-/*
- * USB_C1 moved from GPIO32 to GPIO83 on boards with board ID >=1.
- * GPIO83/EN_PP1800_A is DNS on board ID 0 and GPIO32 is N/C on board ID >=1
- * so it's safe to define GPIOs compatible with both designs.
- * TODO (b/149858568): remove board ID=0 support.
- */
-GPIO(USB_C0_RT_RST_ODL, PIN(6, 1), GPIO_ODR_LOW) /* USB_C0 Reset */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-GPIO(USB_C0_FRS_EN, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(UART2_EC_RX, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight enable*/
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_0_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Physical HPD pins are not needed on EC as these are configured by PMC */
-GPIO(USB_C0_DP_HPD, PIN(B, 7), GPIO_INPUT)
-GPIO(USB_C1_DP_HPD, PIN(7, 0), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(C, BIT(2) | BIT(3) | BIT(4)), 0, MODULE_PWM, 0) /* LED_{3,2,1}_L */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/todor/led.c b/board/todor/led.c
deleted file mode 100644
index 31d1c6fe20..0000000000
--- a/board/todor/led.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Volteer
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_pwm.h"
-#include "pwm.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-struct pwm_led_color_map led_color_map[] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 100, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- /* The green LED seems to be brighter than the others, so turn down
- * green from its natural level for these secondary colors.
- */
- [EC_LED_COLOR_YELLOW] = { 100, 70, 0 },
- [EC_LED_COLOR_WHITE] = { 100, 70, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 20, 0 },
-};
-
-struct pwm_led pwm_leds[] = {
- /* 2 RGB diffusers controlled by 1 set of 3 channels. */
- [PWM_LED0] = {
- .ch0 = PWM_CH_LED3_RED,
- .ch1 = PWM_CH_LED2_GREEN,
- .ch2 = PWM_CH_LED1_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 255;
- brightness_range[EC_LED_COLOR_GREEN] = 255;
- brightness_range[EC_LED_COLOR_BLUE] = 255;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/todor/sensors.c b/board/todor/sensors.c
deleted file mode 100644
index 9997591cb6..0000000000
--- a/board/todor/sensors.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI260 private data */
-static struct bmi_drv_data_t g_bmi260_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/146166425 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Note - BMA253 interrupt unused by EC */
-
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L);
- /* Enable interrupt for the BMI260 accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/todor/vif_override.xml b/board/todor/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/todor/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/tomato b/board/tomato
deleted file mode 120000
index e96f559c72..0000000000
--- a/board/tomato
+++ /dev/null
@@ -1 +0,0 @@
-cherry \ No newline at end of file
diff --git a/board/treeya/analyzestack.yaml b/board/treeya/analyzestack.yaml
deleted file mode 120000
index 9873122a08..0000000000
--- a/board/treeya/analyzestack.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/grunt/analyzestack.yaml \ No newline at end of file
diff --git a/board/treeya/battery.c b/board/treeya/battery.c
deleted file mode 100644
index a98a38d3e9..0000000000
--- a/board/treeya/battery.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Treeya battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP 5B10Q13163 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L17M3PB0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 186, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- /* LGC 5B10Q13162 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L17L3PB0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 181, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
- /* Sunwoda L18D3PG1 */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "SUNWODA",
- .device_name = "L18D3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13050, /* mV */
- .voltage_normal = 11250, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-
- /* SMP L19M3PG1 */
- [BATTERY_SMP_1] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* LGC L19L3PG1 */
- [BATTERY_LGC_1] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L19L3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* Celxpert L19C3PG1 */
- [BATTERY_CEL_1] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L19C3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP_1;
diff --git a/board/treeya/board.c b/board/treeya/board.c
deleted file mode 100644
index 4583d89d7c..0000000000
--- a/board/treeya/board.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Treeya board-specific configuration */
-
-#include "button.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "extpower.h"
-#include "i2c.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "system.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-
-#include "gpio_list.h"
-
-const enum gpio_signal hibernate_wake_pins[] = {
- GPIO_LID_OPEN,
- GPIO_AC_PRESENT,
- GPIO_POWER_BUTTON_L,
- GPIO_EC_RST_ODL,
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/* I2C port map. */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"thermal", I2C_PORT_THERMAL_AP, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Motion sensors */
-static struct mutex g_lid_mutex_1;
-static struct mutex g_base_mutex_1;
-
-/* Lid accel private data */
-static struct stprivate_data g_lis2dwl_data;
-/* Base accel private data */
-static struct lsm6dsm_data g_lsm6dsm_data = LSM6DSM_DATA;
-
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t lsm6dsm_base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t treeya_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t lid_accel_1 = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex_1,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 2, /* g */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t base_accel_1 = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex_1,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &lsm6dsm_base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t base_gyro_1 = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex_1,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &lsm6dsm_base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
-};
-
-static int board_use_st_sensor(void)
-{
- /* sku_id 0xa8-0xa9 use ST sensors */
- uint32_t sku_id = system_get_sku_id();
-
- return sku_id == 0xa8 || sku_id == 0xa9;
-}
-
-/* treeya board will use two sets of lid/base sensor, we need update
- * sensors info according to sku id.
- */
-void board_update_sensor_config_from_sku(void)
-{
- if (board_is_convertible()) {
- /* sku_id a8-a9 use ST sensors */
- if (board_use_st_sensor()) {
- motion_sensors[LID_ACCEL] = lid_accel_1;
- motion_sensors[BASE_ACCEL] = base_accel_1;
- motion_sensors[BASE_GYRO] = base_gyro_1;
- } else{
- /*Need to change matrix for treeya*/
- motion_sensors[BASE_ACCEL].rot_standard_ref = &treeya_standard_ref;
- motion_sensors[BASE_GYRO].rot_standard_ref = &treeya_standard_ref;
- }
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-
-/* bmi160 or lsm6dsm need differenct interrupt function */
-void board_bmi160_lsm6dsm_interrupt(enum gpio_signal signal)
-{
- if (board_use_st_sensor())
- lsm6dsm_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
diff --git a/board/treeya/board.h b/board/treeya/board.h
deleted file mode 100644
index 339929a873..0000000000
--- a/board/treeya/board.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Treeya board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_GRUNT_TCPC_0_ANX3447
-
-#include "baseboard.h"
-
-/*
- * By default, enable all console messages excepted HC, ACPI and event:
- * The sensor stack is generating a lot of activity.
- */
-#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* Power and battery LEDs */
-#define CONFIG_LED_COMMON
-#define CONFIG_CMD_LEDTEST
-
-#define CONFIG_LED_ONOFF_STATES
-
-/* Disable keyboard backlight */
-#undef CONFIG_PWM
-#undef CONFIG_PWM_KBLIGHT
-
-#define CONFIG_MKBP_USE_GPIO
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-/*
- * Slew rate on the PP1800_SENSOR load switch requires a short delay on startup.
- */
-#undef CONFIG_MOTION_SENSE_RESUME_DELAY_US
-#define CONFIG_MOTION_SENSE_RESUME_DELAY_US (10 * MSEC)
-
-/* Second set of sensor drivers */
-#define CONFIG_ACCELGYRO_LSM6DSM
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_LIS2DWL
-
-#ifndef __ASSEMBLER__
-
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_LGC,
- BATTERY_SUNWODA,
- BATTERY_SMP_1,
- BATTERY_LGC_1,
- BATTERY_CEL_1,
- BATTERY_TYPE_COUNT,
-};
-
-void board_bmi160_lsm6dsm_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/treeya/build.mk b/board/treeya/build.mk
deleted file mode 100644
index 250abe6712..0000000000
--- a/board/treeya/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6f
-BASEBOARD:=grunt
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/treeya/ec.tasklist b/board/treeya/ec.tasklist
deleted file mode 100644
index fb6e2f75a1..0000000000
--- a/board/treeya/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/treeya/gpio.inc b/board/treeya/gpio.inc
deleted file mode 100644
index 70e2e1b29c..0000000000
--- a/board/treeya/gpio.inc
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(A, 0), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PCH_SLP_S5_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S5_PGOOD, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_PULL_UP, lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLUME_DOWN_L, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUME_UP_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(8, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, board_bmi160_lsm6dsm_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH | GPIO_LOCKED)
-
-GPIO(EN_PWR_A, PIN(E, 2), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EN_PP1800_SENSOR, PIN(6, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(ENABLE_BACKLIGHT_L, PIN(D, 3), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(SYS_RESET_L, PIN(E, 4), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT | GPIO_PULL_UP) /* Battery Present */
-GPIO(PCH_SYS_PWROK, PIN(D, 6), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(CPU_PROCHOT, PIN(3, 4), GPIO_INPUT | GPIO_SEL_1P8V) /* PROCHOT to SOC */
-GPIO(APU_ALERT_L, PIN(A, 2), GPIO_INPUT) /* Alert to SOC */
-GPIO(3AXIS_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* 3 Axis Accel */
-GPIO(EC_INT_L, PIN(A, 4), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_POWER_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_POWER_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_PD_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_PD_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SIC */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* APU_SID */
-GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT) /* EC_I2C_EEPROM_SCL and
- EC_I2C_KB_BL_SCL */
-GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT) /* EC_I2C_EEPROM_SDA and
- EC_I2C_KB_BL_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V) /* EC_I2C_SENSOR_SDA */
-
-/*
- * The NPCX LPC driver configures and controls SCI and SMI,
- * so PCH_SCI_ODL [PIN(7, 6)] and PCH_SMI_ODL [PIN(C, 6)] are
- * not defined here as GPIOs.
- */
-
-GPIO(EN_USB_A0_5V, PIN(6, 1), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(C, 0), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_C0_OC_L, PIN(7, 3), GPIO_OUT_HIGH) /* C0 Over Current */
-GPIO(USB_C1_OC_L, PIN(7, 2), GPIO_OUT_HIGH) /* C1 Over Current */
-GPIO(USB_C0_PD_RST, PIN(3, 2), GPIO_OUT_HIGH) /* C0 PD Reset */
-GPIO(USB_C1_PD_RST_L, PIN(D, 5), GPIO_OUT_HIGH) /* C1 PD Reset */
-GPIO(USB_C0_BC12_VBUS_ON_L, PIN(4, 0), GPIO_ODR_HIGH) /* C0 BC1.2 Power */
-GPIO(USB_C1_BC12_VBUS_ON_L, PIN(B, 1), GPIO_ODR_HIGH | GPIO_PULL_UP) /* C1 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET, PIN(6, 2), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C1_BC12_CHG_DET, PIN(8, 3), GPIO_INPUT | GPIO_PULL_DOWN) /* C1 BC1.2 Detect */
-GPIO(USB_C0_DP_HPD, PIN(9, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C1_DP_HPD, PIN(9, 6), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-
-/* Board ID */
-GPIO(BOARD_VERSION1, PIN(C, 7), GPIO_INPUT)
-GPIO(BOARD_VERSION2, PIN(9, 3), GPIO_INPUT)
-GPIO(BOARD_VERSION3, PIN(8, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(4, 1), GPIO_INPUT)
-
-/* LED */
-GPIO(BAT_LED_1_L, PIN(C, 3), GPIO_OUT_HIGH)
-GPIO(BAT_LED_2_L, PIN(C, 4), GPIO_OUT_HIGH)
-GPIO(POWER_LED_3_L, PIN(B, 7), GPIO_OUT_HIGH)
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */
-ALTERNATE(PIN_MASK(F, 0x02), 0, MODULE_ADC, 0) /* ADC8 */
-ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */
-
-/* Keyboard Pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = AC_PRESENT,
- GPIO01 = POWER_BUTTON_L,
- GPIO02 = EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
diff --git a/board/treeya/led.c b/board/treeya/led.c
deleted file mode 100644
index 9647b45e74..0000000000
--- a/board/treeya/led.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "common.h"
-#include "led_onoff_states.h"
-#include "led_common.h"
-#include "gpio.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_POWER_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_POWER_LED_3_L, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_BAT_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_BAT_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/treeya/vif_override.xml b/board/treeya/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/treeya/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/trembyle/analyzestack.yaml b/board/trembyle/analyzestack.yaml
deleted file mode 120000
index 4c09084128..0000000000
--- a/board/trembyle/analyzestack.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/zork/analyzestack.yaml \ No newline at end of file
diff --git a/board/trembyle/battery.c b/board/trembyle/battery.c
deleted file mode 100644
index 33e4e9ce5d..0000000000
--- a/board/trembyle/battery.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Zork battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AP18F4M */
- [BATTERY_AP18F4M] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00404001",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7600,
- .voltage_min = 5500,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP18F4M;
diff --git a/board/trembyle/board.c b/board/trembyle/board.c
deleted file mode 100644
index 89a62f3411..0000000000
--- a/board/trembyle/board.c
+++ /dev/null
@@ -1,530 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Trembyle board configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "charger.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/retimer/pi3dpx1207.h"
-#include "driver/retimer/pi3hdx1204.h"
-#include "driver/retimer/ps8811.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-
-#include "gpio_list.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = NULL,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-const struct power_signal_info power_signal_list[] = {
- [X86_SLP_S3_N] = {
- .gpio = GPIO_PCH_SLP_S3_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S3_DEASSERTED",
- },
- [X86_SLP_S5_N] = {
- .gpio = GPIO_PCH_SLP_S5_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S5_DEASSERTED",
- },
- [X86_S0_PGOOD] = {
- .gpio = GPIO_S0_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S0_PGOOD",
- },
- [X86_S5_PGOOD] = {
- .gpio = GPIO_S5_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S5_PGOOD",
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
- [PWM_CH_FAN] = {
- .channel = 2,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-const int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- IOEX_EN_USB_A1_5V_DB,
-};
-
-const struct pi3hdx1204_tuning pi3hdx1204_tuning = {
- .eq_ch0_ch1_offset = PI3HDX1204_EQ_DB710,
- .eq_ch2_ch3_offset = PI3HDX1204_EQ_DB710,
- .vod_offset = PI3HDX1204_VOD_130_ALL_CHANNELS,
- .de_offset = PI3HDX1204_DE_DB_MINUS5,
-};
-
-/*****************************************************************************
- * Board suspend / resume
- */
-#define PS8811_ACCESS_RETRIES 2
-
-static void board_chipset_resume(void)
-{
- int rv;
- int retry;
-
- /* Turn on the retimers */
- ioex_set_level(IOEX_USB_A0_RETIMER_EN, 1);
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 1);
-
- /* USB-A0 can run with default settings */
- for (retry = 0; retry < PS8811_ACCESS_RETRIES; ++retry) {
- int val;
-
- rv = i2c_read8(I2C_PORT_USBA0,
- PS8811_I2C_ADDR_FLAGS3 + PS8811_REG_PAGE1,
- PS8811_REG1_USB_BEQ_LEVEL, &val);
- if (!rv)
- break;
- }
- if (rv) {
- ioex_set_level(IOEX_USB_A0_RETIMER_EN, 0);
- CPRINTSUSB("A0: PS8811 not detected");
- }
-
- /* USB-A1 needs to increase gain to get over MB/DB connector */
- for (retry = 0; retry < PS8811_ACCESS_RETRIES; ++retry) {
- rv = i2c_write8(I2C_PORT_USBA1,
- PS8811_I2C_ADDR_FLAGS3 + PS8811_REG_PAGE1,
- PS8811_REG1_USB_BEQ_LEVEL,
- PS8811_BEQ_I2C_LEVEL_UP_13DB |
- PS8811_BEQ_PIN_LEVEL_UP_18DB);
- if (!rv)
- break;
- }
- if (rv) {
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 0);
- CPRINTSUSB("A1: PS8811 not detected");
- }
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 1);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_suspend(void)
-{
- ioex_set_level(IOEX_USB_A0_RETIMER_EN, 0);
- ioex_set_level(IOEX_USB_A1_RETIMER_EN, 0);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 0);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration
- */
-static void setup_mux(void)
-{
- if (ec_config_has_usbc1_retimer_ps8802()) {
- /*
- * Main MUX is PS8802, secondary MUX is modified FP5
- *
- * Replace usb_muxes[USBC_PORT_C1] with the PS8802
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_ps8802,
- sizeof(struct usb_mux));
-
- /* Set the AMD FP5 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_amd_fp5_usb_mux;
-
- /* Don't have the AMD FP5 flip */
- usbc1_amd_fp5_usb_mux.flags = USB_MUX_FLAG_SET_WITHOUT_FLIP;
-
- } else if (ec_config_has_usbc1_retimer_ps8818()) {
- /*
- * Main MUX is FP5, secondary MUX is PS8818
- *
- * Replace usb_muxes[USBC_PORT_C1] with the AMD FP5
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_amd_fp5_usb_mux,
- sizeof(struct usb_mux));
-
- /* Set the PS8818 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_ps8818;
- }
-}
-
-const struct pi3dpx1207_usb_control pi3dpx1207_controls[] = {
- [USBC_PORT_C0] = {
- .enable_gpio = IOEX_USB_C0_DATA_EN,
- .dp_enable_gpio = GPIO_USB_C0_IN_HPD,
- },
- [USBC_PORT_C1] = {
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3dpx1207_controls) == USBC_PORT_COUNT);
-
-const struct usb_mux usbc0_pi3dpx1207_usb_retimer = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3DPX1207_I2C_ADDR_FLAGS,
- .driver = &pi3dpx1207_usb_retimer,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_pi3dpx1207_usb_retimer,
- },
- [USBC_PORT_C1] = {
- /* Filled in dynamically at startup */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/*****************************************************************************
- * Use FW_CONFIG to set correct configuration.
- */
-
-int board_usbc1_retimer_inhpd = IOEX_USB_C1_HPD_IN_DB;
-
-static void setup_v0_charger(void)
-{
- chg_chips[0].i2c_port = I2C_PORT_CHARGER_V0;
-}
-/*
- * Use HOOK_PRIO_INIT_I2C so we re-map before charger_chips_init()
- * talks to the charger.
- */
-DECLARE_HOOK(HOOK_INIT, setup_v0_charger, HOOK_PRIO_INIT_I2C);
-
-static void setup_fw_config(void)
-{
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
-
- setup_mux();
-
- if (ec_config_has_mst_hub_rtd2141b())
- ioex_enable_interrupt(IOEX_MST_HPD_OUT);
-
- if (ec_config_has_hdmi_conn_hpd())
- ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB);
-}
-/* Use HOOK_PRIO_INIT_I2C + 2 to be after ioex_init(). */
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-/*****************************************************************************
- * Fan
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 3000,
- .rpm_start = 3000,
- .rpm_max = 4900,
-};
-const struct fan_t fans[] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-int board_get_temp(int idx, int *temp_k)
-{
- int mv;
- int temp_c;
- enum adc_channel channel;
-
- /* idx is the sensor index set in board temp_sensors[] */
- switch (idx) {
- case TEMP_SENSOR_CHARGER:
- channel = ADC_TEMP_SENSOR_CHARGER;
- break;
- case TEMP_SENSOR_SOC:
- /* thermistor is not powered in G3 */
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- channel = ADC_TEMP_SENSOR_SOC;
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- mv = adc_read_channel(channel);
- if (mv < 0)
- return EC_ERROR_INVAL;
-
- temp_c = thermistor_linear_interpolate(mv, &thermistor_info);
- *temp_k = C_TO_K(temp_c);
- return EC_SUCCESS;
-}
-
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_SOC,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_thermistor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- [EC_TEMP_THRESH_HALT] = C_TO_K(92),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(58),
-};
-
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- [EC_TEMP_THRESH_HALT] = C_TO_K(92),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(80),
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(58),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_CHARGER] = thermal_thermistor;
- thermal_params[TEMP_SENSOR_SOC] = thermal_thermistor;
- thermal_params[TEMP_SENSOR_CPU] = thermal_cpu;
-}
-DECLARE_HOOK(HOOK_INIT, setup_fans, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************
- * MST hub
- */
-
-static void mst_hpd_handler(void)
-{
- int hpd = 0;
-
- /*
- * Ensure level on GPIO_DP1_HPD matches IOEX_MST_HPD_OUT, in case
- * we got out of sync.
- */
- ioex_get_level(IOEX_MST_HPD_OUT, &hpd);
- gpio_set_level(GPIO_DP1_HPD, hpd);
- ccprints("MST HPD %d", hpd);
-}
-DECLARE_DEFERRED(mst_hpd_handler);
-
-void mst_hpd_interrupt(enum ioex_signal signal)
-{
- /*
- * Goal is to pass HPD through from DB OPT3 MST hub to AP's DP1.
- * Immediately invert GPIO_DP1_HPD, to pass through the edge on
- * IOEX_MST_HPD_OUT. Then check level after 2 msec debounce.
- */
- int hpd = !gpio_get_level(GPIO_DP1_HPD);
-
- gpio_set_level(GPIO_DP1_HPD, hpd);
- hook_call_deferred(&mst_hpd_handler_data, (2 * MSEC));
-}
-
-static void hdmi_hpd_handler(void)
-{
- int hpd = 0;
-
- /* Pass HPD through from DB OPT1 HDMI connector to AP's DP1. */
- ioex_get_level(IOEX_HDMI_CONN_HPD_3V3_DB, &hpd);
- gpio_set_level(GPIO_DP1_HPD, hpd);
- ccprints("HDMI HPD %d", hpd);
-}
-DECLARE_DEFERRED(hdmi_hpd_handler);
-
-void hdmi_hpd_interrupt(enum ioex_signal signal)
-{
- /* Debounce for 2 msec. */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
diff --git a/board/trembyle/board.h b/board/trembyle/board.h
deleted file mode 100644
index bfbd829ac1..0000000000
--- a/board/trembyle/board.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Trembyle board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_TREMBYLE
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_USBC_RETIMER_PI3DPX1207
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_AP18F4M,
- BATTERY_TYPE_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * TREMBYLE_MB_USBAC
- * USB-A0 Speed: 10 Gbps
- * Retimer: PS8811
- * USB-C0 Speed: 10 Gbps
- * Retimer: PI3DPX1207
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- TREMBYLE_MB_USBAC = 0,
-};
-
-/**
- * TREMBYLE_DB_T_OPT1_USBAC_HMDI
- * USB-A1 Speed: 10 Gbps
- * Retimer: PS8811
- * USB-C1 Speed: 10 Gbps
- * Retimer: PS8818
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: PI3HDX1204
- * MST Hub: none
- *
- * TREMBYLE_DB_T_OPT2_USBAC
- * USB-A1 Speed: 10 Gbps
- * Retimer: PS8811
- * USB-C1 Speed: 10 Gbps
- * Retimer: PS8802
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: no
- * Retimer: none
- * MST Hub: none
- *
- * TREMBYLE_DB_T_OPT3_USBAC_HDMI_MSTHUB
- * USB-A1 Speed: 10 Gbps
- * Retimer: PS8811
- * USB-C1 Speed: 10 Gbps
- * Retimer: PS8802
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: none
- * MST Hub: RTD2141B
- */
-enum ec_cfg_usb_db_type {
- TREMBYLE_DB_T_OPT1_USBAC_HMDI = 0,
- TREMBYLE_DB_T_OPT2_USBAC = 1,
- TREMBYLE_DB_T_OPT3_USBAC_HDMI_MSTHUB = 2,
-};
-
-#include "cbi_ec_fw_config.h"
-
-#define HAS_USBC1_RETIMER_PS8802 \
- (BIT(TREMBYLE_DB_T_OPT2_USBAC) | \
- BIT(TREMBYLE_DB_T_OPT3_USBAC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_usbc1_retimer_ps8802(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8802);
-}
-
-#define HAS_USBC1_RETIMER_PS8818 \
- (BIT(TREMBYLE_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_usbc1_retimer_ps8818(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8818);
-}
-
-#define HAS_HDMI_RETIMER_PI3HDX1204 \
- (BIT(TREMBYLE_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_RETIMER_PI3HDX1204);
-}
-
-#define HAS_MST_HUB_RTD2141B \
- (BIT(TREMBYLE_DB_T_OPT3_USBAC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_mst_hub_rtd2141b(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_MST_HUB_RTD2141B);
-}
-
-#define HAS_HDMI_CONN_HPD \
- (BIT(TREMBYLE_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_hdmi_conn_hpd(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_CONN_HPD);
-}
-
-#define PORT_TO_HPD(port) ((port == 0) \
- ? GPIO_USB_C0_HPD \
- : (ec_config_has_usbc1_retimer_ps8802()) \
- ? GPIO_DP1_HPD \
- : GPIO_DP2_HPD)
-
-extern const struct usb_mux usbc0_pi3dpx1207_usb_retimer;
-extern const struct usb_mux usbc1_ps8802;
-extern const struct usb_mux usbc1_ps8818;
-extern struct usb_mux usbc1_amd_fp5_usb_mux;
-
-void hdmi_hpd_interrupt(enum ioex_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/trembyle/build.mk b/board/trembyle/build.mk
deleted file mode 100644
index 4ca0cbd96f..0000000000
--- a/board/trembyle/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/trembyle/ec.tasklist b/board/trembyle/ec.tasklist
deleted file mode 100644
index 41b83cf4f3..0000000000
--- a/board/trembyle/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/trembyle/gpio.inc b/board/trembyle/gpio.inc
deleted file mode 100644
index 6cc3e6fe09..0000000000
--- a/board/trembyle/gpio.inc
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, bmi160_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 2), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(D, 3), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB_C0_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C0_IN_HPD, PIN(7, 3), GPIO_OUT_LOW) /* C0 IN Hotplug Detect */
-GPIO(DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(DP2_HPD, PIN(C, 1), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(EN_PWR_TOUCHPAD_PS2, PIN(C, 2), GPIO_INPUT) /* Touchpad Power */
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(USBC_PORT_C1, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(HDMI_CONN_HPD_3V3_DB, EXPIN(USBC_PORT_C1, 1, 0), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-IOEX_INT(MST_HPD_OUT, EXPIN(USBC_PORT_C1, 0, 3), GPIO_INT_BOTH, mst_hpd_interrupt)
-
-IOEX(USB_A0_RETIMER_EN, EXPIN(USBC_PORT_C0, 0, 0), GPIO_OUT_LOW) /* A0 Retimer Enable */
-IOEX(USB_A0_RETIMER_RST, EXPIN(USBC_PORT_C0, 0, 1), GPIO_OUT_LOW) /* A0 Retimer Reset */
-IOEX(USB_C0_FAULT_ODL, EXPIN(USBC_PORT_C0, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C0, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(USBC_PORT_C0, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(USBC_PORT_C0, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(USB_C0_DATA_EN, EXPIN(USBC_PORT_C0, 1, 4), GPIO_OUT_LOW) /* C0 Data Enable */
-IOEX(EN_USB_A0_5V, EXPIN(USBC_PORT_C0, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(USBC_PORT_C0, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-
-IOEX(USB_A1_RETIMER_EN, EXPIN(USBC_PORT_C1, 0, 0), GPIO_OUT_LOW) /* A1 Retimer Enable */
-IOEX(USB_A1_RETIMER_RST_DB, EXPIN(USBC_PORT_C1, 0, 1), GPIO_OUT_LOW) /* A1 Retimer Reset */
-IOEX(USB_C1_HPD_IN_DB, EXPIN(USBC_PORT_C1, 0, 2), GPIO_OUT_LOW) /* C1 HPD */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C1, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_MUX_RST_DB, EXPIN(USBC_PORT_C1, 1, 1), GPIO_OUT_LOW) /* C1 Mux Reset */
-IOEX(USB_C1_PPC_EN_L, EXPIN(USBC_PORT_C1, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(HDMI_DATA_EN_DB, EXPIN(USBC_PORT_C1, 1, 4), GPIO_OUT_HIGH) /* HDMI Retimer Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(USBC_PORT_C1, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-IOEX(EN_USB_A1_5V_DB, EXPIN(USBC_PORT_C1, 1, 6), GPIO_OUT_LOW) /* A1 5V Source Enable */
-IOEX(USB_A1_CHARGE_EN_DB_L, EXPIN(USBC_PORT_C1, 1, 7), GPIO_OUT_HIGH) /* A1 5V High Current Enable */
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC_POWER_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID_POWER_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(FCH_I2C_AUDIO_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_AUDIO_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(C, BIT(3)), 0, MODULE_PWM, 0) /* PWM0 LED */
-ALTERNATE(PIN_MASK(C, BIT(4)), 0, MODULE_PWM, 0) /* PWM2 - EC_FAN_PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* TA1 - EC_FAN_SPEED */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/trembyle/led.c b/board/trembyle/led.c
deleted file mode 100644
index 3e2d195a06..0000000000
--- a/board/trembyle/led.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2019 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-__override const int led_charge_lvl_2 = 100;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_RED, 2 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_RED, 2 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
-};
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_FULL_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
diff --git a/board/trembyle/vif_override.xml b/board/trembyle/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/trembyle/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/trogdor/battery.c b/board/trogdor/battery.c
deleted file mode 100644
index e95735eda7..0000000000
--- a/board/trogdor/battery.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all trogdor battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* AP16L5J */
- [BATTERY_AP16L5J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 0,
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP16L5J;
diff --git a/board/trogdor/board.c b/board/trogdor/board.c
deleted file mode 100644
index 0261ada9ff..0000000000
--- a/board/trogdor/board.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Trogdor board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#include "gpio_list.h"
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Use 80 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /*
- * Unmask 0x08 in [0] (KSO_00/KSI_03, the new location of Search key);
- * as it still uses the legacy location (KSO_01/KSI_00).
- */
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca
- },
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
-};
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 10000 },
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable interrupt for BMI160 sensor */
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-/* Mutexes */
-static struct mutex g_base_mutex;
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct accelgyro_saved_data_t g_bma255_data;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma255_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, to support lid angle calculation. */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
diff --git a/board/trogdor/board.h b/board/trogdor/board.h
deleted file mode 100644
index 346b135ea4..0000000000
--- a/board/trogdor/board.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Trogdor board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* TODO(waihong): Remove the following bringup features */
-#define CONFIG_BRINGUP
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands. */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define CONFIG_CMD_GPIO_EXTENDED
-#define CONFIG_CMD_POWERINDEBUG
-#define CONFIG_I2C_DEBUG
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-
-#define CONFIG_PWM_KBLIGHT
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* USB-A */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* Sensors */
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-
-/* BMA253 lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_LID_ANGLE_UPDATE
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_WP_L GPIO_EC_WP_ODL
-#define GPIO_SWITCHCAP_PG GPIO_SWITCHCAP_GPIO_1
-#define GPIO_ACOK_OD GPIO_CHG_ACOK_OD
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_DISPLIGHT,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_AP16L5J,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/trogdor/build.mk b/board/trogdor/build.mk
deleted file mode 100644
index 7fe4452669..0000000000
--- a/board/trogdor/build.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y+=battery.o
-board-y+=board.o
-board-y+=hibernate.o
-board-y+=led.o
-board-y+=switchcap.o
-board-y+=usbc_config.o
diff --git a/board/trogdor/ec.tasklist b/board/trogdor/ec.tasklist
deleted file mode 100644
index eb14fab204..0000000000
--- a/board/trogdor/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/trogdor/gpio.inc b/board/trogdor/gpio.inc
deleted file mode 100644
index aaac15839e..0000000000
--- a/board/trogdor/gpio.inc
+++ /dev/null
@@ -1,187 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-GPIO_INT(USB_A0_OC_ODL, PIN(D, 1), GPIO_INT_BOTH | GPIO_PULL_UP, usba_oc_interrupt)
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-/* Sensor interrupts */
-GPIO_INT(TABLET_MODE_L, PIN(C, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, bmi160_interrupt) /* Accelerometer/gyro interrupt */
-
-/*
- * EC_RST_ODL used to be a wake source from PSL mode. However, we disabled
- * the PSL mode. This GPIO does nothing now. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PMIC_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON, PIN(D, 5), GPIO_OUT_LOW) /* Enable switch cap */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Sensors */
-GPIO(LID_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT) /* Lid accel sensor interrupt */
-/* Control the gate for trackpad IRQ. High closes the gate.
- * This is always set low so that the OS can manage the trackpad. */
-GPIO(TRACKPAD_INT_GATE, PIN(7, 4), GPIO_OUT_LOW)
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_OUT_HIGH) /* Port-0 TCPC chip reset */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_OUT_HIGH) /* Port-1 TCPC chip reset */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* USB-A */
-GPIO(EN_USB_A_5V, PIN(8, 6), GPIO_OUT_LOW)
-GPIO(USB_A_CDP_ILIM_EN_L, PIN(7, 5), GPIO_OUT_HIGH) /* H:CDP, L:SDP. Only one USB-A port, always CDP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_Y_C0, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C0, PIN(C, 0), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_Y_C1, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_W_C1, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(KB_BL_PWM, PIN(8, 0), GPIO_INPUT) /* PWM3 */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Switchcap */
-/*
- * GPIO0 is configured as PVC_PG. When the chip in power down mode, it outputs
- * high-Z. Set pull-down to avoid floating.
- */
-GPIO(SWITCHCAP_GPIO_1, PIN(E, 2), GPIO_INPUT | GPIO_PULL_DOWN) /* Switchcap GPIO0 */
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(3, 7))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(6, 2))
-UNUSED(PIN(0, 4))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(5, 0))
-UNUSED(PIN(D, 3))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-
-/* Keyboard */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
-#define GPIO_KB_OUTPUT_COL2 (GPIO_OUT_LOW)
-
-/* Keyboard alternate functions */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO10 (GPIO07), KSO11 (GPIO06), KSO12 (GPIO05) */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO03 (GPIO16), KSO04 (GPIO15), KSO05 (GPIO14), KSO06 (GPIO13), KSO07 (GPIO12), KSO08 (GPIO11), KSO09 (GPIO10) */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* KSO00 (GPIO21), KSO01 (GPIO20) */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI2 (GPIO27), KSI3 (GPIO26), KSI4 (GPIO25), KSI5 (GPIO24), KSI6 (GPIO23), KSI7 (GPIO22) */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI0 (GPIO31), KSI1 (GPIO30) */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_KB_OUTPUT_COL2) /* KSO02 (GPIO17) */
diff --git a/board/trogdor/hibernate.c b/board/trogdor/hibernate.c
deleted file mode 100644
index 504a295463..0000000000
--- a/board/trogdor/hibernate.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "gpio.h"
-
-void board_hibernate(void)
-{
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- gpio_set_flags(GPIO_LID_ACCEL_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-}
diff --git a/board/trogdor/led.c b/board/trogdor/led.c
deleted file mode 100644
index 3af5776e12..0000000000
--- a/board/trogdor/led.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright 2019 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_RIGHT_LED,
- EC_LED_ID_LEFT_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_WHITE,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void side_led_set_color(int port, enum led_color color)
-{
- gpio_set_level(port ? GPIO_EC_CHG_LED_Y_C1 : GPIO_EC_CHG_LED_Y_C0,
- (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(port ? GPIO_EC_CHG_LED_W_C1 : GPIO_EC_CHG_LED_W_C0,
- (color == LED_WHITE) ? BAT_LED_ON : BAT_LED_OFF);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- int port;
-
- switch (led_id) {
- case EC_LED_ID_RIGHT_LED:
- port = 0;
- break;
- case EC_LED_ID_LEFT_LED:
- port = 1;
- break;
- default:
- return EC_ERROR_PARAM1;
- }
-
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- side_led_set_color(port, LED_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- side_led_set_color(port, LED_AMBER);
- else
- side_led_set_color(port, LED_OFF);
-
- return EC_SUCCESS;
-}
-
-/*
- * Set active charge port color to the parameter, turn off all others.
- * If no port is active (-1), turn off all LEDs.
- */
-static void set_active_port_color(enum led_color color)
-{
- int port = charge_manager_get_active_charge_port();
-
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED))
- side_led_set_color(0, (port == 0) ? color : LED_OFF);
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- side_led_set_color(1, (port == 1) ? color : LED_OFF);
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- /* Always indicate when charging, even in suspend. */
- set_active_port_color(LED_AMBER);
- break;
- case PWR_STATE_DISCHARGE:
- if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) {
- if (charge_get_percent() <= 10)
- side_led_set_color(0,
- (battery_ticks & 0x4) ? LED_WHITE : LED_OFF);
- else
- side_led_set_color(0, LED_OFF);
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED))
- side_led_set_color(1, LED_OFF);
- break;
- case PWR_STATE_ERROR:
- set_active_port_color((battery_ticks & 0x2) ?
- LED_WHITE : LED_OFF);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- set_active_port_color(LED_WHITE);
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE)
- set_active_port_color((battery_ticks & 0x4) ?
- LED_AMBER : LED_OFF);
- else
- set_active_port_color(LED_WHITE);
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_LEFT_LED, 1);
- led_auto_control(EC_LED_ID_RIGHT_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_WHITE : LED_OFF;
-
- led_auto_control(EC_LED_ID_LEFT_LED, 0);
- led_auto_control(EC_LED_ID_RIGHT_LED, 0);
-
- side_led_set_color(0, color);
- side_led_set_color(1, color);
-}
diff --git a/board/trogdor/switchcap.c b/board/trogdor/switchcap.c
deleted file mode 100644
index 16b0db6ef6..0000000000
--- a/board/trogdor/switchcap.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "gpio.h"
-#include "power/qcom.h"
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON, enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_ON);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return gpio_get_level(GPIO_SWITCHCAP_PG);
-}
diff --git a/board/trogdor/usbc_config.c b/board/trogdor/usbc_config.c
deleted file mode 100644
index dddc1d87a6..0000000000
--- a/board/trogdor/usbc_config.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Trogdor board-specific USB-C configuration */
-
-#include "bc12/pi3usb9201_public.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "config.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "ppc/sn5s330_public.h"
-#include "system.h"
-#include "tcpm/ps8xxx_public.h"
-#include "tcpm/tcpci.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "usbc_config.h"
-#include "usb_mux.h"
-#include "usbc_ocp.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* GPIO Interrupt Handlers */
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void usba_oc_deferred(void)
-{
- /* Use next number after all USB-C ports to indicate the USB-A port */
- board_overcurrent_event(CONFIG_USB_PD_PORT_MAX_COUNT,
- !gpio_get_level(GPIO_USB_A0_OC_ODL));
-}
-DECLARE_DEFERRED(usba_oc_deferred);
-
-void usba_oc_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&usba_oc_deferred_data, 0);
-}
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A_5V,
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Initialize board USC-C things */
-static void board_init_usbc(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
-
- /* Enable USB-A overcurrent interrupt */
- gpio_enable_interrupt(GPIO_USB_A0_OC_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init_usbc, HOOK_PRIO_DEFAULT);
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
- msleep(PS8805_FW_INIT_DELAY_MS);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
diff --git a/board/trogdor/usbc_config.h b/board/trogdor/usbc_config.h
deleted file mode 100644
index 75adf93b3c..0000000000
--- a/board/trogdor/usbc_config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Trogdor board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-#include "gpio.h"
-
-void tcpc_alert_event(enum gpio_signal signal);
-void usb0_evt(enum gpio_signal signal);
-void usb1_evt(enum gpio_signal signal);
-void usba_oc_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/trogdor/vif_override.xml b/board/trogdor/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/trogdor/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/trondo/battery.c b/board/trondo/battery.c
deleted file mode 100644
index 9b356a8efd..0000000000
--- a/board/trondo/battery.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC\011 L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC011;
diff --git a/board/trondo/board.c b/board/trondo/board.c
deleted file mode 100644
index 0493c603e0..0000000000
--- a/board/trondo/board.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Trondo if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_PASSIVE,
-};
-
-static void board_init(void)
-{
- /* Illuminate motherboard and daughter board LEDs equally to start. */
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- /* Routing length exceeds 205mm prior to connection to re-timer */
- if (port == USBC_PORT_C1)
- return TBT_SS_U32_GEN1_GEN2;
-
- /*
- * Thunderbolt-compatible mode not supported
- *
- * TODO (b/147726366): All the USB-C ports need to support same speed.
- * Need to fix once USB-C feature set is known for Volteer.
- */
- return TBT_SS_RES_0;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- /*
- * On Proto-1 only Port 1 supports TBT & USB4
- *
- * TODO (b/147732807): All the USB-C ports need to support same
- * features. Need to fix once USB-C feature set is known for Volteer.
- */
- return port == USBC_PORT_C1;
-}
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1_BLUE] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED2_GREEN] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED3_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 2400,
- },
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /* Run at a higher frequency than the color PWM signals to avoid
- * timing-based color shifts.
- */
- .freq = 4800,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-void board_reset_pd_mcu(void)
-{
- /* TODO(b/159025023): Trondo: check USB PD reset operation */
-}
-
-__override void board_cbi_init(void)
-{
- /* TODO(b/159025023): Trondo: check FW_CONFIG fields for USB DB type */
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- /* USB-C port 0 doesn't have a retimer */
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/trondo/board.h b/board/trondo/board.h
deleted file mode 100644
index ea0453ee82..0000000000
--- a/board/trondo/board.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-/* Reduce flash usage */
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* LED defines */
-#define CONFIG_LED_PWM
-/* Although there are 2 LEDs, they are both controlled by the same lines. */
-#define CONFIG_LED_PWM_COUNT 1
-
-/* Keyboard features */
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-
-/* BMI260 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-/*
- * TODO (b/149858568): remove CONFIG_BUTTONS_RUNTIME_CONFIG once board ID=0
- * support is stripped.
- */
-#define CONFIG_BUTTONS_RUNTIME_CONFIG
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_LGC011,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1_BLUE = 0,
- PWM_CH_LED2_GREEN,
- PWM_CH_LED3_RED,
- PWM_CH_LED4_SIDESEL,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/trondo/build.mk b/board/trondo/build.mk
deleted file mode 100644
index b78172d3cf..0000000000
--- a/board/trondo/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/trondo/ec.tasklist b/board/trondo/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/trondo/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/trondo/gpio.inc b/board/trondo/gpio.inc
deleted file mode 100644
index eee76df08b..0000000000
--- a/board/trondo/gpio.inc
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi260_interrupt)
-GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-/* The EC does not buffer this signal on Volteer. */
-UNIMPLEMENTED(PCH_DSW_PWROK)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Physical HPD pins are not needed on EC as these are configured by PMC */
-GPIO(USB_C0_DP_HPD, PIN(F, 3), GPIO_INPUT)
-GPIO(USB_C1_DP_HPD, PIN(7, 0), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(6, BIT(0)), 0, MODULE_PWM, 0) /* LED_SIDESEL_4_L */
-ALTERNATE(PIN_MASK(C, BIT(2) | BIT(3) | BIT(4)), 0, MODULE_PWM, 0) /* LED_{3,2,1}_L */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/trondo/led.c b/board/trondo/led.c
deleted file mode 100644
index 981469af53..0000000000
--- a/board/trondo/led.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Volteer
- */
-
-#include "charge_manager.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_pwm.h"
-#include "pwm.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-struct pwm_led_color_map led_color_map[] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 100, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- /* The green LED seems to be brighter than the others, so turn down
- * green from its natural level for these secondary colors.
- */
- [EC_LED_COLOR_YELLOW] = { 100, 70, 0 },
- [EC_LED_COLOR_WHITE] = { 100, 70, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 20, 0 },
-};
-
-struct pwm_led pwm_leds[] = {
- /* 2 RGB diffusers controlled by 1 set of 3 channels. */
- [PWM_LED0] = {
- .ch0 = PWM_CH_LED3_RED,
- .ch1 = PWM_CH_LED2_GREEN,
- .ch2 = PWM_CH_LED1_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 255;
- brightness_range[EC_LED_COLOR_GREEN] = 255;
- brightness_range[EC_LED_COLOR_BLUE] = 255;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
-
-/* Illuminates the LED on the side of the active charging port. If not charging,
- * illuminates both LEDs.
- */
-static void led_set_charge_port_tick(void)
-{
- int port;
- int side_select_duty;
-
- port = charge_manager_get_active_charge_port();
- switch (port) {
- case 0:
- side_select_duty = 100;
- break;
- case 1:
- side_select_duty = 0;
- break;
- default:
- side_select_duty = 50;
- }
-
- pwm_set_duty(PWM_CH_LED4_SIDESEL, side_select_duty);
-}
-DECLARE_HOOK(HOOK_TICK, led_set_charge_port_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/trondo/sensors.c b/board/trondo/sensors.c
deleted file mode 100644
index e9169abaae..0000000000
--- a/board/trondo/sensors.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI260 private data */
-static struct bmi_drv_data_t g_bmi260_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/146166425 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Rotation matrix for the lid accelerometer */
-/* TODO: b/146144170 - the accelerometer is on the motherboard for proto1
- * for testing. Once the sensor moves to the lid, the rotation matrix needs
- * to be updated for correct behavior.
- */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Note - BMA253 interrupt unused by EC */
-
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L);
- /* Enable interrupt for the BMI260 accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/trondo/vif_override.xml b/board/trondo/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/trondo/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/twinkie/board.c b/board/twinkie/board.c
deleted file mode 100644
index 6572f27281..0000000000
--- a/board/twinkie/board.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright 2014 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.
- */
-/* Twinkie dongle configuration */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "ec_version.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "ina2xx.h"
-#include "registers.h"
-#include "task.h"
-#include "usb_descriptor.h"
-#include "util.h"
-
-void cc2_event(enum gpio_signal signal)
-{
- ccprintf("INA!\n");
-}
-
-void vbus_event(enum gpio_signal signal)
-{
- ccprintf("INA!\n");
-}
-
-#include "gpio_list.h"
-
-/* Initialize board. */
-void board_config_pre_init(void)
-{
- /* enable SYSCFG clock */
- STM32_RCC_APB2ENR |= BIT(0);
- /* Remap USART DMA to match the USART driver and TIM2 DMA */
- STM32_SYSCFG_CFGR1 |= BIT(9) | BIT(10) /* Remap USART1 RX/TX DMA */
- | BIT(29);/* Remap TIM2 DMA */
- /* 40 MHz pin speed on UART PA9/PA10 */
- STM32_GPIO_OSPEEDR(GPIO_A) |= 0x003C0000;
- /* 40 MHz pin speed on TX clock out PB9 */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000C0000;
-}
-
-static void board_init(void)
-{
- /* Enable interrupts for INAs. */
- gpio_enable_interrupt(GPIO_CC2_ALERT_L);
- gpio_enable_interrupt(GPIO_VBUS_ALERT_L);
-
- /* Calibrate INA0 (VBUS) with 1mA/LSB scale */
- ina2xx_init(0, 0x8000, INA2XX_CALIB_1MA(15 /*mOhm*/));
- /* Disable INA1 (VCONN2) to avoid leaking current */
- ina2xx_init(1, 0, INA2XX_CALIB_1MA(15 /*mOhm*/));
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* USB PD CC lines sensing. Converted to mV (3300mV/4096). */
- [ADC_CH_CC1_PD] = {"CC1_PD", 3300, 4096, 0, STM32_AIN(1)},
- [ADC_CH_CC2_PD] = {"CC2_PD", 3300, 4096, 0, STM32_AIN(3)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"master", I2C_PORT_MASTER, 100, GPIO_I2C_SCL, GPIO_I2C_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const void * const usb_strings[] = {
- [USB_STR_DESC] = usb_string_desc,
- [USB_STR_VENDOR] = USB_STRING_DESC("Google Inc."),
- [USB_STR_PRODUCT] = USB_STRING_DESC("Twinkie"),
- [USB_STR_VERSION] = USB_STRING_DESC(CROS_EC_VERSION32),
- [USB_STR_SNIFFER] = USB_STRING_DESC("USB-PD Sniffer"),
- [USB_STR_CONSOLE_NAME] = USB_STRING_DESC("Shell"),
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
diff --git a/board/twinkie/board.h b/board/twinkie/board.h
deleted file mode 100644
index 3d601ee979..0000000000
--- a/board/twinkie/board.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* Twinkie dongle configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART1 (PA9/PA10) */
-#define CONFIG_UART_CONSOLE 1
-
-/* Optional features */
-#define CONFIG_USB
-#define CONFIG_USB_BOS
-#define CONFIG_USB_CONSOLE
-#define CONFIG_WEBUSB_URL "storage.googleapis.com/webtwinkie.org/tool.html"
-
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_CUSTOM_PDO
-#define CONFIG_USB_PD_DUAL_ROLE
-#define CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_PD_USE_DAC_AS_REF
-#define CONFIG_HW_CRC
-
-#ifndef HAS_TASK_PD_C0 /* PD sniffer mode */
-#undef CONFIG_DMA_DEFAULT_HANDLERS
-#define CONFIG_USB_PD_TX_PHY_ONLY
-/* override the comparator interrupt handler */
-#undef CONFIG_USB_PD_RX_COMP_IRQ
-#endif
-
-#define CONFIG_ADC
-#define CONFIG_BOARD_PRE_INIT
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-#define CONFIG_INA231
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_TASK_PROFILING
-
-/* I2C ports configuration */
-#define I2C_PORT_MASTER 0
-
-/* USB configuration */
-#define CONFIG_USB_PID 0x500A
-/* By default, enable all console messages excepted USB */
-#define CC_DEFAULT (CC_ALL & ~CC_MASK(CC_USB))
-
-/*
- * Allow dangerous commands all the time, since we don't have a write protect
- * switch.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#ifndef __ASSEMBLER__
-
-#include <stdint.h>
-
-void sniffer_init(void);
-
-int wait_packet(int pol, uint32_t min_edges, uint32_t timeout_us);
-
-int expect_packet(int pol, uint8_t cmd, uint32_t timeout_us);
-
-uint8_t recording_enable(uint8_t mask);
-
-void trace_packets(void);
-
-void set_trace_mode(int mode);
-
-/* Timer selection */
-#define TIM_CLOCK_MSB 3
-#define TIM_CLOCK_LSB 15
-#define TIM_ADC 16
-
-#include "gpio_signal.h"
-
-/* ADC signal */
-enum adc_channel {
- ADC_CH_CC1_PD = 0,
- ADC_CH_CC2_PD,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-
-/* USB string indexes */
-enum usb_strings {
- USB_STR_DESC = 0,
- USB_STR_VENDOR,
- USB_STR_PRODUCT,
- USB_STR_VERSION,
- USB_STR_SNIFFER,
- USB_STR_CONSOLE_NAME,
-
- USB_STR_COUNT
-};
-
-/* Standard-current Rp */
-#define PD_SRC_VNC PD_SRC_DEF_VNC_MV
-#define PD_SRC_RD_THRESHOLD PD_SRC_DEF_RD_THRESH_MV
-
-/* delay necessary for the voltage transition on the power supply */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 50000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 50000 /* us */
-
-/* Define typical operating power and max power */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-#endif /* !__ASSEMBLER__ */
-
-/* USB interface indexes (use define rather than enum to expand them) */
-#define USB_IFACE_CONSOLE 0
-#define USB_IFACE_VENDOR 1
-
-/* USB endpoint indexes (use define rather than enum to expand them) */
-#define USB_EP_CONTROL 0
-#define USB_EP_CONSOLE 1
-
-/*
- * Endpoint 2 is missing because the console used to use two bidirectional
- * endpoints. It now uses a single bidirectional endpoint relying on the
- * direction bit as an additional bit identifying the endpoint used. It is
- * safe to reallocate endpoint 2 in the future.
- */
-
-#ifdef HAS_TASK_SNIFFER
-#define USB_EP_SNIFFER 3
-#define USB_EP_COUNT 4
-#define USB_IFACE_COUNT 2
-#else
-#define USB_EP_COUNT 2
-/* No IFACE_VENDOR for the sniffer */
-#define USB_IFACE_COUNT 1
-#endif
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/twinkie/build.mk b/board/twinkie/build.mk
deleted file mode 100644
index 6fc2067d8f..0000000000
--- a/board/twinkie/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F072B
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f07x
-
-board-y=board.o usb_pd_policy.o injector.o simpletrace.o
-board-$(HAS_TASK_SNIFFER)+=sniffer.o
diff --git a/board/twinkie/ec.tasklist b/board/twinkie/ec.tasklist
deleted file mode 100644
index 600df47c60..0000000000
--- a/board/twinkie/ec.tasklist
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RO(SNIFFER, sniffer_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/twinkie/gpio.inc b/board/twinkie/gpio.inc
deleted file mode 100644
index 551cb73748..0000000000
--- a/board/twinkie/gpio.inc
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2014 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(CC2_ALERT_L, PIN(A, 7), GPIO_INT_BOTH | GPIO_PULL_UP, cc2_event)
-GPIO_INT(VBUS_ALERT_L, PIN(B, 2), GPIO_INT_BOTH | GPIO_PULL_UP, vbus_event)
-
-GPIO(CC1_EN, PIN(A, 0), GPIO_OUT_HIGH)
-GPIO(CC1_PD, PIN(A, 1), GPIO_ANALOG)
-GPIO(CC2_EN, PIN(A, 2), GPIO_OUT_HIGH)
-GPIO(CC2_PD, PIN(A, 3), GPIO_ANALOG)
-GPIO(DAC, PIN(A, 4), GPIO_ANALOG)
-GPIO(CC2_TX_DATA, PIN(A, 6), GPIO_OUT_LOW)
-
-GPIO(CC1_RA, PIN(A, 8), GPIO_ODR_HIGH)
-GPIO(USB_DM, PIN(A, 11), GPIO_ANALOG)
-GPIO(USB_DP, PIN(A, 12), GPIO_ANALOG)
-GPIO(CC1_RPUSB, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(CC1_RP1A5, PIN(A, 14), GPIO_ODR_HIGH)
-GPIO(CC1_RP3A0, PIN(A, 15), GPIO_ODR_HIGH)
-GPIO(CC2_RPUSB, PIN(B, 0), GPIO_ODR_HIGH)
-
-GPIO(CC1_TX_EN, PIN(B, 1), GPIO_OUT_LOW)
-GPIO(CC2_TX_EN, PIN(B, 3), GPIO_OUT_LOW)
-GPIO(CC1_TX_DATA, PIN(B, 4), GPIO_OUT_LOW)
-GPIO(CC1_RD, PIN(B, 5), GPIO_ODR_HIGH)
-GPIO(I2C_SCL, PIN(B, 6), GPIO_INPUT)
-GPIO(I2C_SDA, PIN(B, 7), GPIO_INPUT)
-GPIO(CC2_RD, PIN(B, 8), GPIO_ODR_HIGH)
-GPIO(LED_G_L, PIN(B, 11), GPIO_ODR_HIGH)
-GPIO(LED_R_L, PIN(B, 13), GPIO_ODR_HIGH)
-GPIO(LED_B_L, PIN(B, 14), GPIO_ODR_HIGH)
-GPIO(CC2_RA, PIN(B, 15), GPIO_ODR_HIGH)
-GPIO(CC2_RP1A5, PIN(C, 14), GPIO_ODR_HIGH)
-GPIO(CC2_RP3A0, PIN(C, 15), GPIO_ODR_HIGH)
-
-/* Unimplemented signals which we need to emulate for now */
-UNIMPLEMENTED(ENTERING_RW)
-UNIMPLEMENTED(WP_L)
-
-ALTERNATE(PIN_MASK(A, 0x0020), 0, MODULE_USB_PD, 0) /* SPI1: SCK(PA5) */
-ALTERNATE(PIN_MASK(B, 0x0200), 2, MODULE_USB_PD, 0) /* TIM17_CH1: PB9 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, GPIO_PULL_UP) /* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(B, 0x00C0), 1, MODULE_I2C, 0) /* I2C1 MASTER:PB6/7 */
diff --git a/board/twinkie/injector.c b/board/twinkie/injector.c
deleted file mode 100644
index cae1d3557f..0000000000
--- a/board/twinkie/injector.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "dma.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "hwtimer.h"
-#include "injector.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "usb_pd_config.h"
-#include "util.h"
-#include "watchdog.h"
-
-/* FSM command/data buffer */
-static uint32_t inj_cmds[INJ_CMD_COUNT];
-
-/* Current polarity for sending operations */
-static enum inj_pol inj_polarity = INJ_POL_CC1;
-
-/*
- * CCx Resistors control definition
- *
- * Resistor control GPIOs :
- * CC1_RA A8
- * CC1_RPUSB A13
- * CC1_RP1A5 A14
- * CC1_RP3A0 A15
- * CC2_RPUSB B0
- * CC1_RD B5
- * CC2_RD B8
- * CC2_RA B15
- * CC2_RP1A5 C14
- * CC2_RP3A0 C15
- */
-static const struct res_cfg {
- const char *name;
- struct config {
- enum gpio_signal signal;
- uint32_t flags;
- } cfgs[2];
-} res_cfg[] = {
- [INJ_RES_NONE] = {"NONE"},
- [INJ_RES_RA] = {"RA", {{GPIO_CC1_RA, GPIO_ODR_LOW},
- {GPIO_CC2_RA, GPIO_ODR_LOW} } },
- [INJ_RES_RD] = {"RD", {{GPIO_CC1_RD, GPIO_ODR_LOW},
- {GPIO_CC2_RD, GPIO_ODR_LOW} } },
- [INJ_RES_RPUSB] = {"RPUSB", {{GPIO_CC1_RPUSB, GPIO_OUT_HIGH},
- {GPIO_CC2_RPUSB, GPIO_OUT_HIGH} } },
- [INJ_RES_RP1A5] = {"RP1A5", {{GPIO_CC1_RP1A5, GPIO_OUT_HIGH},
- {GPIO_CC2_RP1A5, GPIO_OUT_HIGH} } },
- [INJ_RES_RP3A0] = {"RP3A0", {{GPIO_CC1_RP3A0, GPIO_OUT_HIGH},
- {GPIO_CC2_RP3A0, GPIO_OUT_HIGH} } },
-};
-
-#define CC_RA(cc) (cc < PD_SRC_RD_THRESHOLD)
-#define CC_RD(cc) ((cc > PD_SRC_RD_THRESHOLD) && (cc < PD_SRC_VNC))
-#define GET_POLARITY(cc1, cc2) (CC_RD(cc2) || CC_RA(cc1))
-
-#ifdef HAS_TASK_SNIFFER
-/* we don't have the default DMA handlers */
-void dma_event_interrupt_channel_3(void)
-{
- if (STM32_DMA1_REGS->isr & STM32_DMA_ISR_TCIF(STM32_DMAC_CH3)) {
- dma_clear_isr(STM32_DMAC_CH3);
- task_wake(TASK_ID_CONSOLE);
- }
-}
-DECLARE_IRQ(STM32_IRQ_DMA_CHANNEL_2_3, dma_event_interrupt_channel_3, 3);
-#endif
-
-static void twinkie_init(void)
-{
- /* configure TX clock pins */
- gpio_config_module(MODULE_USB_PD, 1);
- /* Initialize physical layer */
- pd_hw_init(0, PD_ROLE_SINK);
-}
-DECLARE_HOOK(HOOK_INIT, twinkie_init, HOOK_PRIO_DEFAULT);
-
-/* ------ Helper functions ------ */
-
-static inline int disable_tracing_save(void)
-{
- int tr_enabled = STM32_EXTI_IMR & EXTI_COMP_MASK(0);
-
- if (tr_enabled)
- pd_rx_disable_monitoring(0);
- return tr_enabled;
-}
-
-static inline void enable_tracing_ifneeded(int flag)
-{
- if (flag)
- pd_rx_enable_monitoring(0);
-}
-
-static int send_message(int polarity, uint16_t header,
- uint8_t cnt, const uint32_t *data)
-{
- int bit_len;
-
- /* Don't get preempted by the tracing */
- int flag = disable_tracing_save();
-
- bit_len = prepare_message(0, header, cnt, data);
- /* Transmit the packet */
- pd_start_tx(0, polarity, bit_len);
- pd_tx_done(0, polarity);
-
- enable_tracing_ifneeded(flag);
-
- return bit_len;
-}
-
-static int send_hrst(int polarity)
-{
- int off;
- int flag = disable_tracing_save();
- /* 64-bit preamble */
- off = pd_write_preamble(0);
- /* Hard-Reset: 3x RST-1 + 1x RST-2 */
- off = pd_write_sym(0, off, 0b0011010101); /* RST-1 = 00111 */
- off = pd_write_sym(0, off, 0b0011010101); /* RST-1 = 00111 */
- off = pd_write_sym(0, off, 0b0011010101); /* RST-1 = 00111 */
- off = pd_write_sym(0, off, 0b0101001101); /* RST-2 = 11001 */
- /* Ensure that we have a final edge */
- off = pd_write_last_edge(0, off);
- /* Transmit the packet */
- pd_start_tx(0, polarity, off);
- pd_tx_done(0, polarity);
- enable_tracing_ifneeded(flag);
-
- return off;
-}
-
-static void set_resistor(int pol, enum inj_res res)
-{
- /* reset everything on one CC to high impedance */
- gpio_set_flags(res_cfg[INJ_RES_RA].cfgs[pol].signal, GPIO_ODR_HIGH);
- gpio_set_flags(res_cfg[INJ_RES_RD].cfgs[pol].signal, GPIO_ODR_HIGH);
- gpio_set_flags(res_cfg[INJ_RES_RPUSB].cfgs[pol].signal, GPIO_ODR_HIGH);
- gpio_set_flags(res_cfg[INJ_RES_RP1A5].cfgs[pol].signal, GPIO_ODR_HIGH);
- gpio_set_flags(res_cfg[INJ_RES_RP3A0].cfgs[pol].signal, GPIO_ODR_HIGH);
-
- /* connect the resistor if needed */
- if (res != INJ_RES_NONE)
- gpio_set_flags(res_cfg[res].cfgs[pol].signal,
- res_cfg[res].cfgs[pol].flags);
-}
-
-static enum inj_pol guess_polarity(enum inj_pol pol)
-{
- int cc1_volt, cc2_volt;
- /* polarity forced by the user */
- if (pol == INJ_POL_CC1 || pol == INJ_POL_CC2)
- return pol;
- /* Auto-detection */
- cc1_volt = pd_adc_read(0, 0);
- cc2_volt = pd_adc_read(0, 1);
- return GET_POLARITY(cc1_volt, cc2_volt);
-}
-
-/* ------ FSM commands ------ */
-
-static void fsm_send(uint32_t w)
-{
- uint16_t header = INJ_ARG0(w);
- int idx = INJ_ARG1(w);
- uint8_t cnt = INJ_ARG2(w);
-
- /* Buffer overflow */
- if (idx > INJ_CMD_COUNT)
- return;
-
- send_message(inj_polarity, header, cnt, inj_cmds + idx);
-}
-
-static void fsm_wave(uint32_t w)
-{
- uint16_t bit_len = INJ_ARG0(w);
- int idx = INJ_ARG1(w);
- int off = 0;
- int nbwords = DIV_ROUND_UP(bit_len, 32);
- int i;
- int flag;
-
- /* Buffer overflow */
- if (idx + nbwords > INJ_CMD_COUNT)
- return;
-
- flag = disable_tracing_save();
-
- for (i = idx; i < idx + nbwords; i++)
- off = encode_word(0, off, inj_cmds[i]);
- /* Ensure that we have a final edge */
- off = pd_write_last_edge(0, bit_len);
- /* Transmit the packet */
- pd_start_tx(0, inj_polarity, off);
- pd_tx_done(0, inj_polarity);
- enable_tracing_ifneeded(flag);
-}
-
-static void fsm_wait(uint32_t w)
-{
-#ifdef HAS_TASK_SNIFFER
- uint32_t timeout_ms = INJ_ARG0(w);
- uint32_t min_edges = INJ_ARG12(w);
-
- wait_packet(inj_polarity, min_edges, timeout_ms * 1000);
-#endif
-}
-
-static void fsm_expect(uint32_t w)
-{
- uint32_t timeout_ms = INJ_ARG0(w);
- uint8_t cmd = INJ_ARG2(w);
-
- expect_packet(inj_polarity, cmd, timeout_ms * 1000);
-}
-static void fsm_get(uint32_t w)
-{
- int store_idx = INJ_ARG0(w);
- int param_idx = INJ_ARG1(w);
- uint32_t *store_ptr = inj_cmds + store_idx;
-
- /* Buffer overflow */
- if (store_idx > INJ_CMD_COUNT)
- return;
-
- switch (param_idx) {
- case INJ_GET_CC:
- *store_ptr = pd_adc_read(0, 0) | (pd_adc_read(0, 1) << 16);
- break;
- case INJ_GET_VBUS:
- *store_ptr = (ina2xx_get_voltage(0) & 0xffff) |
- ((ina2xx_get_current(0) & 0xffff) << 16);
- break;
- case INJ_GET_VCONN:
- *store_ptr = (ina2xx_get_voltage(1) & 0xffff) |
- ((ina2xx_get_current(1) & 0xffff) << 16);
- break;
- case INJ_GET_POLARITY:
- *store_ptr = inj_polarity;
- break;
- default:
- /* Do nothing */
- break;
- }
-}
-
-static void fsm_set(uint32_t w)
-{
- int val = INJ_ARG0(w);
- int idx = INJ_ARG1(w);
-
- switch (idx) {
- case INJ_SET_RESISTOR1:
- case INJ_SET_RESISTOR2:
- set_resistor(idx - INJ_SET_RESISTOR1, val);
- break;
- case INJ_SET_RECORD:
-#ifdef HAS_TASK_SNIFFER
- recording_enable(val);
-#endif
- break;
- case INJ_SET_TX_SPEED:
- pd_set_clock(0, val * 1000);
- break;
- case INJ_SET_RX_THRESH:
- /* set DAC voltage (Vref = 3.3V) */
- STM32_DAC_DHR12RD = val * 4096 / 3300;
- break;
- case INJ_SET_POLARITY:
- inj_polarity = guess_polarity(val);
- break;
- case INJ_SET_TRACE:
- set_trace_mode(val);
- break;
- default:
- /* Do nothing */
- break;
- }
-}
-
-static int fsm_run(int index)
-{
- while (index < INJ_CMD_COUNT) {
- uint32_t w = inj_cmds[index];
- int cmd = INJ_CMD(w);
- switch (cmd) {
- case INJ_CMD_END:
- return index;
- case INJ_CMD_SEND:
- fsm_send(w);
- break;
- case INJ_CMD_WAVE:
- fsm_wave(w);
- break;
- case INJ_CMD_HRST:
- send_hrst(inj_polarity);
- break;
- case INJ_CMD_WAIT:
- fsm_wait(w);
- break;
- case INJ_CMD_GET:
- fsm_get(w);
- break;
- case INJ_CMD_SET:
- fsm_set(w);
- break;
- case INJ_CMD_JUMP:
- index = INJ_ARG0(w);
- continue; /* do not increment index */
- case INJ_CMD_EXPCT:
- fsm_expect(w);
- break;
- case INJ_CMD_NOP:
- default:
- /* Do nothing */
- break;
- }
- index += 1;
- watchdog_reload();
- }
- return index;
-}
-
-/* ------ Console commands ------ */
-
-static int hex8tou32(char *str, uint32_t *val)
-{
- char *ptr = str;
- uint32_t tmp = 0;
-
- while (*ptr) {
- char c = *ptr++;
- if (c >= '0' && c <= '9')
- tmp = (tmp << 4) + (c - '0');
- else if (c >= 'A' && c <= 'F')
- tmp = (tmp << 4) + (c - 'A' + 10);
- else if (c >= 'a' && c <= 'f')
- tmp = (tmp << 4) + (c - 'a' + 10);
- else
- return EC_ERROR_INVAL;
- }
- if (ptr != str + 8)
- return EC_ERROR_INVAL;
- *val = tmp;
- return EC_SUCCESS;
-}
-
-static int cmd_fsm(int argc, char **argv)
-{
- int index;
- char *e;
-
- if (argc < 1)
- return EC_ERROR_PARAM2;
-
- index = strtoi(argv[0], &e, 10);
- if (*e)
- return EC_ERROR_PARAM2;
- index = fsm_run(index);
- ccprintf("FSM Done %d\n", index);
-
- return EC_SUCCESS;
-}
-
-
-static int cmd_send(int argc, char **argv)
-{
- int pol, cnt, i;
- uint16_t header;
- uint32_t data[VDO_MAX_SIZE];
- char *e;
- int bit_len;
-
- cnt = argc - 2;
- if (argc < 2 || cnt > VDO_MAX_SIZE)
- return EC_ERROR_PARAM_COUNT;
-
- pol = strtoi(argv[0], &e, 10) - 1;
- if (*e || pol > 1 || pol < 0)
- return EC_ERROR_PARAM2;
- header = strtoi(argv[1], &e, 16);
- if (*e)
- return EC_ERROR_PARAM3;
-
- for (i = 0; i < cnt; i++)
- if (hex8tou32(argv[i+2], data + i))
- return EC_ERROR_INVAL;
-
- bit_len = send_message(pol, header, cnt, data);
- ccprintf("Sent CC%d %04x + %d = %d\n", pol + 1, header, cnt, bit_len);
-
- return EC_SUCCESS;
-}
-
-static int cmd_cc_level(int argc, char **argv)
-{
- ccprintf("CC1 = %d mV ; CC2 = %d mV\n",
- pd_adc_read(0, 0), pd_adc_read(0, 1));
-
- return EC_SUCCESS;
-}
-
-static int cmd_resistor(int argc, char **argv)
-{
- int p, r;
-
- if (argc < 2)
- return EC_ERROR_PARAM_COUNT;
-
- for (p = 0; p < 2; p++) {
- int is_set = 0;
- for (r = 0; r < ARRAY_SIZE(res_cfg); r++)
- if (strcasecmp(res_cfg[r].name, argv[p]) == 0) {
- set_resistor(p, r);
- is_set = 1;
- break;
- }
- /* Unknown name : set to No resistor */
- if (!is_set)
- set_resistor(p, INJ_RES_NONE);
- }
- return EC_SUCCESS;
-}
-
-static int cmd_tx_clock(int argc, char **argv)
-{
- int freq;
- char *e;
-
- if (argc < 1)
- return EC_ERROR_PARAM2;
-
- freq = strtoi(argv[0], &e, 10);
- if (*e)
- return EC_ERROR_PARAM2;
- pd_set_clock(0, freq);
- ccprintf("TX frequency = %d Hz\n", freq);
-
- return EC_SUCCESS;
-}
-
-static int cmd_rx_threshold(int argc, char **argv)
-{
- int mv;
- char *e;
-
- if (argc < 1)
- return EC_ERROR_PARAM2;
-
- mv = strtoi(argv[0], &e, 10);
- if (*e)
- return EC_ERROR_PARAM2;
-
- /* set DAC voltage (Vref = 3.3V) */
- STM32_DAC_DHR12RD = mv * 4096 / 3300;
- ccprintf("RX threshold = %d mV\n", mv);
-
- return EC_SUCCESS;
-}
-
-static int cmd_ina_dump(int argc, char **argv, int index)
-{
- if (index == 1) { /* VCONN INA is off by default, switch it on */
- ina2xx_write(index, INA2XX_REG_CONFIG, 0x4123);
- /*
- * wait for the end of conversion : 2x 1.1ms as defined
- * by the Vb and Vsh CT bits in the CONFIG register above.
- */
- udelay(2200);
- }
-
- ccprintf("%s = %d mV ; %d mA\n", index == 0 ? "VBUS" : "VCONN",
- ina2xx_get_voltage(index), ina2xx_get_current(index));
-
- if (index == 1) /* power off VCONN INA */
- ina2xx_write(index, INA2XX_REG_CONFIG, 0);
-
- return EC_SUCCESS;
-}
-
-static int cmd_bufwr(int argc, char **argv)
-{
- int idx, cnt, i;
- char *e;
-
- cnt = argc - 1;
- if (argc < 2 || cnt > INJ_CMD_COUNT)
- return EC_ERROR_PARAM_COUNT;
-
- idx = strtoi(argv[0], &e, 10);
- if (*e || idx + cnt > INJ_CMD_COUNT)
- return EC_ERROR_PARAM2;
-
- for (i = 0; i < cnt; i++)
- if (hex8tou32(argv[i+1], inj_cmds + idx + i))
- return EC_ERROR_INVAL;
-
- return EC_SUCCESS;
-}
-
-static int cmd_bufrd(int argc, char **argv)
-{
- int idx, i;
- int cnt = 1;
- char *e;
-
- if (argc < 1)
- return EC_ERROR_PARAM_COUNT;
-
- idx = strtoi(argv[0], &e, 10);
- if (*e || idx > INJ_CMD_COUNT)
- return EC_ERROR_PARAM2;
-
- if (argc >= 2)
- cnt = strtoi(argv[1], &e, 10);
-
- if (*e || idx + cnt > INJ_CMD_COUNT)
- return EC_ERROR_PARAM3;
-
- for (i = idx; i < idx + cnt; i++)
- ccprintf("%08x ", inj_cmds[i]);
- ccprintf("\n");
-
- return EC_SUCCESS;
-}
-
-static int cmd_sink(int argc, char **argv)
-{
- /*
- * Jump to the RW section which should contain a firmware acting
- * as a USB PD sink
- */
- system_run_image_copy(EC_IMAGE_RW);
-
- return EC_SUCCESS;
-}
-
-static int cmd_trace(int argc, char **argv)
-{
- if (argc < 1)
- return EC_ERROR_PARAM_COUNT;
-
- if (!strcasecmp(argv[0], "on") ||
- !strcasecmp(argv[0], "1"))
- set_trace_mode(TRACE_MODE_ON);
- else if (!strcasecmp(argv[0], "raw"))
- set_trace_mode(TRACE_MODE_RAW);
- else if (!strcasecmp(argv[0], "off") ||
- !strcasecmp(argv[0], "0"))
- set_trace_mode(TRACE_MODE_OFF);
- else
- return EC_ERROR_PARAM2;
-
- return EC_SUCCESS;
-}
-
-static int command_tw(int argc, char **argv)
-{
- if (!strcasecmp(argv[1], "send"))
- return cmd_send(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "fsm"))
- return cmd_fsm(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "bufwr"))
- return cmd_bufwr(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "bufrd"))
- return cmd_bufrd(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "cc"))
- return cmd_cc_level(argc - 2, argv + 2);
- else if (!strncasecmp(argv[1], "resistor", 3))
- return cmd_resistor(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "sink"))
- return cmd_sink(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "trace"))
- return cmd_trace(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "txclock"))
- return cmd_tx_clock(argc - 2, argv + 2);
- else if (!strncasecmp(argv[1], "rxthresh", 8))
- return cmd_rx_threshold(argc - 2, argv + 2);
- else if (!strcasecmp(argv[1], "vbus"))
- return cmd_ina_dump(argc - 2, argv + 2, 0);
- else if (!strcasecmp(argv[1], "vconn"))
- return cmd_ina_dump(argc - 2, argv + 2, 1);
- else
- return EC_ERROR_PARAM1;
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(twinkie, command_tw,
- "[send|fsm|cc|resistor|txclock|rxthresh|vbus|vconn]",
- "Manual Twinkie tweaking");
diff --git a/board/twinkie/injector.h b/board/twinkie/injector.h
deleted file mode 100644
index 4a33f8ecf0..0000000000
--- a/board/twinkie/injector.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#ifndef __CROS_EC_INJECTOR_H
-#define __CROS_EC_INJECTOR_H
-
-/*
- * Finite state machine definition for sending complex sequences
- *
- * the 32-bit commands have the following definition :
- * [31:28] [27:0]
- * Command arg
- * INJ_CMD_x
- * [27:16] [15:0]
- * arg12 arg0
- * [27:24] [23:16] [15:0]
- * arg2 arg1 arg0
- */
-
-/* Macros to extract values from FSM command words */
-#define INJ_CMD(w) ((w) >> 28)
-#define INJ_ARG(w) ((w) & 0x0FFFFFFF)
-#define INJ_ARG0(w) ((w) & 0x0000FFFF)
-#define INJ_ARG1(w) (((w) >> 16) & 0xFF)
-#define INJ_ARG2(w) (((w) >> 24) & 0xF)
-#define INJ_ARG12(w) (((w) >> 16) & 0xFFF)
-
-enum inj_cmd {
- INJ_CMD_END = 0x0, /* stop the FSM */
- INJ_CMD_SEND = 0x1, /* Send message on CCx */
- /* arg0: header arg1/2:payload index/count */
- INJ_CMD_WAVE = 0x2, /* Send arbitrary waveform */
- /* stored at index arg1 of len arg0 */
- INJ_CMD_HRST = 0x3, /* Send Hard Reset on CCx */
- INJ_CMD_WAIT = 0x4, /* Wait for arg12 edges if arg12 != 0 */
- /* and timeout after arg0 ms */
- INJ_CMD_GET = 0x5, /* Get parameter arg1 (INJ_GET_x) at index arg0 */
- INJ_CMD_SET = 0x6, /* Set parameter arg1 (INJ_SET_x) with arg0 */
- INJ_CMD_JUMP = 0x8, /* Jump to index (as arg0) */
- INJ_CMD_EXPCT = 0xC, /* Expect a packet with command arg2 */
- /* and timeout after arg0 ms */
- INJ_CMD_NOP = 0xF, /* No-Operation */
-};
-
-enum inj_set {
- INJ_SET_RESISTOR1 = 0, /* CC1 resistor as arg0 (INJ_RES_x) */
- INJ_SET_RESISTOR2 = 1, /* CC2 resistor as arg0 (INJ_RES_x) */
- INJ_SET_RECORD = 2, /* Recording on/off */
- INJ_SET_TX_SPEED = 3, /* TX frequency is arg0 kHz */
- INJ_SET_RX_THRESH = 4, /* RX voltage threshold is arg0 mV */
- INJ_SET_POLARITY = 5, /* Polarity for other operations (INJ_POL_CC) */
- INJ_SET_TRACE = 6, /* Text packet trace on/raw/off */
-};
-
-enum inj_get {
- INJ_GET_CC = 0, /* CC1/CC2 voltages in mV */
- INJ_GET_VBUS = 1, /* VBUS voltage in mV and current in mA */
- INJ_GET_VCONN = 2, /* VCONN voltage in mV and current in mA */
- INJ_GET_POLARITY = 3, /* Current polarity (INJ_POL_CC) */
-};
-
-enum inj_res {
- INJ_RES_NONE = 0,
- INJ_RES_RA = 1,
- INJ_RES_RD = 2,
- INJ_RES_RPUSB = 3,
- INJ_RES_RP1A5 = 4,
- INJ_RES_RP3A0 = 5,
-};
-
-enum inj_pol {
- INJ_POL_CC1 = 0,
- INJ_POL_CC2 = 1,
- INJ_POL_AUTO = 0xffff,
-};
-
-enum trace_mode {
- TRACE_MODE_OFF = 0,
- TRACE_MODE_RAW = 1,
- TRACE_MODE_ON = 2,
-};
-
-/* Number of words in the FSM command/data buffer */
-#define INJ_CMD_COUNT 128
-
-#endif /* __CROS_EC_INJECTOR_H */
diff --git a/board/twinkie/simpletrace.c b/board/twinkie/simpletrace.c
deleted file mode 100644
index 9f151f761f..0000000000
--- a/board/twinkie/simpletrace.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "dma.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "hwtimer.h"
-#include "injector.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "usb_pd_config.h"
-#include "util.h"
-
-/* PD packet text tracing state : TRACE_MODE_OFF/RAW/ON */
-int trace_mode;
-
-/* The FSM is waiting for the following command (0 == None) */
-uint8_t expected_cmd;
-
-static const char * const ctrl_msg_name[] = {
- [0] = "RSVD-C0",
- [PD_CTRL_GOOD_CRC] = "GOODCRC",
- [PD_CTRL_GOTO_MIN] = "GOTOMIN",
- [PD_CTRL_ACCEPT] = "ACCEPT",
- [PD_CTRL_REJECT] = "REJECT",
- [PD_CTRL_PING] = "PING",
- [PD_CTRL_PS_RDY] = "PSRDY",
- [PD_CTRL_GET_SOURCE_CAP] = "GSRCCAP",
- [PD_CTRL_GET_SINK_CAP] = "GSNKCAP",
- [PD_CTRL_DR_SWAP] = "DRSWAP",
- [PD_CTRL_PR_SWAP] = "PRSWAP",
- [PD_CTRL_VCONN_SWAP] = "VCONNSW",
- [PD_CTRL_WAIT] = "WAIT",
- [PD_CTRL_SOFT_RESET] = "SFT-RST",
- [14] = "RSVD-C14",
- [15] = "RSVD-C15",
-};
-
-static const char * const data_msg_name[] = {
- [0] = "RSVD-D0",
- [PD_DATA_SOURCE_CAP] = "SRCCAP",
- [PD_DATA_REQUEST] = "REQUEST",
- [PD_DATA_BIST] = "BIST",
- [PD_DATA_SINK_CAP] = "SNKCAP",
- /* 5-14 Reserved */
- [PD_DATA_VENDOR_DEF] = "VDM",
-};
-
-static const char * const svdm_cmd_name[] = {
- [CMD_DISCOVER_IDENT] = "DISCID",
- [CMD_DISCOVER_SVID] = "DISCSVID",
- [CMD_DISCOVER_MODES] = "DISCMODE",
- [CMD_ENTER_MODE] = "ENTER",
- [CMD_EXIT_MODE] = "EXIT",
- [CMD_ATTENTION] = "ATTN",
- [CMD_DP_STATUS] = "DPSTAT",
- [CMD_DP_CONFIG] = "DPCFG",
-};
-
-static const char * const svdm_cmdt_name[] = {
- [CMDT_INIT] = "INI",
- [CMDT_RSP_ACK] = "ACK",
- [CMDT_RSP_NAK] = "NAK",
- [CMDT_RSP_BUSY] = "BSY",
-};
-
-static void print_pdo(uint32_t word)
-{
- if ((word & PDO_TYPE_MASK) == PDO_TYPE_BATTERY)
- ccprintf(" %dmV/%dmW", ((word>>10)&0x3ff)*50,
- (word&0x3ff)*250);
- else
- ccprintf(" %dmV/%dmA", ((word>>10)&0x3ff)*50,
- (word&0x3ff)*10);
-}
-
-static void print_rdo(uint32_t word)
-{
- ccprintf("{%d} %08x", RDO_POS(word), word);
-}
-
-static void print_vdo(int idx, uint32_t word)
-{
- if (idx == 0 && (word & VDO_SVDM_TYPE)) {
- const char *cmd = svdm_cmd_name[PD_VDO_CMD(word)];
- const char *cmdt = svdm_cmdt_name[PD_VDO_CMDT(word)];
- uint16_t vid = PD_VDO_VID(word);
- if (!cmd)
- cmd = "????";
- ccprintf(" V%04x:%s,%s:%08x", vid, cmd, cmdt, word);
- } else {
- ccprintf(" %08x", word);
- }
-}
-
-static void print_packet(int head, uint32_t *payload)
-{
- int i;
- int cnt = PD_HEADER_CNT(head);
- int typ = PD_HEADER_TYPE(head);
- int id = PD_HEADER_ID(head);
- const char *name;
- const char *prole;
-
- if (trace_mode == TRACE_MODE_RAW) {
- ccprintf("%pT[%04x]", PRINTF_TIMESTAMP_NOW, head);
- for (i = 0; i < cnt; i++)
- ccprintf(" %08x", payload[i]);
- ccputs("\n");
- return;
- }
- name = cnt ? data_msg_name[typ] : ctrl_msg_name[typ];
- prole = head & (PD_ROLE_SOURCE << 8) ? "SRC" : "SNK";
- ccprintf("%pT %s/%d [%04x]%s",
- PRINTF_TIMESTAMP_NOW, prole, id, head, name);
- if (!cnt) { /* Control message : we are done */
- ccputs("\n");
- return;
- }
- /* Print payload for data message */
- for (i = 0; i < cnt; i++)
- switch (typ) {
- case PD_DATA_SOURCE_CAP:
- case PD_DATA_SINK_CAP:
- print_pdo(payload[i]);
- break;
- case PD_DATA_REQUEST:
- print_rdo(payload[i]);
- break;
- case PD_DATA_BIST:
- ccprintf("mode %d cnt %04x", payload[i] >> 28,
- payload[i] & 0xffff);
- break;
- case PD_DATA_VENDOR_DEF:
- print_vdo(i, payload[i]);
- break;
- default:
- ccprintf(" %08x", payload[i]);
- }
- ccputs("\n");
-}
-
-static void print_error(enum pd_rx_errors err)
-{
- if (err == PD_RX_ERR_INVAL)
- ccprintf("%pT TMOUT\n", PRINTF_TIMESTAMP_NOW);
- else if (err == PD_RX_ERR_HARD_RESET)
- ccprintf("%pT HARD-RST\n", PRINTF_TIMESTAMP_NOW);
- else if (err == PD_RX_ERR_UNSUPPORTED_SOP)
- ccprintf("%pT SOP*\n", PRINTF_TIMESTAMP_NOW);
- else
- ccprintf("ERR %d\n", err);
-}
-
-/* keep track of RX edge timing in order to trigger receive */
-static timestamp_t rx_edge_ts[2][PD_RX_TRANSITION_COUNT];
-static int rx_edge_ts_idx[2];
-
-void rx_event(void)
-{
- int pending, i;
- int next_idx;
- pending = STM32_EXTI_PR;
-
- /* Iterate over the 2 CC lines */
- for (i = 0; i < 2; i++) {
- if (pending & (1 << (21 + i))) {
- rx_edge_ts[i][rx_edge_ts_idx[i]].val = get_time().val;
- next_idx = (rx_edge_ts_idx[i] ==
- PD_RX_TRANSITION_COUNT - 1) ?
- 0 : rx_edge_ts_idx[i] + 1;
-
- /*
- * If we have seen enough edges in a certain amount of
- * time, then trigger RX start.
- */
- if ((rx_edge_ts[i][rx_edge_ts_idx[i]].val -
- rx_edge_ts[i][next_idx].val)
- < PD_RX_TRANSITION_WINDOW) {
- /* acquire the message only on the active CC */
- STM32_COMP_CSR &= ~(i ? STM32_COMP_CMP1EN
- : STM32_COMP_CMP2EN);
- /* start sampling */
- pd_rx_start(0);
- /*
- * ignore the comparator IRQ until we are done
- * with current message
- */
- pd_rx_disable_monitoring(0);
- /* trigger the analysis in the task */
-#ifdef HAS_TASK_SNIFFER
- task_set_event(TASK_ID_SNIFFER, 1 << i);
-#endif
- /* start reception only one CC line */
- break;
- } else {
- /* do not trigger RX start, just clear int */
- STM32_EXTI_PR = EXTI_COMP_MASK(0);
- }
- rx_edge_ts_idx[i] = next_idx;
- }
- }
-}
-#ifdef HAS_TASK_SNIFFER
-DECLARE_IRQ(STM32_IRQ_COMP, rx_event, 1);
-#endif
-
-void trace_packets(void)
-{
- int head;
- uint32_t payload[7];
-
-#ifdef HAS_TASK_SNIFFER
- /* Disable sniffer DMA configuration */
- dma_disable(STM32_DMAC_CH6);
- dma_disable(STM32_DMAC_CH7);
- task_disable_irq(STM32_IRQ_DMA_CHANNEL_4_7);
- /* remove TIM1 CH1/2/3 DMA remapping */
- STM32_SYSCFG_CFGR1 &= ~BIT(28);
-#endif
-
- /* "classical" PD RX configuration */
- pd_hw_init_rx(0);
- pd_select_polarity(0, 0);
- /* detect messages on both CCx lines */
- STM32_COMP_CSR |= STM32_COMP_CMP2EN | STM32_COMP_CMP1EN;
- /* Enable the RX interrupts */
- pd_rx_enable_monitoring(0);
-
- while (1) {
- task_wait_event(-1);
- if (trace_mode == TRACE_MODE_OFF)
- break;
- /* incoming packet processing */
- head = pd_analyze_rx(0, payload);
- pd_rx_complete(0);
- /* re-enabled detection on both CCx lines */
- STM32_COMP_CSR |= STM32_COMP_CMP2EN | STM32_COMP_CMP1EN;
- pd_rx_enable_monitoring(0);
- /* print the last packet content */
- if (head > 0)
- print_packet(head, payload);
- else
- print_error(head);
- if (head > 0 && expected_cmd == PD_HEADER_TYPE(head))
- task_wake(TASK_ID_CONSOLE);
- }
-
- task_disable_irq(STM32_IRQ_COMP);
- /* Disable tracer DMA configuration */
- dma_disable(STM32_DMAC_CH2);
- /* Put back : sniffer RX hardware configuration */
-#ifdef HAS_TASK_SNIFFER
- sniffer_init();
-#endif
-}
-
-int expect_packet(int pol, uint8_t cmd, uint32_t timeout_us)
-{
- uint32_t evt;
-
- expected_cmd = cmd;
- evt = task_wait_event(timeout_us);
-
- return !(evt == TASK_EVENT_TIMER);
-}
-
-void set_trace_mode(int mode)
-{
- /* No change */
- if (mode == trace_mode)
- return;
-
- trace_mode = mode;
- /* kick the task to take into account the new value */
-#ifdef HAS_TASK_SNIFFER
- task_wake(TASK_ID_SNIFFER);
-#endif
-}
diff --git a/board/twinkie/sniffer.c b/board/twinkie/sniffer.c
deleted file mode 100644
index 00effb8539..0000000000
--- a/board/twinkie/sniffer.c
+++ /dev/null
@@ -1,402 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "atomic.h"
-#include "clock.h"
-#include "common.h"
-#include "console.h"
-#include "dma.h"
-#include "gpio.h"
-#include "hwtimer.h"
-#include "hooks.h"
-#include "injector.h"
-#include "link_defs.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "usb_descriptor.h"
-#include "usb_hw.h"
-#include "util.h"
-#include "ina2xx.h"
-
-/* Size of one USB packet buffer */
-#define EP_BUF_SIZE 64
-
-#define EP_PACKET_HEADER_SIZE 4
-/* Size of the payload (packet minus the header) */
-#define EP_PAYLOAD_SIZE (EP_BUF_SIZE - EP_PACKET_HEADER_SIZE)
-
-/* Buffer enough to avoid overflowing due to USB latencies on both sides */
-#define RX_COUNT (16 * EP_PAYLOAD_SIZE)
-
-/* Task event for the USB transfer interrupt */
-#define USB_EVENT TASK_EVENT_CUSTOM_BIT(0)
-
-/* Bitmap of enabled capture channels : CC1+CC2 by default */
-static uint8_t channel_mask = 0x3;
-
-/* edge timing samples */
-static uint8_t samples[2][RX_COUNT];
-/* bitmap of the samples sub-buffer filled with DMA data */
-static volatile uint32_t filled_dma;
-/* timestamps of the beginning of DMA buffers */
-static uint16_t sample_tstamp[4];
-/* sequence number of the beginning of DMA buffers */
-static uint16_t sample_seq[4];
-
-/* Bulk endpoint double buffer */
-static usb_uint ep_buf[2][EP_BUF_SIZE / 2] __usb_ram;
-/* USB Buffers not used, ready to be filled */
-static volatile uint32_t free_usb = 3;
-
-static inline void led_set_activity(int ch)
-{
- static int accumul[2];
- static uint32_t last_ts[2];
- uint32_t now = __hw_clock_source_read();
- int delta = now - last_ts[ch];
- last_ts[ch] = now;
- accumul[ch] = MAX(0, accumul[ch] + (30000 - delta));
- gpio_set_level(ch ? GPIO_LED_R_L : GPIO_LED_G_L, !accumul[ch]);
-}
-
-static inline void led_set_record(void)
-{
- gpio_set_level(GPIO_LED_B_L, 0);
-}
-
-static inline void led_reset_record(void)
-{
- gpio_set_level(GPIO_LED_B_L, 1);
-}
-
-/* USB descriptors */
-const struct usb_interface_descriptor USB_IFACE_DESC(USB_IFACE_VENDOR) = {
- .bLength = USB_DT_INTERFACE_SIZE,
- .bDescriptorType = USB_DT_INTERFACE,
- .bInterfaceNumber = USB_IFACE_VENDOR,
- .bAlternateSetting = 0,
- .bNumEndpoints = 1,
- .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
- .bInterfaceSubClass = USB_CLASS_VENDOR_SPEC,
- .bInterfaceProtocol = 0,
- .iInterface = USB_STR_SNIFFER,
-};
-const struct usb_endpoint_descriptor USB_EP_DESC(USB_IFACE_VENDOR,
- USB_EP_SNIFFER) = {
- .bLength = USB_DT_ENDPOINT_SIZE,
- .bDescriptorType = USB_DT_ENDPOINT,
- .bEndpointAddress = 0x80 | USB_EP_SNIFFER,
- .bmAttributes = 0x02 /* Bulk IN */,
- .wMaxPacketSize = USB_MAX_PACKET_SIZE,
- .bInterval = 1
-};
-
-/* USB callbacks */
-static void ep_tx(void)
-{
- static int b; /* current buffer index */
- if (btable_ep[USB_EP_SNIFFER].tx_count) {
- /* we have transmitted the previous buffer, toggle it */
- free_usb |= 1 << b;
- b = b ? 0 : 1;
- btable_ep[USB_EP_SNIFFER].tx_addr = usb_sram_addr(ep_buf[b]);
- }
- /* re-enable data transmission if we have available data */
- btable_ep[USB_EP_SNIFFER].tx_count = (free_usb & (1<<b)) ? 0
- : EP_BUF_SIZE;
- STM32_TOGGLE_EP(USB_EP_SNIFFER, EP_TX_MASK, EP_TX_VALID, 0);
- /* wake up the processing */
- task_set_event(TASK_ID_SNIFFER, USB_EVENT);
-}
-
-static void ep_event(enum usb_ep_event evt)
-{
- if (evt != USB_EVENT_RESET)
- return;
-
- /* Bulk IN endpoint */
- btable_ep[USB_EP_SNIFFER].tx_addr = usb_sram_addr(ep_buf[0]);
- btable_ep[USB_EP_SNIFFER].tx_count = EP_BUF_SIZE;
- STM32_USB_EP(USB_EP_SNIFFER) = (USB_EP_SNIFFER << 0) /*Endpoint Num*/ |
- (3 << 4) /* TX Valid */ |
- (0 << 9) /* Bulk EP */ |
- (0 << 12) /* RX Disabled */;
-}
-USB_DECLARE_EP(USB_EP_SNIFFER, ep_tx, ep_tx, ep_event);
-
-
-/* --- RX operation using comparator linked to timer --- */
-/* RX on CC1 is using COMP1 triggering TIM1 CH1 */
-#define TIM_RX1 1
-#define DMAC_TIM_RX1 STM32_DMAC_CH6
-#define TIM_RX1_CCR_IDX 1
-/* RX on CC1 is using COMP2 triggering TIM2 CH4 */
-#define TIM_RX2 2
-#define DMAC_TIM_RX2 STM32_DMAC_CH7
-#define TIM_RX2_CCR_IDX 4
-
-/* Clock divider for RX edges timings (2.4Mhz counter from 48Mhz clock) */
-#define RX_CLOCK_DIV (20 - 1)
-
-static const struct dma_option dma_tim_cc1 = {
- DMAC_TIM_RX1, (void *)&STM32_TIM_CCRx(TIM_RX1, TIM_RX1_CCR_IDX),
- STM32_DMA_CCR_MSIZE_8_BIT | STM32_DMA_CCR_PSIZE_8_BIT |
- STM32_DMA_CCR_CIRC | STM32_DMA_CCR_TCIE | STM32_DMA_CCR_HTIE
-};
-
-static const struct dma_option dma_tim_cc2 = {
- DMAC_TIM_RX2, (void *)&STM32_TIM_CCRx(TIM_RX2, TIM_RX2_CCR_IDX),
- STM32_DMA_CCR_MSIZE_8_BIT | STM32_DMA_CCR_PSIZE_8_BIT |
- STM32_DMA_CCR_CIRC | STM32_DMA_CCR_TCIE | STM32_DMA_CCR_HTIE
-};
-
-/* sequence number for sample buffers */
-static volatile uint32_t seq;
-/* Buffer overflow count */
-static uint32_t oflow;
-
-#define SNIFFER_CHANNEL_CC1 0
-#define SNIFFER_CHANNEL_CC2 1
-
-#define get_channel(b) (((b) >> 12) & 0x1)
-
-void tim_rx1_handler(uint32_t stat)
-{
- stm32_dma_regs_t *dma = STM32_DMA1_REGS;
- int idx = !(stat & STM32_DMA_ISR_HTIF(DMAC_TIM_RX1));
- uint32_t mask = idx ? 0xFF00 : 0x00FF;
- uint32_t next = idx ? 0x0001 : 0x0100;
-
- sample_tstamp[idx] = __hw_clock_source_read();
- sample_seq[idx] = ((seq++ << 3) & 0x0ff8) |
- (SNIFFER_CHANNEL_CC1<<12);
- if (filled_dma & next) {
- oflow++;
- sample_seq[idx] |= 0x8000;
- } else {
- led_set_record();
- }
- filled_dma |= mask;
- dma->ifcr = STM32_DMA_ISR_ALL(DMAC_TIM_RX1);
- led_set_activity(0);
-}
-
-void tim_rx2_handler(uint32_t stat)
-{
- stm32_dma_regs_t *dma = STM32_DMA1_REGS;
- int idx = !(stat & STM32_DMA_ISR_HTIF(DMAC_TIM_RX2));
- uint32_t mask = idx ? 0xFF000000 : 0x00FF0000;
- uint32_t next = idx ? 0x00010000 : 0x01000000;
-
- idx += 2;
- sample_tstamp[idx] = __hw_clock_source_read();
- sample_seq[idx] = ((seq++ << 3) & 0x0ff8) |
- (SNIFFER_CHANNEL_CC2<<12);
- if (filled_dma & next) {
- oflow++;
- sample_seq[idx] |= 0x8000;
- } else {
- led_set_record();
- }
- filled_dma |= mask;
- dma->ifcr = STM32_DMA_ISR_ALL(DMAC_TIM_RX2);
- led_set_activity(1);
-}
-
-void tim_dma_handler(void)
-{
- stm32_dma_regs_t *dma = STM32_DMA1_REGS;
- uint32_t stat = dma->isr & (STM32_DMA_ISR_HTIF(DMAC_TIM_RX1)
- | STM32_DMA_ISR_TCIF(DMAC_TIM_RX1)
- | STM32_DMA_ISR_HTIF(DMAC_TIM_RX2)
- | STM32_DMA_ISR_TCIF(DMAC_TIM_RX2));
- if (stat & STM32_DMA_ISR_ALL(DMAC_TIM_RX2))
- tim_rx2_handler(stat);
- else
- tim_rx1_handler(stat);
- /* time to process the samples */
- task_set_event(TASK_ID_SNIFFER, USB_EVENT);
-}
-DECLARE_IRQ(STM32_IRQ_DMA_CHANNEL_4_7, tim_dma_handler, 1);
-
-static void rx_timer_init(int tim_id, timer_ctlr_t *tim, int ch_idx, int up_idx)
-{
- int bit_idx = 8 * ((ch_idx - 1) % 2);
- /* --- set counter for RX timing : 2.4Mhz rate, free-running --- */
- __hw_timer_enable_clock(tim_id, 1);
- /* Timer configuration */
- tim->cr1 = 0x0004;
- tim->cr2 = 0x0000;
- /* Auto-reload value : 8-bit free running counter */
- tim->arr = 0xFF;
- /* Counter reloading event after 106us */
- tim->ccr[1] = 0xFF;
- /* Timer ICx input configuration */
- if (ch_idx <= 2)
- tim->ccmr1 = 1 << bit_idx;
- else
- tim->ccmr2 = 1 << bit_idx;
- tim->ccer = 0xB << ((ch_idx - 1) * 4);
- /* TODO: add input filtering */
- /* configure DMA request on CCRx update and overflow/update event */
- tim->dier = (1 << (8 + ch_idx)) | (1 << (8 + up_idx));
- /* set prescaler to /26 (F=2.4Mhz, T=0.4us) */
- tim->psc = RX_CLOCK_DIV;
- /* Reload the pre-scaler and reset the counter, clear CCRx */
- tim->egr = 0x001F;
- /* clear update event from reloading */
- tim->sr = 0;
-}
-
-
-
-void sniffer_init(void)
-{
- /* remap TIM1 CH1/2/3 to DMA channel 6 */
- STM32_SYSCFG_CFGR1 |= BIT(28);
-
- /* TIM1 CH1 for CC1 RX */
- rx_timer_init(TIM_RX1, (void *)STM32_TIM_BASE(TIM_RX1),
- TIM_RX1_CCR_IDX, 2);
- /* TIM3 CH4 for CC2 RX */
- rx_timer_init(TIM_RX2, (void *)STM32_TIM_BASE(TIM_RX2),
- TIM_RX2_CCR_IDX, 2);
-
- /* turn on COMP/SYSCFG */
- STM32_RCC_APB2ENR |= BIT(0);
- STM32_COMP_CSR = STM32_COMP_CMP1EN | STM32_COMP_CMP1MODE_HSPEED |
- STM32_COMP_CMP1INSEL_VREF12 |
- STM32_COMP_CMP1OUTSEL_TIM1_IC1 |
- STM32_COMP_CMP1HYST_HI |
- STM32_COMP_CMP2EN | STM32_COMP_CMP2MODE_HSPEED |
- STM32_COMP_CMP2INSEL_VREF12 |
- STM32_COMP_CMP2OUTSEL_TIM2_IC4 |
- STM32_COMP_CMP2HYST_HI;
-
- /* start sampling the edges on the CC lines using the RX timers */
- dma_start_rx(&dma_tim_cc1, RX_COUNT, samples[0]);
- dma_start_rx(&dma_tim_cc2, RX_COUNT, samples[1]);
- task_enable_irq(STM32_IRQ_DMA_CHANNEL_4_7);
- /* start RX timers on CC1 and CC2 */
- STM32_TIM_CR1(TIM_RX1) |= 1;
- STM32_TIM_CR1(TIM_RX2) |= 1;
-}
-DECLARE_HOOK(HOOK_INIT, sniffer_init, HOOK_PRIO_DEFAULT);
-
-/* state of the simple text tracer */
-extern int trace_mode;
-
-/* Task to post-process the samples and copy them the USB endpoint buffer */
-void sniffer_task(void)
-{
- int u = 0; /* current USB buffer index */
- int d = 0; /* current DMA buffer index */
- int off = 0; /* DMA buffer offset */
-
- while (1) {
- /* Wait for a new buffer of samples or a new USB free buffer */
- task_wait_event(-1);
- /* send the available samples over USB if we have a buffer*/
- while (filled_dma && free_usb) {
- while (!(filled_dma & BIT(d))) {
- d = (d + 1) & 31;
- off += EP_PAYLOAD_SIZE;
- if (off >= RX_COUNT)
- off = 0;
- }
-
- ep_buf[u][0] = sample_seq[d >> 3] | (d & 7);
- ep_buf[u][1] = sample_tstamp[d >> 3];
-
- memcpy_to_usbram(
- ((void *)usb_sram_addr(ep_buf[u]
- + (EP_PACKET_HEADER_SIZE>>1))),
- samples[d >> 4]+off,
- EP_PAYLOAD_SIZE);
- atomic_clear_bits((uint32_t *)&free_usb, 1 << u);
- u = !u;
- atomic_clear_bits((uint32_t *)&filled_dma, 1 << d);
- }
- led_reset_record();
-
- if (trace_mode != TRACE_MODE_OFF) {
- uint8_t curr = recording_enable(0);
- trace_packets();
- recording_enable(curr);
- }
- }
-}
-
-int wait_packet(int pol, uint32_t min_edges, uint32_t timeout_us)
-{
- stm32_dma_chan_t *chan = dma_get_channel(pol ? DMAC_TIM_RX2
- : DMAC_TIM_RX1);
- uint32_t t0 = __hw_clock_source_read();
- uint32_t c0 = chan->cndtr;
- uint32_t t_gap = t0;
- uint32_t c_gap = c0;
- uint32_t total_edges = 0;
-
- while (1) {
- uint32_t t = __hw_clock_source_read();
- uint32_t c = chan->cndtr;
- if (t - t0 > timeout_us) /* Timeout */
- break;
- if (min_edges) { /* real packet detection */
- int nb = (int)c_gap - (int)c;
- if (nb < 0)
- nb = RX_COUNT - nb;
- if (nb > 3) { /* NOT IDLE */
- t_gap = t;
- c_gap = c;
- total_edges += nb;
- } else {
- if ((t - t_gap) > 20 &&
- (total_edges - (t - t0)/256) >= min_edges)
- /* real gap after the packet */
- break;
- }
- }
- }
- return (__hw_clock_source_read() - t0 > timeout_us);
-}
-
-uint8_t recording_enable(uint8_t new_mask)
-{
- uint8_t old_mask = channel_mask;
- uint8_t diff = channel_mask ^ new_mask;
- /* start/stop RX timers according to the channel mask */
- if (diff & 1) {
- if (new_mask & 1)
- STM32_TIM_CR1(TIM_RX1) |= 1;
- else
- STM32_TIM_CR1(TIM_RX1) &= ~1;
- }
- if (diff & 2) {
- if (new_mask & 2)
- STM32_TIM_CR1(TIM_RX2) |= 1;
- else
- STM32_TIM_CR1(TIM_RX2) &= ~1;
- }
- channel_mask = new_mask;
- return old_mask;
-}
-
-static void sniffer_sysjump(void)
-{
- /* Stop DMA before jumping to avoid memory corruption */
- recording_enable(0);
-}
-DECLARE_HOOK(HOOK_SYSJUMP, sniffer_sysjump, HOOK_PRIO_DEFAULT);
-
-static int command_sniffer(int argc, char **argv)
-{
- ccprintf("Seq number:%d Overflows: %d\n", seq, oflow);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(sniffer, command_sniffer,
- "[]", "Buffering status");
diff --git a/board/twinkie/usb_pd_config.h b/board/twinkie/usb_pd_config.h
deleted file mode 100644
index 1c20a9df77..0000000000
--- a/board/twinkie/usb_pd_config.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-#include "ina2xx.h"
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_C0 17
-#define TIM_CLOCK_PD_RX_C0 1
-
-#define TIM_CLOCK_PD_TX(p) TIM_CLOCK_PD_TX_C0
-#define TIM_CLOCK_PD_RX(p) TIM_CLOCK_PD_RX_C0
-
-/* TX and RX timer register */
-#define TIM_REG_TX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_TX_C0))
-#define TIM_REG_RX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_RX_C0))
-#define TIM_REG_TX(p) TIM_REG_TX_C0
-#define TIM_REG_RX(p) TIM_REG_RX_C0
-
-/* Timer channel */
-#define TIM_RX_CCR_C0 1
-#define TIM_TX_CCR_C0 1
-
-/* RX timer capture/compare register */
-#define TIM_CCR_C0 (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_C0, TIM_RX_CCR_C0))
-#define TIM_RX_CCR_REG(p) TIM_CCR_C0
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* TX is using SPI1 on PA6/PB4 */
-#define SPI_REGS(p) STM32_SPI1_REGS
-#define DMAC_SPI_TX(p) STM32_DMAC_CH3
-
-static inline void spi_enable_clock(int port)
-{
- STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1;
-}
-
-/* RX is using COMP1 or COMp2 triggering TIM1 CH1 */
-#define CMP1OUTSEL STM32_COMP_CMP1OUTSEL_TIM1_IC1
-#define CMP2OUTSEL STM32_COMP_CMP2OUTSEL_TIM1_IC1
-
-#define DMAC_TIM_RX(p) STM32_DMAC_CH2
-#define TIM_RX_CCR_IDX(p) TIM_RX_CCR_C0
-#define TIM_TX_CCR_IDX(p) TIM_TX_CCR_C0
-#define TIM_CCR_CS 1
-#define EXTI_COMP_MASK(p) (BIT(21) | BIT(22))
-#define IRQ_COMP STM32_IRQ_COMP
-/* triggers packet detection on comparator falling edge */
-#define EXTI_XTSR STM32_EXTI_FTSR
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- /* 40 MHz pin speed on SPI TX PB4 */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x00000300;
- /* 40 MHz pin speed on SPI TX PA6 */
- STM32_GPIO_OSPEEDR(GPIO_A) |= 0x00003000;
- /* 40 MHz pin speed on TIM17_CH1 (PB9) */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0x000C0000;
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
-}
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
-#if 0 /* Transmit only on the active CC line */
- if (polarity) {
- gpio_set_level(GPIO_CC2_TX_EN, 1);
- /* TX_DATA on PA6 is now connected to SPI1 */
- gpio_set_alternate_function(GPIO_A, 0x0040, 0);
- } else {
- gpio_set_level(GPIO_CC1_TX_EN, 1);
- /* TX_DATA on PB4 is now connected to SPI1 */
- gpio_set_alternate_function(GPIO_B, 0x0010, 0);
- }
-#else /* Transmit on both CC lines */
- gpio_set_level(GPIO_CC2_TX_EN, 1);
- gpio_set_level(GPIO_CC1_TX_EN, 1);
- /* TX_DATA on PA6 is now connected to SPI1 */
- gpio_set_alternate_function(GPIO_A, 0x0040, 0);
- /* TX_DATA on PB4 is now connected to SPI1 */
- gpio_set_alternate_function(GPIO_B, 0x0010, 0);
-#endif
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- /* TX_DATA on PB4 is an output low GPIO to disable the FET */
- STM32_GPIO_MODER(GPIO_B) = (STM32_GPIO_MODER(GPIO_B) & ~(3 << (2*4)))
- | (1 << (2*4));
- /* TX_DATA on PA6 is an output low GPIO to disable the FET */
- STM32_GPIO_MODER(GPIO_A) = (STM32_GPIO_MODER(GPIO_A) & ~(3 << (2*6)))
- | (1 << (2*6));
- /*
- * Tri-state the low side after the high side
- * to ensure we are not going above Vnc
- */
- gpio_set_level(GPIO_CC1_TX_EN, 0);
- gpio_set_level(GPIO_CC2_TX_EN, 0);
-}
-
-/* we know the plug polarity, do the right configuration */
-static inline void pd_select_polarity(int port, int polarity)
-{
- /* use the right comparator */
- STM32_COMP_CSR = (STM32_COMP_CSR
- & ~(STM32_COMP_CMP1INSEL_MASK | STM32_COMP_CMP2INSEL_MASK
- |STM32_COMP_CMP1EN | STM32_COMP_CMP2EN))
- | STM32_COMP_CMP1INSEL_INM4 | STM32_COMP_CMP2INSEL_INM4
- | (polarity ? STM32_COMP_CMP2EN : STM32_COMP_CMP1EN);
-}
-
-/* Initialize pins used for clocking */
-static inline void pd_tx_init(void)
-{
- gpio_config_module(MODULE_USB_PD, 1);
-
-#ifndef CONFIG_USB_PD_TX_PHY_ONLY
- /* Detect when VBUS crosses the 4.5V threshold (1.25mV/bit) */
- ina2xx_write(0, INA2XX_REG_ALERT, 4500 * 100 / 125);
- ina2xx_write(0, INA2XX_REG_MASK, INA2XX_MASK_EN_BOL);
- /* start as a power consumer */
- gpio_set_level(GPIO_CC1_RD, 0);
- gpio_set_level(GPIO_CC2_RD, 0);
-#endif /* CONFIG_USB_PD_TX_PHY_ONLY */
-}
-
-static inline void pd_set_host_mode(int port, int enable)
-{
- if (enable) {
- gpio_set_level(GPIO_CC1_RD, 1);
- gpio_set_level(GPIO_CC2_RD, 1);
- /* set Rp by driving high RPUSB GPIO */
- gpio_set_flags(GPIO_CC1_RPUSB, GPIO_OUT_HIGH);
- gpio_set_flags(GPIO_CC2_RPUSB, GPIO_OUT_HIGH);
- } else {
- /* put back RPUSB GPIO in the default state and set Rd */
- gpio_set_flags(GPIO_CC1_RPUSB, GPIO_ODR_HIGH);
- gpio_set_flags(GPIO_CC2_RPUSB, GPIO_ODR_HIGH);
- gpio_set_level(GPIO_CC1_RD, 0);
- gpio_set_level(GPIO_CC2_RD, 0);
- }
-}
-
-static inline void pd_config_init(int port, uint8_t power_role)
-{
-#ifndef CONFIG_USB_PD_TX_PHY_ONLY
- /* Set CC pull resistors */
- pd_set_host_mode(port, power_role);
-#endif /* CONFIG_USB_PD_TX_PHY_ONLY */
-
- /* Initialize TX pins and put them in Hi-Z */
- pd_tx_init();
-}
-
-static inline int pd_adc_read(int port, int cc)
-{
- if (cc == 0)
- return adc_read_channel(ADC_CH_CC1_PD);
- else
- return adc_read_channel(ADC_CH_CC2_PD);
-}
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
diff --git a/board/twinkie/usb_pd_policy.c b/board/twinkie/usb_pd_policy.c
deleted file mode 100644
index 62ecd6e0db..0000000000
--- a/board/twinkie/usb_pd_policy.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "common.h"
-#include "config.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-#define PDO_FIXED_FLAGS (PDO_FIXED_UNCONSTRAINED | PDO_FIXED_DATA_SWAP)
-
-const uint32_t pd_src_pdo[] = {
- PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS),
- PDO_FIXED(12000, 3000, PDO_FIXED_FLAGS),
- PDO_FIXED(20000, 3000, PDO_FIXED_FLAGS),
-};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-
-const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, PDO_FIXED_FLAGS),
- PDO_BATT(4750, 21000, 15000),
- PDO_VAR(4750, 21000, 3000),
-};
-const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-
-void pd_set_input_current_limit(int port, uint32_t max_ma,
- uint32_t supply_voltage)
-{
- int red = supply_voltage == 20000;
- int green = supply_voltage == 5000;
- int blue = supply_voltage && !(red || green);
- gpio_set_level(GPIO_LED_R_L, !red);
- gpio_set_level(GPIO_LED_G_L, !green);
- gpio_set_level(GPIO_LED_B_L, !blue);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* assume the alert was programmed to detect bus voltage above 4.5V */
- return (gpio_get_level(GPIO_VBUS_ALERT_L) == 0);
-}
-
-__override int pd_check_power_swap(int port)
-{
- /* Always refuse power swap */
- return 0;
-}
-
-__override int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Always allow data swap */
- return 1;
-}
-
-__override void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
-}
-
-__override void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
-}
-
-__override int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- return 0;
-}
diff --git a/board/twinkie/vif_override.xml b/board/twinkie/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/twinkie/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/vilboz/analyzestack.yaml b/board/vilboz/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/vilboz/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/vilboz/battery.c b/board/vilboz/battery.c
deleted file mode 100644
index 6f6bca7662..0000000000
--- a/board/vilboz/battery.c
+++ /dev/null
@@ -1,457 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "common.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-/*
- * Battery info for all Zork battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* SMP L19M3PG1 */
- [BATTERY_SMP] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L19M3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* SMP L20M3PG1 57W
- * Gauge IC: TI BQ40Z696A
- */
- [BATTERY_SMP_1] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG1",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 247, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP L20M3PG0 47W
- * Gauge IC: TI BQ40Z696A
- */
- [BATTERY_SMP_2] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG0",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SMP L20M3PG3 47W
- * Gauge IC: Renesas RAJ240047
- */
- [BATTERY_SMP_3] = {
- .fuel_gauge = {
- .manuf_name = "SMP",
- .device_name = "L20M3PG3",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x0010,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC L19L3PG1 */
- [BATTERY_LGC] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L19L3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 73,
- },
- },
-
- /* LGC L20L3PG1 57W
- * Gauge IC: Renesas
- */
- [BATTERY_LGC_1] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L20L3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x0010,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11580, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* LGC L20L3PG0 47W
- * Gauge IC: Renesas
- */
- [BATTERY_LGC_2] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "L20L3PG0",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x0010,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11580, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* Celxpert L19C3PG1 */
- [BATTERY_CEL] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L19C3PG1",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0100,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 60,
- .charging_min_c = 0,
- .charging_max_c = 50,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* Celxpert L20C3PG0 57W
- * Gauge IC: TI
- */
- [BATTERY_CEL_1] = {
- .fuel_gauge = {
- .manuf_name = "Celxpert",
- .device_name = "L20C3PG0",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SUNWODA L20D3PG1 57W
- * Gauge IC: TI
- */
- [BATTERY_SUNWODA] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L20D3PG1",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 250, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-
- /* SUNWODA L20D3PG0 47W
- * Gauge IC: TI
- */
- [BATTERY_SUNWODA_1] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L20D3PG0",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0000,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = 13200, /* mV */
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 205, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 70,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SMP;
-
-struct chg_curr_step {
- int on;
- int off;
- int curr_ma;
-};
-
-static const struct chg_curr_step chg_curr_table[] = {
- {.on = 0, .off = 35, .curr_ma = 2800},
- {.on = 36, .off = 35, .curr_ma = 1500},
- {.on = 39, .off = 38, .curr_ma = 1000},
-};
-
-/* All charge current tables must have the same number of levels */
-#define NUM_CHG_CURRENT_LEVELS ARRAY_SIZE(chg_curr_table)
-
-int charger_profile_override(struct charge_state_data *curr)
-{
- int rv;
- int chg_temp_c;
- int current;
- int thermal_sensor0;
- static int current_level;
- static int prev_tmp;
-
- /*
- * Precharge must be executed when communication is failed on
- * dead battery.
- */
- if (!(curr->batt.flags & BATT_FLAG_RESPONSIVE))
- return 0;
-
- current = curr->requested_current;
-
- rv = temp_sensor_read(TEMP_SENSOR_CHARGER, &thermal_sensor0);
- chg_temp_c = K_TO_C(thermal_sensor0);
-
- if (rv != EC_SUCCESS)
- return 0;
-
- if (chipset_in_state(CHIPSET_STATE_ON)) {
- if (chg_temp_c < prev_tmp) {
- if (chg_temp_c <= chg_curr_table[current_level].off)
- current_level = current_level - 1;
- } else if (chg_temp_c > prev_tmp) {
- if (chg_temp_c >= chg_curr_table[current_level + 1].on)
- current_level = current_level + 1;
- }
- /*
- * Prevent level always minus 0 or over table steps.
- */
- if (current_level < 0)
- current_level = 0;
- else if (current_level >= NUM_CHG_CURRENT_LEVELS)
- current_level = NUM_CHG_CURRENT_LEVELS - 1;
-
- prev_tmp = chg_temp_c;
- current = chg_curr_table[current_level].curr_ma;
-
- curr->requested_current = MIN(curr->requested_current, current);
- }
-
- return 0;
-}
-
-enum ec_status charger_profile_override_get_param(uint32_t param,
- uint32_t *value)
-{
- return EC_RES_INVALID_PARAM;
-}
-
-enum ec_status charger_profile_override_set_param(uint32_t param,
- uint32_t value)
-{
- return EC_RES_INVALID_PARAM;
-}
diff --git a/board/vilboz/board.c b/board/vilboz/board.c
deleted file mode 100644
index a39d46cbcd..0000000000
--- a/board/vilboz/board.c
+++ /dev/null
@@ -1,527 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "button.h"
-#include "charge_state_v2.h"
-#include "cros_board_info.h"
-#include "driver/accel_lis2dw12.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ioexpander/pcal6408.h"
-#include "driver/ppc/aoz1380.h"
-#include "driver/tcpm/nct38xx.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usb_charge.h"
-#include "usb_pd_tcpm.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-int I2C_PORT_BATTERY = I2C_PORT_BATTERY_V1;
-
-void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- gpio_set_level(GPIO_DP1_HPD, gpio_get_level(signal));
-}
-
-#include "gpio_list.h"
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct stprivate_data g_lis2dwl_data;
-static struct lsm6dsm_data g_lsm6dsm_data = LSM6DSM_DATA;
-
-/* Matrix to rotate accelrator into standard reference frame */
-static const mat33_fp_t base_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DWL,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dw12_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dwl_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = LIS2DW12_ODR_MIN_VAL,
- .max_frequency = LIS2DW12_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 12500 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(g_lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_6AXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/*
- * USB C0 port SBU mux use standalone FSUSB42UMX
- * chip and it need a board specific driver.
- * Overall, it will use chained mux framework.
- */
-static int fsusb42umx_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
- if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
- else
- ioex_set_level(IOEX_USB_C0_SBU_FLIP, 0);
-
- return EC_SUCCESS;
-}
-
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-const struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = fsusb42umx_set_mux,
-};
-
-/*
- * Since FSUSB42UMX is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-const struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
-
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- /* Device does not talk I2C */
- .drv = &aoz1380_drv
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_FAULT_ODL:
- aoz1380_interrupt(USBC_PORT_C0);
- break;
-
- default:
- break;
- }
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTSUSB("Disabling all charger ports");
-
- /* Disable all ports. */
- for (i = 0; i < ppc_cnt; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("Disabling C%d as sink failed.", i);
- }
-
- return EC_SUCCESS;
- } else if (!is_valid_port) {
- return EC_ERROR_INVAL;
- }
-
-
- /* Check if the port is sourcing VBUS. */
- if (ppc_is_sourcing_vbus(port)) {
- CPRINTFUSB("Skip enable C%d", port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTSUSB("New charge port: C%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < ppc_cnt; i++) {
- if (i == port)
- continue;
-
- if (ppc_vbus_sink_enable(i, 0))
- CPRINTSUSB("C%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (ppc_vbus_sink_enable(port, 1)) {
- CPRINTSUSB("C%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- switch (port) {
- case USBC_PORT_C0:
- ioex_set_level(IOEX_USB_C0_FAULT_ODL, !is_overcurrented);
- break;
-
- default:
- break;
- }
-}
-
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- },
- .drv = &nct38xx_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-static void reset_nct38xx_port(int port)
-{
- enum gpio_signal reset_gpio_l;
-
- if (port == USBC_PORT_C0)
- reset_gpio_l = GPIO_USB_C0_TCPC_RST_L;
- else
- /* Invalid port: do nothing */
- return;
-
- gpio_set_level(reset_gpio_l, 0);
- msleep(NCT38XX_RESET_HOLD_DELAY_MS);
- gpio_set_level(reset_gpio_l, 1);
- nct38xx_reset_notify(port);
- if (NCT3807_RESET_POST_DELAY_MS != 0)
- msleep(NCT3807_RESET_POST_DELAY_MS);
-}
-
-
-void board_reset_pd_mcu(void)
-{
- /* Reset TCPC0 */
- reset_nct38xx_port(USBC_PORT_C0);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set and ignore if that TCPC has
- * its reset line active.
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C0_TCPC_RST_L) != 0)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
-
- return status;
-}
-
-void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
- port = 0;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-int board_pd_set_frs_enable(int port, int enable)
-{
- int rv = EC_SUCCESS;
-
- /* Use the TCPC to enable fast switch when FRS included */
- if (port == USBC_PORT_C0) {
- rv = ioex_set_level(IOEX_USB_C0_TCPC_FASTSW_CTL_EN,
- !!enable);
- }
-
- return rv;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_BC12_INT_ODL:
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- break;
-
- default:
- break;
- }
-}
-
-static void setup_fw_config(void)
-{
- /* Enable DB HDMI interrupts. */
- gpio_enable_interrupt(GPIO_HDMI_CONN_HPD_3V3);
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_FAULT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
-
- /* Enable BC 1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
-
- /* Enable SBU fault interrupts */
- ioex_enable_interrupt(IOEX_USB_C0_SBU_FAULT_ODL);
-
- if (ec_config_has_lid_angle_tablet_mode()) {
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- /* Device is clamshell only */
- tablet_set_mode(0, TABLET_TRIGGER_LID);
- /* Gyro is not present, don't allow line to float */
- gpio_set_flags(GPIO_6AXIS_INT_L, GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-static void lte_usb3_mux_init(void)
-{
- /*
- * the USB_C1 port might be used for the LTE modem if it is not used
- * for type-C, we need to keep the superspeed mux in USB 3 position.
- */
- if (ec_config_lte_present() == LTE_PRESENT) {
- const struct usb_mux usb_c1 = {
- .usb_port = 1 /* USBC_PORT_C1 */,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- };
- bool unused;
- /*
- * Note: Direct mux driver calls are deprecated. Calls
- * should go through the usb_mux APIs instead.
- */
- /* steer the mux to connect the USB 3 superspeed pairs */
- usb_c1.driver->set(&usb_c1, USB_PD_MUX_USB_ENABLED, &unused);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, lte_usb3_mux_init, HOOK_PRIO_DEFAULT);
-
-static void lte_function_resume(void)
-{
- gpio_set_level(GPIO_LTE_FCPO, 1);
-}
-DECLARE_DEFERRED(lte_function_resume);
-
-static void lte_power_resume(void)
-{
- gpio_set_level(GPIO_LTE_EN, 1);
- gpio_set_level(GPIO_LTE_W_DISABLE_L, 1);
-}
-DECLARE_DEFERRED(lte_power_resume);
-
-static void lte_power_suspend(void)
-{
- gpio_set_level(GPIO_LTE_EN, 0);
- gpio_set_level(GPIO_LTE_W_DISABLE_L, 0);
-}
-DECLARE_DEFERRED(lte_power_suspend);
-
-static void lte_function_suspend(void)
-{
- gpio_set_level(GPIO_LTE_FCPO, 0);
- hook_call_deferred(&lte_power_suspend_data, 100 * MSEC);
-}
-DECLARE_DEFERRED(lte_function_suspend);
-
-static void wwan_lte_resume_hook(void)
-{
- /* Turn on WWAN LTE function as we go into S0 from S3/S5. */
- hook_call_deferred(&lte_function_suspend_data, -1);
- hook_call_deferred(&lte_power_suspend_data, -1);
- lte_power_resume();
- hook_call_deferred(&lte_function_resume_data, 10 * MSEC);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, wwan_lte_resume_hook, HOOK_PRIO_DEFAULT);
-
-static void wwan_lte_suspend_hook(void)
-{
- /* Turn off WWAN LTE function as we go into S3/S5 from S0. */
- hook_call_deferred(&lte_power_resume_data, -1);
- hook_call_deferred(&lte_function_resume_data, -1);
- hook_call_deferred(&lte_function_suspend_data, 20 * MSEC);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, wwan_lte_suspend_hook, HOOK_PRIO_DEFAULT);
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- .freq = 15000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-struct ioexpander_config_t ioex_config[] = {
- [IOEX_C0_NCT3807] = {
- .i2c_host_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS,
- .drv = &nct38xx_ioexpander_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT);
-
-const int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
- GPIO_EN_USB_A1_5V,
-};
-
-__override void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Limit the input current to 95% negotiated limit,
- * to account for the charger chip margin.
- */
- charge_ma = charge_ma * 95 / 100;
-
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
diff --git a/board/vilboz/board.h b/board/vilboz/board.h
deleted file mode 100644
index 16cea08c1e..0000000000
--- a/board/vilboz/board.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* 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.
- */
-
-/* Trembyle board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_DALBOZ
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-
-/* USB-A config */
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL GPIO_USB_A1_CHARGE_EN_DB_L
-
-#define CONFIG_CHARGER_PROFILE_OVERRIDE
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_LSM6DSM
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_LIS2DWL
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/*
- * Vilboz's battery takes ~3 seconds to come back out of its disconnect state,
- * so give it a little more for margin.
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 4
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-
-#ifndef __ASSEMBLER__
-
-/* This I2C moved. Temporarily detect and support the V0 HW. */
-extern int I2C_PORT_BATTERY;
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_SMP,
- BATTERY_SMP_1,
- BATTERY_SMP_2,
- BATTERY_SMP_3,
- BATTERY_LGC,
- BATTERY_LGC_1,
- BATTERY_LGC_2,
- BATTERY_CEL,
- BATTERY_CEL_1,
- BATTERY_SUNWODA,
- BATTERY_SUNWODA_1,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_COUNT
-};
-
-enum ioex_port {
- IOEX_C0_NCT3807 = 0,
- IOEX_PORT_COUNT
-};
-
-#define PORT_TO_HPD(port) ((port == 0) \
- ? GPIO_USB3_C0_DP2_HPD \
- : GPIO_DP1_HPD)
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_A1,
- USBA_PORT_COUNT
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * VILBOZ_MB_USBAC
- * USB-A0 Speed: 5 Gbps
- * Retimer: none
- * USB-C0 Speed: 5 Gbps
- * Retimer: none
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- VILBOZ_MB_USBAC = 0,
-};
-
-/**
- * VILBOZ_DB_D_OPT1_USBA_HDMI
- * USB-A1 Speed: 5 Gbps
- * Retimer: None
- * HDMI Retimer: PS8203
- * MST Hub: none
- * P-Sensor SX9324
- */
-enum ec_cfg_usb_db_type {
- VILBOZ_DB_D_OPT1_USBA_HDMI = 0,
-};
-
-#include "cbi_ec_fw_config.h"
-
-void board_reset_pd_mcu(void);
-
-/* Common definition for the USB PD interrupt handlers. */
-void tcpc_alert_event(enum gpio_signal signal);
-void bc12_interrupt(enum gpio_signal signal);
-void ppc_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/vilboz/build.mk b/board/vilboz/build.mk
deleted file mode 100644
index 1c0cbc4f63..0000000000
--- a/board/vilboz/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/vilboz/ec.tasklist b/board/vilboz/ec.tasklist
deleted file mode 100644
index 08801d1786..0000000000
--- a/board/vilboz/ec.tasklist
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE)
diff --git a/board/vilboz/gpio.inc b/board/vilboz/gpio.inc
deleted file mode 100644
index 78baa0eccc..0000000000
--- a/board/vilboz/gpio.inc
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, lsm6dsm_interrupt)
-GPIO_INT(HDMI_CONN_HPD_3V3, PIN(D, 4), GPIO_INT_BOTH | GPIO_PULL_UP, hdmi_hpd_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 7), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(7, 0), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(EN_USB_A1_5V, PIN(F, 0), GPIO_OUT_LOW) /* A1 5V Source Enable */
-GPIO(USB3_C0_DP2_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-GPIO(LED3_PWM, PIN(C, 3), GPIO_OUT_HIGH)
-
-/* LTE control */
-GPIO(LTE_EN, PIN(6, 2), GPIO_OUT_LOW) /* WWAN LTE Function enable */
-GPIO(LTE_W_DISABLE_L, PIN(4, 0), GPIO_OUT_LOW) /* WWAN LTE flight mode */
-GPIO(LTE_FCPO, PIN(7, 3), GPIO_OUT_LOW) /* WWAN LTE Full Card Power ON OFF */
-
-/*
- * Vilboz has only 1 HDMI DB option
- */
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_C0_FAULT_ODL, EXPIN(IOEX_C0_NCT3807, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(IOEX_C0_NCT3807, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(IOEX_C0_NCT3807, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(IOEX_C0_NCT3807, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(EN_USB_A0_5V, EXPIN(IOEX_C0_NCT3807, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-UNIMPLEMENTED(USB_A0_CHARGE_EN_L)
-IOEX(USB_C0_SBU_FLIP, EXPIN(IOEX_C0_NCT3807, 1, 7), GPIO_OUT_LOW) /* C0 SBU Flip */
-UNIMPLEMENTED(USB_A1_CHARGE_EN_DB_L)
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(I2C_AUDIO_USB_HUB_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(I2C_AUDIO_USB_HUB_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_BATT_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/vilboz/led.c b/board/vilboz/led.c
deleted file mode 100644
index 4e9697ddbb..0000000000
--- a/board/vilboz/led.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 97;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_RED, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} },
-};
-
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC},
- {LED_OFF, 0.5 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-BUILD_ASSERT(ARRAY_SIZE(led_pwr_state_table) == PWR_LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED3_PWM, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED3_PWM, LED_OFF_LVL);
-}
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_GREEN:
- gpio_set_level(GPIO_LED_FULL_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_RED:
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_FULL_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color_battery(EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/vilboz/vif_override.xml b/board/vilboz/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/vilboz/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/voema/battery.c b/board/voema/battery.c
deleted file mode 100644
index d345cb72ec..0000000000
--- a/board/voema/battery.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC\011 L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC_AP15O5L] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00305013",
- .device_name = "AP15O5L",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AP15O5L;
diff --git a/board/voema/board.c b/board/voema/board.c
deleted file mode 100644
index ef428089a4..0000000000
--- a/board/voema/board.c
+++ /dev/null
@@ -1,432 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-static const struct ec_response_keybd_config voema_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &voema_kb;
-}
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Volteer if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB3_ACTIVE,
-};
-
-static void board_init(void)
-{
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_BATTERY_SCL,
- .sda = GPIO_EC_I2C5_BATTERY_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_PWR_SCL_R,
- .sda = GPIO_EC_I2C7_EEPROM_PWR_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- /* No reset available for TCPC on port 0 */
- /* Daughterboard specific reset for port 1 */
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-__override void board_cbi_init(void)
-{
- if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad()) ||
- get_board_id() <= 2)
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C0_FRS_EN,
- .drv = &syv682x_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C1_FRS_EN,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set to the
- * virtual_usb_mux_driver so the AP gets notified of mux changes and updates
- * the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
-
-static void kb_backlight_enable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
diff --git a/board/voema/board.h b/board/voema/board.h
deleted file mode 100644
index ce91eab712..0000000000
--- a/board/voema/board.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-#ifdef BOARD_VOEMA
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-#endif
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_KX022
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#ifdef BOARD_VOEMA_NPCX796FC
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS) | BIT(BASE_ACCEL))
-#else
-#define CONFIG_ACCEL_FORCE_MODE_MASK (board_accel_force_mode_mask())
-#endif
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* TODO: b/144165680 - measure and check these values on Volteer */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 65000
-#define PD_MAX_CURRENT_MA 3250
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#undef CONFIG_SYV682X_HV_ILIM
-#define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_5_50
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */
-#define CONFIG_USB_PD_FRS_PPC
-#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#undef CONFIG_USB_PD_TCPM_TUSB422
-#undef CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-#undef CONFIG_FANS
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_LGC011,
- BATTERY_PANASONIC_AP15O5L,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-#ifndef BOARD_VOEMA_NPCX796FC
-void motion_interrupt(enum gpio_signal signal);
-int board_accel_force_mode_mask(void);
-#endif
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/voema/build.mk b/board/voema/build.mk
deleted file mode 100644
index 0a0929babc..0000000000
--- a/board/voema/build.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-# Limited boards with 796 variant and will use 797 moving forward. Set the
-# modify the variant type to match.
-ifeq ($(BOARD),voema_npcx796fc)
-CHIP_VARIANT:=npcx7m6fc
-else
-CHIP_VARIANT:=npcx7m7fc
-endif
-
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/voema/ec.tasklist b/board/voema/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/voema/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/voema/gpio.inc b/board/voema/gpio.inc
deleted file mode 100644
index 8379e5f12a..0000000000
--- a/board/voema/gpio.inc
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-#ifndef BOARD_VOEMA_NPCX796FC
-GPIO_INT(EC_MB_ACCEL_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-#else
-GPIO(EC_MB_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP)
-#endif
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/*
- * Base / Lid g-sensor interrupt unused on Voema, configure as regular input
- * for power saving.
- */
-GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-GPIO(USB_C0_FRS_EN, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- * TODO(b/138954381): Change these names when they change on the schematic.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW)
-
-/* Unused signals */
-GPIO(UNUSED_GPIO72, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF3, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO57, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOC2, PIN(C, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO61, PIN(6, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOB7, PIN(B, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO40, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD1, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD0, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SDA_R, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
- /* LED */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Blue */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Amber */
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
-
diff --git a/board/voema/led.c b/board/voema/led.c
deleted file mode 100644
index 25e71c262d..0000000000
--- a/board/voema/led.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for voema
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else
- led_set_color_battery(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/board/voema/sensors.c b/board/voema/sensors.c
deleted file mode 100644
index 005bad5af8..0000000000
--- a/board/voema/sensors.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ssfc.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accel_kionix.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_base_data;
-static struct accelgyro_saved_data_t g_bma253_lid_data;
-
-static struct icm_drv_data_t g_icm426xx_data;
-
-static struct kionix_accel_data g_kx022_lid_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/146166425 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_kx022_lid_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_lid_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bma253_base_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR2_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-struct motion_sensor_t icm_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L);
-
- /*
- * TODO: If a SSFC for the base sensor is added, add the check
- * here.
- */
- if (IS_ENABLED(BOARD_VOEMA) && get_cbi_ssfc_base_sensor() ==
- SSFC_SENSOR_BASE_ICM426XX) {
- gpio_enable_interrupt(GPIO_EC_MB_ACCEL_INT_L);
- motion_sensors[BASE_ACCEL] = icm_base_accel;
- motion_sensors[BASE_GYRO] = icm_base_gyro;
- ccprints("BASE ACCEL/GYRO is ICM426XX");
- } else
- ccprints("BASE_ACCEL is BMA253");
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LID_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID_ACCEL is KX022");
- } else
- ccprints("LID_ACCEL is BMA253");
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
-
-#ifndef BOARD_VOEMA_NPCX796FC
-void motion_interrupt(enum gpio_signal signal)
-{
- icm426xx_interrupt(signal);
-}
-
-int board_accel_force_mode_mask(void)
-{
- if (system_get_board_version() <= 2)
- return (BIT(LID_ACCEL) | BIT(CLEAR_ALS) | BIT(BASE_ACCEL));
- else
- return (BIT(LID_ACCEL) | BIT(CLEAR_ALS));
-}
-#endif
diff --git a/board/voema/vif_override.xml b/board/voema/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/voema/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/voema_npcx796fc b/board/voema_npcx796fc
deleted file mode 120000
index 172bf9e9be..0000000000
--- a/board/voema_npcx796fc
+++ /dev/null
@@ -1 +0,0 @@
-voema \ No newline at end of file
diff --git a/board/volet/battery.c b/board/volet/battery.c
deleted file mode 100644
index 2e4fb7dc71..0000000000
--- a/board/volet/battery.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AP19B8M */
- [BATTERY_AP19B8M] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G024",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13350,
- .voltage_normal = 11610,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* COSMX AP20CBL Battery Information */
- [BATTERY_COSMX_AP20CBL] = {
- .fuel_gauge = {
- .manuf_name = "COSMX KT0030B002",
- .device_name = "AP20CBL",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP19B8M;
diff --git a/board/volet/board.c b/board/volet/board.c
deleted file mode 100644
index a47bd3d8c6..0000000000
--- a/board/volet/board.c
+++ /dev/null
@@ -1,497 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/tcpm/tcpci.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static const struct ec_response_keybd_config volet_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config volet_kb_num = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- if (!ec_cfg_has_numeric_pad())
- return &volet_kb;
- else
- return &volet_kb_num;
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff,
- 0xff, /* full set */
- },
-};
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- /*
- * Remove keyboard backlight feature for devices that don't support it.
- */
- if (!ec_cfg_has_keyboard_backlight())
- return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
- else
- return flags0;
-}
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Voxel if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB4_GEN3,
-};
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- * reference that temperature and fan settings
- * are derived from data in b/167523658#39
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2100,
- .rpm_start = 2100,
- .rpm_max = 5800,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Reference that temperature and fan settings
- * are derived from data in b/167523658#39
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(90),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_cpu,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_cpu,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void kb_backlight_enable(void)
-{
- if (ec_cfg_has_keyboard_backlight())
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- if (ec_cfg_has_keyboard_backlight())
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Only the Burnside Bridge retimers provide a reset pin, but this is
- * already handled by the bb_retimer.c driver.
- */
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- .frs_en = GPIO_USB_C0_FRS_EN,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- .frs_en = GPIO_USB_C1_FRS_EN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-__override void board_cbi_init(void)
-{
- if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad())) {
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
- /* Search key is moved back to col=1,row=0 */
- keyscan_config.actual_key_mask[0] = 0x14;
- keyscan_config.actual_key_mask[1] = 0xff;
- keyscan_config.actual_key_mask[11] = 0xfa;
- keyscan_config.actual_key_mask[12] = 0xca;
- }
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-const struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 |
- TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set to the
- * virtual_usb_mux_driver so the AP gets notified of mux changes and updates
- * the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-const struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/volet/board.h b/board/volet/board.h
deleted file mode 100644
index 56285989be..0000000000
--- a/board/volet/board.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#undef NPCX7_PWM1_SEL
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Keyboard backliht */
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source*/
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-#ifdef BOARD_VOXEL_ECMODEENTRY
-#undef CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-#endif
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */
-#define CONFIG_USB_PD_FRS_PPC
-#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
-#undef CONFIG_USB_PD_TCPM_TUSB422
-#undef CONFIG_USB_MUX_RUNTIME_CONFIG
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/* Retimer */
-#undef CONFIG_USBC_RETIMER_INTEL_BB
-#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_AP19B8M,
- BATTERY_LGC_AP18C8K,
- BATTERY_COSMX_AP20CBL,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/volet/build.mk b/board/volet/build.mk
deleted file mode 100644
index 546bcba8d2..0000000000
--- a/board/volet/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/volet/ec.tasklist b/board/volet/ec.tasklist
deleted file mode 100644
index e76bd368eb..0000000000
--- a/board/volet/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/volet/gpio.inc b/board/volet/gpio.inc
deleted file mode 100644
index ed4b426a86..0000000000
--- a/board/volet/gpio.inc
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INPUT | GPIO_PULL_UP) /* unused */
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-/*
- * Lid g-sensor interrupt unused on Voxel, configure as regular input for
- * power saving.
- */
-GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(3, 5), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-/*
- * USB_C1 moved from GPIO32 to GPIO83 on boards with board ID >=1.
- * GPIO83/EN_PP1800_A is DNS on board ID 0 and GPIO32 is N/C on board ID >=1
- * so it's safe to define GPIOs compatible with both designs.
- * TODO (b/149858568): remove board ID=0 support.
- */
-GPIO(USB_C0_RT_RST_ODL, PIN(4, 1), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset on boards board ID >=1 */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-GPIO(USB_C0_RT_INT_ODL, PIN(C, 6), GPIO_INPUT)
-GPIO(USB_C1_RT_INT_ODL, PIN(9, 6), GPIO_INPUT)
-GPIO(USB_C0_FRS_EN, PIN(C, 2), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Blue */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Yellow */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight enable*/
-
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Unused signals */
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO60, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOA7, PIN(A, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD0, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOD1, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF3, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/volet/led.c b/board/volet/led.c
deleted file mode 100644
index ba4af36163..0000000000
--- a/board/volet/led.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for Volteer
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/volet/sensors.c b/board/volet/sensors.c
deleted file mode 100644
index 49e879ea94..0000000000
--- a/board/volet/sensors.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "cbi_ssfc.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_MOTION_SENSE, format, ## args)
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct kionix_accel_data g_kx022_data;
-
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_sensors_init(void)
-{
- if (ec_cfg_has_tabletmode()) {
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else
- ccprints("BASE GYRO is BMI160");
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LID_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID_ACCEL is KX022");
- } else
- ccprints("LID_ACCEL is BMA253");
-
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable interrupt for the accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_EC_IMU_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_sensors_init, HOOK_PRIO_DEFAULT);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (get_cbi_ssfc_base_sensor()) {
- case SSFC_SENSOR_BASE_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case SSFC_SENSOR_BASE_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
diff --git a/board/volet/vif_override.xml b/board/volet/vif_override.xml
deleted file mode 100644
index 3fc41630da..0000000000
--- a/board/volet/vif_override.xml
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VIF xmlns="http://usb.org/VendorInfoFile.xsd">
- <Model_Part_Number>Voxel</Model_Part_Number>
- <Product_Revision>0</Product_Revision>
- <TID>0</TID>
- <Product>
- <!-- Information about TGL USB4 provided by Intel. See b/172963736 -->
- <USB4_Num_Internal_Host_Controllers value="1" />
- <USB4_Num_PCIe_DN_Bridges value="0" />
- <USB4RouterList>
- <Usb4Router>
- <USB4_Router_ID value="1" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="4" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="1" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="4" />
- <USB4_TBT3_Not_Supported value="0">TBT3 Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="true" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- <USB4_TBT3_VID value="32903">8087</USB4_TBT3_VID>
- <USB4_PCIe_Switch_Vendor_ID value="32902">8086</USB4_PCIe_Switch_Vendor_ID>
- <USB4_PCIe_Switch_Device_ID value="39451">9A1B</USB4_PCIe_Switch_Device_ID>
- </Usb4Router>
- <Usb4Router>
- <USB4_Router_ID value="0" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="2" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="0" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="0" />
- <USB4_TBT3_Not_Supported value="1">Not TBT3-Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="false" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- </Usb4Router>
- </USB4RouterList>
- </Product>
- <Component>
- <USB4_Max_Speed value="1">Gen 3 (40Gb)</USB4_Max_Speed>
- <USB4_DFP_Supported value="true" />
- <USB4_UFP_Supported value="false" />
- <USB4_USB3_Tunneling_Supported value="true" />
- <USB4_DP_Tunneling_Supported value="true" />
- <USB4_PCIe_Tunneling_Supported value="true" />
- <USB4_TBT3_Compatibility_Supported value="true" />
- <USB4_CL1_State_Supported value="true" />
- <USB4_CL2_State_Supported value="true" />
- <USB4_Num_Retimers value="1" />
- <USB4_DP_Bit_Rate value="3">HBR3</USB4_DP_Bit_Rate>
- <USB4_Num_DP_Lanes value="4">4 Lanes</USB4_Num_DP_Lanes>
- <USB4_Lane_0_Adapter value="1" />
- <Host_Supports_USB_Data value="true" />
- <Host_Speed value="2">USB 3.2 Gen 2x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="true" />
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <Host_Suspend_Supported value="true" />
- <Is_DFP_On_Hub value="false" />
- <USB_Suspend_May_Be_Cleared value="true" />
- <FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="3">3A @ 5V</FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <FR_Swap_Supported_As_Initial_Sink value="true" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <Data_Capable_As_USB_Host_SOP value="true" />
- <Data_Capable_As_USB_Device_SOP value="false" />
- <!-- TODO(b/173028252): Figure out the appropriate Discover Identity ACK for
- Volteer and update the EC and VIF accordingly. -->
- <Product_Type_UFP_SOP value="3">PSD</Product_Type_UFP_SOP>
- <Product_Type_DFP_SOP value="4">Alternate Mode Controller (AMC)</Product_Type_DFP_SOP>
- <DFP_VDO_Port_Number value="0" />
- <Modal_Operation_Supported_SOP value="true" />
- <USB_VID_SOP value="6353">18D1</USB_VID_SOP>
- <bcdDevice_SOP value="0">0000</bcdDevice_SOP>
- <SVID_Fixed_SOP value="true" />
- <Num_SVIDs_Min_SOP value="1" />
- <Num_SVIDs_Max_SOP value="1" />
- <SOPSVIDList>
- <SOPSVID>
- <SVID_SOP value="32903">8087</SVID_SOP>
- <SVID_Modes_Fixed_SOP value="true" />
- <SVID_Num_Modes_Min_SOP value="1" />
- <SVID_Num_Modes_Max_SOP value="1" />
- <SOPSVIDModeList>
- <SOPSVIDMode>
- <SVID_Mode_Enter_SOP value="true" />
- <SVID_Mode_Recog_Value_SOP value="0">00000000</SVID_Mode_Recog_Value_SOP>
- </SOPSVIDMode>
- </SOPSVIDModeList>
- </SOPSVID>
- </SOPSVIDList>
- </Component>
- <Component>
- <USB4_Max_Speed value="1">Gen 3 (40Gb)</USB4_Max_Speed>
- <USB4_DFP_Supported value="true" />
- <USB4_UFP_Supported value="false" />
- <USB4_USB3_Tunneling_Supported value="true" />
- <USB4_DP_Tunneling_Supported value="true" />
- <USB4_PCIe_Tunneling_Supported value="true" />
- <USB4_TBT3_Compatibility_Supported value="true" />
- <USB4_CL1_State_Supported value="true" />
- <USB4_CL2_State_Supported value="true" />
- <USB4_Num_Retimers value="1" />
- <USB4_DP_Bit_Rate value="3">HBR3</USB4_DP_Bit_Rate>
- <USB4_Num_DP_Lanes value="4">4 Lanes</USB4_Num_DP_Lanes>
- <USB4_Lane_0_Adapter value="1" />
- <Host_Supports_USB_Data value="true" />
- <Host_Speed value="2">USB 3.2 Gen 2x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="true" />
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <Host_Suspend_Supported value="true" />
- <Is_DFP_On_Hub value="false" />
- <USB_Suspend_May_Be_Cleared value="true" />
- <FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="3">3A @ 5V</FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <FR_Swap_Supported_As_Initial_Sink value="true" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <Data_Capable_As_USB_Host_SOP value="true" />
- <Data_Capable_As_USB_Device_SOP value="false" />
- <!-- TODO(b/173028252): Figure out the appropriate Discover Identity ACK for
- Volteer and update the EC and VIF accordingly. -->
- <Product_Type_UFP_SOP value="3">PSD</Product_Type_UFP_SOP>
- <Product_Type_DFP_SOP value="4">Alternate Mode Controller (AMC)</Product_Type_DFP_SOP>
- <DFP_VDO_Port_Number value="1" />
- <Modal_Operation_Supported_SOP value="true" />
- <USB_VID_SOP value="6353">18D1</USB_VID_SOP>
- <bcdDevice_SOP value="0">0000</bcdDevice_SOP>
- <SVID_Fixed_SOP value="true" />
- <Num_SVIDs_Min_SOP value="1" />
- <Num_SVIDs_Max_SOP value="1" />
- <SOPSVIDList>
- <SOPSVID>
- <SVID_SOP value="32903">8087</SVID_SOP>
- <SVID_Modes_Fixed_SOP value="true" />
- <SVID_Num_Modes_Min_SOP value="1" />
- <SVID_Num_Modes_Max_SOP value="1" />
- <SOPSVIDModeList>
- <SOPSVIDMode>
- <SVID_Mode_Enter_SOP value="true" />
- <SVID_Mode_Recog_Value_SOP value="0">00000000</SVID_Mode_Recog_Value_SOP>
- </SOPSVIDMode>
- </SOPSVIDModeList>
- </SOPSVID>
- </SOPSVIDList>
- </Component>
-</VIF>
diff --git a/board/volteer/battery.c b/board/volteer/battery.c
deleted file mode 100644
index 1c24e1ec24..0000000000
--- a/board/volteer/battery.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2019 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC\011 L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC011;
diff --git a/board/volteer/board.c b/board/volteer/board.c
deleted file mode 100644
index 8c1be1bf64..0000000000
--- a/board/volteer/board.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi260.h"
-#include "driver/als_tcs3400.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "timer.h"
-#include "uart.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/******************************************************************************/
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1900,
- .rpm_start = 1900,
- .rpm_max = 5900,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
- * 130 C. However, sensor is located next to DDR, so we need to use the lower
- * DDR temperature limit (85 C)
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(35),
- .temp_fan_max = C_TO_K(50),
-};
-
-/*
- * Inductor limits - used for both charger and PP3300 regulator
- *
- * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
- *
- * Charger max recommended temperature 100C, max absolute temperature 125C
- * PP3300 regulator: operating range -40 C to 145 C
- *
- * Inductors: limit of 125c
- * PCB: limit is 80c
- */
-const static struct ec_thermal_config thermal_inductor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(80),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- },
- .temp_fan_off = C_TO_K(40),
- .temp_fan_max = C_TO_K(55),
-};
-
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_BATTERY_SCL,
- .sda = GPIO_EC_I2C5_BATTERY_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_PWR_SCL_R,
- .sda = GPIO_EC_I2C7_EEPROM_PWR_SDA_R,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED1_BLUE] = {
- .channel = 2,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED2_GREEN] = {
- .channel = 0,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED3_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- .freq = 4800,
- },
- [PWM_CH_LED4_SIDESEL] = {
- .channel = 7,
- .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
- /*
- * If using the side select to run both LEDs at the same time,
- * the frequency should be 1/2 of the color channel PWM
- * frequency to drive each LED equally.
- */
- .freq = 2400,
- },
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
diff --git a/board/volteer/board.h b/board/volteer/board.h
deleted file mode 100644
index bd527510f2..0000000000
--- a/board/volteer/board.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/*
- * Create an EC build that requires AP-driven mode entry to facilitate debugging
- * b/177105656.
- */
-#ifdef BOARD_VOLTEER_APMODEENTRY
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-#endif
-
-#ifdef BOARD_VOLTEER_NPCX797FC
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-#endif
-
-/* Optional features */
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
-
-/* Remove PRL state names to free flash space */
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_PWM
-/* Although there are 2 LEDs, they are both controlled by the same lines. */
-#define CONFIG_LED_PWM_COUNT 1
-
-/* Keyboard features */
-
-/* Sensors */
-/* BMA253 accelerometer in base */
-#define CONFIG_ACCEL_BMA255
-
-/* BMI260 accel/gyro in base */
-#define CONFIG_ACCELGYRO_BMI260
-#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* TCS3400 ALS */
-#define CONFIG_ALS
-#define ALS_COUNT 1
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
- (BIT(LID_ACCEL) | BIT(CLEAR_ALS))
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* TODO: b/144165680 - measure and check these values on Volteer */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 60000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x40
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
-#define CONFIG_USB_PD_FRS_PPC
-
-/* BC 1.2 */
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-#define CONFIG_DEBUG_ASSERT_BRIEF
-
-/* Disable console commands to help save space */
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_BUTTON
-#undef CONFIG_CONSOLE_CMDHELP
-
-/* Disable volume button in ectool */
-#undef CONFIG_HOSTCMD_BUTTON
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#include "usbc_config.h"
-
-enum battery_type {
- BATTERY_LGC011,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_LED1_BLUE = 0,
- PWM_CH_LED2_GREEN,
- PWM_CH_LED3_RED,
- PWM_CH_LED4_SIDESEL,
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- CLEAR_ALS,
- RGB_ALS,
- SENSOR_COUNT,
-};
-
-void board_reset_pd_mcu(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/volteer/build.mk b/board/volteer/build.mk
deleted file mode 100644
index 5adcffff56..0000000000
--- a/board/volteer/build.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-# A limited Volteer boards are reworked with NPCX797FC variant. Set the
-# modify the variant type to match.
-ifeq ($(BOARD),volteer_npcx797fc)
-CHIP_VARIANT:=npcx7m7fc
-else
-CHIP_VARIANT:=npcx7m6fc
-endif
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=cbi.o
-board-y+=led.o
-board-y+=sensors.o
-board-y+=usbc_config.o
diff --git a/board/volteer/cbi.c b/board/volteer/cbi.c
deleted file mode 100644
index b39f0d7d2f..0000000000
--- a/board/volteer/cbi.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Features common to ECOS and Zephyr */
-#include "common.h"
-#include "cbi.h"
-#include "cbi_ec_fw_config.h"
-#include "keyboard_raw.h"
-#include "usbc_config.h"
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Volteer if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB4_GEN2,
-};
-
-__override void board_cbi_init(void)
-{
- config_usb3_db_type();
- if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad()) ||
- get_board_id() <= 2)
- keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
-}
diff --git a/board/volteer/ec.tasklist b/board/volteer/ec.tasklist
deleted file mode 100644
index ec9e64e850..0000000000
--- a/board/volteer/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/volteer/gpio.inc b/board/volteer/gpio.inc
deleted file mode 100644
index 33d04741d3..0000000000
--- a/board/volteer/gpio.inc
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi260_interrupt)
-GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-/*
- * Lid g-sensor interrupt unused on Volteer, configure as regular input for
- * power saving.
- */
-GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(C, 6), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW)
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-/* There is currently no need to service this interrupt. */
-GPIO(USB_C1_RT_INT_ODL, PIN(F, 3), GPIO_INPUT)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-/*
- * Despite their names, M2_SSD_PLN and M2_SSD_PLA are active-low, and M2_SSD_PLN
- * is open-drain.
- * TODO(b/138954381): Change these names when they change on the schematic.
- */
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Unused signals */
-GPIO(CHARGER_INT_L, PIN(7, 3), GPIO_INPUT) /* Interrupt not used from ISL9241, on board pull-up */
-GPIO(EC_GP_SEL0_ODL, PIN(B, 6), GPIO_OUT_LOW) /* Cannot be configured as input, drive output low, don't rely on the default setting of PxDOUT register */
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT) /* Unused power sequence signal from AP. Has an on-board pull-down. */
-GPIO(EN_PP5000_USB_AG, PIN(A, 7), GPIO_INPUT | GPIO_PULL_UP) /* Unconnected power sequencing signal */
-GPIO(UNUSED_GPIO41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-/* Only connected to test points */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EC_ESPI_ALERT_L, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SCL_R, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_PWR_SDA_R, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* This selects between an LED module on the motherboard and one on the daughter
- * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at
- * the same time. */
-ALTERNATE(PIN_MASK(6, BIT(0)), 0, MODULE_PWM, 0) /* LED_SIDESEL_4_L */
-ALTERNATE(PIN_MASK(C, BIT(2) | BIT(3) | BIT(4)), 0, MODULE_PWM, 0) /* LED_{3,2,1}_L */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
-
diff --git a/board/volteer/led.c b/board/volteer/led.c
deleted file mode 100644
index 6b09d5b4a0..0000000000
--- a/board/volteer/led.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Volteer
- */
-
-#include "charge_manager.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "led_pwm.h"
-#include "pwm.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-#ifndef CONFIG_ZEPHYR
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 100, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- /* The green LED seems to be brighter than the others, so turn down
- * green from its natural level for these secondary colors.
- */
- [EC_LED_COLOR_YELLOW] = { 100, 70, 0 },
- [EC_LED_COLOR_WHITE] = { 100, 70, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 20, 0 },
-};
-
-struct pwm_led pwm_leds[] = {
- /* 2 RGB diffusers controlled by 1 set of 3 channels. */
- [PWM_LED0] = {
- .ch0 = PWM_CH_LED3_RED,
- .ch1 = PWM_CH_LED2_GREEN,
- .ch2 = PWM_CH_LED1_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 255;
- brightness_range[EC_LED_COLOR_GREEN] = 255;
- brightness_range[EC_LED_COLOR_BLUE] = 255;
-}
-#endif
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
-
-/* Illuminates the LED on the side of the active charging port. If not charging,
- * illuminates both LEDs.
- */
-static void led_set_charge_port_tick(void)
-{
- int port;
- int side_select_duty;
-
- port = charge_manager_get_active_charge_port();
- switch (port) {
- case 0:
- side_select_duty = 100;
- break;
- case 1:
- side_select_duty = 0;
- break;
- default:
- side_select_duty = 50;
- }
-
- if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
- pwm_set_duty(PWM_CH_LED4_SIDESEL, side_select_duty);
-}
-DECLARE_HOOK(HOOK_TICK, led_set_charge_port_tick, HOOK_PRIO_DEFAULT);
-
-static void board_led_init(void)
-{
- /* Illuminate motherboard and daughter board LEDs equally to start. */
- pwm_enable(PWM_CH_LED4_SIDESEL, 1);
- pwm_set_duty(PWM_CH_LED4_SIDESEL, 50);
-}
-DECLARE_HOOK(HOOK_INIT, board_led_init, HOOK_PRIO_DEFAULT);
diff --git a/board/volteer/sensors.c b/board/volteer/sensors.c
deleted file mode 100644
index 5f7e197924..0000000000
--- a/board/volteer/sensors.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "driver/accel_bma2x2_public.h"
-#include "driver/accelgyro_bmi_common_public.h"
-#include "driver/accelgyro_bmi260_public.h"
-#include "driver/als_tcs3400_public.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-/******************************************************************************/
-/* Sensors */
-K_MUTEX_DEFINE(g_lid_accel_mutex);
-K_MUTEX_DEFINE(g_base_mutex);
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI260 private data */
-static struct bmi_drv_data_t g_bmi260_data;
-
-/* TCS3400 private data */
-static struct als_drv_data_t g_tcs3400_data = {
- .als_cal.scale = 1,
- .als_cal.uscale = 0,
- .als_cal.offset = 0,
- .als_cal.channel_scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */
- .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */
- },
-};
-
-/*
- * TODO: b/146166425 need to calibrate ALS/RGB sensor. At default settings,
- * shining phone flashlight on sensor pegs all readings at 0xFFFF.
- */
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- },
- },
- .calibration.rgb_cal[Z] = {
- .offset = 0,
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI260,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi260_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi260_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
- [CLEAR_ALS] = {
- .name = "Clear Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_drv,
- .drv_data = &g_tcs3400_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = TCS3400_I2C_ADDR_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- .min_frequency = TCS3400_LIGHT_MIN_FREQ,
- .max_frequency = TCS3400_LIGHT_MAX_FREQ,
- .config = {
- /* Run ALS sensor in S0 */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 1000,
- },
- },
- },
-
- [RGB_ALS] = {
- /*
- * RGB channels read by CLEAR_ALS and so the i2c port and
- * address do not need to be defined for RGB_ALS.
- */
- .name = "RGB Light",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_TCS3400,
- .type = MOTIONSENSE_TYPE_LIGHT_RGB,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &tcs3400_rgb_drv,
- .drv_data = &g_tcs3400_rgb_data,
- .rot_standard_ref = NULL,
- .default_range = 0x10000, /* scale = 1x, uscale = 0 */
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* ALS instances when LPC mapping is needed. Each entry directs to a sensor. */
-const struct motion_sensor_t *motion_als_sensors[] = {
- &motion_sensors[CLEAR_ALS],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-
-static void baseboard_sensors_init(void)
-{
- /* Note - BMA253 interrupt unused by EC */
-
- /* Enable interrupt for the TCS3400 color light sensor */
- gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L);
- /* Enable interrupt for the BMI260 accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT);
diff --git a/board/volteer/usbc_config.c b/board/volteer/usbc_config.c
deleted file mode 100644
index 0adfe98107..0000000000
--- a/board/volteer/usbc_config.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Volteer family-specific USB-C configuration */
-#include "common.h"
-#include "cbi_ec_fw_config.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "system.h"
-#include "timer.h"
-#include "usbc_config.h"
-#include "usbc_ppc.h"
-#include "usb_mux.h"
-#include "driver/bc12/pi3usb9201_public.h"
-#include "driver/ppc/sn5s330_public.h"
-#include "driver/ppc/syv682x_public.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/tcpm/ps8xxx_public.h"
-#include "driver/tcpm/rt1715_public.h"
-#include "driver/tcpm/tusb422_public.h"
-#include "driver/tcpm/tcpci.h"
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-/* USBC TCPC configuration for USB3 daughter board */
-static const struct tcpc_config_t tcpc_config_p1_usb3 = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0 | TCPC_FLAGS_TCPCI_REV2_0_NO_VSAFE0V,
- .drv = &ps8xxx_tcpm_drv,
-};
-
-/*
- * USB3 DB mux configuration - the top level mux still needs to be set to the
- * virtual_usb_mux_driver so the AP gets notified of mux changes and updates
- * the TCSS configuration on state changes.
- */
-static const struct usb_mux usbc1_usb3_db_retimer = {
- .usb_port = USBC_PORT_C1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- .next_mux = NULL,
-};
-
-static const struct usb_mux mux_config_p1_usb3_active = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb3_db_retimer,
-};
-
-static const struct usb_mux mux_config_p1_usb3_passive = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-/*
- * Set up support for the USB3 daughterboard:
- * Parade PS8815 TCPC (integrated retimer)
- * Diodes PI3USB9201 BC 1.2 chip (same as USB4 board)
- * Silergy SYV682A PPC (same as USB4 board)
- * Virtual mux with stacked retimer
- */
-static void config_db_usb3_active(void)
-{
- tcpc_config[USBC_PORT_C1] = tcpc_config_p1_usb3;
- usb_muxes[USBC_PORT_C1] = mux_config_p1_usb3_active;
-}
-
-/*
- * Set up support for the passive USB3 daughterboard:
- * TUSB422 TCPC (already the default)
- * PI3USB9201 BC 1.2 chip (already the default)
- * Silergy SYV682A PPC (already the default)
- * Virtual mux without stacked retimer
- */
-
-static void config_db_usb3_passive(void)
-{
- usb_muxes[USBC_PORT_C1] = mux_config_p1_usb3_passive;
-}
-
-static void config_port_discrete_tcpc(int port)
-{
- /*
- * Support 2 Pin-to-Pin compatible parts: TUSB422 and RT1715, for
- * simplicity allow either and decide at runtime which we are using.
- * Default to TUSB422, and switch to RT1715 if it is on the I2C bus and
- * the VID matches.
- */
-
- int regval;
-
- if (i2c_read16(port ? I2C_PORT_USB_C1 : I2C_PORT_USB_C0,
- RT1715_I2C_ADDR_FLAGS, TCPC_REG_VENDOR_ID,
- &regval) == EC_SUCCESS) {
- if (regval == RT1715_VENDOR_ID) {
- CPRINTS("C%d: RT1715 detected", port);
- tcpc_config[port].i2c_info.addr_flags =
- RT1715_I2C_ADDR_FLAGS;
- tcpc_config[port].drv = &rt1715_tcpm_drv;
- return;
- }
- }
- CPRINTS("C%d: Default to TUSB422", port);
-}
-
-static const char *db_type_prefix = "USB DB type: ";
-void config_usb3_db_type(void)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- config_port_discrete_tcpc(0);
- switch (usb_db) {
- case DB_USB_ABSENT:
- CPRINTS("%sNone", db_type_prefix);
- break;
- case DB_USB4_GEN2:
- config_port_discrete_tcpc(1);
- CPRINTS("%sUSB4 Gen1/2", db_type_prefix);
- break;
- case DB_USB4_GEN3:
- config_port_discrete_tcpc(1);
- CPRINTS("%sUSB4 Gen3", db_type_prefix);
- break;
- case DB_USB3_ACTIVE:
- config_db_usb3_active();
- CPRINTS("%sUSB3 Active", db_type_prefix);
- break;
- case DB_USB3_PASSIVE:
- config_db_usb3_passive();
- config_port_discrete_tcpc(1);
- CPRINTS("%sUSB3 Passive", db_type_prefix);
- break;
- default:
- CPRINTS("%sID %d not supported", db_type_prefix, usb_db);
- }
-}
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .frs_en = GPIO_USB_C1_FRS_EN,
- .drv = &syv682x_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = TUSB422_I2C_ADDR_FLAGS,
- },
- .drv = &tusb422_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .next_mux = &usbc1_tcss_usb_mux,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- /* USB-C port 0 doesn't have a retimer */
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- if (port == USBC_PORT_C1) {
- if (usb_db == DB_USB4_GEN2) {
- /*
- * Older boards violate 205mm trace length prior
- * to connection to the re-timer and only support up
- * to GEN2 speeds.
- */
- return TBT_SS_U32_GEN1_GEN2;
- } else if (usb_db == DB_USB4_GEN3) {
- return TBT_SS_TBT_GEN3;
- }
- }
-
- /*
- * Thunderbolt-compatible mode not supported
- *
- * TODO (b/147726366): All the USB-C ports need to support same speed.
- * Need to fix once USB-C feature set is known for Volteer.
- */
- return TBT_SS_RES_0;
-}
-
-__override bool board_is_tbt_usb4_port(int port)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- /*
- * Volteer reference design only supports TBT & USB4 on port 1
- * if the USB4 DB is present.
- *
- * TODO (b/147732807): All the USB-C ports need to support same
- * features. Need to fix once USB-C feature set is known for Volteer.
- */
- return ((port == USBC_PORT_C1)
- && ((usb_db == DB_USB4_GEN2) || (usb_db == DB_USB4_GEN3)));
-}
-
-static void ps8815_reset(void)
-{
- int val;
-
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 0);
- msleep(GENERIC_MAX(PS8XXX_RESET_DELAY_MS,
- PS8815_PWR_H_RST_H_DELAY_MS));
- gpio_set_level(GPIO_USB_C1_RT_RST_ODL, 1);
- msleep(PS8815_FW_INIT_DELAY_MS);
-
- /*
- * b/144397088
- * ps8815 firmware 0x01 needs special configuration
- */
-
- CPRINTS("%s: patching ps8815 registers", __func__);
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f was %02x", val);
-
- if (i2c_write8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, 0x31) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f set to 0x31");
-
- if (i2c_read8(I2C_PORT_USB_C1,
- PS8751_I2C_ADDR1_P2_FLAGS, 0x0f, &val) == EC_SUCCESS)
- CPRINTS("ps8815: reg 0x0f now %02x", val);
-}
-
-void board_reset_pd_mcu(void)
-{
- enum ec_cfg_usb_db_type usb_db = ec_cfg_usb_db_type();
-
- /* No reset available for TCPC on port 0 */
- /* Daughterboard specific reset for port 1 */
- if (usb_db == DB_USB3_ACTIVE) {
- ps8815_reset();
- usb_mux_hpd_update(USBC_PORT_C1, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
- }
-}
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-/******************************************************************************/
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/volteer/usbc_config.h b/board/volteer/usbc_config.h
deleted file mode 100644
index 55dfce7621..0000000000
--- a/board/volteer/usbc_config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* volteer board-specific USB-C configuration */
-
-#ifndef __CROS_EC_USBC_CONFIG_H
-#define __CROS_EC_USBC_CONFIG_H
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-/* Configure the USB3 daughterboard type */
-void config_usb3_db_type(void);
-
-#endif /* __CROS_EC_USBC_CONFIG_H */
diff --git a/board/volteer/vif_override.xml b/board/volteer/vif_override.xml
deleted file mode 100644
index f871a543e3..0000000000
--- a/board/volteer/vif_override.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VIF xmlns="http://usb.org/VendorInfoFile.xsd">
- <Model_Part_Number>Volteer RT1715</Model_Part_Number>
- <Product_Revision>0</Product_Revision>
- <TID>0</TID>
- <Product>
- <!-- Information about TGL USB4 provided by Intel. See b/172963736 -->
- <USB4_Num_Internal_Host_Controllers value="1" />
- <USB4_Num_PCIe_DN_Bridges value="0" />
- <USB4RouterList>
- <Usb4Router>
- <USB4_Router_ID value="1" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="4" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="1" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="4" />
- <USB4_TBT3_Not_Supported value="0">TBT3 Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="true" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- <USB4_TBT3_VID value="32903">8087</USB4_TBT3_VID>
- <USB4_PCIe_Switch_Vendor_ID value="32902">8086</USB4_PCIe_Switch_Vendor_ID>
- <USB4_PCIe_Switch_Device_ID value="39451">9A1B</USB4_PCIe_Switch_Device_ID>
- </Usb4Router>
- <Usb4Router>
- <USB4_Router_ID value="0" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="2" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="0" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="0" />
- <USB4_TBT3_Not_Supported value="1">Not TBT3-Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="false" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- </Usb4Router>
- </USB4RouterList>
- </Product>
- <Component>
- <!-- Port 0 is USB3-only. -->
- <USB4_Supported value="false">NO</USB4_Supported>
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <DFP_VDO_Port_Number value="0" />
- <Modal_Operation_Supported_SOP value="false" />
- </Component>
- <Component>
- <USB4_Max_Speed value="1">Gen 3 (40Gb)</USB4_Max_Speed>
- <USB4_DFP_Supported value="true" />
- <USB4_UFP_Supported value="false" />
- <USB4_USB3_Tunneling_Supported value="true" />
- <USB4_DP_Tunneling_Supported value="true" />
- <USB4_PCIe_Tunneling_Supported value="true" />
- <USB4_TBT3_Compatibility_Supported value="true" />
- <USB4_CL1_State_Supported value="true" />
- <USB4_CL2_State_Supported value="true" />
- <USB4_Num_Retimers value="1" />
- <USB4_DP_Bit_Rate value="3">HBR3</USB4_DP_Bit_Rate>
- <USB4_Num_DP_Lanes value="4">4 Lanes</USB4_Num_DP_Lanes>
- <USB4_Lane_0_Adapter value="1" />
- <Host_Supports_USB_Data value="true" />
- <Host_Speed value="2">USB 3.2 Gen 2x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="true" />
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <Host_Suspend_Supported value="true" />
- <Is_DFP_On_Hub value="false" />
- <USB_Suspend_May_Be_Cleared value="true" />
- <FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="3">3A @ 5V</FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <FR_Swap_Supported_As_Initial_Sink value="true" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <Data_Capable_As_USB_Host_SOP value="true" />
- <Data_Capable_As_USB_Device_SOP value="false" />
- <!-- TODO(b/173028252): Figure out the appropriate Discover Identity ACK for
- Volteer and update the EC and VIF accordingly. -->
- <Product_Type_UFP_SOP value="3">PSD</Product_Type_UFP_SOP>
- <Product_Type_DFP_SOP value="4">Alternate Mode Controller (AMC)</Product_Type_DFP_SOP>
- <DFP_VDO_Port_Number value="1" />
- <Modal_Operation_Supported_SOP value="true" />
- <USB_VID_SOP value="6353">18D1</USB_VID_SOP>
- <bcdDevice_SOP value="0">0000</bcdDevice_SOP>
- <SVID_Fixed_SOP value="true" />
- <Num_SVIDs_Min_SOP value="1" />
- <Num_SVIDs_Max_SOP value="1" />
- <SOPSVIDList>
- <SOPSVID>
- <SVID_SOP value="32903">8087</SVID_SOP>
- <SVID_Modes_Fixed_SOP value="true" />
- <SVID_Num_Modes_Min_SOP value="1" />
- <SVID_Num_Modes_Max_SOP value="1" />
- <SOPSVIDModeList>
- <SOPSVIDMode>
- <SVID_Mode_Enter_SOP value="true" />
- <SVID_Mode_Recog_Value_SOP value="0">00000000</SVID_Mode_Recog_Value_SOP>
- </SOPSVIDMode>
- </SOPSVIDModeList>
- </SOPSVID>
- </SOPSVIDList>
- </Component>
-</VIF>
diff --git a/board/volteer_apmodeentry b/board/volteer_apmodeentry
deleted file mode 120000
index f2f3e1d253..0000000000
--- a/board/volteer_apmodeentry
+++ /dev/null
@@ -1 +0,0 @@
-volteer \ No newline at end of file
diff --git a/board/volteer_ish/board.c b/board/volteer_ish/board.c
deleted file mode 100644
index 76c127056b..0000000000
--- a/board/volteer_ish/board.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Volteer ISH board-specific configuration */
-
-#include "console.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accel_bma2x2.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "task.h"
-
-#include "gpio_list.h" /* has to be included last */
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 1000
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* Sensor config */
-static struct mutex g_lid_mutex;
-
-/* sensor private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* Drivers */
-/* TODO(b/146144170): Implement rotation matrix once sensor moves to lid */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Update when matrix available */
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-int chipset_in_state(int state_mask)
-{
- return state_mask & CHIPSET_STATE_ON;
-}
-
-int chipset_in_or_transitioning_to_state(int state_mask)
-{
- return state_mask & CHIPSET_STATE_ON;
-}
-
-void chipset_force_shutdown(enum chipset_shutdown_reason reason)
-{
-}
-
-int board_idle_task(void *unused)
-{
- while (1)
- task_wait_event(-1);
-}
diff --git a/board/volteer_ish/board.h b/board/volteer_ish/board.h
deleted file mode 100644
index 097ee25750..0000000000
--- a/board/volteer_ish/board.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Volteer ISH board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/*
- * Allow dangerous commands.
- * TODO: Don't use this on production systems.
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/*
- * By default, enable all console messages except HC, ACPI and event
- * The sensor stack is generating a lot of activity.
- */
-#undef CONFIG_HOSTCMD_DEBUG_MODE
-#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
-
-/* ISH specific */
-#undef CONFIG_DEBUG_ASSERT
-#define CONFIG_CLOCK_CRYSTAL
-#define CONFIG_ISH_UART_0
-/* EC */
-#define CONFIG_FLASH_SIZE_BYTES 0x80000
-#define CONFIG_FPU
-#define CONFIG_I2C
-#define CONFIG_I2C_CONTROLLER
-
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_BMA255
-
-/* Host command over HECI */
-#define CONFIG_HOSTCMD_HECI
-
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_HECI
-
-#define CONFIG_ACCEL_INTERRUPTS
-
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* FIFO size is in power of 2. */
-#define CONFIG_ACCEL_FIFO_SIZE 512
-/* Depends on how fast the AP boots and typical ODRs */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK (BIT(LID_ACCEL))
-
-/* I2C ports */
-#define I2C_PORT_SENSOR ISH_I2C1
-#define CONFIG_CMD_I2C_XFER
-
-/* EC Console Commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_CMD_TIMERINFO
-
-/* Undefined features */
-#undef CONFIG_CMD_HASH
-#undef CONFIG_CMD_I2C_SCAN
-#undef CONFIG_CMD_KEYBOARD
-#undef CONFIG_CMD_POWER_AP
-#undef CONFIG_CMD_POWERINDEBUG
-#undef CONFIG_CMD_SHMEM
-#undef CONFIG_EXTPOWER
-#undef CONFIG_KEYBOARD_KSO_BASE
-#undef CONFIG_FLASH_CROS
-#undef CONFIG_FMAP
-#undef CONFIG_LID_SWITCH
-#undef CONFIG_SWITCH
-#undef CONFIG_WATCHDOG
-
-/* Modules we want to exclude */
-#undef CONFIG_CMD_HASH
-#undef CONFIG_CMD_TEMP_SENSOR
-#undef CONFIG_ADC
-#undef CONFIG_SHA256
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- SENSOR_COUNT
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/volteer_ish/build.mk b/board/volteer_ish/build.mk
deleted file mode 100644
index 74ec3c865f..0000000000
--- a/board/volteer_ish/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2019 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.
-#
-# Board specific files build
-#
-
-CHIP:=ish
-CHIP_FAMILY:=ish5
-CHIP_VARIANT:=ish5p4
-
-board-y=board.o
diff --git a/board/volteer_ish/ec.tasklist b/board/volteer_ish/ec.tasklist
deleted file mode 100644
index a4db486e9a..0000000000
--- a/board/volteer_ish/ec.tasklist
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, HUGE_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, LARGER_TASK_STACK_SIZE, 0) \
- TASK_NOTEST(CHIPSET, board_idle_task, NULL, IDLE_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(HECI_RX, heci_rx_task, NULL, HUGE_TASK_STACK_SIZE, 0) \
- TASK_ALWAYS(IPC_MNG, ipc_mng_task, NULL, LARGER_TASK_STACK_SIZE, 0)
diff --git a/board/volteer_ish/gpio.inc b/board/volteer_ish/gpio.inc
deleted file mode 100644
index 286309e388..0000000000
--- a/board/volteer_ish/gpio.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2019 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.
- */
-
-/*
- * We don't have a ENTERING_RW signal wired to the cr50 but common code needs
- * it to be defined.
- */
-UNIMPLEMENTED(ENTERING_RW)
diff --git a/board/volteer_npcx797fc b/board/volteer_npcx797fc
deleted file mode 120000
index f2f3e1d253..0000000000
--- a/board/volteer_npcx797fc
+++ /dev/null
@@ -1 +0,0 @@
-volteer \ No newline at end of file
diff --git a/board/voxel/battery.c b/board/voxel/battery.c
deleted file mode 100644
index 4f51b79ad9..0000000000
--- a/board/voxel/battery.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Volteer battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AP19B8M */
- [BATTERY_AP19B8M] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G024",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13350,
- .voltage_normal = 11610,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* COSMX AP20CBL Battery Information */
- [BATTERY_COSMX_AP20CBL] = {
- .fuel_gauge = {
- .manuf_name = "COSMX KT0030B002",
- .device_name = "AP20CBL",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_AP19B8M;
diff --git a/board/voxel/board.c b/board/voxel/board.c
deleted file mode 100644
index 830300620f..0000000000
--- a/board/voxel/board.c
+++ /dev/null
@@ -1,513 +0,0 @@
-/* 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.
- */
-
-/* Volteer board-specific configuration */
-#include "button.h"
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/als_tcs3400.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/ppc/syv682x.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tusb422.h"
-#include "driver/tcpm/rt1715.h"
-#include "driver/retimer/bb_retimer_public.h"
-#include "driver/sync.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "throttle_ap.h"
-#include "uart.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tbt.h"
-#include "usb_pd_tcpm.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#include "gpio_list.h" /* Must come after other header files. */
-
-#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-
-static const struct ec_response_keybd_config zbu_new_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK,
- TK_REFRESH,
- TK_FULLSCREEN,
- TK_OVERVIEW,
- TK_SNAPSHOT,
- TK_BRIGHTNESS_DOWN,
- TK_BRIGHTNESS_UP,
- TK_VOL_MUTE,
- TK_VOL_DOWN,
- TK_VOL_UP,
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-static const struct ec_response_keybd_config zbu_old_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override
-const struct ec_response_keybd_config *board_vivaldi_keybd_config(void)
-{
- if (get_board_id() > 2)
- return &zbu_new_kb;
- else
- return &zbu_old_kb;
-}
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /* Increase from 50 us, because KSO_02 passes through the H1. */
- .output_settle_us = 80,
- /* Other values should be the same as the default configuration. */
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-/*
- * We have total 30 pins for keyboard connecter {-1, -1} mean
- * the N/A pin that don't consider it and reserve index 0 area
- * that we don't have pin 0.
- */
-const int keyboard_factory_scan_pins[][2] = {
- {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6},
- {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3},
- {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0},
- {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4},
- {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0},
- {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1},
- {-1, -1},
-};
-const int keyboard_factory_scan_pins_used =
- ARRAY_SIZE(keyboard_factory_scan_pins);
-
-__override uint32_t board_override_feature_flags0(uint32_t flags0)
-{
- /*
- * Remove keyboard backlight feature for devices that don't support it.
- */
- if (!ec_cfg_has_keyboard_backlight())
- return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
- else
- return flags0;
-}
-
-/******************************************************************************/
-/*
- * FW_CONFIG defaults for Voxel if the CBI data is not initialized.
- */
-union volteer_cbi_fw_config fw_config_defaults = {
- .usb_db = DB_USB4_GEN3,
-};
-
-/******************************************************************************/
-/* Physical fans. These are logically separate from pwm_channels. */
-
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = GPIO_EN_PP5000_FAN,
-};
-
-/*
- * Fan specs from datasheet:
- * Max speed 5900 rpm (+/- 7%), minimum duty cycle 30%.
- * Minimum speed not specified by RPM. Set minimum RPM to max speed (with
- * margin) x 30%.
- * 5900 x 1.07 x 0.30 = 1894, round up to 1900
- * reference that temperature and fan settings
- * are derived from data in b/167523658#39
- */
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 2100,
- .rpm_start = 2100,
- .rpm_max = 5800,
-};
-
-const struct fan_t fans[FAN_CH_COUNT] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-
-/******************************************************************************/
-/* EC thermal management configuration */
-
-/*
- * Reference that temperature and fan settings
- * are derived from data in b/167523658#39
- */
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(68),
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(90),
-};
-
-struct ec_thermal_config thermal_params[] = {
- [TEMP_SENSOR_1_CHARGER] = thermal_cpu,
- [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_cpu,
- [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
- [TEMP_SENSOR_4_FAN] = thermal_cpu,
-};
-BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
-
-/******************************************************************************/
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-/******************************************************************************/
-/* I2C port map configuration */
-const struct i2c_port_t i2c_ports[] = {
- {
- .name = "sensor",
- .port = I2C_PORT_SENSOR,
- .kbps = 400,
- .scl = GPIO_EC_I2C0_SENSOR_SCL,
- .sda = GPIO_EC_I2C0_SENSOR_SDA,
- },
- {
- .name = "usb_c0",
- .port = I2C_PORT_USB_C0,
- .kbps = 1000,
- .scl = GPIO_EC_I2C1_USB_C0_SCL,
- .sda = GPIO_EC_I2C1_USB_C0_SDA,
- },
- {
- .name = "usb_c1",
- .port = I2C_PORT_USB_C1,
- .kbps = 1000,
- .scl = GPIO_EC_I2C2_USB_C1_SCL,
- .sda = GPIO_EC_I2C2_USB_C1_SDA,
- },
- {
- .name = "usb_0_mix",
- .port = I2C_PORT_USB_0_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C3_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C3_USB_1_MIX_SDA,
- },
- {
- .name = "usb_1_mix",
- .port = I2C_PORT_USB_1_MIX,
- .kbps = 100,
- .scl = GPIO_EC_I2C4_USB_1_MIX_SCL,
- .sda = GPIO_EC_I2C4_USB_1_MIX_SDA,
- },
- {
- .name = "power",
- .port = I2C_PORT_POWER,
- .kbps = 100,
- .scl = GPIO_EC_I2C5_POWER_SCL,
- .sda = GPIO_EC_I2C5_POWER_SDA,
- },
- {
- .name = "eeprom",
- .port = I2C_PORT_EEPROM,
- .kbps = 400,
- .scl = GPIO_EC_I2C7_EEPROM_SCL,
- .sda = GPIO_EC_I2C7_EEPROM_SDA,
- },
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/******************************************************************************/
-/* PWM configuration */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_FAN] = {
- .channel = 5,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000
- },
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = 0,
- /*
- * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent
- * flicker. Higher frequencies consume similar average power to
- * lower PWM frequencies, but higher frequencies record a much
- * lower maximum power.
- */
- .freq = 2400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-static void kb_backlight_enable(void)
-{
- if (ec_cfg_has_keyboard_backlight())
- gpio_set_level(GPIO_EC_KB_BL_EN, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, kb_backlight_enable, HOOK_PRIO_DEFAULT);
-
-static void kb_backlight_disable(void)
-{
- if (ec_cfg_has_keyboard_backlight())
- gpio_set_level(GPIO_EC_KB_BL_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kb_backlight_disable, HOOK_PRIO_DEFAULT);
-
-/* Config TCPC dynamic by Board version */
-static void setup_board_tcpc(void)
-{
- uint8_t board_id = get_board_id();
-
- if (board_id == 0) {
- /* config typec C0 prot TUSB422 TCPC */
- tcpc_config[USBC_PORT_C0].i2c_info.addr_flags
- = TUSB422_I2C_ADDR_FLAGS;
- tcpc_config[USBC_PORT_C0].drv = &tusb422_tcpm_drv;
- /* config typec C1 prot TUSB422 TCPC */
- tcpc_config[USBC_PORT_C1].i2c_info.addr_flags
- = TUSB422_I2C_ADDR_FLAGS;
- tcpc_config[USBC_PORT_C1].drv = &tusb422_tcpm_drv;
- }
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Only the Burnside Bridge retimers provide a reset pin, but this is
- * already handled by the bb_retimer.c driver.
- */
-}
-
-/******************************************************************************/
-/* USB-A charging control */
-
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_PP5000_USBA,
-};
-
-/******************************************************************************/
-/* USBC PPC configuration */
-struct ppc_config_t ppc_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- .frs_en = GPIO_USB_C0_FRS_EN,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = SYV682X_ADDR0_FLAGS,
- .drv = &syv682x_drv,
- .frs_en = GPIO_USB_C1_FRS_EN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT);
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/******************************************************************************/
-/* PPC support routines */
-void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C0);
- break;
- case GPIO_USB_C1_PPC_INT_ODL:
- syv682x_interrupt(USBC_PORT_C1);
- default:
- break;
- }
-}
-
-/* Disable FRS on boards with the SYV682A. FRS only works on the SYV682B. */
-void setup_board_ppc(void)
-{
- uint8_t board_id = get_board_id();
-
- if (board_id < 2) {
- ppc_chips[USBC_PORT_C0].frs_en = 0;
- ppc_chips[USBC_PORT_C1].frs_en = 0;
- }
-}
-
-__override void board_cbi_init(void)
-{
- setup_board_tcpc();
- setup_board_ppc();
-}
-
-/******************************************************************************/
-/* BC1.2 charger detect configuration */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- [USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- [USBC_PORT_C1] = {
- .i2c_port = I2C_PORT_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC TCPC configuration */
-struct tcpc_config_t tcpc_config[] = {
- [USBC_PORT_C0] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
- [USBC_PORT_C1] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C1,
- .addr_flags = RT1715_I2C_ADDR_FLAGS,
- },
- .drv = &rt1715_tcpm_drv,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT);
-BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT);
-
-/******************************************************************************/
-/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = USBC_PORT_C1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .next_mux = &usbc0_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_0_MIX,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- },
- [USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_USB_1_MIX,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-struct bb_usb_control bb_controls[] = {
- [USBC_PORT_C0] = {
- .usb_ls_en_gpio = GPIO_USB_C0_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL,
- },
- [USBC_PORT_C1] = {
- .usb_ls_en_gpio = GPIO_USB_C1_LS_EN,
- .retimer_rst_gpio = GPIO_USB_C1_RT_RST_ODL,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == USBC_PORT_COUNT);
-
-static void board_tcpc_init(void)
-{
- /* Don't reset TCPCs after initial reset */
- if (!system_jumped_late())
- board_reset_pd_mcu();
-
- /* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
-
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
-
- /* Enable BC1.2 interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET);
-
-/******************************************************************************/
-/* TCPC support routines */
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- /*
- * Check which port has the ALERT line set
- */
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int ppc_get_alert_status(int port)
-{
- if (port == USBC_PORT_C0)
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
- else
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-}
diff --git a/board/voxel/board.h b/board/voxel/board.h
deleted file mode 100644
index b02716088e..0000000000
--- a/board/voxel/board.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* 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.
- */
-
-/* Volteer board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Baseboard features */
-#include "baseboard.h"
-
-/* Optional features */
-#undef NPCX7_PWM1_SEL
-#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-#define CONFIG_VBOOT_EFS2
-
-#define CONFIG_POWER_BUTTON
-
-#undef CONFIG_UART_TX_BUF_SIZE
-#define CONFIG_UART_TX_BUF_SIZE 4096
-
-/* Chipset features */
-#define CONFIG_POWER_PP5000_CONTROL
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* Keyboard features */
-#define CONFIG_KEYBOARD_FACTORY_TEST
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-
-/* Keyboard backliht */
-#define CONFIG_PWM
-#define CONFIG_PWM_KBLIGHT
-
-/* Sensors */
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-/* BMI160 Base accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source*/
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-/* BMA253 Lid accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCEL_BMA255
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-/* USB Type C and USB PD defines */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 30000 /* us */
-
-/*
- * SN5S30 PPC supports up to 24V VBUS source and sink, however passive USB-C
- * cables only support up to 60W.
- */
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 45000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_VOLTAGE_MV 20000
-
-#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-#ifdef BOARD_VOXEL_ECMODEENTRY
-#undef CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
-#endif
-
-/* Enabling Thunderbolt-compatible mode */
-#define CONFIG_USB_PD_TBT_COMPAT_MODE
-
-/* Enabling USB4 mode */
-#define CONFIG_USB_PD_USB4
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x40
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR 0x41
-
-/* USB Type A Features */
-#define USB_PORT_COUNT 1
-#define CONFIG_USB_PORT_POWER_DUMB
-
-/* USBC PPC*/
-#define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */
-#define CONFIG_USB_PD_FRS_PPC
-
-/* BC 1.2 */
-
-/* TCPC */
-#define CONFIG_USB_PD_TCPM_RT1715
-
-/* Volume Button feature */
-
-/* Fan features */
-
-/* charger defines */
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-
-/*
- * Macros for GPIO signals used in common code that don't match the
- * schematic names. Signal names in gpio.inc match the schematic and are
- * then redefined here to so it's more clear which signal is being used for
- * which purpose.
- */
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL
-#define GPIO_EN_PP5000 GPIO_EN_PP5000_A
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_LID_OPEN GPIO_EC_LID_OPEN
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL
-#define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL
-#define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL
-#define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST
-#define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK
-#define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL
-#define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL
-#define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL
-#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL
-#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-/* I2C Bus Configuration */
-#define CONFIG_I2C
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_0_MIX NPCX_I2C_PORT3_0
-#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT4_1
-#define I2C_PORT_POWER NPCX_I2C_PORT5_0
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-
-#define I2C_PORT_BATTERY I2C_PORT_POWER
-#define I2C_PORT_CHARGER I2C_PORT_EEPROM
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-#define CONFIG_I2C_CONTROLLER
-
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum battery_type {
- BATTERY_AP19B8M,
- BATTERY_LGC_AP18C8K,
- BATTERY_COSMX_AP20CBL,
- BATTERY_TYPE_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_FAN,
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum usbc_port {
- USBC_PORT_C0 = 0,
- USBC_PORT_C1,
- USBC_PORT_COUNT
-};
-
-void board_reset_pd_mcu(void);
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/voxel/build.mk b/board/voxel/build.mk
deleted file mode 100644
index 838d6a16ce..0000000000
--- a/board/voxel/build.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=volteer
-
-board-y=board.o
-board-y+=battery.o
-board-y+=led.o
-board-y+=sensors.o
diff --git a/board/voxel/ec.tasklist b/board/voxel/ec.tasklist
deleted file mode 100644
index 292de51cdb..0000000000
--- a/board/voxel/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/voxel/gpio.inc b/board/voxel/gpio.inc
deleted file mode 100644
index fa3d0ffe7d..0000000000
--- a/board/voxel/gpio.inc
+++ /dev/null
@@ -1,186 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(EC_LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(EC_WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-
-/* Power sequencing interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
-#endif
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* Sensor Interrupts */
-GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INPUT | GPIO_PULL_UP) /* unused */
-GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-/*
- * Lid g-sensor interrupt unused on Voxel, configure as regular input for
- * power saving.
- */
-GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event)
-
-GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_BOTH, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_BOTH, ppc_interrupt)
-
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(E, 4), GPIO_INT_BOTH, bc12_interrupt)
-GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt)
-
-/* HDMI interrupts */
-
-/* Volume button interrupts */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Power Sequencing Signals */
-GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */
-GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW)
-
-/* Other wake sources */
-/*
- * GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an
- * interrupt handler because it is automatically handled by the PSL.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/* AP/PCH Signals */
-GPIO(EC_PCH_SYS_PWROK, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_PCH_RSMRST_ODL, PIN(A, 6), GPIO_ODR_LOW) /* TODO - b/140950085 - implement TGL sequencing requirement */
-GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_PCH_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH)
-GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH)
-GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT)
-
-/* USB and USBC Signals */
-GPIO(EN_PP5000_USBA, PIN(3, 5), GPIO_OUT_LOW) /* Enable USB-A charging - all ports */
-GPIO(USB_A_LOW_PWR_OD, PIN(6, 6), GPIO_ODR_LOW) /* Don't limit USB-A charging by default - all ports */
-
-/*
- * USB_C1 moved from GPIO32 to GPIO83 on boards with board ID >=1.
- * GPIO83/EN_PP1800_A is DNS on board ID 0 and GPIO32 is N/C on board ID >=1
- * so it's safe to define GPIOs compatible with both designs.
- * TODO (b/149858568): remove board ID=0 support.
- */
-GPIO(USB_C0_RT_RST_ODL, PIN(4, 1), GPIO_ODR_LOW)
-GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset on boards board ID >=1 */
-GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
-GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
-GPIO(USB_C0_RT_INT_ODL, PIN(C, 6), GPIO_INPUT)
-GPIO(USB_C1_RT_INT_ODL, PIN(9, 6), GPIO_INPUT)
-GPIO(USB_C0_FRS_EN, PIN(C, 2), GPIO_OUT_LOW)
-GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
-
-/* Don't have a load switch for retimer */
-UNIMPLEMENTED(USB_C0_LS_EN)
-UNIMPLEMENTED(USB_C1_LS_EN)
-
-/* Misc Signals */
-GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Blue */
-GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Yellow */
-GPIO(EC_KB_BL_EN, PIN(8, 6), GPIO_OUT_LOW) /* Keyboard backlight enable*/
-
-GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_ODR_HIGH) /* SSD power-loss notification */
-GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknowledgment */
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(EC_SLP_S0IX, PIN(7, 2), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Unused signals */
-GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIO60, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(UNUSED_GPIOA7, PIN(A, 7), GPIO_INPUT | GPIO_PULL_UP)
-
-/*
- * eDP backlight - both PCH and EC have enable pins that must be high
- * for the backlight to turn on. Default state is high, and can be turned
- * off during sleep states.
- */
-GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(EC_I2C4_USB_1_MIX_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-
-/* Battery signals */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */
-
-/* Fan signals */
-GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW)
-ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* FAN_SPEED_TACH */
-
-/* Keyboard pins */
-#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_14 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* EC_KB_BL_PWM */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, BIT(5) | BIT(4)), 0, MODULE_UART, 0) /* UART from EC to Servo */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* GPIOD2 = EC_LID_OPEN */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = H1_EC_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
-
-/* Temperature sensors */
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(4) | BIT(5)), 0, MODULE_ADC, 0) /* TEMP_SENSOR1,2,4 */
-ALTERNATE(PIN(F, 1), 0, MODULE_ADC, 0) /* TEMP_SENSOR3 */
diff --git a/board/voxel/led.c b/board/voxel/led.c
deleted file mode 100644
index 4be69689f7..0000000000
--- a/board/voxel/led.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Volteer
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_2_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_1_L, LED_ON_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_1_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_2_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/voxel/sensors.c b/board/voxel/sensors.c
deleted file mode 100644
index 9652463ae2..0000000000
--- a/board/voxel/sensors.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/* 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.
- */
-
-/* Volteer family-specific sensor configuration */
-#include "common.h"
-#include "accelgyro.h"
-#include "cbi_ec_fw_config.h"
-#include "cbi_ssfc.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_bmi160.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/als_tcs3400.h"
-#include "driver/sync.h"
-#include "keyboard_scan.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "task.h"
-#include "tablet_mode.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_MOTION_SENSE, format, ## args)
-/******************************************************************************/
-/* Sensors */
-static struct mutex g_lid_accel_mutex;
-static struct mutex g_base_mutex;
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct kionix_accel_data g_kx022_data;
-
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_accel_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .default_range = 4, /* g */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on in S3 */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_sensors_init(void)
-{
- if (ec_cfg_has_tabletmode()) {
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_BASE_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else
- ccprints("BASE GYRO is BMI160");
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_LID_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- ccprints("LID_ACCEL is KX022");
- } else
- ccprints("LID_ACCEL is BMA253");
-
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable interrupt for the accel/gyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_EC_IMU_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-}
-DECLARE_HOOK(HOOK_INIT, board_sensors_init, HOOK_PRIO_DEFAULT);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (get_cbi_ssfc_base_sensor()) {
- case SSFC_SENSOR_BASE_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case SSFC_SENSOR_BASE_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
diff --git a/board/voxel/vif_override.xml b/board/voxel/vif_override.xml
deleted file mode 100644
index 3fc41630da..0000000000
--- a/board/voxel/vif_override.xml
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VIF xmlns="http://usb.org/VendorInfoFile.xsd">
- <Model_Part_Number>Voxel</Model_Part_Number>
- <Product_Revision>0</Product_Revision>
- <TID>0</TID>
- <Product>
- <!-- Information about TGL USB4 provided by Intel. See b/172963736 -->
- <USB4_Num_Internal_Host_Controllers value="1" />
- <USB4_Num_PCIe_DN_Bridges value="0" />
- <USB4RouterList>
- <Usb4Router>
- <USB4_Router_ID value="1" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="4" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="1" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="4" />
- <USB4_TBT3_Not_Supported value="0">TBT3 Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="true" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- <USB4_TBT3_VID value="32903">8087</USB4_TBT3_VID>
- <USB4_PCIe_Switch_Vendor_ID value="32902">8086</USB4_PCIe_Switch_Vendor_ID>
- <USB4_PCIe_Switch_Device_ID value="39451">9A1B</USB4_PCIe_Switch_Device_ID>
- </Usb4Router>
- <Usb4Router>
- <USB4_Router_ID value="0" />
- <USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID>
- <USB4_Num_Lane_Adapters value="2" />
- <USB4_Num_USB3_DN_Adapters value="1" />
- <USB4_Num_DP_IN_Adapters value="0" />
- <USB4_Num_DP_OUT_Adapters value="0" />
- <USB4_Num_PCIe_DN_Adapters value="0" />
- <USB4_TBT3_Not_Supported value="1">Not TBT3-Compatible</USB4_TBT3_Not_Supported>
- <USB4_PCIe_Wake_Supported value="false" />
- <USB4_USB3_Wake_Supported value="false" />
- <USB4_Num_Unused_Adapters value="0" />
- </Usb4Router>
- </USB4RouterList>
- </Product>
- <Component>
- <USB4_Max_Speed value="1">Gen 3 (40Gb)</USB4_Max_Speed>
- <USB4_DFP_Supported value="true" />
- <USB4_UFP_Supported value="false" />
- <USB4_USB3_Tunneling_Supported value="true" />
- <USB4_DP_Tunneling_Supported value="true" />
- <USB4_PCIe_Tunneling_Supported value="true" />
- <USB4_TBT3_Compatibility_Supported value="true" />
- <USB4_CL1_State_Supported value="true" />
- <USB4_CL2_State_Supported value="true" />
- <USB4_Num_Retimers value="1" />
- <USB4_DP_Bit_Rate value="3">HBR3</USB4_DP_Bit_Rate>
- <USB4_Num_DP_Lanes value="4">4 Lanes</USB4_Num_DP_Lanes>
- <USB4_Lane_0_Adapter value="1" />
- <Host_Supports_USB_Data value="true" />
- <Host_Speed value="2">USB 3.2 Gen 2x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="true" />
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <Host_Suspend_Supported value="true" />
- <Is_DFP_On_Hub value="false" />
- <USB_Suspend_May_Be_Cleared value="true" />
- <FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="3">3A @ 5V</FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <FR_Swap_Supported_As_Initial_Sink value="true" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <Data_Capable_As_USB_Host_SOP value="true" />
- <Data_Capable_As_USB_Device_SOP value="false" />
- <!-- TODO(b/173028252): Figure out the appropriate Discover Identity ACK for
- Volteer and update the EC and VIF accordingly. -->
- <Product_Type_UFP_SOP value="3">PSD</Product_Type_UFP_SOP>
- <Product_Type_DFP_SOP value="4">Alternate Mode Controller (AMC)</Product_Type_DFP_SOP>
- <DFP_VDO_Port_Number value="0" />
- <Modal_Operation_Supported_SOP value="true" />
- <USB_VID_SOP value="6353">18D1</USB_VID_SOP>
- <bcdDevice_SOP value="0">0000</bcdDevice_SOP>
- <SVID_Fixed_SOP value="true" />
- <Num_SVIDs_Min_SOP value="1" />
- <Num_SVIDs_Max_SOP value="1" />
- <SOPSVIDList>
- <SOPSVID>
- <SVID_SOP value="32903">8087</SVID_SOP>
- <SVID_Modes_Fixed_SOP value="true" />
- <SVID_Num_Modes_Min_SOP value="1" />
- <SVID_Num_Modes_Max_SOP value="1" />
- <SOPSVIDModeList>
- <SOPSVIDMode>
- <SVID_Mode_Enter_SOP value="true" />
- <SVID_Mode_Recog_Value_SOP value="0">00000000</SVID_Mode_Recog_Value_SOP>
- </SOPSVIDMode>
- </SOPSVIDModeList>
- </SOPSVID>
- </SOPSVIDList>
- </Component>
- <Component>
- <USB4_Max_Speed value="1">Gen 3 (40Gb)</USB4_Max_Speed>
- <USB4_DFP_Supported value="true" />
- <USB4_UFP_Supported value="false" />
- <USB4_USB3_Tunneling_Supported value="true" />
- <USB4_DP_Tunneling_Supported value="true" />
- <USB4_PCIe_Tunneling_Supported value="true" />
- <USB4_TBT3_Compatibility_Supported value="true" />
- <USB4_CL1_State_Supported value="true" />
- <USB4_CL2_State_Supported value="true" />
- <USB4_Num_Retimers value="1" />
- <USB4_DP_Bit_Rate value="3">HBR3</USB4_DP_Bit_Rate>
- <USB4_Num_DP_Lanes value="4">4 Lanes</USB4_Num_DP_Lanes>
- <USB4_Lane_0_Adapter value="1" />
- <Host_Supports_USB_Data value="true" />
- <Host_Speed value="2">USB 3.2 Gen 2x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="true" />
- <Host_Truncates_DP_For_tDHPResponse value="false" />
- <Host_Suspend_Supported value="true" />
- <Is_DFP_On_Hub value="false" />
- <USB_Suspend_May_Be_Cleared value="true" />
- <FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="3">3A @ 5V</FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <FR_Swap_Supported_As_Initial_Sink value="true" />
- <SrcPdoList>
- <SrcPDO>
- <!-- Add in missing fields for SrcPdo0, derived from SYV682B datasheet. -->
- <Src_PD_OCP_OC_Debounce value="50">50 msec</Src_PD_OCP_OC_Debounce>
- <Src_PD_OCP_OC_Threshold value="360">3600 mA</Src_PD_OCP_OC_Threshold>
- </SrcPDO>
- </SrcPdoList>
- <Data_Capable_As_USB_Host_SOP value="true" />
- <Data_Capable_As_USB_Device_SOP value="false" />
- <!-- TODO(b/173028252): Figure out the appropriate Discover Identity ACK for
- Volteer and update the EC and VIF accordingly. -->
- <Product_Type_UFP_SOP value="3">PSD</Product_Type_UFP_SOP>
- <Product_Type_DFP_SOP value="4">Alternate Mode Controller (AMC)</Product_Type_DFP_SOP>
- <DFP_VDO_Port_Number value="1" />
- <Modal_Operation_Supported_SOP value="true" />
- <USB_VID_SOP value="6353">18D1</USB_VID_SOP>
- <bcdDevice_SOP value="0">0000</bcdDevice_SOP>
- <SVID_Fixed_SOP value="true" />
- <Num_SVIDs_Min_SOP value="1" />
- <Num_SVIDs_Max_SOP value="1" />
- <SOPSVIDList>
- <SOPSVID>
- <SVID_SOP value="32903">8087</SVID_SOP>
- <SVID_Modes_Fixed_SOP value="true" />
- <SVID_Num_Modes_Min_SOP value="1" />
- <SVID_Num_Modes_Max_SOP value="1" />
- <SOPSVIDModeList>
- <SOPSVIDMode>
- <SVID_Mode_Enter_SOP value="true" />
- <SVID_Mode_Recog_Value_SOP value="0">00000000</SVID_Mode_Recog_Value_SOP>
- </SOPSVIDMode>
- </SOPSVIDModeList>
- </SOPSVID>
- </SOPSVIDList>
- </Component>
-</VIF>
diff --git a/board/voxel_ecmodeentry b/board/voxel_ecmodeentry
deleted file mode 120000
index 082df00bc3..0000000000
--- a/board/voxel_ecmodeentry
+++ /dev/null
@@ -1 +0,0 @@
-voxel \ No newline at end of file
diff --git a/board/voxel_npcx797fc b/board/voxel_npcx797fc
deleted file mode 120000
index 082df00bc3..0000000000
--- a/board/voxel_npcx797fc
+++ /dev/null
@@ -1 +0,0 @@
-voxel \ No newline at end of file
diff --git a/board/waddledee/battery.c b/board/waddledee/battery.c
deleted file mode 100644
index 6b77248624..0000000000
--- a/board/waddledee/battery.c
+++ /dev/null
@@ -1,329 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all waddledee battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AC15A8J Battery Information */
- [BATTERY_LGC15] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "AC15A8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC_AP15O5L] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP15O5L",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SANYO AC15A3J Battery Information */
- [BATTERY_SANYO] = {
- .fuel_gauge = {
- .manuf_name = "SANYO",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Sony Ap13J4K Battery Information */
- [BATTERY_SONY] = {
- .fuel_gauge = {
- .manuf_name = "SONYCorp",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x8000,
- .disconnect_val = 0x8000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo AP13J7K Battery Information */
- [BATTERY_SMP_AP13J7K] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "AP13J7K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AC15A3J Battery Information */
- [BATTERY_PANASONIC_AC15A3J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AC15A3J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP19A8K Battery Information */
- [BATTERY_LGC_AP19A8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KTxxxxGxxx",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC KT0030G023 Battery Information */
- [BATTERY_LGC_G023] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G023",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC15A3J;
diff --git a/board/waddledee/board.c b/board/waddledee/board.c
deleted file mode 100644
index 1e4f8a387c..0000000000
--- a/board/waddledee/board.c
+++ /dev/null
@@ -1,585 +0,0 @@
-/* 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.
- */
-
-/* Waddledee board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/sm5803.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C1 interrupt line swapped between board versions, track it in a variable */
-static enum gpio_signal c1_int_line;
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- sm5803_interrupt(0);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- sm5803_interrupt(1);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(c1_int_line)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-
-/* USB Retimer */
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS0,
- .driver = &tusb544_drv,
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- .driver = &anx7447_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- },
-};
-
-void board_init(void)
-{
- int on;
-
- if (system_get_board_version() <= 0) {
- pd_set_max_voltage(5000);
- c1_int_line = GPIO_USB_C1_INT_V0_ODL;
- } else {
- c1_int_line = GPIO_USB_C1_INT_V1_ODL;
- }
-
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(c1_int_line);
-
- /*
- * If interrupt lines are already low, schedule them to be processed
- * after inits are completed.
- */
- check_c0_line();
- check_c1_line();
-
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Charger on the MB will be outputting PROCHOT_ODL and OD CHG_DET */
- sm5803_configure_gpio0(CHARGER_PRIMARY, GPIO0_MODE_PROCHOT, 1);
- sm5803_configure_chg_det_od(CHARGER_PRIMARY, 1);
-
- /* Charger on the sub-board will be a push-pull GPIO */
- sm5803_configure_gpio0(CHARGER_SECONDARY, GPIO0_MODE_OUTPUT, 0);
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-static void board_resume(void)
-{
- sm5803_disable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_disable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
-
-static void board_suspend(void)
-{
- sm5803_enable_low_power_mode(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_enable_low_power_mode(CHARGER_SECONDARY);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Put all charger ICs present into low power mode before entering
- * z-state.
- */
- sm5803_hibernate(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- sm5803_hibernate(CHARGER_SECONDARY);
-}
-
-__override void board_ocpc_init(struct ocpc_data *ocpc)
-{
- /* There's no provision to measure Isys */
- ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP;
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- gpio_set_level(GPIO_EN_USB_A0_VBUS, !!enable);
- if (sm5803_set_gpio0_level(1, !!enable))
- CPRINTUSB("Failed to %sable sub rails!", enable ? "en" : "dis");
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- /*
- * TCPC 0 is embedded in the EC and processes interrupts in the chip
- * code (it83xx/intc.c)
- */
-
- uint16_t status = 0;
- int regval;
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(c1_int_line)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 && port < board_get_usb_pd_port_count());
-
- if (!is_valid_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTUSB("Disabling all charge ports");
-
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
-
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
-
- return EC_SUCCESS;
- }
-
- CPRINTUSB("New chg p%d", port);
-
- /*
- * Ensure other port is turned off, then enable new charge port
- */
- if (port == 0) {
- if (board_get_charger_chip_count() > 1)
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0);
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 1);
-
- } else {
- sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0);
- sm5803_vbus_sink_enable(CHARGER_SECONDARY, 1);
- }
-
- return EC_SUCCESS;
-}
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 3;
- *kp_div = 14;
-
- *ki = 3;
- *ki_div = 500;
-
- *kd = 4;
- *kd_div = 40;
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- int current;
-
- if (port < 0 || port > CONFIG_USB_PD_PORT_MAX_COUNT)
- return;
-
- current = (rp == TYPEC_RP_3A0) ? 3000 : 1500;
-
- charger_set_otg_current_voltage(port, current, 5000);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- },
-
- [PWM_CH_LED_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_GREEN] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_BLUE] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- }
-
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct kionix_accel_data g_kx022_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 2, /* g */
- /* We only use 2g because its resolution is only 8-bits */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/waddledee/board.h b/board/waddledee/board.h
deleted file mode 100644
index 259786f95c..0000000000
--- a/board/waddledee/board.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* 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.
- */
-
-/* Waddledee board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-/* System unlocked in early development */
-#define CONFIG_SYSTEM_UNLOCKED
-
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_5V_CHARGER_CTRL
-#define CONFIG_CHARGER_OTG
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#define CONFIG_OCPC
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 21 /* R_DS(on) 10.7mOhm + 10mOhm sns rstr */
-
-/*
- * GPIO for C1 interrupts, for baseboard use
- *
- * Note this will only be valid for board revision 1
- */
-#define GPIO_USB_C1_INT_ODL GPIO_USB_C1_INT_V1_ODL
-
-/* LED */
-#define CONFIG_LED_PWM
-#define CONFIG_LED_PWM_COUNT 1
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0: ITE EC TCPC */
-#define CONFIG_USB_PD_TCPM_ANX7447 /* C1: ANX TCPC + Mux */
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-#define CONFIG_USBC_RETIMER_TUSB544 /* C1 Redriver: TUSB544 */
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_LED_BLUE,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_SUB_ANALOG, /* ADC13 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_LGC15,
- BATTERY_PANASONIC_AP15O5L,
- BATTERY_SANYO,
- BATTERY_SONY,
- BATTERY_SMP_AP13J7K,
- BATTERY_PANASONIC_AC15A3J,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_LGC_AP19A8K,
- BATTERY_LGC_G023,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/waddledee/build.mk b/board/waddledee/build.mk
deleted file mode 100644
index 806168ea0d..0000000000
--- a/board/waddledee/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/waddledee/cbi_ssfc.c b/board/waddledee/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/waddledee/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/waddledee/cbi_ssfc.h b/board/waddledee/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/waddledee/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/waddledee/ec.tasklist b/board/waddledee/ec.tasklist
deleted file mode 100644
index 2edf48ee05..0000000000
--- a/board/waddledee/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/waddledee/gpio.inc b/board/waddledee/gpio.inc
deleted file mode 100644
index 63e0055199..0000000000
--- a/board/waddledee/gpio.inc
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C1_INT_V0_ODL, PIN(B, 5), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 - board version 0 */
-GPIO_INT(USB_C1_INT_V1_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 - board version 1 */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_HIGH)
-GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW) /* Board rev 1, NC board rev 0 */
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-GPIO(EC_SUB_IO_1_1, PIN(L, 3), GPIO_INPUT)
-GPIO(EC_SUB_IO_1_2, PIN(F, 0), GPIO_INPUT)
-GPIO(EC_SUB_IO_2_1, PIN(F, 1), GPIO_INPUT)
-GPIO(EC_SUB_IO_2_2, PIN(L, 2), GPIO_INPUT)
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(PEN_DET_ODL, PIN(J, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(0)), 0, MODULE_ADC, 0) /* ADC13: EC_SUB_ANALOG */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0) | BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM, 0) /* KB_BL_PWM, LED_[R,G,B]_ODL */
diff --git a/board/waddledee/led.c b/board/waddledee/led.c
deleted file mode 100644
index 058d23d761..0000000000
--- a/board/waddledee/led.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* 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.
- */
-
-/* Waddledee specific PWM LED settings. */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-/*
- * Board has one physical LED with red, green, and blue
- */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 100, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- [EC_LED_COLOR_YELLOW] = { 50, 50, 0 },
- [EC_LED_COLOR_WHITE] = { 50, 50, 50 },
- [EC_LED_COLOR_AMBER] = { 70, 30, 0 },
-};
-
-/* One logical LED with red, green, and blue channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED_RED,
- .ch1 = PWM_CH_LED_GREEN,
- .ch2 = PWM_CH_LED_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
- brightness_range[EC_LED_COLOR_BLUE] = 100;
- brightness_range[EC_LED_COLOR_YELLOW] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/waddledee/usb_pd_policy.c b/board/waddledee/usb_pd_policy.c
deleted file mode 100644
index 7046e25d6c..0000000000
--- a/board/waddledee/usb_pd_policy.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/sm5803.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- if (port < 0 || port >= board_get_usb_pd_port_count())
- return;
-
- prev_en = charger_is_sourcing_otg_power(port);
-
- /* Disable Vbus */
- charger_enable_otg_power(port, 0);
-
- /* Discharge Vbus if previously enabled */
- if (prev_en)
- sm5803_set_vbus_disch(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- enum ec_error_list rv;
-
- /* Disable sinking */
- rv = sm5803_vbus_sink_enable(port, 0);
- if (rv)
- return rv;
-
- /* Disable Vbus discharge */
- sm5803_set_vbus_disch(port, 0);
-
- /* Provide Vbus */
- charger_enable_otg_power(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-__override bool pd_check_vbus_level(int port, enum vbus_level level)
-{
- int vbus_voltage;
-
- /* If we're unable to speak to the charger, best to guess false */
- if (charger_get_vbus_voltage(port, &vbus_voltage))
- return false;
-
- if (level == VBUS_SAFE0V)
- return vbus_voltage < PD_V_SAFE0V_MAX;
- else if (level == VBUS_PRESENT)
- return vbus_voltage > PD_V_SAFE5V_MIN;
- else
- return vbus_voltage < PD_V_SINK_DISCONNECT_MAX;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return sm5803_is_vbus_present(port);
-}
diff --git a/board/waddledee/vif_override.xml b/board/waddledee/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/waddledee/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/waddledoo/battery.c b/board/waddledoo/battery.c
deleted file mode 100644
index 64af3b4302..0000000000
--- a/board/waddledoo/battery.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all waddledoo battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* POW-TECH Battery Information */
- [BATTERY_POWER_TECH] = {
- .fuel_gauge = {
- .manuf_name = "POW-TECH",
- .ship_mode = {
- .reg_addr = 0x0,
- .reg_data = { 0x10, 0x10 },
- },
- .fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- }
- },
- .batt_info = {
- .voltage_max = 8800, /* mV */
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 160, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
-
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_POWER_TECH;
diff --git a/board/waddledoo/board.c b/board/waddledoo/board.c
deleted file mode 100644
index f2eea52701..0000000000
--- a/board/waddledoo/board.c
+++ /dev/null
@@ -1,681 +0,0 @@
-/* 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.
- */
-
-/* Waddledoo board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/retimer/nb7v904m.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void sub_usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-
-}
-
-static void sub_hdmi_hpd_interrupt(enum gpio_signal s)
-{
- int hdmi_hpd_odl = gpio_get_level(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
-
- gpio_set_level(GPIO_EC_AP_USB_C1_HDMI_HPD, !hdmi_hpd_odl);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-void board_init(void)
-{
- int on;
-
- /* Enable C0 interrupt and check if it needs processing */
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- check_c0_line();
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- /* Disable i2c on HDMI pins */
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, 0);
- gpio_config_pin(MODULE_I2C,
- GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-
- /* Set HDMI and sub-rail enables to output */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL,
- chipset_in_state(CHIPSET_STATE_ON) ?
- GPIO_ODR_LOW : GPIO_ODR_HIGH);
- gpio_set_flags(GPIO_SUB_C1_INT_EN_RAILS_ODL, GPIO_ODR_HIGH);
-
- /* Select HDMI option */
- gpio_set_level(GPIO_HDMI_SEL_L, 0);
-
- /* Enable interrupt for passing through HPD */
- gpio_enable_interrupt(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL);
- } else {
- /* Set SDA as an input */
- gpio_set_flags(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL,
- GPIO_INPUT);
-
- /* Enable C1 interrupt and check if it needs processing */
- gpio_enable_interrupt(GPIO_SUB_C1_INT_EN_RAILS_ODL);
- check_c1_line();
- }
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-/* Enable HDMI any time the SoC is on */
-static void hdmi_enable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, hdmi_enable, HOOK_PRIO_DEFAULT);
-
-static void hdmi_disable(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, hdmi_disable, HOOK_PRIO_DEFAULT);
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- if (board_get_charger_chip_count() > 1)
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-#ifdef BOARD_WADDLEDOO
-static void reconfigure_5v_gpio(void)
-{
- /*
- * b/147257497: On early waddledoo boards, GPIO_EN_PP5000 was swapped
- * with GPIO_VOLUP_BTN_ODL. Therefore, we'll actually need to set that
- * GPIO instead for those boards. Note that this breaks the volume up
- * button functionality.
- */
- if (system_get_board_version() < 0) {
- CPRINTS("old board - remapping 5V en");
- gpio_set_flags(GPIO_VOLUP_BTN_ODL, GPIO_OUT_LOW);
- }
-}
-DECLARE_HOOK(HOOK_INIT, reconfigure_5v_gpio, HOOK_PRIO_INIT_I2C+1);
-#endif /* BOARD_WADDLEDOO */
-
-static void set_5v_gpio(int level)
-{
- int version;
- enum gpio_signal gpio = GPIO_EN_PP5000;
-
- /*
- * b/147257497: On early waddledoo boards, GPIO_EN_PP5000 was swapped
- * with GPIO_VOLUP_BTN_ODL. Therefore, we'll actually need to set that
- * GPIO instead for those boards. Note that this breaks the volume up
- * button functionality.
- */
- if (IS_ENABLED(BOARD_WADDLEDOO)) {
- version = system_get_board_version();
-
- /*
- * If the CBI EEPROM wasn't formatted, assume it's a very early
- * board.
- */
- gpio = version < 0 ? GPIO_VOLUP_BTN_ODL : GPIO_EN_PP5000;
- }
-
- gpio_set_level(gpio, level);
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC, or send enable signal to HDMI
- * DB.
- */
- set_5v_gpio(!!enable);
-
- if (get_cbi_fw_config_db() == DB_1A_HDMI) {
- gpio_set_level(GPIO_SUB_C1_INT_EN_RAILS_ODL, !enable);
- } else {
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ?
- "en" : "dis");
- }
-
-}
-
-__override uint8_t board_get_usb_pd_port_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
- else
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-__override uint8_t board_get_charger_chip_count(void)
-{
- if (get_cbi_fw_config_db() == DB_1A_HDMI)
- return CHARGER_NUM - 1;
- else
- return CHARGER_NUM;
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < board_get_usb_pd_port_count());
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
- raa489000_enable_asgate(i, false);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- raa489000_enable_asgate(i, false);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (raa489000_enable_asgate(port, true) ||
- tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-static struct accelgyro_saved_data_t g_bma253_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 10000,
- },
-
- [PWM_CH_LED1_AMBER] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq = 2400,
- },
-
- [PWM_CH_LED2_WHITE] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq = 2400,
- }
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = NB7V904M_I2C_ADDR0,
- .driver = &nb7v904m_usb_redriver_drv,
-};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- }
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (board_get_usb_pd_port_count() > 1 &&
- !gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/waddledoo/board.h b/board/waddledoo/board.h
deleted file mode 100644
index bf253e65d4..0000000000
--- a/board/waddledoo/board.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/* 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.
- */
-
-/* Waddledoo board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_DEDEDE_EC_NPCX796FC
-#include "baseboard.h"
-
-/*
- * Keep the system unlocked in early development.
- * TODO(b/151264302): Make sure to remove this before production!
- */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* Save some flash space */
-#define CONFIG_CHIP_INIT_ROM_REGION
-#undef CONFIG_CONSOLE_CMDHELP
-#define CONFIG_DEBUG_ASSERT_BRIEF
-#define CONFIG_USB_PD_DEBUG_LEVEL 2
-
-/* EC console commands */
-#define CONFIG_CMD_CHARGER_DUMP
-
-/* Remove default commands to free flash space */
-#undef CONFIG_CMD_ACCELSPOOF
-#undef CONFIG_CMD_BATTFAKE
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/*
- * GPIO for C1 interrupts, for baseboard use
- *
- * Note this line might already have its pull up disabled for HDMI DBs, but
- * it should be fine to set again before z-state.
- */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_C1_INT_EN_RAILS_ODL
-
-/* Keyboard */
-#define CONFIG_PWM_KBLIGHT
-
-/* LED */
-#define CONFIG_LED_PWM
-#define CONFIG_LED_PWM_COUNT 1
-#undef CONFIG_LED_PWM_NEAR_FULL_COLOR
-#undef CONFIG_LED_PWM_SOC_ON_COLOR
-#undef CONFIG_LED_PWM_SOC_SUSPEND_COLOR
-#undef CONFIG_LED_PWM_LOW_BATT_COLOR
-#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_SOC_ON_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_SOC_SUSPEND_COLOR EC_LED_COLOR_WHITE
-#define CONFIG_LED_PWM_LOW_BATT_COLOR EC_LED_COLOR_AMBER
-
-/* PWM */
-#define CONFIG_PWM
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_NB7V904M
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-#undef PD_POWER_SUPPLY_TURN_ON_DELAY
-#undef PD_POWER_SUPPLY_TURN_OFF_DELAY
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-/* 20% margin added for these timings */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 13080 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 16080 /* us */
-#undef CONFIG_USBC_VCONN_SWAP_DELAY_US
-#define CONFIG_USBC_VCONN_SWAP_DELAY_US 787 /* us */
-
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/*
- * I2C pin names for baseboard
- *
- * Note: these lines will be set as i2c on start-up, but this should be
- * okay since they're ODL.
- */
-#define GPIO_EC_I2C_SUB_USB_C1_SCL GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL
-#define GPIO_EC_I2C_SUB_USB_C1_SDA GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_LED1_AMBER,
- PWM_CH_LED2_WHITE,
- PWM_CH_COUNT,
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_POWER_TECH,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/waddledoo/build.mk b/board/waddledoo/build.mk
deleted file mode 100644
index d467fee6e6..0000000000
--- a/board/waddledoo/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=dedede
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/waddledoo/cbi_ssfc.c b/board/waddledoo/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/waddledoo/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/waddledoo/cbi_ssfc.h b/board/waddledoo/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/waddledoo/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/waddledoo/ec.tasklist b/board/waddledoo/ec.tasklist
deleted file mode 100644
index 0aba1fabeb..0000000000
--- a/board/waddledoo/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/waddledoo/gpio.inc b/board/waddledoo/gpio.inc
deleted file mode 100644
index 69f6bc6307..0000000000
--- a/board/waddledoo/gpio.inc
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(SUB_C1_INT_EN_RAILS_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt) /* C1 interrupt OR 5V power en */
-GPIO_INT(EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* C1 I2C SDA OR HDMI_HPD */
-
-/* Button interrupts */
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(4, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(7, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, PIN(9, 2), GPIO_INPUT) /* C1 I2C SCL OR HDMI en */
-
-/* Extra Sub-board I/O pins */
-GPIO(EC_SUB_IO_1, PIN(3, 7), GPIO_OUT_LOW)
-GPIO(EC_SUB_IO_2, PIN(3, 4), GPIO_OUT_LOW)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(6, 3), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_KB_BL, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(IMVP9_PE, PIN(E, 0), GPIO_OUT_LOW)
-GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW)
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_ODR_HIGH)
-
-GPIO(USB_C0_RST_ODL, PIN(9, 7), GPIO_OUT_HIGH) /* currently unused */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-
-/*
- * Waddledoo doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* PWM */
-ALTERNATE(PIN_MASK(C, 0x1C), 0, MODULE_PWM, 0) /* PWM0-2 */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO41_NC, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/waddledoo/led.c b/board/waddledoo/led.c
deleted file mode 100644
index b9ff2e74e8..0000000000
--- a/board/waddledoo/led.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* 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.
- */
-
-/* Waddledoo specific PWM LED settings. */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-/*
- * We only have a white and an amber LED, so setting any other colour results in
- * both LEDs being off.
- */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Amber, White */
- [EC_LED_COLOR_RED] = { 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0 },
- [EC_LED_COLOR_YELLOW] = { 0, 0 },
- [EC_LED_COLOR_WHITE] = { 0, 100 },
- [EC_LED_COLOR_AMBER] = { 100, 0 },
-};
-
-/* One logical LED with amber and white channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED1_AMBER,
- .ch1 = PWM_CH_LED2_WHITE,
- .ch2 = PWM_LED_NO_CHANNEL,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_AMBER] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/waddledoo/usb_pd_policy.c b/board/waddledoo/usb_pd_policy.c
deleted file mode 100644
index 3190595596..0000000000
--- a/board/waddledoo/usb_pd_policy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/isl923x_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= board_get_usb_pd_port_count())
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- rv = raa489000_enable_asgate(port, true);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/waddledoo/vif_override.xml b/board/waddledoo/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/waddledoo/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/waddledoo2/battery.c b/board/waddledoo2/battery.c
deleted file mode 100644
index 887c66e355..0000000000
--- a/board/waddledoo2/battery.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "gpio.h"
-#include "util.h"
-
-/*
- * Battery info for Waddledoo2 battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- .cfet_mask = 0x4000,
- .cfet_off_val = 0x4000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* AP19B8M */
- [BATTERY_AP19B8M] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G024",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- .cfet_mask = 0x0002,
- .cfet_off_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13350,
- .voltage_normal = 11610,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_LGC_AP18C8K;
diff --git a/board/waddledoo2/board.c b/board/waddledoo2/board.c
deleted file mode 100644
index 68b5783ba8..0000000000
--- a/board/waddledoo2/board.c
+++ /dev/null
@@ -1,851 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledoo2 board-specific configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "cbi_fw_config.h"
-#include "cbi_ssfc.h"
-#include "cbi_fw_config.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "temp_sensor.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/raa489000.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/usb_mux/pi3usb3x532.h"
-#include "driver/retimer/ps8802.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_config.h"
-#include "keyboard_raw.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "stdbool.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define INT_RECHECK_US 5000
-
-#define ADC_VOL_UP_MASK BIT(0)
-#define ADC_VOL_DOWN_MASK BIT(1)
-
-static uint8_t new_adc_key_state;
-
-static void ps8762_chaddr_deferred(void);
-DECLARE_DEFERRED(ps8762_chaddr_deferred);
-
-/******************************************************************************/
-/* USB-A Configuration */
-const int usb_port_enable[USB_PORT_COUNT] = {
- GPIO_EN_USB_A0_VBUS,
- GPIO_EN_USB_A1_VBUS,
-};
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * F3 key scan cycle completed but scan input is not
- * charging to logic high when EC start scan next
- * column for "T" key, so we set .output_settle_us
- * to 80us from 50us.
- */
- .output_settle_us = 80,
- .debounce_down_us = 9 * MSEC,
- .debounce_up_us = 30 * MSEC,
- .scan_period_us = 3 * MSEC,
- .min_post_scan_delay_us = 1000,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x1c, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff, 0xff, /* full set */
- },
-};
-
-static const struct ec_response_keybd_config waddledoo2_keybd = {
- /* Default Chromeos keyboard config */
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- /* No function keys, no numeric keypad, has screenlock key */
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &waddledoo2_keybd;
-}
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- /*
- * The interrupt line is shared between the TCPC and BC 1.2 detection
- * chip. Therefore we'll need to check both ICs.
- */
- schedule_deferred_pd_interrupt(0);
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_get_level(GPIO_SUB_USB_C1_INT_ODL)) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-static void sub_usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .input_ch = NPCX_ADC_CH0,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .input_ch = NPCX_ADC_CH1,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .input_ch = NPCX_ADC_CH9,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_a = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-const static struct ec_thermal_config thermal_b = {
- .temp_host = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(73),
- [EC_TEMP_THRESH_HALT] = C_TO_K(85),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_WARN] = 0,
- [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
- [EC_TEMP_THRESH_HALT] = 0,
- },
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_thermal(void)
-{
- thermal_params[TEMP_SENSOR_1] = thermal_a;
- thermal_params[TEMP_SENSOR_2] = thermal_b;
-}
-
-void board_hibernate(void)
-{
- /*
- * Both charger ICs need to be put into their "low power mode" before
- * entering the Z-state.
- */
- raa489000_hibernate(1, true);
- raa489000_hibernate(0, true);
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * TODO(b:147316511): Here we could issue a digital reset to the IC,
- * unsure if we actually want to do that or not yet.
- */
-}
-
-static void ps8762_chaddr_deferred(void)
-{
- /* Switch PS8762 I2C Address to 0x50*/
- if (ps8802_chg_i2c_addr(I2C_PORT_SUB_USB_C1) == EC_SUCCESS)
- CPRINTS("Switch PS8762 address to 0x50 success");
- else
- CPRINTS("Switch PS8762 address to 0x50 failed");
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Port 0 simply has a GPIO to turn on the 5V regulator, however, 5V is
- * generated locally on the sub board and we need to set the comparator
- * polarity on the sub board charger IC.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- if (isl923x_set_comparator_inversion(1, !!enable))
- CPRINTS("Failed to %sable sub rails!", enable ? "en" : "dis");
-
- if (!enable)
- return;
- /*
- * Port C1 the PP3300_USB_C1 assert, delay 15ms
- * colud be accessed PS8762 by I2C.
- */
- hook_call_deferred(&ps8762_chaddr_deferred_data, 15 * MSEC);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- int regval;
-
- tcpc_read(port, TCPC_REG_POWER_STATUS, &regval);
- return !!(regval & TCPC_REG_POWER_STATUS_SOURCING_VBUS);
-
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
- int old_port;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
-
- CPRINTS("New chg p%d", port);
-
- /* Disable all ports. */
- if (port == CHARGE_PORT_NONE) {
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW);
-
- return EC_SUCCESS;
- }
-
- /* Check if port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (tcpc_write(i, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_LOW))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- if (tcpc_write(port, TCPC_REG_COMMAND,
- TCPC_REG_COMMAND_SNK_CTRL_HIGH)) {
- CPRINTS("p%d: sink path enable failed.", port);
- charger_discharge_on_ac(0);
- return EC_ERROR_UNKNOWN;
- }
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * b/147463641: The charger IC seems to overdraw ~4%, therefore we
- * reduce our target accordingly.
- */
- icl = icl * 96 / 100;
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- if (port < 0 || port > board_get_usb_pd_port_count())
- return;
-
- raa489000_set_output_current(port, rp);
-}
-
-/* Sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrices to rotate accelerometers into the standard reference. */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-
-/* BMA253 private data */
-static struct accelgyro_saved_data_t g_bma253_data;
-
-/* BMI160 private data */
-static struct bmi_drv_data_t g_bmi160_data;
-
-static const mat33_fp_t base_icm_ref = {
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(-1)}
-};
-
-/* ICM426 private data */
-static struct icm_drv_data_t g_icm426xx_data;
-/* KX022 private data */
-static struct kionix_accel_data g_kx022_data;
-
-struct motion_sensor_t kx022_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = KX022_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .default_range = 2, /* g, to support tablet mode */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_ACCEL,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_icm_ref,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMA255,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bma2x2_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bma253_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2,
- .min_frequency = BMA255_ACCEL_MIN_FREQ,
- .max_frequency = BMA255_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_SUB_USB_C1_INT_ODL);
- check_c0_line();
- check_c1_line();
-
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- if (get_cbi_fw_config_tablet_mode()) {
- if (get_cbi_ssfc_base_sensor() == SSFC_SENSOR_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- cprints(CC_SYSTEM, "BASE GYRO is ICM426XX");
- } else
- cprints(CC_SYSTEM, "BASE GYRO is BMI160");
-
- if (get_cbi_ssfc_lid_sensor() == SSFC_SENSOR_KX022) {
- motion_sensors[LID_ACCEL] = kx022_lid_accel;
- cprints(CC_SYSTEM, "LID_ACCEL is KX022");
- } else
- cprints(CC_SYSTEM, "LID_ACCEL is BMA253");
-
- motion_sensor_count = ARRAY_SIZE(motion_sensors);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
- } else {
- motion_sensor_count = 0;
- gmr_tablet_switch_disable();
- /* Base accel is not stuffed, don't allow line to float */
- gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
- }
-
- /* Turn on 5V if the system is on, otherwise turn it off. */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_SOFT_OFF);
- board_power_5v_enable(on);
-
- /* Initialize THERMAL */
- setup_thermal();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (get_cbi_ssfc_base_sensor()) {
- case SSFC_SENSOR_ICM426XX:
- icm426xx_interrupt(signal);
- break;
- case SSFC_SENSOR_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-__override void ocpc_get_pid_constants(int *kp, int *kp_div,
- int *ki, int *ki_div,
- int *kd, int *kd_div)
-{
- *kp = 1;
- *kp_div = 20;
- *ki = 1;
- *ki_div = 250;
- *kd = 0;
- *kd_div = 1;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- return pd_check_vbus_level(port, VBUS_PRESENT);
-}
-
-const struct charger_config_t chg_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- .flags = PI3USB9201_ALWAYS_POWERED,
- },
-};
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 10000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_USB_C0,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = RAA489000_TCPC0_I2C_FLAGS,
- },
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- .drv = &raa489000_tcpm_drv,
- },
-};
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB3X532_I2C_ADDR0,
- .driver = &pi3usb3x532_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PS8802_I2C_ADDR_FLAGS_CUSTOM,
- .driver = &ps8802_usb_mux_driver,
- }
-};
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
- int regval;
-
- /*
- * The interrupt line is shared between the TCPC and BC1.2 detector IC.
- * Therefore, go out and actually read the alert registers to report the
- * alert status.
- */
- if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) {
- if (!tcpc_read16(0, TCPC_REG_ALERT, &regval)) {
- /* The TCPCI Rev 1.0 spec says to ignore bits 14:12. */
- if (!(tcpc_config[0].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_0;
- }
- }
-
- if (!gpio_get_level(GPIO_SUB_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */
- if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0))
- regval &= ~((1 << 14) | (1 << 13) | (1 << 12));
-
- if (regval)
- status |= PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-int adc_to_physical_value(enum gpio_signal gpio)
-{
- if (gpio == GPIO_VOLUME_UP_L)
- return !!(new_adc_key_state & ADC_VOL_UP_MASK);
- else if (gpio == GPIO_VOLUME_DOWN_L)
- return !!(new_adc_key_state & ADC_VOL_DOWN_MASK);
-
- CPRINTS("Not a volume up or down key");
- return 0;
-}
-
-int button_is_adc_detected(enum gpio_signal gpio)
-{
- return (gpio == GPIO_VOLUME_DOWN_L) || (gpio == GPIO_VOLUME_UP_L);
-}
-
-static void adc_vol_key_press_check(void)
-{
- int volt = adc_read_channel(ADC_SUB_ANALOG);
- static uint8_t old_adc_key_state;
- uint8_t adc_key_state_change;
-
- if (volt > 2400 && volt < 2490) {
- /* volume-up is pressed */
- new_adc_key_state = ADC_VOL_UP_MASK;
- } else if (volt > 2600 && volt < 2690) {
- /* volume-down is pressed */
- new_adc_key_state = ADC_VOL_DOWN_MASK;
- } else if (volt < 2290) {
- /* both volumn-up and volume-down are pressed */
- new_adc_key_state = ADC_VOL_UP_MASK | ADC_VOL_DOWN_MASK;
- } else if (volt > 2700) {
- /* both volumn-up and volume-down are released */
- new_adc_key_state = 0;
- }
- if (new_adc_key_state != old_adc_key_state) {
- adc_key_state_change = old_adc_key_state ^ new_adc_key_state;
- if (adc_key_state_change && ADC_VOL_UP_MASK)
- button_interrupt(GPIO_VOLUME_UP_L);
- if (adc_key_state_change && ADC_VOL_DOWN_MASK)
- button_interrupt(GPIO_VOLUME_DOWN_L);
-
- old_adc_key_state = new_adc_key_state;
- }
-}
-DECLARE_HOOK(HOOK_TICK, adc_vol_key_press_check, HOOK_PRIO_DEFAULT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/waddledoo2/board.h b/board/waddledoo2/board.h
deleted file mode 100644
index aefad9b213..0000000000
--- a/board/waddledoo2/board.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Waddledoo2 board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KEEBY_EC_NPCX797FC
-#include "baseboard.h"
-
-/*
- * The RAM and flash size combination on the the NPCX797FC does not leave
- * any unused flash space that can be used to store the .init_rom section.
- */
-#undef CONFIG_CHIP_INIT_ROM_REGION
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* Charger */
-#define CONFIG_CHARGER_RAA489000
-#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
-#define CONFIG_CHARGER_SENSE_RESISTOR 10
-#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */
-#define CONFIG_OCPC
-#undef CONFIG_CHARGER_SINGLE_CHIP
-#undef CONFIG_CMD_CHARGER_DUMP
-#undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE
-#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC)
-
-/* GPIO for C1 interrupts, for baseboard use */
-#define GPIO_USB_C1_INT_ODL GPIO_SUB_USB_C1_INT_ODL
-
-/* Keyboard */
-
-#define CONFIG_KEYBOARD_KEYPAD
-#define CONFIG_PWM_KBLIGHT
-
-/* LED defines */
-#define CONFIG_LED_ONOFF_STATES
-
-/* PWM */
-#define CONFIG_PWM
-#define NPCX7_PWM1_SEL 1 /* GPIO C2 is used as PWM1. */
-
-/* Temp sensor */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THROTTLE_AP
-#define CONFIG_THERMISTOR_NCP15WB
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB */
-#define CONFIG_BC12_DETECT_PI3USB9201
-#define CONFIG_USBC_RETIMER_PS8802
-
-/* Common USB-A defines */
-#define USB_PORT_COUNT 2
-#define CONFIG_USB_PORT_POWER_SMART
-#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
-#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
-#define CONFIG_USB_PORT_POWER_SMART_INVERTED
-#define GPIO_USB1_ILIM_SEL GPIO_USB_A0_CHARGE_EN_L
-#define GPIO_USB2_ILIM_SEL GPIO_USB_A1_CHARGE_EN_L
-
-/******************************************************************************/
-
-/* USB PD */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_RAA489000
-
-/* USB defines specific to external TCPCs */
-#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
-#define CONFIG_USB_PD_VBUS_DETECT_TCPC
-#define CONFIG_USB_PD_DISCHARGE_TCPC
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-/* Variant references the TCPCs to determine Vbus sourcing */
-#define CONFIG_USB_PD_5V_EN_CUSTOM
-
-/* I2C configuration */
-#define I2C_PORT_EEPROM NPCX_I2C_PORT7_0
-#define I2C_PORT_BATTERY NPCX_I2C_PORT5_0
-#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0
-#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
-#define I2C_PORT_SUB_USB_C1 NPCX_I2C_PORT2_0
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0
-/* TODO(b:147440290): Need to handle multiple charger ICs */
-#define I2C_PORT_CHARGER I2C_PORT_USB_C0
-
-#define I2C_PORT_ACCEL I2C_PORT_SENSOR
-
-#define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */
-
-/* Sensors */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
-
-#define CONFIG_ACCEL_BMA255 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_ICM426XX /* Base accel second source*/
-
-/* Lid operates in forced mode, base in FIFO */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-#define CONFIG_ACCEL_FIFO
-#define CONFIG_ACCEL_FIFO_SIZE 256 /* Must be a power of 2 */
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* Volume Button feature */
-#define CONFIG_ADC_BUTTONS
-#define CONFIG_VOLUME_BUTTONS
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum adc_channel {
- ADC_TEMP_SENSOR_1, /* ADC0 */
- ADC_TEMP_SENSOR_2, /* ADC1 */
- ADC_SUB_ANALOG, /* ADC2 */
- ADC_VSNS_PP3300_A, /* ADC9 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT,
-};
-
-enum battery_type {
- BATTERY_AP19B8M,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_TYPE_COUNT,
-};
-
-int board_is_sourcing_vbus(int port);
-void motion_interrupt(enum gpio_signal signal);
-#endif /* !__ASSEMBLER__ */
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/waddledoo2/build.mk b/board/waddledoo2/build.mk
deleted file mode 100644
index b012d8d502..0000000000
--- a/board/waddledoo2/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7fc
-BASEBOARD:=keeby
-
-board-y=board.o battery.o cbi_ssfc.o led.o usb_pd_policy.o
diff --git a/board/waddledoo2/cbi_ssfc.c b/board/waddledoo2/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/waddledoo2/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/waddledoo2/cbi_ssfc.h b/board/waddledoo2/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/waddledoo2/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/waddledoo2/ec.tasklist b/board/waddledoo2/ec.tasklist
deleted file mode 100644
index d4fb416bce..0000000000
--- a/board/waddledoo2/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/waddledoo2/gpio.inc b/board/waddledoo2/gpio.inc
deleted file mode 100644
index f0e345a81c..0000000000
--- a/board/waddledoo2/gpio.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Power Interrupts */
-GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S4_L, PIN(D, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(C, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(6, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(B, 0), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP5000_U_OD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(E, 4), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt)
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt)
-GPIO_INT(SUB_USB_C1_INT_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt)
-
-/* Button interrupts */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, motion_interrupt)
-GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-/* I2C Ports */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(9, 1), GPIO_INPUT)
-
-/* Extra Sub-board I/O pins */
-
-GPIO(EC_SUB_IO_2, PIN(3, 4), GPIO_OUT_LOW)
-
-/* Misc Enables */
-GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(A, 7), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(6, 3), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(0, 3), GPIO_OUT_LOW)
-GPIO(EN_PP5000_U, PIN(A, 4), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW)
-GPIO(EN_KB_BL, PIN(6, 0), GPIO_OUT_LOW)
-GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW)
-GPIO(EC_CBI_WP, PIN(E, 5), GPIO_OUT_LOW)
-
-/* LED */
-GPIO(LED_B_ODL, PIN(C, 2), GPIO_OUT_HIGH) /* PWM_CH_LED2_BLUE */
-GPIO(LED_G_ODL, PIN(C, 3), GPIO_OUT_HIGH) /* PWM_CH_LED1_GREEN */
-GPIO(LED_R_ODL, PIN(C, 4), GPIO_OUT_HIGH) /* PWM_CH_LED2_ORANGE */
-
-/* Power Sequencing */
-GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(A, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_RTCRST, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(7, 4), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(A, 3), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(9, 4), GPIO_ODR_LOW)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(B, 1), GPIO_ODR_LOW)
-GPIO(EC_AP_SYS_PWROK, PIN(0, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_MKBP_INT_L, PIN(7, 0), GPIO_ODR_HIGH)
-GPIO(EC_PROCHOT_ODL, PIN(F, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_ENTERING_RW, PIN(E, 3), GPIO_OUT_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(A, 0), GPIO_OUT_LOW)
-GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH)
-
-/* USB pins */
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(9, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(9, 3), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(7, 2), GPIO_OUT_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(E, 1), GPIO_INPUT)
-GPIO(USB_A0_CHARGE_EN_L, PIN(3, 7), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(F, 3), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(EN_USB_A0_VBUS, PIN(4, 1), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(EN_USB_A1_VBUS, PIN(F, 2), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-/*
- * Waddledoo2 doesn't have these physical pins coming to the EC but uses other
- * logic.
- */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-UNIMPLEMENTED(VOLDN_BTN_ODL)
-UNIMPLEMENTED(VOLUP_BTN_ODL)
-
-/* Alternate Functions */
-/* ADC */
-ALTERNATE(PIN_MASK(F, BIT(0)), 0, MODULE_ADC, 0) /* ADC9 */
-ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* ADC0-2 */
-
-/* Keyboard */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI0, KSI1 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT | GPIO_PULL_UP) /* KSI2-7 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO0, KSO1 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO3-9 */
-ALTERNATE(PIN_MASK(0, 0xF0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO10-13 */
-ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO14 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO2 inverted */
-
-/* PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 */
-
-/* UART */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */
-ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-
-/* NC pins, enable internal pull-up to avoid floating state. */
-GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO86_NC, PIN(8, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD0_NC, PIN(D, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD1_NC, PIN(D, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOD6_NC, PIN(D, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIOE0_NC, PIN(E, 0), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPIO40_NC, PIN(4, 0), GPIO_INPUT | GPIO_PULL_UP)
diff --git a/board/waddledoo2/led.c b/board/waddledoo2/led.c
deleted file mode 100644
index 85bd75ce99..0000000000
--- a/board/waddledoo2/led.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control for waddledoo2
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_R_ODL, LED_ON_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_R_ODL, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_B_ODL, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/waddledoo2/usb_pd_policy.c b/board/waddledoo2/usb_pd_policy.c
deleted file mode 100644
index fd9018a3f0..0000000000
--- a/board/waddledoo2/usb_pd_policy.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "charge_manager.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on. */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- /* Disable VBUS */
- tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_LOW);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- int rv;
-
- if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return EC_ERROR_INVAL;
-
- /* Disable charging. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW);
- if (rv)
- return rv;
-
- /* Our policy is not to source VBUS when the AP is off. */
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return EC_ERROR_NOT_POWERED;
-
- /* Provide Vbus. */
- rv = tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SRC_CTRL_HIGH);
- if (rv)
- return rv;
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
diff --git a/board/waddledoo2/vif_override.xml b/board/waddledoo2/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/waddledoo2/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/wand b/board/wand
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/wand
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/wheelie/battery.c b/board/wheelie/battery.c
deleted file mode 100644
index c9770124cd..0000000000
--- a/board/wheelie/battery.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "charge_state.h"
-#include "common.h"
-
-/*
- * Battery info for all wheelie battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AC15A8J Battery Information */
- [BATTERY_LGC15] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "AC15A8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC_AP15O5L] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP15O5L",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SANYO AC15A3J Battery Information */
- [BATTERY_SANYO] = {
- .fuel_gauge = {
- .manuf_name = "SANYO",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Sony Ap13J4K Battery Information */
- [BATTERY_SONY] = {
- .fuel_gauge = {
- .manuf_name = "SONYCorp",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x8000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Simplo AP13J7K Battery Information */
- [BATTERY_SMP_AP13J7K] = {
- .fuel_gauge = {
- .manuf_name = "SIMPLO",
- .device_name = "AP13J7K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0000,
- }
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AC15A3J Battery Information */
- [BATTERY_PANASONIC_AC15A3J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AC15A3J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC AP19A8K Battery Information */
- [BATTERY_LGC_AP19A8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KTxxxxGxxx",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-
- /* LGC KT0030G023 Battery Information */
- [BATTERY_LGC_G023] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G023",
- .device_name = "AP19A8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC15A3J;
diff --git a/board/wheelie/board.c b/board/wheelie/board.c
deleted file mode 100644
index 198dbda284..0000000000
--- a/board/wheelie/board.c
+++ /dev/null
@@ -1,487 +0,0 @@
-/* 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.
- */
-
-/* Wheelie board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state_v2.h"
-#include "charger.h"
-#include "driver/accel_lis2dh.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/sm5803.h"
-#include "driver/sync.h"
-#include "driver/retimer/tusb544.h"
-#include "driver/temp_sensor/thermistor.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/usb_mux/it5205.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "intc.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "uart.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-static void usb_c0_interrupt(enum gpio_signal s)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
- sm5803_interrupt(0);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void usb_c1_interrupt(enum gpio_signal s)
-{
- schedule_deferred_pd_interrupt(1);
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
- sm5803_interrupt(1);
-}
-
-static void c0_ccsbu_ovp_interrupt(enum gpio_signal s)
-{
- cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event");
- pd_handle_cc_overvoltage(0);
-}
-
-/* Must come after other header files and interrupt handler declarations */
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_VSNS_PP3300_A] = {
- .name = "PP3300_A_PGOOD",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH0
- },
- [ADC_TEMP_SENSOR_1] = {
- .name = "TEMP_SENSOR1",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH2
- },
- [ADC_TEMP_SENSOR_2] = {
- .name = "TEMP_SENSOR2",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH3
- },
- [ADC_SUB_ANALOG] = {
- .name = "SUB_ANALOG",
- .factor_mul = ADC_MAX_MVOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- .channel = CHIP_ADC_CH13
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/* BC 1.2 chips */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Charger chips */
-const struct charger_config_t chg_chips[] = {
- [CHARGER_PRIMARY] = {
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
- [CHARGER_SECONDARY] = {
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS,
- .drv = &sm5803_drv,
- },
-};
-
-/* TCPCs */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_EMBEDDED,
- .drv = &it83xx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_SUB_USB_C1,
- .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- },
- .drv = &anx7447_tcpm_drv,
- .flags = TCPC_FLAGS_TCPCI_REV2_0,
- },
-};
-
-/* USB Retimer */
-const struct usb_mux usbc1_retimer = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS0,
- .driver = &tusb544_drv,
-};
-
-/* USB Muxes */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_C0,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- },
- {
- .usb_port = 1,
- .i2c_port = I2C_PORT_SUB_USB_C1,
- .i2c_addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS,
- .driver = &anx7447_usb_mux_driver,
- .next_mux = &usbc1_retimer,
- },
-};
-
-void board_init(void)
-{
- int on;
-
- gpio_enable_interrupt(GPIO_USB_C0_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL);
-
- /* Charger on the MB will be outputting PROCHOT_ODL and OD CHG_DET */
- sm5803_configure_gpio0(CHARGER_PRIMARY, GPIO0_MODE_PROCHOT, 1);
- sm5803_configure_chg_det_od(CHARGER_PRIMARY, 1);
-
- /* Charger on the sub-board will be a push-pull GPIO */
- sm5803_configure_gpio0(CHARGER_SECONDARY, GPIO0_MODE_OUTPUT, 0);
-
- /* Turn on 5V if the system is on, otherwise turn it off */
- on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND);
- board_power_5v_enable(on);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not
- * connected to the EC.
- */
-}
-
-__override void board_power_5v_enable(int enable)
-{
- /*
- * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board
- * sets it through the charger GPIO.
- */
- gpio_set_level(GPIO_EN_PP5000, !!enable);
- if (sm5803_set_gpio0_level(1, !!enable))
- CPRINTUSB("Failed to %sable sub rails!", enable ? "en" : "dis");
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- /*
- * TCPC 0 is embedded in the EC and processes interrupts in the chip
- * code (it83xx/intc.c)
- */
-
- uint16_t status = 0;
- int regval;
-
- /* Check whether TCPC 1 pulled the shared interrupt line */
- if (!gpio_get_level(GPIO_USB_C1_INT_ODL)) {
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
- int charge_mv)
-{
- int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT);
-
- /*
- * TODO(b/151955431): Characterize the input current limit in case a
- * scaling needs to be applied here
- */
- charge_set_input_current_limit(icl, charge_mv);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_valid_port = (port >= 0 && port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int p0_otg, p1_otg;
-
- if (!is_valid_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- /* TODO(b/147440290): charger functions should take chgnum */
- p0_otg = chg_chips[0].drv->is_sourcing_otg_power(0, 0);
- p1_otg = chg_chips[1].drv->is_sourcing_otg_power(1, 1);
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTUSB("Disabling all charge ports");
-
- if (!p0_otg)
- chg_chips[0].drv->set_mode(0,
- CHARGE_FLAG_INHIBIT_CHARGE);
- if (!p1_otg)
- chg_chips[1].drv->set_mode(1,
- CHARGE_FLAG_INHIBIT_CHARGE);
-
- return EC_SUCCESS;
- }
-
- CPRINTUSB("New chg p%d", port);
-
- /*
- * Charger task will take care of enabling charging on the new charge
- * port. Here, we ensure the other port is not charging by changing
- * CHG_EN
- */
- if (port == 0) {
- if (p0_otg) {
- CPRINTUSB("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
- if (!p1_otg) {
- chg_chips[1].drv->set_mode(1,
- CHARGE_FLAG_INHIBIT_CHARGE);
- }
- } else {
- if (p1_otg) {
- CPRINTUSB("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
- if (!p0_otg) {
- chg_chips[0].drv->set_mode(0,
- CHARGE_FLAG_INHIBIT_CHARGE);
- }
- }
-
- return EC_SUCCESS;
-}
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled);
- else
- gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled);
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- int current;
-
- if (port < 0 || port > CONFIG_USB_PD_PORT_MAX_COUNT)
- return;
-
- current = (rp == TYPEC_RP_3A0) ? 3000 : 1500;
-
- chg_chips[port].drv->set_otg_current_voltage(port, current, 5000);
-}
-
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 0,
- .flags = PWM_CONFIG_DSLEEP,
- .freq_hz = 10000,
- },
-
- [PWM_CH_LED_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_GREEN] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_BLUE] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- }
-
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* Sensor Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Sensor Data */
-static struct stprivate_data g_lis2dh_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LIS2DE,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &lis2dh_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_lis2dh_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 2, /* g */
- /* We only use 2g because its resolution is only 8-bits */
- .min_frequency = LIS2DH_ODR_MIN_VAL,
- .max_frequency = LIS2DH_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = NULL,
- .default_range = 4, /* g */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = NULL,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
- [VSYNC] = {
- .name = "Camera VSYNC",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_GPIO,
- .type = MOTIONSENSE_TYPE_SYNC,
- .location = MOTIONSENSE_LOC_CAMERA,
- .drv = &sync_drv,
- .default_range = 0,
- .min_frequency = 0,
- .max_frequency = 1,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Thermistors */
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_1] = {.name = "Memory",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_1},
- [TEMP_SENSOR_2] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_2},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* This callback disables keyboard when convertibles are fully open */
-__override void lid_angle_peripheral_enable(int enable)
-{
- int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON);
-
- /*
- * If the lid is in tablet position via other sensors,
- * ignore the lid angle, which might be faulty then
- * disable keyboard.
- */
- if (tablet_get_mode())
- enable = 0;
-
- if (enable) {
- keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE);
- } else {
- /*
- * Ensure that the chipset is off before disabling the keyboard.
- * When the chipset is on, the EC keeps the keyboard enabled and
- * the AP decides whether to ignore input devices or not.
- */
- if (!chipset_in_s0)
- keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE);
- }
-}
diff --git a/board/wheelie/board.h b/board/wheelie/board.h
deleted file mode 100644
index dfbc4e7845..0000000000
--- a/board/wheelie/board.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* 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.
- */
-
-/* Wheelie board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_DEDEDE_EC_IT8320
-#include "baseboard.h"
-
-/* System unlocked in early development */
-#define CONFIG_SYSTEM_UNLOCKED
-
-/* Battery */
-#define CONFIG_BATTERY_FUEL_GAUGE
-
-/* BC 1.2 */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* Charger */
-#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */
-#define CONFIG_FPU /* For charger calculations */
-#define CONFIG_USB_PD_VBUS_DETECT_CHARGER
-#define CONFIG_USB_PD_5V_CHARGER_CTRL
-#define CONFIG_CHARGER_OTG
-#undef CONFIG_CHARGER_SINGLE_CHIP
-
-/* LED */
-#define CONFIG_LED_PWM
-#define CONFIG_LED_PWM_COUNT 1
-
-/* PWM */
-#define CONFIG_PWM
-
-/* Sensors */
-#define CONFIG_ACCEL_LIS2DE /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-#define CONFIG_SYNC /* Camera VSYNC */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_ACCEL_INTERRUPTS
-/* Enable sensor fifo, must also define the _SIZE and _THRES */
-#define CONFIG_ACCEL_FIFO
-/* Power of 2 - Too large of a fifo causes too much timestamp jitter */
-#define CONFIG_ACCEL_FIFO_SIZE 256
-#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_SYNC_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(VSYNC)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_GMR_TABLET_MODE
-
-/* TCPC */
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0: ITE EC TCPC */
-#define CONFIG_USB_PD_TCPM_ANX7447 /* C1: ANX TCPC + Mux */
-#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1
-
-/* Thermistors */
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-/* USB Mux and Retimer */
-#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */
-#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */
-
-#define CONFIG_USBC_RETIMER_TUSB544 /* C1 Redriver: TUSB544 */
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum chg_id {
- CHARGER_PRIMARY,
- CHARGER_SECONDARY,
- CHARGER_NUM,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_LED_BLUE,
- PWM_CH_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- VSYNC,
- SENSOR_COUNT
-};
-
-/* ADC channels */
-enum adc_channel {
- ADC_VSNS_PP3300_A, /* ADC0 */
- ADC_TEMP_SENSOR_1, /* ADC2 */
- ADC_TEMP_SENSOR_2, /* ADC3 */
- ADC_SUB_ANALOG, /* ADC13 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_1,
- TEMP_SENSOR_2,
- TEMP_SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_LGC15,
- BATTERY_PANASONIC_AP15O5L,
- BATTERY_SANYO,
- BATTERY_SONY,
- BATTERY_SMP_AP13J7K,
- BATTERY_PANASONIC_AC15A3J,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_LGC_AP19A8K,
- BATTERY_LGC_G023,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/wheelie/build.mk b/board/wheelie/build.mk
deleted file mode 100644
index 806168ea0d..0000000000
--- a/board/wheelie/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=it83xx
-CHIP_FAMILY:=it8320
-CHIP_VARIANT:=it8320dx
-BASEBOARD:=dedede
-
-board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/wheelie/cbi_ssfc.c b/board/wheelie/cbi_ssfc.c
deleted file mode 100644
index c4b859f133..0000000000
--- a/board/wheelie/cbi_ssfc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "cbi_ssfc.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "hooks.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args)
-
-/* Cache SSFC on init since we don't expect it to change in runtime */
-static union dedede_cbi_ssfc cached_ssfc;
-BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t));
-
-static void cbi_ssfc_init(void)
-{
- if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS)
- /* Default to 0 when CBI isn't populated */
- cached_ssfc.raw_value = 0;
-
- CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value);
-}
-DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST);
-
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void)
-{
- return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor;
-}
-
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void)
-{
- return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor;
-}
diff --git a/board/wheelie/cbi_ssfc.h b/board/wheelie/cbi_ssfc.h
deleted file mode 100644
index 935049b6ae..0000000000
--- a/board/wheelie/cbi_ssfc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#ifndef _DEDEDE_CBI_SSFC__H_
-#define _DEDEDE_CBI_SSFC__H_
-
-#include "stdint.h"
-
-/****************************************************************************
- * Dedede CBI Second Source Factory Cache
- */
-
-/*
- * Base Sensor (Bits 0-2)
- */
-enum ec_ssfc_base_sensor {
- SSFC_SENSOR_BASE_DEFAULT = 0,
- SSFC_SENSOR_BMI160 = 1,
- SSFC_SENSOR_ICM426XX = 2,
- SSFC_SENSOR_LSM6DSM = 3,
- SSFC_SENSOR_ICM42607 = 4
-};
-
-/*
- * Lid Sensor (Bits 3-5)
- */
-enum ec_ssfc_lid_sensor {
- SSFC_SENSOR_LID_DEFAULT = 0,
- SSFC_SENSOR_BMA255 = 1,
- SSFC_SENSOR_KX022 = 2,
- SSFC_SENSOR_LIS2DWL = 3
-};
-
-union dedede_cbi_ssfc {
- struct {
- uint32_t base_sensor : 3;
- uint32_t lid_sensor : 3;
- uint32_t reserved_2 : 26;
- };
- uint32_t raw_value;
-};
-
-/**
- * Get the Base sensor type from SSFC_CONFIG.
- *
- * @return the Base sensor board type.
- */
-enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void);
-
-/**
- * Get the Lid sensor type from SSFC_CONFIG.
- *
- * @return the Lid sensor board type.
- */
-enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void);
-
-
-#endif /* _DEDEDE_CBI_SSFC__H_ */
diff --git a/board/wheelie/ec.tasklist b/board/wheelie/ec.tasklist
deleted file mode 100644
index 75181a4531..0000000000
--- a/board/wheelie/ec.tasklist
+++ /dev/null
@@ -1,24 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/wheelie/gpio.inc b/board/wheelie/gpio.inc
deleted file mode 100644
index 8979ca6ab9..0000000000
--- a/board/wheelie/gpio.inc
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Power State interrupts */
-GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt)
-GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt)
-
-GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
-#ifdef CONFIG_LOW_POWER_IDLE
-/* Used to wake up the EC from Deep Doze mode when writing to console */
-GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */
-#endif
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */
-GPIO_INT(USB_C1_INT_ODL, PIN(B, 5), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 */
-GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */
-
-/* Other interrupts */
-GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt)
-GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO_INT(CAM_EC_VSYNC, PIN(C, 7), GPIO_INT_RISING, sync_interrupt)
-GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
-
-/* Power sequence GPIOs */
-GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW)
-GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH)
-GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW)
-GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW)
-GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH)
-GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH)
-GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW)
-GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT)
-GPIO(EN_PP3300_PEN, PIN(E, 6), GPIO_OUT_LOW)
-GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW)
-GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW)
-GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW)
-/* TODO(b:149775160) - Modify if needed if we ever use this signal. */
-GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT)
-GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW)
-GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW)
-GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW)
-GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW)
-
-/* Required for icelake chipset code, but implemented through other means for dedede */
-UNIMPLEMENTED(AC_PRESENT)
-UNIMPLEMENTED(PG_EC_DSW_PWROK)
-UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD)
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT)
-GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT)
-GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT)
-
-/* USB pins */
-GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 4), GPIO_OUT_LOW)
-GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 6), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW)
-GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW)
-GPIO(USB_C0_FRS, PIN(C, 4), GPIO_OUT_LOW)
-GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_HIGH)
-
-/* MKBP event synchronization */
-GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH)
-
-/* Misc pins which will run to the I/O board */
-GPIO(EC_SUB_IO_1_1, PIN(L, 3), GPIO_INPUT)
-GPIO(EC_SUB_IO_1_2, PIN(F, 0), GPIO_INPUT)
-GPIO(EC_SUB_IO_2_1, PIN(F, 1), GPIO_INPUT)
-GPIO(EC_SUB_IO_2_2, PIN(L, 2), GPIO_INPUT)
-
-/* Misc */
-GPIO(EN_BL_OD, PIN(K, 4), GPIO_OUT_LOW)
-GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW)
-GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH)
-GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT)
-GPIO(PEN_DET_ODL, PIN(J, 1), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */
-GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW)
-
-/* NC pins, enable internal pull-down to avoid floating state. */
-GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOL6_NC, PIN(L, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* Alternate functions GPIO definitions */
-/* UART */
-ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */
-
-/* I2C */
-ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */
-ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */
-ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */
-
-/* ADC */
-ALTERNATE(PIN_MASK(L, BIT(0)), 0, MODULE_ADC, 0) /* ADC13: EC_SUB_ANALOG */
-ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */
-
-/* DAC */
-ALTERNATE(PIN_MASK(J, BIT(2)), 0, MODULE_DAC, 0) /* DAC2: EC_AP_PSYS */
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(0) | BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM, 0) /* KB_BL_PWM, LED_[R,G,B]_ODL */
diff --git a/board/wheelie/led.c b/board/wheelie/led.c
deleted file mode 100644
index 9524a68a84..0000000000
--- a/board/wheelie/led.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* 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.
- */
-
-/* Wheelie specific PWM LED settings. */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_POWER_LED,
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-/*
- * Board has one physical LED with red, green, and blue
- */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 100, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- [EC_LED_COLOR_YELLOW] = { 50, 50, 0 },
- [EC_LED_COLOR_WHITE] = { 50, 50, 50 },
- [EC_LED_COLOR_AMBER] = { 70, 30, 0 },
-};
-
-/* One logical LED with red, green, and blue channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED_RED,
- .ch1 = PWM_CH_LED_GREEN,
- .ch2 = PWM_CH_LED_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
- brightness_range[EC_LED_COLOR_BLUE] = 100;
- brightness_range[EC_LED_COLOR_YELLOW] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
- else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
-
- return EC_SUCCESS;
-}
diff --git a/board/wheelie/usb_pd_policy.c b/board/wheelie/usb_pd_policy.c
deleted file mode 100644
index 02ae21a420..0000000000
--- a/board/wheelie/usb_pd_policy.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* 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.
- */
-
-#include "battery_smart.h"
-#include "charge_manager.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/charger/sm5803.h"
-#include "driver/tcpm/tcpci.h"
-#include "usb_pd.h"
-
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-
-int pd_check_vconn_swap(int port)
-{
- /* Allow VCONN swaps if the AP is on */
- return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON);
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- if (port < 0 || port >= CONFIG_USB_PD_PORT_MAX_COUNT)
- return;
-
- /* TODO(b/147440290): charger functions should take chgnum */
- prev_en = chg_chips[port].drv->is_sourcing_otg_power(port, port);
-
- /* Disable Vbus */
- chg_chips[port].drv->enable_otg_power(port, 0);
-
- /* Discharge Vbus if previously enabled */
- if (prev_en)
- sm5803_set_vbus_disch(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- enum ec_error_list rv;
-
- /* Disable charging */
- rv = chg_chips[port].drv->set_mode(port, CHARGE_FLAG_INHIBIT_CHARGE);
- if (rv)
- return rv;
-
- /* Disable Vbus discharge */
- sm5803_set_vbus_disch(port, 0);
-
- /* Provide Vbus */
- chg_chips[port].drv->enable_otg_power(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- int chg_det = 0;
-
- sm5803_get_chg_det(port, &chg_det);
-
- return chg_det;
-}
diff --git a/board/wheelie/vif_override.xml b/board/wheelie/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/wheelie/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/whiskers b/board/whiskers
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/whiskers
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/willow/battery.c b/board/willow/battery.c
deleted file mode 100644
index cc97838f48..0000000000
--- a/board/willow/battery.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/* 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.
- */
-
-#include "battery.h"
-#include "battery_fuel_gauge.h"
-#include "gpio.h"
-
-const struct board_batt_params board_battery_info[] = {
- [BATTERY_PANASONIC_AC15A3J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AC15A3J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11580,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
- [BATTERY_PANASONIC_AC16L5J] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- [BATTERY_LGC_AC16L8J] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0020G010",
- .device_name = "AP16L8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8700,
- .voltage_normal = 7500,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- [BATTERY_PANASONIC_AC16L5J_KT00205009] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00205009",
- .device_name = "AP16L5J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8800,
- .voltage_normal = 7700,
- .voltage_min = 6000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP18C8K Battery Information */
- [BATTERY_LGC_AP18C8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G020",
- .device_name = "AP18C8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* Murata AP18C4K Battery Information */
- [BATTERY_MURATA_AP18C4K] = {
- .fuel_gauge = {
- .manuf_name = "Murata KT00304012",
- .device_name = "AP18C4K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x2000,
- .disconnect_val = 0x2000,
- },
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11400,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- [BATTERY_PANASONIC_AP19B5K_KT00305011] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC KT00305011",
- .device_name = "AP19B5K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
- /* LGC AP19B8K Battery Information */
- [BATTERY_LGC_AP19B8K] = {
- .fuel_gauge = {
- .manuf_name = "LGC KT0030G022",
- .device_name = "AP19B8K",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x43,
- .reg_mask = 0x0001,
- .disconnect_val = 0x0,
- },
- },
- .batt_info = {
- .voltage_max = 13050,
- .voltage_normal = 11250,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 75,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC15A3J;
-
-enum battery_present battery_hw_present(void)
-{
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
diff --git a/board/willow/board.c b/board/willow/board.c
deleted file mode 100644
index ba467fddc2..0000000000
--- a/board/willow/board.c
+++ /dev/null
@@ -1,446 +0,0 @@
-/* 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.
- */
-
-#include "adc.h"
-#include "backlight.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_ramp.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/battery/max17055.h"
-#include "driver/bc12/pi3usb9201.h"
-#include "driver/charger/isl923x.h"
-#include "driver/tcpm/fusb302.h"
-#include "driver/usb_mux/it5205.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "i2c.h"
-#include "i2c_bitbang.h"
-#include "it8801.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "registers.h"
-#include "spi.h"
-#include "system.h"
-#include "task.h"
-#include "tcpm/tcpm.h"
-#include "timer.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-#include "usb_pd_tcpm.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- schedule_deferred_pd_interrupt(0 /* port */);
-}
-
-#include "gpio_list.h"
-
-/******************************************************************************/
-/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
-const struct adc_t adc_channels[] = {
- [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
- [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
-};
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
-};
-const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports);
-
-#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3
-
-/* power signal list. Must match order of enum power_signal. */
-const struct power_signal_info power_signal_list[] = {
- {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"},
- {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"},
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-/* Keyboard scan setting */
-__override struct keyboard_scan_config keyscan_config = {
- /*
- * TODO(b/133200075): Tune this once we have the final performance
- * out of the driver and the i2c bus.
- */
- .output_settle_us = 35,
- .debounce_down_us = 5 * MSEC,
- .debounce_up_us = 40 * MSEC,
- .scan_period_us = 10 * MSEC,
- .min_post_scan_delay_us = 10 * MSEC,
- .poll_timeout_us = 100 * MSEC,
- .actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
- },
-};
-
-struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
- [0] = {
- .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT,
- .i2c_addr_flags = IT8801_I2C_ADDR1,
- .drv = &it8801_ioexpander_drv,
- },
-};
-
-/******************************************************************************/
-/* SPI devices */
-const struct spi_device_t spi_devices[] = {
- { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS },
-};
-const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_BC12,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/******************************************************************************/
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = FUSB302_I2C_ADDR_FLAGS,
- },
- .drv = &fusb302_tcpm_drv,
- },
-};
-
-static void board_hpd_status(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- /*
- * svdm_dp_attention() did most of the work, we only need to notify
- * host here.
- */
- host_set_single_event(EC_HOST_EVENT_USB_MUX);
-}
-
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS,
- .driver = &it5205_usb_mux_driver,
- .hpd_update = &board_hpd_status,
- },
-};
-
-/* Charger config. Start i2c address at 1, update during runtime */
-struct charger_config_t chg_chips[] = {
- {
- .i2c_port = 1,
- .i2c_addr_flags = ISL923X_ADDR_FLAGS,
- .drv = &isl923x_drv,
- },
-};
-const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
-
-/* Board version depends on ADCs, so init i2c port after ADC */
-static void charger_config_complete(void)
-{
- chg_chips[0].i2c_port = board_get_charger_i2c();
-}
-DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1);
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- status |= PD_STATUS_TCPC_ALERT_0;
-
- return status;
-}
-
-static int force_discharge;
-
-int board_set_active_charge_port(int charge_port)
-{
- CPRINTS("New chg p%d", charge_port);
-
- /* ignore all request when discharge mode is on */
- if (force_discharge && charge_port != CHARGE_PORT_NONE)
- return EC_SUCCESS;
-
- switch (charge_port) {
- case CHARGE_PORT_USB_C:
- /* Don't charge from a source port */
- if (board_vbus_source_enabled(charge_port))
- return -1;
- break;
- case CHARGE_PORT_NONE:
- /*
- * To ensure the fuel gauge (max17055) is always powered
- * even when battery is disconnected, keep VBAT rail on but
- * set the charging current to minimum.
- */
- charger_set_current(CHARGER_SOLO, 0);
- break;
- default:
- panic("Invalid charge port\n");
- break;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- charge_ma = (charge_ma * 95) / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
-}
-
-int board_discharge_on_ac(int enable)
-{
- int ret, port;
-
- if (enable) {
- port = CHARGE_PORT_NONE;
- } else {
- /* restore the charge port state */
- port = charge_manager_get_override();
- if (port == OVERRIDE_OFF)
- port = charge_manager_get_active_charge_port();
- }
-
- ret = charger_discharge_on_ac(enable);
- if (ret)
- return ret;
-
- force_discharge = enable;
- return board_set_active_charge_port(port);
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */
- return EC_ERROR_UNIMPLEMENTED;
-}
-
-void bc12_interrupt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-static void board_spi_enable(void)
-{
- /*
- * Pin mux spi peripheral away from emmc, since RO might have
- * left them there.
- */
- gpio_config_module(MODULE_SPI_FLASH, 0);
-
- /* Enable clocks to SPI2 module. */
- STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2;
-
- /* Reset SPI2 to clear state left over from the emmc slave. */
- STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2;
- STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2;
-
- /* Reinitialize spi peripheral. */
- spi_enable(&spi_devices[0], 1);
-
- /* Pin mux spi peripheral toward the sensor. */
- gpio_config_module(MODULE_SPI_CONTROLLER, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP,
- board_spi_enable,
- MOTION_SENSE_HOOK_PRIO - 1);
-
-static void board_spi_disable(void)
-{
- /* Set pins to a state calming the sensor down. */
- gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW);
- gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0);
- gpio_config_module(MODULE_SPI_CONTROLLER, 0);
-
- /* Disable spi peripheral and clocks. */
- spi_enable(&spi_devices[0], 0);
- STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2;
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN,
- board_spi_disable,
- MOTION_SENSE_HOOK_PRIO + 1);
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-static void board_init(void)
-{
- /* If the reset cause is external, pulse PMIC force reset. */
- if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) {
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0);
- msleep(100);
- gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1);
- }
-
- /* Enable TCPC alert interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* For some reason we have to do this again in case of sysjump */
- board_spi_enable();
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
- /* Enable interrupt from PMIC. */
- gpio_enable_interrupt(GPIO_PMIC_EC_RESETB);
-
- /* Enable BC12 interrupt */
- gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifndef VARIANT_KUKUI_NO_SENSORS
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Rotation matrixes */
-static const mat33_fp_t base_standard_ref = {
- {FLOAT_TO_FP(1), 0, 0},
- {0, FLOAT_TO_FP(1), 0},
- {0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSORS,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g, enough to calculate lid angle. */
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [BASE_ACCEL] = {
- .name = "Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
- [BASE_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = CONFIG_SPI_ACCEL_PORT,
- .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT),
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-#endif /* !VARIANT_KUKUI_NO_SENSORS */
-
-/* Called on AP S5 -> S3 transition */
-static void board_chipset_startup(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S5 transition */
-static void board_chipset_shutdown(void)
-{
- gpio_set_level(GPIO_EN_USBA_5V, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
-
-int board_get_charger_i2c(void)
-{
- /* TODO(b:138415463): confirm the bus allocation for future builds */
- return board_get_version() == 1 ? 2 : 1;
-}
-
-int board_get_battery_i2c(void)
-{
- return board_get_version() >= 1 ? 2 : 1;
-}
diff --git a/board/willow/board.h b/board/willow/board.h
deleted file mode 100644
index a6907b9a9e..0000000000
--- a/board/willow/board.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/* 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.
- */
-
-/* Configuration for Willow */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_KUKUI_JACUZZI
-#define VARIANT_KUKUI_BATTERY_SMART
-#define VARIANT_KUKUI_CHARGER_ISL9238
-#define VARIANT_KUKUI_EC_STM32F098
-
-#ifndef SECTION_IS_RW
-#define VARIANT_KUKUI_NO_SENSORS
-#endif /* SECTION_IS_RW */
-
-#include "baseboard.h"
-
-#undef CONFIG_CHIPSET_POWER_SEQ_VERSION
-#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
-
-#undef CONFIG_SYSTEM_UNLOCKED
-
-#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-
-#define CONFIG_CHARGER_PSYS
-
-#define CONFIG_CHARGER_RUNTIME_CONFIG
-
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-#define CONFIG_EXTPOWER_GPIO
-#undef CONFIG_EXTPOWER_DEBOUNCE_MS
-#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
-
-#define CONFIG_I2C_BITBANG
-#define I2C_BITBANG_PORT_COUNT 1
-#undef CONFIG_I2C_NACK_RETRY_COUNT
-#define CONFIG_I2C_NACK_RETRY_COUNT 10
-#define CONFIG_SMBUS_PEC
-
-#define CONFIG_USB_PD_TCPM_FUSB302
-#define CONFIG_USB_PD_DISCHARGE_GPIO
-#define CONFIG_USB_PD_TCPC_LOW_POWER
-
-#define CONFIG_USB_MUX_IT5205
-
-/* Motion Sensors */
-#ifndef VARIANT_KUKUI_NO_SENSORS
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_BMI160 /* Base accel */
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ALS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#endif /* VARIANT_KUKUI_NO_SENSORS */
-
-/* I2C ports */
-#define I2C_PORT_BC12 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_USB_MUX 0
-#define I2C_PORT_CHARGER board_get_charger_i2c()
-#define I2C_PORT_SENSORS 1
-#define IT8801_KEYBOARD_PWM_I2C_PORT 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_BATTERY 2
-
-/* IT8801 I2C address */
-#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1
-
-/* Enable Accel over SPI */
-#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */
-
-#define CONFIG_KEYBOARD_PROTOCOL_MKBP
-#define CONFIG_MKBP_EVENT
-#define CONFIG_MKBP_USE_GPIO
-
-#define CONFIG_LED_ONOFF_STATES
-
-#undef CONFIG_GMR_TABLET_MODE
-#undef GMR_TABLET_MODE_GPIO_L
-#undef CONFIG_TABLET_MODE
-#undef CONFIG_TABLET_MODE_SWITCH
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_BOARD_ID = 0,
- ADC_EC_SKU_ID,
- ADC_CH_COUNT
-};
-
-/* power signal definitions */
-enum power_signal {
- AP_IN_S3_L,
- PMIC_PWR_GOOD,
-
- /* Number of signals */
- POWER_SIGNAL_COUNT,
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT,
-};
-
-enum charge_port {
- CHARGE_PORT_USB_C,
-};
-
-enum battery_type {
- BATTERY_PANASONIC_AC15A3J,
- BATTERY_PANASONIC_AC16L5J,
- BATTERY_LGC_AC16L8J,
- BATTERY_PANASONIC_AC16L5J_KT00205009,
- BATTERY_LGC_AP18C8K,
- BATTERY_MURATA_AP18C4K,
- BATTERY_PANASONIC_AP19B5K_KT00305011,
- BATTERY_LGC_AP19B8K,
- BATTERY_TYPE_COUNT,
-};
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-#ifdef SECTION_IS_RO
-/* Interrupt handler for emmc task */
-void emmc_cmd_interrupt(enum gpio_signal signal);
-#endif
-
-void bc12_interrupt(enum gpio_signal signal);
-void board_reset_pd_mcu(void);
-int board_get_version(void);
-
-/* returns the i2c port number of charger/battery */
-int board_get_charger_i2c(void);
-int board_get_battery_i2c(void);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/willow/build.mk b/board/willow/build.mk
deleted file mode 100644
index a6e1c010d7..0000000000
--- a/board/willow/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-#
-# STmicro STM32F098VC
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f09x
-BASEBOARD:=kukui
-
-board-y=battery.o board.o led.o
diff --git a/board/willow/ec.tasklist b/board/willow/ec.tasklist
deleted file mode 100644
index c1330b86f8..0000000000
--- a/board/willow/ec.tasklist
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/willow/gpio.inc b/board/willow/gpio.inc
deleted file mode 100644
index 9c1bffe194..0000000000
--- a/board/willow/gpio.inc
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/*
- * Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first.
- */
-
-/* Interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP,
- tcpc_alert_event)
-GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP,
- power_button_interrupt) /* EC_PWR_BTN_ODL */
-GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN,
- power_signal_interrupt)
-GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN,
- chipset_reset_request_interrupt)
-GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP,
- bmi160_interrupt)
-GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING,
- emmc_cmd_interrupt)
-GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP,
- spi_event) /* SPI_AP_EC_CS_L */
-GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt)
-GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
- extpower_interrupt) /* ACOK_OD */
-GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
- bc12_interrupt)
-GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
- io_expander_it8801_interrupt) /* KB_INT_ODL */
-GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
- chipset_watchdog_interrupt)
-
-/* Unimplemented interrupts */
-GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
-GPIO(TABLET_MODE_L, PIN(B, 11), GPIO_INPUT)
-
-/* Reset pins */
-GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
-GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW)
-GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH)
-
-/*
- * I2C pins should be configured as inputs until I2C module is
- * initialized. This will avoid driving the lines unintentionally.
- */
-GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT)
-GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT)
-GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
-GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
-GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH)
-GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH)
-
-/* Analog pins */
-GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-
-/* Other input pins */
-GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
-GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
-GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-
-/* Other output pins */
-GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT)
-GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT)
-GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH)
-GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW)
-GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
-GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
-GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
-
-IOEX(LED_BLUE, EXPIN(0, 1, 4), GPIO_OUT_HIGH) /* LED BLUE */
-IOEX(LED_GREEN, EXPIN(0, 1, 3), GPIO_OUT_HIGH) /* LED GREEN */
-IOEX(LED_ORANGE, EXPIN(0, 1, 2), GPIO_OUT_HIGH) /* LED ORANGE */
-
-GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW)
-
-/*
- * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
- * gpio expander framework has landed.
- */
-UNIMPLEMENTED(EN_PP5000_USBC)
-UNIMPLEMENTED(PMIC_FORCE_RESET_ODL)
-UNIMPLEMENTED(EN_USBC_CHARGE_L)
-
-/* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
-/* I2C MASTER: PB8/9 */
-ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH )
-/* I2C MASTER: PA11/12 */
-ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH )
-
-
-/* SPI1 */
-/* SPI SLAVE: PB3/4/5 */
-ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0)
-/* SPI SLAVE CS: PA15 */
-ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0)
-
-/* SPI2 */
-/* Shared between slave for emmc and master for bmi160 */
-/* They're mutually exclusive with gpio_config_module. */
-/* EMMC SPI SLAVE: PB13/14/15 */
-ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0)
-/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */
-ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0)
-ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0)
diff --git a/board/willow/led.c b/board/willow/led.c
deleted file mode 100644
index c579cb6165..0000000000
--- a/board/willow/led.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* 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.
- *
- * Power and battery LED control for Willow
- */
-#include "common.h"
-#include "ioexpander.h"
-#include "driver/ioexpander/it8801.h"
-#include "ec_commands.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED
-};
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- ioex_set_level(IOEX_LED_ORANGE, LED_ON_LVL);
- ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_BLUE:
- ioex_set_level(IOEX_LED_BLUE, LED_ON_LVL);
- ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_GREEN:
- ioex_set_level(IOEX_LED_GREEN, LED_ON_LVL);
- ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL);
- ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL);
- break;
- }
-}
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- }
-}
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color_battery(EC_LED_COLOR_GREEN);
- else
- led_set_color_battery(LED_OFF);
- }
- return EC_SUCCESS;
-}
diff --git a/board/willow/vif_override.xml b/board/willow/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/willow/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/woomax/analyzestack.yaml b/board/woomax/analyzestack.yaml
deleted file mode 100644
index 7ff5f39644..0000000000
--- a/board/woomax/analyzestack.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-remove:
-- panic_assert_fail
diff --git a/board/woomax/battery.c b/board/woomax/battery.c
deleted file mode 100644
index bd46c51cc7..0000000000
--- a/board/woomax/battery.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all Zork battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* AP18F4M */
- [BATTERY_C536] = {
- .fuel_gauge = {
- .manuf_name = "AS3GXAE3jB",
- .ship_mode = {
- .reg_addr = 0x00,
- .reg_data = { 0x0010, 0x0010 },
- },
- .fet = {
- .reg_addr = 0x99,
- .reg_mask = 0x000c,
- .disconnect_val = 0x000c,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11880,
- .voltage_min = 9000,
- .precharge_current = 256,
- .start_charging_min_c = 0,
- .start_charging_max_c = 45,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C536;
diff --git a/board/woomax/board.c b/board/woomax/board.c
deleted file mode 100644
index 7770804402..0000000000
--- a/board/woomax/board.c
+++ /dev/null
@@ -1,858 +0,0 @@
-/* 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.
- */
-
-/* Trembyle board configuration */
-
-#include "adc.h"
-#include "button.h"
-#include "cbi_ec_fw_config.h"
-#include "cbi_ssfc.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm426xx.h"
-#include "driver/accel_kionix.h"
-#include "driver/accel_kx022.h"
-#include "driver/retimer/pi3dpx1207.h"
-#include "driver/retimer/pi3hdx1204.h"
-#include "driver/retimer/ps8802.h"
-#include "driver/retimer/ps8811.h"
-#include "driver/retimer/ps8818.h"
-#include "driver/temp_sensor/sb_tsi.h"
-#include "driver/usb_mux/amd_fp5.h"
-#include "extpower.h"
-#include "fan.h"
-#include "fan_chip.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "power.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_charge.h"
-#include "usb_mux.h"
-
-#include "gpio_list.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-/* Motion sensors */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm426xx_data;
-
-/* Rotation matrix for the lid accelerometer */
-static const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(-1), 0, 0 },
- { 0, FLOAT_TO_FP(-1), 0 },
- { 0, 0, FLOAT_TO_FP(1) },
-};
-
-static const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(-1)},
-};
-
-static const mat33_fp_t base_standard_ref_icm = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(-1), 0},
- { 0, 0, FLOAT_TO_FP(-1)},
-};
-
-/* TODO(gcc >= 5.0) Remove the casts to const pointer at rot_standard_ref */
-struct motion_sensor_t icm426xx_base_accel = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs. */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_ACCEL_MIN_FREQ,
- .max_frequency = ICM426XX_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm426xx_base_gyro = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM426XX,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &icm426xx_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_icm426xx_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref_icm,
- .min_frequency = ICM426XX_GYRO_MIN_FREQ,
- .max_frequency = ICM426XX_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100,
- },
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &bmi160_drv,
- .mutex = &g_base_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-
-unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void setup_base_gyro_config(void)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_BASE_GYRO_ICM426XX) {
- motion_sensors[BASE_ACCEL] = icm426xx_base_accel;
- motion_sensors[BASE_GYRO] = icm426xx_base_gyro;
- ccprints("BASE GYRO is ICM426XX");
- } else
- ccprints("BASE GYRO is BMI160");
-}
-
-void motion_interrupt(enum gpio_signal signal)
-{
- if (get_cbi_ssfc_base_sensor() == SSFC_BASE_GYRO_ICM426XX)
- icm426xx_interrupt(signal);
- else
- bmi160_interrupt(signal);
-}
-
-const struct power_signal_info power_signal_list[] = {
- [X86_SLP_S3_N] = {
- .gpio = GPIO_PCH_SLP_S3_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S3_DEASSERTED",
- },
- [X86_SLP_S5_N] = {
- .gpio = GPIO_PCH_SLP_S5_L,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "SLP_S5_DEASSERTED",
- },
- [X86_S0_PGOOD] = {
- .gpio = GPIO_S0_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S0_PGOOD",
- },
- [X86_S5_PGOOD] = {
- .gpio = GPIO_S5_PGOOD,
- .flags = POWER_SIGNAL_ACTIVE_HIGH,
- .name = "S5_PGOOD",
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_KBLIGHT] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP,
- .freq = 100,
- },
- [PWM_CH_FAN] = {
- .channel = 2,
- .flags = PWM_CONFIG_OPEN_DRAIN,
- .freq = 25000,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* MFT channels. These are logically separate from pwm_channels. */
-const struct mft_t mft_channels[] = {
- [MFT_CH_0] = {
- .module = NPCX_MFT_MODULE_1,
- .clk_src = TCKC_LFCLK,
- .pwm_id = PWM_CH_FAN,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
-
-const int usb_port_enable[USBA_PORT_COUNT] = {
- IOEX_EN_USB_A0_5V,
-};
-
-const struct pi3hdx1204_tuning pi3hdx1204_tuning = {
- .eq_ch0_ch1_offset = PI3HDX1204_EQ_DB710,
- .eq_ch2_ch3_offset = PI3HDX1204_EQ_DB710,
- .vod_offset = PI3HDX1204_VOD_130_ALL_CHANNELS,
- .de_offset = PI3HDX1204_DE_DB_MINUS5,
-};
-
-/*****************************************************************************
- * Board suspend / resume
- */
-#define PS8811_ACCESS_RETRIES 2
-
-static void board_chipset_resume(void)
-{
- int rv;
- int retry;
- int hpd = gpio_get_level(GPIO_DP1_HPD_EC_IN);
-
- ioex_set_level(IOEX_USB_A0_RETIMER_EN, 1);
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 1);
-
- /* USB-A0 can run with default settings */
- for (retry = 0; retry < PS8811_ACCESS_RETRIES; ++retry) {
- int val;
-
- rv = i2c_read8(I2C_PORT_USBA0,
- PS8811_I2C_ADDR_FLAGS3 + PS8811_REG_PAGE1,
- PS8811_REG1_USB_BEQ_LEVEL, &val);
- if (!rv)
- break;
- }
- if (rv) {
- ioex_set_level(IOEX_USB_A0_RETIMER_EN, 0);
- CPRINTSUSB("A0: PS8811 not detected");
- }
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 1);
- msleep(PI3HDX1204_POWER_ON_DELAY_MS);
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- hpd);
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-static void board_chipset_suspend(void)
-{
- ioex_set_level(IOEX_USB_A0_RETIMER_EN, 0);
-
- if (ec_config_has_hdmi_retimer_pi3hdx1204()) {
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- 0);
- ioex_set_level(IOEX_HDMI_POWER_EN_DB, 0);
- }
-
- ioex_set_level(IOEX_HDMI_DATA_EN_DB, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/*****************************************************************************
- * USB-C MUX/Retimer dynamic configuration
- */
-static int woomax_ps8818_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- /* USB specific config */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* Boost the USB gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_18DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_18DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX1EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_APTX2EQ_5G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
- }
-
- /* DP specific config */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /* Boost the DP gain */
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_DPEQ_LEVEL,
- PS8818_DPEQ_LEVEL_UP_MASK,
- PS8818_DPEQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Enable IN_HPD on the DB */
- gpio_or_ioex_set_level(board_usbc1_retimer_inhpd, 1);
- } else {
- gpio_or_ioex_set_level(board_usbc1_retimer_inhpd, 0);
- }
-
- if (!(mux_state & USB_PD_MUX_POLARITY_INVERTED)) {
- rv = ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_CRX1EQ_10G_LEVEL,
- PS8818_EQ_LEVEL_UP_MASK,
- PS8818_EQ_LEVEL_UP_19DB);
- rv |= ps8818_i2c_write(me, PS8818_REG_PAGE1,
- PS8818_REG1_APRX1_DE_LEVEL, 0x02);
- }
-
- /* set the RX input termination */
- rv |= ps8818_i2c_field_update8(me,
- PS8818_REG_PAGE1,
- PS8818_REG1_RX_PHY,
- PS8818_RX_INPUT_TERM_MASK,
- PS8818_RX_INPUT_TERM_85_OHM);
- /* set register 0x40 ICP1 for 1G PD loop */
- rv |= ps8818_i2c_write(me, PS8818_REG_PAGE1, 0x40, 0x84);
-
- return rv;
-}
-
-static int woomax_ps8802_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
-
- /* Make sure the PS8802 is awake */
- rv = ps8802_i2c_wake(me);
- if (rv)
- return rv;
-
- /* USB specific config */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* Boost the USB gain */
- rv = ps8802_i2c_field_update16(me,
- PS8802_REG_PAGE2,
- PS8802_REG2_USB_SSEQ_LEVEL,
- PS8802_USBEQ_LEVEL_UP_MASK,
- PS8802_USBEQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
- }
-
- /* DP specific config */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- /*Boost the DP gain */
- rv = ps8802_i2c_field_update16(me,
- PS8802_REG_PAGE2,
- PS8802_REG2_DPEQ_LEVEL,
- PS8802_DPEQ_LEVEL_UP_MASK,
- PS8802_DPEQ_LEVEL_UP_19DB);
- if (rv)
- return rv;
-
- /* Enable IN_HPD on the DB */
- gpio_or_ioex_set_level(board_usbc1_retimer_inhpd, 1);
- } else {
- /* Disable IN_HPD on the DB */
- gpio_or_ioex_set_level(board_usbc1_retimer_inhpd, 0);
- }
-
- /* Set extra swing level tuning at 800mV/P0 */
- rv = ps8802_i2c_field_update8(me,
- PS8802_REG_PAGE1,
- PS8802_800MV_LEVEL_TUNING,
- PS8802_EXTRA_SWING_LEVEL_P0_MASK,
- PS8802_EXTRA_SWING_LEVEL_P0_UP_1);
-
- return rv;
-}
-
-const struct usb_mux usbc1_woomax_ps8818 = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = PS8818_I2C_ADDR_FLAGS,
- .driver = &ps8818_usb_retimer_driver,
- .board_set = &woomax_ps8818_mux_set,
-};
-
-static void setup_mux(void)
-{
- if (ec_config_has_usbc1_retimer_ps8802()) {
- ccprints("C1 PS8802 detected");
-
- /*
- * Main MUX is PS8802, secondary MUX is modified FP5
- *
- * Replace usb_muxes[USBC_PORT_C1] with the PS8802
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_ps8802,
- sizeof(struct usb_mux));
-
- /* Set the AMD FP5 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_amd_fp5_usb_mux;
- usb_muxes[USBC_PORT_C1].board_set = &woomax_ps8802_mux_set;
-
- /* Don't have the AMD FP5 flip */
- usbc1_amd_fp5_usb_mux.flags = USB_MUX_FLAG_SET_WITHOUT_FLIP;
-
- } else if (ec_config_has_usbc1_retimer_ps8818()) {
- ccprints("C1 PS8818 detected");
-
- /*
- * Main MUX is FP5, secondary MUX is PS8818
- *
- * Replace usb_muxes[USBC_PORT_C1] with the AMD FP5
- * table entry.
- */
- memcpy(&usb_muxes[USBC_PORT_C1],
- &usbc1_amd_fp5_usb_mux,
- sizeof(struct usb_mux));
-
- /* Set the PS8818 as the secondary MUX */
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_woomax_ps8818;
- }
-}
-
-enum pi3dpx1207_usb_conf {
- USB_DP = 0,
- USB_DP_INV,
- USB,
- USB_INV,
- DP,
- DP_INV
-};
-
-static uint8_t pi3dpx1207_picasso_eq[] = {
- /*usb_dp*/
- 0x13, 0x11, 0x20, 0x62, 0x06, 0x5B, 0x5B,
- 0x07, 0x03, 0x40, 0xFC, 0x42, 0x71,
- /*usb_dp_inv */
- 0x13, 0x11, 0x20, 0x72, 0x06, 0x03, 0x07,
- 0x5B, 0x5B, 0x23, 0xFC, 0x42, 0x71,
- /*usb*/
- 0x13, 0x11, 0x20, 0x42, 0x00, 0x03, 0x07,
- 0x07, 0x03, 0x00, 0x42, 0x42, 0x71,
- /*usb_inv*/
- 0x13, 0x11, 0x20, 0x52, 0x00, 0x03, 0x07,
- 0x07, 0x03, 0x02, 0x42, 0x42, 0x71,
- /*dp*/
- 0x13, 0x11, 0x20, 0x22, 0x06, 0x5B, 0x5B,
- 0x5B, 0x5B, 0x60, 0xFC, 0xFC, 0x71,
- /*dp_inv*/
- 0x13, 0x11, 0x20, 0x32, 0x06, 0x5B, 0x5B,
- 0x5B, 0x5B, 0x63, 0xFC, 0xFC, 0x71,
-};
-static uint8_t pi3dpx1207_dali_eq[] = {
- /*usb_dp*/
- 0x13, 0x11, 0x20, 0x62, 0x06, 0x5B, 0x5B,
- 0x07, 0x07, 0x40, 0xFC, 0x42, 0x71,
- /*usb_dp_inv*/
- 0x13, 0x11, 0x20, 0x72, 0x06, 0x07, 0x07,
- 0x5B, 0x5B, 0x23, 0xFC, 0x42, 0x71,
- /*usb*/
- 0x13, 0x11, 0x20, 0x42, 0x00, 0x07, 0x07,
- 0x07, 0x07, 0x00, 0x42, 0x42, 0x71,
- /*usb_inv*/
- 0x13, 0x11, 0x20, 0x52, 0x00, 0x07, 0x07,
- 0x07, 0x07, 0x02, 0x42, 0x42, 0x71,
- /*dp*/
- 0x13, 0x11, 0x20, 0x22, 0x06, 0x5B, 0x5B,
- 0x5B, 0x5B, 0x60, 0xFC, 0xFC, 0x71,
- /*dp_inv*/
- 0x13, 0x11, 0x20, 0x32, 0x06, 0x5B, 0x5B,
- 0x5B, 0x5B, 0x63, 0xFC, 0xFC, 0x71,
-};
-
-static int board_pi3dpx1207_mux_set(const struct usb_mux *me,
- mux_state_t mux_state)
-{
- int rv = EC_SUCCESS;
- enum pi3dpx1207_usb_conf usb_mode = 0;
-
- /* USB */
- if (mux_state & USB_PD_MUX_USB_ENABLED) {
- /* USB with DP */
- if (mux_state & USB_PD_MUX_DP_ENABLED) {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_DP_INV
- : USB_DP;
- }
- /* USB without DP */
- else {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? USB_INV
- : USB;
- }
- }
- /* DP without USB */
- else if (mux_state & USB_PD_MUX_DP_ENABLED) {
- usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
- ? DP_INV
- : DP;
- }
- /* Nothing enabled */
- else
- return EC_SUCCESS;
-
- /* Write the retimer config byte */
- if (ec_config_has_usbc1_retimer_ps8802())
- rv = i2c_xfer(me->i2c_port, me->i2c_addr_flags,
- &pi3dpx1207_dali_eq[usb_mode*13], 13, NULL, 0);
- else
- rv = i2c_xfer(me->i2c_port, me->i2c_addr_flags,
- &pi3dpx1207_picasso_eq[usb_mode*13], 13, NULL, 0);
-
- return rv;
-}
-
-const struct pi3dpx1207_usb_control pi3dpx1207_controls[] = {
- [USBC_PORT_C0] = {
- .enable_gpio = IOEX_USB_C0_DATA_EN,
- .dp_enable_gpio = GPIO_USB_C0_IN_HPD,
- },
- [USBC_PORT_C1] = {
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(pi3dpx1207_controls) == USBC_PORT_COUNT);
-
-const struct usb_mux usbc0_pi3dpx1207_usb_retimer = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = PI3DPX1207_I2C_ADDR_FLAGS,
- .driver = &pi3dpx1207_usb_retimer,
- .board_set = &board_pi3dpx1207_mux_set,
-};
-
-struct usb_mux usb_muxes[] = {
- [USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_AP_MUX,
- .i2c_addr_flags = AMD_FP5_MUX_I2C_ADDR_FLAGS,
- .driver = &amd_fp5_usb_mux_driver,
- .next_mux = &usbc0_pi3dpx1207_usb_retimer,
- },
- [USBC_PORT_C1] = {
- /* Filled in dynamically at startup */
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
-
-/*****************************************************************************
- * Use FW_CONFIG to set correct configuration.
- */
-
-int board_usbc1_retimer_inhpd = IOEX_USB_C1_HPD_IN_DB;
-static uint32_t board_ver;
-static void setup_fw_config(void)
-{
- cbi_get_board_version(&board_ver);
-
- if (board_ver >= 2)
- board_usbc1_retimer_inhpd = GPIO_USB_C1_HPD_IN_DB;
-
- /* Enable Gyro interrupts */
- gpio_enable_interrupt(GPIO_6AXIS_INT_L);
-
- /* Enable DP1_HPD_EC_IN interrupt */
- if (ec_config_has_hdmi_retimer_pi3hdx1204())
- gpio_enable_interrupt(GPIO_DP1_HPD_EC_IN);
-
- setup_base_gyro_config();
- setup_mux();
-}
-/* Use HOOK_PRIO_INIT_I2C + 2 to be after ioex_init(). */
-DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2);
-
-/*****************************************************************************
- * Fan
- */
-
-/* Physical fans. These are logically separate from pwm_channels. */
-const struct fan_conf fan_conf_0 = {
- .flags = FAN_USE_RPM_MODE,
- .ch = MFT_CH_0, /* Use MFT id to control fan */
- .pgood_gpio = -1,
- .enable_gpio = -1,
-};
-const struct fan_rpm fan_rpm_0 = {
- .rpm_min = 1100,
- .rpm_start = 1100,
- .rpm_max = 5120,
-};
-const struct fan_t fans[] = {
- [FAN_CH_0] = {
- .conf = &fan_conf_0,
- .rpm = &fan_rpm_0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(fans) == FAN_CH_COUNT);
-
-int board_get_temp(int idx, int *temp_k)
-{
- int mv;
- int temp_c;
- enum adc_channel channel;
-
- /* idx is the sensor index set in board temp_sensors[] */
- switch (idx) {
- case TEMP_SENSOR_CHARGER:
- channel = ADC_TEMP_SENSOR_CHARGER;
- break;
- case TEMP_SENSOR_SOC:
- /* thermistor is not powered in G3 */
- if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return EC_ERROR_NOT_POWERED;
-
- channel = ADC_TEMP_SENSOR_SOC;
- break;
- default:
- return EC_ERROR_INVAL;
- }
-
- mv = adc_read_channel(channel);
- if (mv < 0)
- return EC_ERROR_INVAL;
-
- temp_c = thermistor_linear_interpolate(mv, &thermistor_info);
- *temp_k = C_TO_K(temp_c);
- return EC_SUCCESS;
-}
-
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_CHARGER] = {
- .name = "CHARGER",
- .input_ch = NPCX_ADC_CH2,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
- [ADC_TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .input_ch = NPCX_ADC_CH3,
- .factor_mul = ADC_MAX_VOLT,
- .factor_div = ADC_READ_MAX + 1,
- .shift = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_CHARGER] = {
- .name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_CHARGER,
- },
- [TEMP_SENSOR_SOC] = {
- .name = "SOC",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = board_get_temp,
- .idx = TEMP_SENSOR_SOC,
- },
- [TEMP_SENSOR_CPU] = {
- .name = "CPU",
- .type = TEMP_SENSOR_TYPE_CPU,
- .read = sb_tsi_get_val,
- .idx = 0,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-const static struct ec_thermal_config thermal_thermistor = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(95),
- [EC_TEMP_THRESH_HALT] = C_TO_K(100),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(58),
-};
-
-const static struct ec_thermal_config thermal_cpu = {
- .temp_host = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(95),
- [EC_TEMP_THRESH_HALT] = C_TO_K(100),
- },
- .temp_host_release = {
- [EC_TEMP_THRESH_HIGH] = C_TO_K(90),
- },
- .temp_fan_off = C_TO_K(25),
- .temp_fan_max = C_TO_K(58),
-};
-
-struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT];
-
-static void setup_fans(void)
-{
- thermal_params[TEMP_SENSOR_CHARGER] = thermal_thermistor;
- thermal_params[TEMP_SENSOR_SOC] = thermal_thermistor;
- thermal_params[TEMP_SENSOR_CPU] = thermal_cpu;
-}
-DECLARE_HOOK(HOOK_INIT, setup_fans, HOOK_PRIO_DEFAULT);
-
-static const struct ec_response_keybd_config woomax_kb = {
- .num_top_row_keys = 10,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_VOL_MUTE, /* T8 */
- TK_VOL_DOWN, /* T9 */
- TK_VOL_UP, /* T10 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
-};
-
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
-{
- return &woomax_kb;
-}
-
-static void keyboard_init(void)
-{
- keyscan_config.actual_key_mask[1] = 0xfe;
- keyscan_config.actual_key_mask[11] = 0xfe;
- keyscan_config.actual_key_mask[12] = 0xff;
- keyscan_config.actual_key_mask[13] = 0xff;
- keyscan_config.actual_key_mask[14] = 0xff;
-}
-DECLARE_HOOK(HOOK_INIT, keyboard_init, HOOK_PRIO_INIT_I2C + 1);
-
-static void hdmi_hpd_handler(void)
-{
- int hpd = gpio_get_level(GPIO_DP1_HPD_EC_IN);
-
- pi3hdx1204_enable(I2C_PORT_TCPC1,
- PI3HDX1204_I2C_ADDR_FLAGS,
- chipset_in_or_transitioning_to_state(CHIPSET_STATE_ON)
- && hpd);
-}
-DECLARE_DEFERRED(hdmi_hpd_handler);
-
-void hdmi_hpd_interrupt(enum gpio_signal signal)
-{
- /* Debounce 2 msec */
- hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC));
-}
-
-enum gpio_signal board_usbc_port_to_hpd_gpio(int port)
-{
- /* USB-C0 always uses USB_C0_HPD */
- if (port == 0)
- return GPIO_USB_C0_HPD;
- /*
- * USB-C1 OPT3 DB use IOEX_USB_C1_HPD_IN_DB for board version 1
- * USB-C1 OPT3 DB use GPIO_USB_C1_HPD_IN_DB for board version 2
- */
- else if (ec_config_has_mst_hub_rtd2141b())
- return (board_ver >= 2)
- ? GPIO_USB_C1_HPD_IN_DB
- : IOEX_USB_C1_HPD_IN_DB;
-
- /* USB-C1 OPT1 DB use DP2_HPD. */
- return GPIO_DP2_HPD;
-}
diff --git a/board/woomax/board.h b/board/woomax/board.h
deleted file mode 100644
index d81c82f181..0000000000
--- a/board/woomax/board.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/* 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.
- */
-
-/* Trembyle board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#define VARIANT_ZORK_TREMBYLE
-
-#include <stdbool.h>
-#include "baseboard.h"
-
-#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
-#define CONFIG_USBC_RETIMER_PI3DPX1207
-
-/* Motion sensing drivers */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCELGYRO_ICM426XX
-#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCEL_KX022
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-#define CONFIG_TABLET_MODE
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-#define CONFIG_GMR_TABLET_MODE
-
-/* Keyboard */
-#define CONFIG_KEYBOARD_VIVALDI
-#define CONFIG_KEYBOARD_REFRESH_ROW3
-#define CONFIG_KEYBOARD_KEYPAD
-
-/*
- * Woomax's battery takes several seconds to come back out of its disconnect
- * state (~4 seconds on the unit I have, so give it a little more for margin).
- */
-#undef CONFIG_POWER_BUTTON_INIT_TIMEOUT
-#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 5
-
-/* Thermal */
-#define CONFIG_CUSTOM_FAN_CONTROL
-
-/* GPIO mapping from board specific name to EC common name. */
-#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
-#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL
-#define GPIO_AC_PRESENT GPIO_ACOK_OD
-#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL
-#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL
-#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE
-#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW
-#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV
-#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L
-#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L
-#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L
-#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L
-#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK
-#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L
-#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL
-#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD
-#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD
-#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L
-#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL
-#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL
-#define GPIO_WP_L GPIO_EC_WP_L
-#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE
-#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L
-
-#ifndef __ASSEMBLER__
-
-enum adc_channel {
- ADC_TEMP_SENSOR_CHARGER,
- ADC_TEMP_SENSOR_SOC,
- ADC_CH_COUNT
-};
-
-enum battery_type {
- BATTERY_C536,
- BATTERY_TYPE_COUNT,
-};
-
-enum mft_channel {
- MFT_CH_0 = 0,
- /* Number of MFT channels */
- MFT_CH_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT = 0,
- PWM_CH_FAN,
- PWM_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_CHARGER = 0,
- TEMP_SENSOR_SOC,
- TEMP_SENSOR_CPU,
- TEMP_SENSOR_COUNT
-};
-
-enum usba_port {
- USBA_PORT_A0 = 0,
- USBA_PORT_COUNT
-};
-
-/*****************************************************************************
- * CBI EC FW Configuration
- */
-
-/**
- * WOOMAX_MB_USBAC
- * USB-A0 Speed: 10 Gbps
- * Retimer: PS8811
- * USB-C0 Speed: 10 Gbps
- * Retimer: PI3DPX1207
- * TCPC: NCT3807
- * PPC: AOZ1380
- * IOEX: TCPC
- */
-enum ec_cfg_usb_mb_type {
- WOOMAX_MB_USBAC = 0,
-};
-
-/**
- * WOOMAX_DB_T_OPT1_USBAC_HMDI
- * USB-C1 Speed: 10 Gbps
- * Retimer: PS8818
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: PI3HDX1204
- * MST Hub: none
- *
- * WOOMAX_DB_T_OPT3_USBAC_HDMI_MSTHUB
- * USB-C1 Speed: 10 Gbps
- * Retimer: PS8802
- * TCPC: NCT3807
- * PPC: NX20P3483
- * IOEX: TCPC
- * HDMI Exists: yes
- * Retimer: none
- * MST Hub: RTD2141B
- */
-enum ec_cfg_usb_db_type {
- WOOMAX_DB_T_OPT1_USBAC_HMDI = 0,
- WOOMAX_DB_T_OPT3_USBAC_HDMI_MSTHUB = 1,
-};
-
-#include "cbi_ec_fw_config.h"
-
-#define HAS_USBC1_RETIMER_PS8802 \
- (BIT(WOOMAX_DB_T_OPT3_USBAC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_usbc1_retimer_ps8802(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8802);
-}
-
-#define HAS_USBC1_RETIMER_PS8818 \
- (BIT(WOOMAX_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_usbc1_retimer_ps8818(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_USBC1_RETIMER_PS8818);
-}
-
-#define HAS_HDMI_RETIMER_PI3HDX1204 \
- (BIT(WOOMAX_DB_T_OPT1_USBAC_HMDI))
-
-static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_HDMI_RETIMER_PI3HDX1204);
-}
-
-#define HAS_MST_HUB_RTD2141B \
- (BIT(WOOMAX_DB_T_OPT3_USBAC_HDMI_MSTHUB))
-
-static inline bool ec_config_has_mst_hub_rtd2141b(void)
-{
- return !!(BIT(ec_config_get_usb_db()) &
- HAS_MST_HUB_RTD2141B);
-}
-
-/*
- * USB-C0 always uses USB_C0_HPD (= DP3_HPD).
- * USB-C1 OPT1 DB uses DP2_HPD.
- * USB-C1 OPT3 DB uses DP1_HPD via RTD2141B MST hub to drive AP
- * HPD, EC drives MST hub HPD input from USB-PD messages.
- */
-
-enum gpio_signal board_usbc_port_to_hpd_gpio(int port);
-#define PORT_TO_HPD(port) board_usbc_port_to_hpd_gpio(port)
-
-extern const struct usb_mux usbc0_pi3dpx1207_usb_retimer;
-extern const struct usb_mux usbc1_ps8802;
-extern const struct usb_mux usbc1_ps8818;
-extern struct usb_mux usbc1_amd_fp5_usb_mux;
-void hdmi_hpd_interrupt(enum gpio_signal signal);
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/woomax/build.mk b/board/woomax/build.mk
deleted file mode 100644
index a674573a4d..0000000000
--- a/board/woomax/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m7wc
-BASEBOARD:=zork
-
-board-y=board.o led.o thermal.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/woomax/ec.tasklist b/board/woomax/ec.tasklist
deleted file mode 100644
index d9c1606eb2..0000000000
--- a/board/woomax/ec.tasklist
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE)
diff --git a/board/woomax/gpio.inc b/board/woomax/gpio.inc
deleted file mode 100644
index ade15d3d4a..0000000000
--- a/board/woomax/gpio.inc
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- mode:c -*-
- *
- * 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(3, 4), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C0_PPC_FAULT_ODL, PIN(6, 3), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C1_PPC_INT_ODL, PIN(D, 4), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_C0_BC12_INT_ODL, PIN(9, 3), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(USB_C1_BC12_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_PULL_UP, bc12_interrupt)
-GPIO_INT(SLP_S3_L, PIN(7, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SLP_S5_L, PIN(E, 0), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(S0_PWROK_OD, PIN(5, 6), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWROK_OD, PIN(3, 7), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
-GPIO_INT(EC_WP_L, PIN(5, 0), GPIO_INT_BOTH, switch_interrupt)
-GPIO_INT(VOLDN_BTN_ODL, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(VOLUP_BTN_ODL, PIN(9, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
-GPIO_INT(6AXIS_INT_L, PIN(A, 0), GPIO_INT_FALLING | GPIO_PULL_UP, motion_interrupt)
-GPIO_INT(TABLET_MODE_L, PIN(4, 4), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-GPIO_INT(DP1_HPD_EC_IN, PIN(7, 5), GPIO_INT_BOTH, hdmi_hpd_interrupt)
-
-/* GPIO_INT_BOTH is required for PSL wake from hibernate, but we don't need an interrupt handler. */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH)
-
-GPIO(3AXIS_INT_L, PIN(9, 6), GPIO_INPUT | GPIO_PULL_DOWN) /* 3 Axis Accel */
-GPIO(CCD_MODE_ODL, PIN(C, 6), GPIO_INPUT) /* Case Closed Debug Mode */
-GPIO(PROCHOT_ODL, PIN(D, 5), GPIO_ODR_HIGH) /* PROCHOT to SOC */
-GPIO(EC_BATT_PRES_ODL, PIN(4, 1), GPIO_INPUT) /* Battery Present */
-GPIO(EC_AP_INT_ODL, PIN(A, 3), GPIO_ODR_HIGH) /* Sensor MKBP event to SOC */
-GPIO(EN_PWR_A, PIN(B, 7), GPIO_OUT_LOW) /* Enable Power */
-GPIO(EC_EDP_BL_DISABLE, PIN(A, 2), GPIO_OUT_HIGH) /* Enable Backlight */
-GPIO(EC_ENTERING_RW, PIN(E, 5), GPIO_OUT_LOW) /* EC Entering RW */
-GPIO(EC_FCH_PWR_BTN_L, PIN(6, 2), GPIO_OUT_HIGH) /* Power Button to SOC */
-GPIO(EC_FCH_RSMRST_L, PIN(A, 1), GPIO_OUT_LOW) /* RSMRST# to SOC */
-GPIO(EC_FCH_PWROK, PIN(D, 3), GPIO_OUT_LOW) /* Power OK to SOC */
-GPIO(EC_FCH_WAKE_L, PIN(0, 3), GPIO_OUT_HIGH) /* Wake SOC */
-GPIO(EC_FCH_SCI_ODL, PIN(7, 6), GPIO_ODR_HIGH) /* SCI to SOC */
-GPIO(EC_SYS_RST_L, PIN(C, 7), GPIO_ODR_HIGH) /* Cold Reset to SOC */
-GPIO(USB_C0_TCPC_RST_L, PIN(E, 1), GPIO_OUT_HIGH) /* C0 TCPC Reset */
-GPIO(USB_C1_TCPC_RST_L, PIN(F, 0), GPIO_OUT_HIGH) /* C1 TCPC Reset */
-GPIO(USB_C0_HPD, PIN(F, 5), GPIO_OUT_LOW) /* C0 DP Hotplug Detect */
-GPIO(USB_C0_IN_HPD, PIN(7, 3), GPIO_OUT_LOW) /* C0 IN Hotplug Detect */
-GPIO(EC_DP1_HPD, PIN(F, 4), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(DP2_HPD, PIN(C, 1), GPIO_OUT_LOW) /* C1 DP Hotplug Detect */
-GPIO(EC_H1_PACKET_MODE, PIN(8, 6), GPIO_OUT_LOW) /* H1 Packet Mode */
-GPIO(EN_PWR_TOUCHPAD_PS2, PIN(C, 2), GPIO_INPUT) /* Touchpad Power */
-GPIO(USB_C1_HPD_IN_DB, PIN(B, 1), GPIO_OUT_LOW) /* C1 HPD for board version 2 */
-
-UNIMPLEMENTED(NO_HPD)
-UNIMPLEMENTED(PCH_SMI_L)
-
-GPIO(LED_FULL_L, PIN(6, 0), GPIO_OUT_HIGH)
-GPIO(LED_CHRG_L, PIN(C, 0), GPIO_OUT_HIGH)
-GPIO(LED_3_L, PIN(C, 3), GPIO_OUT_HIGH) /* Power LED */
-
-IOEX_INT(USB_C0_SBU_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-IOEX_INT(USB_C1_SBU_FAULT_DB_ODL, EXPIN(USBC_PORT_C1, 1, 2), GPIO_INT_FALLING, sbu_fault_interrupt)
-
-IOEX(USB_A0_RETIMER_EN, EXPIN(USBC_PORT_C0, 0, 0), GPIO_OUT_LOW) /* A0 Retimer Enable */
-IOEX(USB_A0_RETIMER_RST, EXPIN(USBC_PORT_C0, 0, 1), GPIO_OUT_LOW) /* A0 Retimer Reset */
-IOEX(USB_C0_FAULT_ODL, EXPIN(USBC_PORT_C0, 0, 3), GPIO_ODR_HIGH) /* C0 Fault to SOC */
-IOEX(USB_C0_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C0, 0, 4), GPIO_OUT_LOW) /* C0 FastSwitch Control */
-IOEX(USB_C1_FAULT_ODL, EXPIN(USBC_PORT_C0, 1, 0), GPIO_ODR_HIGH) /* C1 Fault to SOC */
-IOEX(USB_C0_PPC_ILIM_3A_EN, EXPIN(USBC_PORT_C0, 1, 1), GPIO_OUT_LOW) /* C0 3A Current Limit Enable */
-IOEX(KB_BL_EN, EXPIN(USBC_PORT_C0, 1, 3), GPIO_OUT_LOW) /* KB Backlight Enable */
-IOEX(USB_C0_DATA_EN, EXPIN(USBC_PORT_C0, 1, 4), GPIO_OUT_LOW) /* C0 Data Enable */
-IOEX(EN_USB_A0_5V, EXPIN(USBC_PORT_C0, 1, 5), GPIO_OUT_LOW) /* A0 5V Source Enable */
-IOEX(USB_A0_CHARGE_EN_L, EXPIN(USBC_PORT_C0, 1, 6), GPIO_OUT_HIGH) /* A0 5V High Current Enable */
-
-IOEX(USB_C1_HPD_IN_DB, EXPIN(USBC_PORT_C1, 0, 2), GPIO_OUT_LOW) /* C1 HPD for board version 1*/
-IOEX(HDMI_POWER_EN_DB, EXPIN(USBC_PORT_C1, 0, 3), GPIO_OUT_LOW) /* HDMI retimer power enable */
-IOEX(USB_C1_TCPC_FASTSW_CTL_EN, EXPIN(USBC_PORT_C1, 0, 4), GPIO_OUT_LOW) /* C1 FastSwitch Control */
-IOEX(USB_C1_MUX_RST_DB, EXPIN(USBC_PORT_C1, 1, 1), GPIO_OUT_LOW) /* C1 Mux Reset */
-IOEX(USB_C1_PPC_EN_L, EXPIN(USBC_PORT_C1, 1, 3), GPIO_OUT_LOW) /* C1 PPC Enable */
-IOEX(HDMI_DATA_EN_DB, EXPIN(USBC_PORT_C1, 1, 4), GPIO_OUT_LOW) /* HDMI Retimer Enable */
-IOEX(USB_C1_DATA_EN, EXPIN(USBC_PORT_C1, 1, 5), GPIO_OUT_HIGH) /* C1 Retimer Enable */
-
-/*
- * The NPCX LPC driver configures and controls SCI, so PCH_SCI_ODL [PIN(7, 6)]
- * is not defined here as GPIO.
- */
-
-/* I2C pins - these will be reconfigured for alternate function below */
-GPIO(EC_I2C_USB_A0_C0_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_USB_A0_C0_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_A1_C1_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_BATT_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SCL, PIN(D, 1), GPIO_INPUT)
-GPIO(EC_I2C_USBC_AP_MUX_SDA, PIN(D, 0), GPIO_INPUT)
-GPIO(FCH_SIC_POWER_SCL, PIN(F, 3), GPIO_INPUT)
-GPIO(FCH_SID_POWER_SDA, PIN(F, 2), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_CBI_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(FCH_I2C_AUDIO_SCL, PIN(E, 4), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_AUDIO_SDA, PIN(E, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SCL, PIN(B, 3), GPIO_INPUT)
-GPIO(FCH_I2C_HDMI_HUB_3V3_SDA, PIN(B, 2), GPIO_INPUT)
-
-ALTERNATE(PIN_MASK(6, BIT(4) | BIT(5)), 0, MODULE_UART, 0) /* Cr50 requires no pullups. */
-
-ALTERNATE(PIN_MASK(B, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, BIT(0) | BIT(1)), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */
-ALTERNATE(PIN_MASK(E, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C6 */
-ALTERNATE(PIN_MASK(B, BIT(2) | BIT(3)), 0, MODULE_I2C, 0) /* I2C7 */
-
-ALTERNATE(PIN_MASK(4, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2, ADC3 Temp Sensors */
-
-ALTERNATE(PIN_MASK(C, BIT(4)), 0, MODULE_PWM, 0) /* PWM2 - EC_FAN_PWM */
-ALTERNATE(PIN_MASK(8, BIT(0)), 0, MODULE_PWM, 0) /* PWM3 KB Backlight */
-ALTERNATE(PIN_MASK(4, BIT(0)), 0, MODULE_PWM, 0) /* TA1 - EC_FAN_SPEED */
-
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-GPIO(EC_KSO_02_INV, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* AC_PRESENT, POWER_BUTTON_L, EC_RST_ODL */
-ALTERNATE(PIN_MASK(D, BIT(2)), 0, MODULE_PMU, 0) /* LID_OPEN */
-
-ALTERNATE(PIN_MASK(A, 0xA0), 1, MODULE_WOV, 0) /* I2S_SYNC/I2S_SCLK GPIOA5/A7 */
-ALTERNATE(PIN_MASK(B, 0x01), 1, MODULE_WOV, 0) /* I2S_SDAT GPIOB0 */
-ALTERNATE(PIN_MASK(9, 0x90), 1, MODULE_WOV, 0) /* DMIC_CLK/DMIC_IN GPIO94/97 */
diff --git a/board/woomax/led.c b/board/woomax/led.c
deleted file mode 100644
index e1091c92f3..0000000000
--- a/board/woomax/led.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* 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.
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "chipset.h"
-
-#define LED_ON_LVL 0
-#define LED_OFF_LVL 1
-
-__override const int led_charge_lvl_1 = 5;
-
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 1 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
-};
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} },
- [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} },
-};
-
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_ON_LVL);
- break;
- case EC_LED_COLOR_WHITE:
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_FULL_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_LED_FULL_L, LED_OFF_LVL);
- gpio_set_level(GPIO_LED_CHRG_L, LED_OFF_LVL);
- break;
- }
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_set_level(GPIO_LED_3_L, LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_set_level(GPIO_LED_3_L, LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else
- led_set_color_battery(LED_OFF);
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
-
diff --git a/board/woomax/thermal.c b/board/woomax/thermal.c
deleted file mode 100644
index 2517a361e6..0000000000
--- a/board/woomax/thermal.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/* 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.
- */
-
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "extpower.h"
-#include "fan.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "temp_sensor.h"
-#include "thermal.h"
-#include "util.h"
-
-/* Console output macros */
-#define CPUTS(outstr) cputs(CC_THERMAL, outstr)
-#define CPRINTS(format, args...) cprints(CC_THERMAL, format, ## args)
-
-struct fan_step {
- /*
- * Sensor 1~3 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t on[TEMP_SENSOR_COUNT];
-
- /*
- * Sensor 1~3 trigger point, set -1 if we're not using this
- * sensor to determine fan speed.
- */
- int8_t off[TEMP_SENSOR_COUNT];
-
- /* Fan rpm */
- uint16_t rpm;
-};
-
-static const struct fan_step fan_step_table[] = {
- {
- /* level 0 */
- .on = {-1, -1, 36},
- .off = {-1, -1, 99},
- .rpm = 0,
- },
- {
- /* level 1 */
- .on = {-1, -1, 40},
- .off = {-1, -1, 32},
- .rpm = 2244,
- },
- {
- /* level 2 */
- .on = {-1, -1, 45},
- .off = {-1, -1, 35},
- .rpm = 2580,
- },
- {
- /* level 3 */
- .on = {-1, -1, 50},
- .off = {-1, -1, 40},
- .rpm = 2824,
- },
- {
- /* level 4 */
- .on = {-1, -1, 55},
- .off = {-1, -1, 45},
- .rpm = 3120,
- },
- {
- /* level 5 */
- .on = {-1, -1, 60},
- .off = {-1, -1, 50},
- .rpm = 3321,
- },
- {
- /* level 6 */
- .on = {-1, -1, 70},
- .off = {-1, -1, 55},
- .rpm = 3780,
- },
- {
- /* level 7 */
- .on = {-1, -1, 80},
- .off = {-1, -1, 60},
- .rpm = 4330,
- },
- {
- /* level 8 */
- .on = {-1, -1, 99},
- .off = {-1, -1, 74},
- .rpm = 4915,
- },
-};
-
-#define NUM_FAN_LEVELS ARRAY_SIZE(fan_step_table)
-
-int fan_table_to_rpm(int fan, int *temp)
-{
- static int current_level;
- static int prev_tmp[TEMP_SENSOR_COUNT];
- int i;
-
- /*
- * Comopare the current and previous temperature, we have
- * the three path:
- * 1. decreasing path. (check the release point)
- * 2. increasing path. (check the trigger point)
- * 3. invariant path. (return the current RPM)
- */
- if (temp[TEMP_SENSOR_CPU] < prev_tmp[TEMP_SENSOR_CPU]) {
- if (temp[TEMP_SENSOR_CPU] <
- fan_step_table[current_level].off[TEMP_SENSOR_CPU])
- current_level = current_level - 1;
- } else if (temp[TEMP_SENSOR_CPU] > prev_tmp[TEMP_SENSOR_CPU]) {
- if (temp[TEMP_SENSOR_CPU] >
- fan_step_table[current_level].on[TEMP_SENSOR_CPU])
- current_level = current_level + 1;
- }
-
- if (current_level < 0)
- current_level = 0;
- else if (current_level > NUM_FAN_LEVELS)
- current_level = NUM_FAN_LEVELS;
-
- for (i = 0; i < TEMP_SENSOR_COUNT; i++)
- prev_tmp[i] = temp[i];
-
- return fan_step_table[current_level].rpm;
-}
-
-void board_override_fan_control(int fan, int *tmp)
-{
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND)) {
- fan_set_rpm_mode(FAN_CH(fan), 1);
- fan_set_rpm_target(FAN_CH(fan),
- fan_table_to_rpm(fan, tmp));
- }
-}
-
diff --git a/board/woomax/vif_override.xml b/board/woomax/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/woomax/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/wormdingler/base_detect.c b/board/wormdingler/base_detect.c
deleted file mode 100644
index 73c28e4bc9..0000000000
--- a/board/wormdingler/base_detect.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Wormdingler base detection code */
-
-#include "adc.h"
-#include "base_state.h"
-#include "board.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "timer.h"
-#include "util.h"
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args)
-
-/* Make sure POGO VBUS starts later then PP3300_HUB when power on */
-#define BASE_DETECT_EN_LATER_US (600 * MSEC)
-
-/* Base detection and debouncing */
-#define BASE_DETECT_EN_DEBOUNCE_US (350 * MSEC)
-#define BASE_DETECT_DIS_DEBOUNCE_US (20 * MSEC)
-
-/*
- * If the base status is unclear (i.e. not within expected ranges, read
- * the ADC value again every 500ms.
- */
-#define BASE_DETECT_RETRY_US (500 * MSEC)
-
-/*
- * Lid has 604K pull-up, base has 30.1K pull-down, so the
- * ADC value should be around 30.1/(604+30.1)*3300 = 156
- *
- * We add a significant margin on the maximum value, due to noise on the line,
- * especially when PWM is active. See b/64193554 for details.
- */
-#define BASE_DETECT_MIN_MV 120
-#define BASE_DETECT_MAX_MV 300
-
-/* Minimum ADC value to indicate base is disconnected for sure */
-#define BASE_DETECT_DISCONNECT_MIN_MV 1500
-
-/*
- * Base EC pulses detection pin for 500 us to signal out of band USB wake (that
- * can be used to wake system from deep S3).
- */
-#define BASE_DETECT_PULSE_MIN_US 400
-#define BASE_DETECT_PULSE_MAX_US 650
-
-static uint64_t base_detect_debounce_time;
-
-static void base_detect_deferred(void);
-DECLARE_DEFERRED(base_detect_deferred);
-
-enum base_status {
- BASE_UNKNOWN = 0,
- BASE_DISCONNECTED = 1,
- BASE_CONNECTED = 2,
-};
-
-static enum base_status current_base_status;
-
-/*
- * This function is called whenever there is a change in the base detect
- * status. Actions taken include:
- * 1. Change in power to base
- * 2. Indicate mode change to host.
- * 3. Indicate tablet mode to host. Current assumption is that if base is
- * disconnected then the system is in tablet mode, else if the base is
- * connected, then the system is not in tablet mode.
- */
-static void base_detect_change(enum base_status status)
-{
- int connected = (status == BASE_CONNECTED);
-
- if (current_base_status == status)
- return;
-
- gpio_set_level(GPIO_EN_BASE, connected);
- tablet_set_mode(!connected, TABLET_TRIGGER_BASE);
- base_set_state(connected);
- current_base_status = status;
-}
-
-/* Measure detection pin pulse duration (used to wake AP from deep S3). */
-static uint64_t pulse_start;
-static uint32_t pulse_width;
-
-static void print_base_detect_value(int v, int tmp_pulse_width)
-{
- CPRINTS("%s = %d (pulse %d)", adc_channels[ADC_BASE_DET].name,
- v, tmp_pulse_width);
-}
-
-static void base_detect_deferred(void)
-{
- uint64_t time_now = get_time().val;
- int v;
- uint32_t tmp_pulse_width = pulse_width;
-
- if (base_detect_debounce_time > time_now) {
- hook_call_deferred(&base_detect_deferred_data,
- base_detect_debounce_time - time_now);
- return;
- }
-
- v = adc_read_channel(ADC_BASE_DET);
- if (v == ADC_READ_ERROR)
- return;
-
- print_base_detect_value(v, tmp_pulse_width);
-
- if (v >= BASE_DETECT_MIN_MV && v <= BASE_DETECT_MAX_MV) {
- if (current_base_status != BASE_CONNECTED) {
- base_detect_change(BASE_CONNECTED);
- } else if (tmp_pulse_width >= BASE_DETECT_PULSE_MIN_US &&
- tmp_pulse_width <= BASE_DETECT_PULSE_MAX_US) {
- CPRINTS("Sending event to AP");
- host_set_single_event(EC_HOST_EVENT_KEY_PRESSED);
- }
- return;
- }
-
- if (v >= BASE_DETECT_DISCONNECT_MIN_MV) {
- base_detect_change(BASE_DISCONNECTED);
- return;
- }
-
- /* Unclear base status, schedule again in a while. */
- hook_call_deferred(&base_detect_deferred_data, BASE_DETECT_RETRY_US);
-}
-
-static inline int detect_pin_connected(enum gpio_signal det_pin)
-{
- return gpio_get_level(det_pin) == 0;
-}
-
-void base_detect_interrupt(enum gpio_signal signal)
-{
- uint64_t time_now = get_time().val;
- int debounce_us;
-
- if (detect_pin_connected(signal))
- debounce_us = BASE_DETECT_EN_DEBOUNCE_US;
- else
- debounce_us = BASE_DETECT_DIS_DEBOUNCE_US;
-
- if (base_detect_debounce_time <= time_now) {
- /*
- * Detect and measure detection pin pulse, when base is
- * connected. Only a single pulse is measured over a debounce
- * period. If no pulse, or multiple pulses are detected,
- * pulse_width is set to 0.
- */
- if (current_base_status == BASE_CONNECTED &&
- !detect_pin_connected(signal)) {
- pulse_start = time_now;
- } else {
- pulse_start = 0;
- }
- pulse_width = 0;
-
- hook_call_deferred(&base_detect_deferred_data, debounce_us);
- } else {
- if (current_base_status == BASE_CONNECTED &&
- detect_pin_connected(signal) && !pulse_width &&
- pulse_start) {
- /* First pulse within period. */
- pulse_width = time_now - pulse_start;
- } else {
- pulse_start = 0;
- pulse_width = 0;
- }
- }
-
- base_detect_debounce_time = time_now + debounce_us;
-}
-
-static void base_enable(void)
-{
- /* Enable base detection interrupt. */
- base_detect_debounce_time = get_time().val;
- hook_call_deferred(&base_detect_deferred_data,
- BASE_DETECT_EN_LATER_US);
- gpio_enable_interrupt(GPIO_BASE_DET_L);
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, base_enable, HOOK_PRIO_DEFAULT);
-
-static void base_disable(void)
-{
- /*
- * Disable base detection interrupt and disable power to base.
- * Set the state UNKNOWN so the next startup will initialize a
- * correct state and notify AP.
- */
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_UNKNOWN);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, base_disable, HOOK_PRIO_DEFAULT);
-
-static void base_init(void)
-{
- /*
- * If we jumped to this image and chipset is already in S0, enable
- * base.
- */
- if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON))
- base_enable();
-}
-DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT+1);
-
-void base_force_state(enum ec_set_base_state_cmd state)
-{
- if (state == EC_SET_BASE_STATE_ATTACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_CONNECTED);
- CPRINTS("BD forced connected");
- } else if (state == EC_SET_BASE_STATE_DETACH) {
- gpio_disable_interrupt(GPIO_BASE_DET_L);
- base_detect_change(BASE_DISCONNECTED);
- CPRINTS("BD forced disconnected");
- } else {
- base_enable();
- CPRINTS("BD forced reset");
- }
-}
diff --git a/board/wormdingler/battery.c b/board/wormdingler/battery.c
deleted file mode 100644
index c76bb48031..0000000000
--- a/board/wormdingler/battery.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2021 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all wormdingler battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-
-const struct board_batt_params board_battery_info[] = {
- /* Sunwoda L21D2PG2 */
- [BATTERY_L21D2PG2] = {
- .fuel_gauge = {
- .manuf_name = "Sunwoda",
- .device_name = "L21D2PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8860, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 200, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 63,
- .discharging_min_c = -20,
- .discharging_max_c = 63,
- },
- },
- /* BYD L21B2PG2 */
- [BATTERY_L21B2PG2] = {
- .fuel_gauge = {
- .manuf_name = "BYD",
- .device_name = "L21B2PG2",
- .ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x34,
- .reg_mask = 0x0100,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 8860, /* mV */
- .voltage_normal = 7700, /* mV */
- .voltage_min = 6000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = -20,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_L21D2PG2;
diff --git a/board/wormdingler/board.c b/board/wormdingler/board.c
deleted file mode 100644
index 796409cb80..0000000000
--- a/board/wormdingler/board.c
+++ /dev/null
@@ -1,692 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Wormdingler board-specific configuration */
-
-#include "adc_chip.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "extpower.h"
-#include "driver/accel_bma2x2.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/accelgyro_icm_common.h"
-#include "driver/accelgyro_icm42607.h"
-#include "driver/ln9310.h"
-#include "driver/ppc/sn5s330.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "keyboard_mkbp.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "peripheral_charger.h"
-#include "pi3usb9201.h"
-#include "power.h"
-#include "power/qcom.h"
-#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
-#include "queue.h"
-#include "system.h"
-#include "shi_chip.h"
-#include "switch.h"
-#include "tablet_mode.h"
-#include "task.h"
-#include "usbc_ppc.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define KS_DEBOUNCE_US (30 * MSEC) /* Debounce time for kickstand switch */
-
-/* Forward declaration */
-static void tcpc_alert_event(enum gpio_signal signal);
-static void usb0_evt(enum gpio_signal signal);
-static void usb1_evt(enum gpio_signal signal);
-static void ppc_interrupt(enum gpio_signal signal);
-static void board_connect_c0_sbu(enum gpio_signal s);
-static void switchcap_interrupt(enum gpio_signal signal);
-
-#include "gpio_list.h"
-
-/* GPIO Interrupt Handlers */
-static void tcpc_alert_event(enum gpio_signal signal)
-{
- int port = -1;
-
- switch (signal) {
- case GPIO_USB_C0_PD_INT_ODL:
- port = 0;
- break;
- case GPIO_USB_C1_PD_INT_ODL:
- port = 1;
- break;
- default:
- return;
- }
-
- schedule_deferred_pd_interrupt(port);
-}
-
-static void usb0_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
-}
-
-static void usb1_evt(enum gpio_signal signal)
-{
- task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12);
-}
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_C0_SWCTL_INT_ODL:
- sn5s330_interrupt(0);
- break;
- case GPIO_USB_C1_SWCTL_INT_ODL:
- sn5s330_interrupt(1);
- break;
- default:
- break;
- }
-}
-
-static void board_connect_c0_sbu_deferred(void)
-{
- /*
- * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
- * and we should enable the SBU FETs.
- */
- ppc_set_sbu(0, 1);
-}
-DECLARE_DEFERRED(board_connect_c0_sbu_deferred);
-
-static void board_connect_c0_sbu(enum gpio_signal s)
-{
- hook_call_deferred(&board_connect_c0_sbu_deferred_data, 0);
-}
-
-static void switchcap_interrupt(enum gpio_signal signal)
-{
- ln9310_interrupt(signal);
-}
-
-/* I2C port map */
-const struct i2c_port_t i2c_ports[] = {
- {"power", I2C_PORT_POWER, 100, GPIO_EC_I2C_POWER_SCL,
- GPIO_EC_I2C_POWER_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_EC_I2C_USB_C0_PD_SCL,
- GPIO_EC_I2C_USB_C0_PD_SDA},
- {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_EC_I2C_USB_C1_PD_SCL,
- GPIO_EC_I2C_USB_C1_PD_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_EC_I2C_EEPROM_SCL,
- GPIO_EC_I2C_EEPROM_SDA},
- {"sensor", I2C_PORT_SENSOR, 400, GPIO_EC_I2C_SENSOR_SCL,
- GPIO_EC_I2C_SENSOR_SDA},
-};
-
-const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- /* Measure VBUS through a 1/10 voltage divider */
- [ADC_VBUS] = {
- "VBUS",
- NPCX_ADC_CH1,
- ADC_MAX_VOLT * 10,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * Adapter current output or battery charging/discharging current (uV)
- * 18x amplification on charger side.
- */
- [ADC_AMON_BMON] = {
- "AMON_BMON",
- NPCX_ADC_CH2,
- ADC_MAX_VOLT * 1000 / 18,
- ADC_READ_MAX + 1,
- 0
- },
- /*
- * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read
- * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and
- * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we
- * only divide by 2 (enough to avoid precision issues).
- */
- [ADC_PSYS] = {
- "PSYS",
- NPCX_ADC_CH3,
- ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1),
- 2,
- 0
- },
- /* Base detection */
- [ADC_BASE_DET] = {
- "BASE_DET",
- NPCX_ADC_CH5,
- ADC_MAX_VOLT,
- ADC_READ_MAX + 1,
- 0
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct pwm_t pwm_channels[] = {
- /* TODO(waihong): Assign a proper frequency. */
- [PWM_CH_DISPLIGHT] = { .channel = 5, .flags = 0, .freq = 4800 },
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
-/* LN9310 switchcap */
-const struct ln9310_config_t ln9310_config = {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = LN9310_I2C_ADDR_0_FLAGS,
-};
-
-/* Power Path Controller */
-struct ppc_config_t ppc_chips[] = {
- {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
- {
- .i2c_port = I2C_PORT_TCPC1,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
- },
-};
-unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-
-/* TCPC mux configuration */
-const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC0,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
- {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_TCPC1,
- .addr_flags = PS8751_I2C_ADDR1_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
-};
-
-/*
- * Port-0/1 USB mux driver.
- *
- * The USB mux is handled by TCPC chip and the HPD update is through a GPIO
- * to AP. But the TCPC chip is also needed to know the HPD status; otherwise,
- * the mux misbehaves.
- */
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
- {
- .usb_port = 1,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- }
-};
-
-/* BC1.2 */
-const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
- {
- .i2c_port = I2C_PORT_POWER,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
- {
- .i2c_port = I2C_PORT_EEPROM,
- .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS,
- },
-};
-
-/* Mutexes */
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_data;
-static struct icm_drv_data_t g_icm42607_data;
-
-enum lid_accelgyro_type {
- LID_GYRO_NONE = 0,
- LID_GYRO_BMI160 = 1,
- LID_GYRO_ICM42607 = 2,
-};
-
-static enum lid_accelgyro_type lid_accelgyro_config;
-
-/* Matrix to rotate accelerometer into standard reference frame */
-const mat33_fp_t lid_standard_ref = {
- { FLOAT_TO_FP(1), 0, 0},
- { 0, FLOAT_TO_FP(1), 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-const mat33_fp_t lid_standard_ref_icm42607 = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-struct motion_sensor_t icm42607_lid_accel = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = ICM42607_ACCEL_MIN_FREQ,
- .max_frequency = ICM42607_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
-};
-
-struct motion_sensor_t icm42607_lid_gyro = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_ICM42607,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &icm42607_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_icm42607_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = ICM42607_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref_icm42607,
- .min_frequency = ICM42607_GYRO_MIN_FREQ,
- .max_frequency = ICM42607_GYRO_MAX_FREQ,
-};
-
-struct motion_sensor_t motion_sensors[] = {
- /*
- * Note: bmi160: supports accelerometer and gyro sensor
- * Requirement: accelerometer sensor must init before gyro sensor
- * DO NOT change the order of the following table.
- */
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = BMI_ACCEL_MIN_FREQ,
- .max_frequency = BMI_ACCEL_MAX_FREQ,
- .config = {
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
- [LID_GYRO] = {
- .name = "Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_BMI160,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &bmi160_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_bmi160_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = BMI160_ADDR0_FLAGS,
- .default_range = 1000, /* dps */
- .rot_standard_ref = &lid_standard_ref,
- .min_frequency = BMI_GYRO_MIN_FREQ,
- .max_frequency = BMI_GYRO_MAX_FREQ,
- },
-};
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-static void board_detect_motionsensor(void)
-{
- int val = -1;
-
- if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
- return;
- if (lid_accelgyro_config != LID_GYRO_NONE)
- return;
-
- /* Check base accelgyro chip */
- icm_read8(&icm42607_lid_accel, ICM42607_REG_WHO_AM_I, &val);
- if (val == ICM42607_CHIP_ICM42607P) {
- motion_sensors[LID_ACCEL] = icm42607_lid_accel;
- motion_sensors[LID_GYRO] = icm42607_lid_gyro;
- lid_accelgyro_config = LID_GYRO_ICM42607;
- CPRINTS("LID Accelgyro: ICM42607");
- } else {
- lid_accelgyro_config = LID_GYRO_BMI160;
- CPRINTS("LID Accelgyro: BMI160");
- }
-}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_detect_motionsensor,
- HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_DEFAULT + 1);
-
-void motion_interrupt(enum gpio_signal signal)
-{
- switch (lid_accelgyro_config) {
- case LID_GYRO_ICM42607:
- icm42607_interrupt(signal);
- break;
- case LID_GYRO_BMI160:
- default:
- bmi160_interrupt(signal);
- break;
- }
-}
-
-enum battery_cell_type board_get_battery_cell_type(void)
-{
- return BATTERY_CELL_TYPE_2S;
-}
-
-static void board_switchcap_init(void)
-{
- CPRINTS("Use switchcap: LN9310");
-
- /* Configure and enable interrupt for LN9310 */
- gpio_set_flags(GPIO_SWITCHCAP_PG_INT_L, GPIO_INT_FALLING);
- gpio_enable_interrupt(GPIO_SWITCHCAP_PG_INT_L);
-
- /* Only configure the switchcap if not sysjump */
- if (!system_jumped_late())
- ln9310_init();
-}
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable BC1.2 interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L);
- gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L);
- gpio_enable_interrupt(GPIO_ACCEL_GYRO_INT_L);
-
- /*
- * The H1 SBU line for CCD are behind PPC chip. The PPC internal FETs
- * for SBU may be disconnected after DP alt mode is off. Should enable
- * the CCD_MODE_ODL interrupt to make sure the SBU FETs are connected.
- */
- gpio_enable_interrupt(GPIO_CCD_MODE_ODL);
-
- /* Set the backlight duty cycle to 0. AP will override it later. */
- pwm_set_duty(PWM_CH_DISPLIGHT, 0);
-
- board_switchcap_init();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-__overridable uint16_t board_get_ps8xxx_product_id(int port)
-{
- return PS8805_PRODUCT_ID;
-}
-
-void board_tcpc_init(void)
-{
- /* Only reset TCPC if not sysjump */
- if (!system_jumped_late()) {
- /* TODO(crosbug.com/p/61098): How long do we need to wait? */
- board_reset_pd_mcu();
- }
-
- /* Enable PPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_SWCTL_INT_ODL);
-
- /* Enable TCPC interrupts */
- gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);
- gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL);
-
- /*
- * Initialize HPD to low; after sysjump SOC needs to see
- * HPD pulse to enable video path
- */
- for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port)
- usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED |
- USB_PD_MUX_HPD_IRQ_DEASSERTED);
-}
-DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 1);
-
-void board_hibernate(void)
-{
- int i;
-
- /*
- * Sensors are unpowered in hibernate. Apply PD to the
- * interrupt lines such that they don't float.
- */
- gpio_set_flags(GPIO_ACCEL_GYRO_INT_L,
- GPIO_INPUT | GPIO_PULL_DOWN);
-
- /*
- * Board rev 1+ has the hardware fix. Don't need the following
- * workaround.
- */
- if (system_get_board_version() >= 1)
- return;
-
- /*
- * Enable the PPC power sink path before EC enters hibernate;
- * otherwise, ACOK won't go High and can't wake EC up. Check the
- * bug b/170324206 for details.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++)
- ppc_vbus_sink_enable(i, 1);
-}
-
-/* Called on AP S0 -> S3 transition */
-static void board_chipset_suspend(void)
-{
- /*
- * Turn off display backlight in S3. AP has its own control. The EC's
- * and the AP's will be AND'ed together in hardware.
- */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
- pwm_enable(PWM_CH_DISPLIGHT, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
-
-/* Called on AP S3 -> S0 transition */
-static void board_chipset_resume(void)
-{
- /* Turn on display and keyboard backlight in S0. */
- gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
- if (pwm_get_duty(PWM_CH_DISPLIGHT))
- pwm_enable(PWM_CH_DISPLIGHT, 1);
-}
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
-
-void board_set_switchcap_power(int enable)
-{
- gpio_set_level(GPIO_SWITCHCAP_ON_L, !enable);
- ln9310_software_enable(enable);
-}
-
-int board_is_switchcap_enabled(void)
-{
- return !gpio_get_level(GPIO_SWITCHCAP_ON_L);
-}
-
-int board_is_switchcap_power_good(void)
-{
- return ln9310_power_good();
-}
-
-void board_reset_pd_mcu(void)
-{
- cprints(CC_USB, "Resetting TCPCs...");
- cflush();
-
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
- msleep(PS8XXX_RESET_DELAY_MS);
- gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
-}
-
-void board_set_tcpc_power_mode(int port, int mode)
-{
- /* Ignore the "mode" to turn the chip on. We can only do a reset. */
- if (mode)
- return;
-
- board_reset_pd_mcu();
-}
-
-int board_vbus_sink_enable(int port, int enable)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_vbus_sink_enable(port, enable);
-}
-
-int board_is_sourcing_vbus(int port)
-{
- /* Both ports are controlled by PPC SN5S330 */
- return ppc_is_sourcing_vbus(port);
-}
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* TODO(b/120231371): Notify AP */
- CPRINTS("p%d: overcurrent!", port);
-}
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
- int i;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- if (port == CHARGE_PORT_NONE) {
- CPRINTS("Disabling all charging port");
-
- /* Disable all ports. */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- /*
- * Do not return early if one fails otherwise we can
- * get into a boot loop assertion failure.
- */
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("Disabling p%d sink path failed.", i);
- }
-
- return EC_SUCCESS;
- }
-
- /* Check if the port is sourcing VBUS. */
- if (board_is_sourcing_vbus(port)) {
- CPRINTS("Skip enable p%d", port);
- return EC_ERROR_INVAL;
- }
-
- CPRINTS("New charge port: p%d", port);
-
- /*
- * Turn off the other ports' sink path FETs, before enabling the
- * requested charge port.
- */
- for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
- if (i == port)
- continue;
-
- if (board_vbus_sink_enable(i, 0))
- CPRINTS("p%d: sink path disable failed.", i);
- }
-
- /* Enable requested charge port. */
- if (board_vbus_sink_enable(port, 1)) {
- CPRINTS("p%d: sink path enable failed.", port);
- return EC_ERROR_UNKNOWN;
- }
-
- return EC_SUCCESS;
-}
-
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
-{
- /*
- * Ignore lower charge ceiling on PD transition if our battery is
- * critical, as we may brownout.
- */
- if (supplier == CHARGE_SUPPLIER_PD &&
- charge_ma < 1500 &&
- charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
- CPRINTS("Using max ilim %d", max_ma);
- charge_ma = max_ma;
- }
-
- charge_ma = charge_ma * 95 / 100;
- charge_set_input_current_limit(MAX(charge_ma,
- CONFIG_CHARGER_INPUT_CURRENT),
- charge_mv);
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C0_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_0;
- if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL))
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
-}
-
-int battery_get_vendor_param(uint32_t param, uint32_t *value)
-{
- int rv;
- uint8_t data[16] = {};
-
- /* only allow reading 0x70~0x7F, 16 byte data */
- if (param < 0x70 || param >= 0x80)
- return EC_ERROR_ACCESS_DENIED;
-
- rv = sb_read_string(0x70, data, sizeof(data));
- if (rv)
- return rv;
-
- *value = data[param - 0x70];
- return EC_SUCCESS;
-}
-
-int battery_set_vendor_param(uint32_t param, uint32_t value)
-{
- return EC_ERROR_UNIMPLEMENTED;
-}
diff --git a/board/wormdingler/board.h b/board/wormdingler/board.h
deleted file mode 100644
index af0b5ee80d..0000000000
--- a/board/wormdingler/board.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/* Wormdingler board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-#include "baseboard.h"
-
-/* TODO(waihong): Remove the following bringup features */
-#define CONFIG_BRINGUP
-#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands. */
-#define CONFIG_USB_PD_DEBUG_LEVEL 3
-#define CONFIG_CMD_GPIO_EXTENDED
-#define CONFIG_CMD_POWERINDEBUG
-#define CONFIG_I2C_DEBUG
-
-#define CONFIG_BUTTON_TRIGGERED_RECOVERY
-
-/* Internal SPI flash on NPCX7 */
-#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */
-
-/* Switchcap */
-#define CONFIG_LN9310
-
-/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_FUEL_GAUGE
-#define CONFIG_BATTERY_VENDOR_PARAM
-#define CONFIG_BATTERY_V2
-#define CONFIG_BATTERY_COUNT 1
-#define CONFIG_HOSTCMD_BATTERY_V2
-
-/* Enable PD3.0 */
-#define CONFIG_USB_PD_REV30
-
-/* BC 1.2 Charger */
-#define CONFIG_BC12_DETECT_PI3USB9201
-
-/* USB */
-#define CONFIG_USB_PD_TCPM_MULTI_PS8XXX
-#define CONFIG_USB_PD_TCPM_PS8755
-#define CONFIG_USB_PD_TCPM_PS8805
-#define CONFIG_USBC_PPC_SN5S330
-#define CONFIG_USB_PD_PORT_MAX_COUNT 2
-
-/* Lid accel/gyro */
-#define CONFIG_ACCELGYRO_BMI160
-#define CONFIG_ACCEL_INTERRUPTS
-#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-#define OPT3001_I2C_ADDR_FLAGS OPT3001_I2C_ADDR1_FLAGS
-#define CONFIG_ACCELGYRO_ICM42607
-#define CONFIG_ACCELGYRO_ICM42607_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(LID_ACCEL)
-
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-#define CONFIG_FRONT_PROXIMITY_SWITCH
-
-#define CONFIG_DETACHABLE_BASE
-#define CONFIG_BASE_ATTACHED_SWITCH
-
-/* GPIO alias */
-#define GPIO_AC_PRESENT GPIO_CHG_ACOK_OD
-#define GPIO_WP_L GPIO_EC_FLASH_WP_ODL
-#define GPIO_PMIC_RESIN_L GPIO_PM845_RESIN_L
-#define GPIO_SWITCHCAP_PG_INT_L GPIO_LN9310_INT
-
-#define CONFIG_MKBP_INPUT_DEVICES
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_VBUS,
- ADC_AMON_BMON,
- ADC_PSYS,
- ADC_BASE_DET,
- ADC_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL = 0,
- LID_GYRO,
- SENSOR_COUNT,
-};
-
-enum pwm_channel {
- PWM_CH_DISPLIGHT = 0,
- PWM_CH_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_L21D2PG2,
- BATTERY_L21B2PG2,
- BATTERY_TYPE_COUNT,
-};
-
-/* Reset all TCPCs. */
-void board_reset_pd_mcu(void);
-void board_set_tcpc_power_mode(int port, int mode);
-/* Base detection */
-void base_detect_interrupt(enum gpio_signal signal);
-
-void motion_interrupt(enum gpio_signal signal);
-
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/wormdingler/build.mk b/board/wormdingler/build.mk
deleted file mode 100644
index 74b6b95e4d..0000000000
--- a/board/wormdingler/build.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- makefile -*-
-# Copyright 2021 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fc
-BASEBOARD:=trogdor
-
-board-y=battery.o board.o led.o base_detect.o
diff --git a/board/wormdingler/ec.tasklist b/board/wormdingler/ec.tasklist
deleted file mode 100644
index ea2aaa97f5..0000000000
--- a/board/wormdingler/ec.tasklist
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE)
diff --git a/board/wormdingler/gpio.inc b/board/wormdingler/gpio.inc
deleted file mode 100644
index 77a69a5faa..0000000000
--- a/board/wormdingler/gpio.inc
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2021 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_PD_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-0 TCPC */
-GPIO_INT(USB_C1_PD_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event) /* Interrupt from port-1 TCPC */
-GPIO_INT(USB_C0_SWCTL_INT_ODL, PIN(0, 3), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-0 PPC */
-GPIO_INT(USB_C1_SWCTL_INT_ODL, PIN(4, 0), GPIO_INT_FALLING, ppc_interrupt) /* Interrupt from port-1 PPC */
-GPIO_INT(USB_C0_BC12_INT_L, PIN(6, 1), GPIO_INT_FALLING | GPIO_PULL_UP, usb0_evt) /* Interrupt from port-0 BC1.2 */
-GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_evt) /* Interrupt from port-1 BC1.2 */
-
-/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
-GPIO_INT(CCD_MODE_ODL, PIN(E, 3), GPIO_INT_FALLING, board_connect_c0_sbu) /* Case Closed Debug Mode */
-GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
-GPIO_INT(EC_VOLDN_BTN_ODL, PIN(7, 0), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
-GPIO_INT(EC_VOLUP_BTN_ODL, PIN(F, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
-GPIO_INT(EC_FLASH_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
-GPIO_INT(AP_RST_L, PIN(C, 1), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
-GPIO_INT(PS_HOLD, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
-GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
-GPIO_INT(DEPRECATED_AP_RST_REQ, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_DOWN | GPIO_SEL_1P8V, power_signal_interrupt) /* Deprecated AP initiated reset indicator */
-
-/*
- * When switch-cap is off, the POWER_GOOD signal is floating. Need a pull-down
- * to make it low. Overload the interrupt function chipset_warm_reset_interrupt
- * for not only signalling power_signal_interrupt but also handling the logic
- * of WARM_RESET_L which is pulled-up by the same rail of POWER_GOOD.
- */
-GPIO_INT(POWER_GOOD, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, chipset_power_good_interrupt) /* SRC_PP1800_S10A from PMIC */
-GPIO_INT(WARM_RESET_L, PIN(F, 4), GPIO_INT_BOTH | GPIO_SEL_1P8V, chipset_warm_reset_interrupt) /* AP warm reset */
-GPIO_INT(AP_EC_SPI_CS_L, PIN(5, 3), GPIO_INT_FALLING | GPIO_PULL_DOWN, shi_cs_event) /* EC SPI Chip Select */
-
-GPIO_INT(BASE_DET_L, PIN(3, 7), GPIO_INT_BOTH, base_detect_interrupt) /* Detachable base attached? */
-
-/* Sensor interrupts */
-GPIO_INT(ACCEL_GYRO_INT_L, PIN(A, 0), GPIO_INT_FALLING, motion_interrupt) /* Accelerometer/gyro interrupt */
-
-/* Switchcap, for LN9310, it is the interrupt line of LN9310. */
-GPIO_INT(LN9310_INT, PIN(E, 2), GPIO_INT_FALLING, switchcap_interrupt)
-
-/*
- * EC_RST_ODL acts as a wake source from hibernate mode. However, it does not
- * need to be an interrupt for normal EC operations. Simply set it an INPUT.
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INPUT) /* EC reset */
-GPIO(EC_ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */
-GPIO(EC_BATT_PRES_ODL, PIN(E, 5), GPIO_INPUT) /* Battery Present */
-
-/* PMIC/AP 1.8V */
-GPIO(PM845_RESIN_L, PIN(3, 2), GPIO_ODR_HIGH) /* PMIC reset trigger */
-GPIO(PMIC_KPD_PWR_ODL, PIN(D, 6), GPIO_ODR_HIGH) /* PMIC power button */
-GPIO(EC_INT_L, PIN(A, 2), GPIO_ODR_HIGH) /* Interrupt line between AP and EC */
-GPIO(QSIP_ON, PIN(5, 0), GPIO_OUT_LOW) /* Not used, for non-switchcap testing */
-
-/* Power enables */
-GPIO(HIBERNATE_L, PIN(5, 2), GPIO_ODR_HIGH) /* EC hibernate */
-GPIO(SWITCHCAP_ON_L, PIN(D, 5), GPIO_ODR_HIGH) /* Enable switch cap */
-GPIO(EN_PP3300_A, PIN(A, 6), GPIO_OUT_LOW) /* Enable PP3300 */
-GPIO(EN_PP5000_A, PIN(6, 7), GPIO_OUT_LOW) /* Enable PP5000 */
-GPIO(EC_BL_DISABLE_L, PIN(B, 6), GPIO_OUT_LOW) /* Backlight disable signal from EC */
-
-/* Base detection */
-GPIO(EN_BASE, PIN(0, 4), GPIO_OUT_LOW) /* Enable power to detachable base */
-
-/* POGO */
-GPIO(POGO_VBUS_PRESENT, PIN(6, 2), GPIO_INPUT) /* POGO PIN */
-
-/* USB-C */
-GPIO(USB_C0_PD_RST_L, PIN(F, 1), GPIO_ODR_HIGH) /* Port-0 TCPC chip reset, actaully Open-Drain */
-GPIO(USB_C1_PD_RST_L, PIN(E, 4), GPIO_ODR_HIGH) /* Port-1 TCPC chip reset, actually Open-Drain */
-GPIO(DP_MUX_OE_L, PIN(9, 6), GPIO_ODR_HIGH) /* DP mux enable, actually Open-Drain */
-GPIO(DP_MUX_SEL, PIN(4, 5), GPIO_OUT_LOW) /* DP mux selection: L:C0, H:C1 */
-GPIO(DP_HOT_PLUG_DET, PIN(9, 5), GPIO_OUT_LOW) /* DP HPD to AP */
-
-/* LEDs */
-GPIO(EC_CHG_LED_R_C0, PIN(C, 3), GPIO_OUT_LOW)
-GPIO(EC_CHG_LED_G_C0, PIN(C, 4), GPIO_OUT_LOW)
-
-/*
- * SPI host interface - enable PDs by default. These will be made functional
- * by the SHI driver when the AP powers up, and restored back to GPIO when
- * the AP powers down.
- */
-GPIO(AP_EC_SPI_MOSI, PIN(4, 6), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_MISO, PIN(4, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(AP_EC_SPI_CLK, PIN(5, 5), GPIO_INPUT | GPIO_PULL_DOWN)
-
-/* PWM */
-GPIO(EDP_BKLTCTL, PIN(B, 7), GPIO_INPUT) /* PWM5 */
-GPIO(WCAM_EC_VSYNC, PIN(C, 0), GPIO_INPUT) /* PWM6 */
-GPIO(FCAM_EC_VSYNC, PIN(6, 0), GPIO_INPUT) /* PWM7 */
-
-/* ADC */
-GPIO(PPVAR_BOOSTIN_SENSE, PIN(4, 4), GPIO_INPUT) /* ADC1 */
-GPIO(CHARGER_IADP, PIN(4, 3), GPIO_INPUT) /* ADC2 */
-GPIO(CHARGER_PMON, PIN(4, 2), GPIO_INPUT) /* ADC3 */
-
-/* I2C */
-GPIO(EC_I2C_POWER_SCL, PIN(B, 5), GPIO_INPUT)
-GPIO(EC_I2C_POWER_SDA, PIN(B, 4), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SCL, PIN(9, 0), GPIO_INPUT)
-GPIO(EC_I2C_USB_C0_PD_SDA, PIN(8, 7), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SCL, PIN(9, 2), GPIO_INPUT)
-GPIO(EC_I2C_USB_C1_PD_SDA, PIN(9, 1), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SCL, PIN(3, 3), GPIO_INPUT)
-GPIO(EC_I2C_EEPROM_SDA, PIN(3, 6), GPIO_INPUT)
-GPIO(EC_I2C_SENSOR_SCL, PIN(B, 3), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(EC_I2C_SENSOR_SDA, PIN(B, 2), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Board/SKU IDs */
-GPIO(BRD_ID0, PIN(C, 7), GPIO_INPUT)
-GPIO(BRD_ID1, PIN(9, 3), GPIO_INPUT)
-GPIO(BRD_ID2, PIN(6, 3), GPIO_INPUT)
-GPIO(SKU_ID0, PIN(F, 0), GPIO_INPUT)
-GPIO(SKU_ID1, PIN(4, 1), GPIO_INPUT)
-GPIO(SKU_ID2, PIN(D, 4), GPIO_INPUT)
-
-/* Special straps */
-GPIO(ARM_X86, PIN(6, 6), GPIO_OUT_LOW) /* NC, low for power saving */
-
-/* Unused GPIOs, NC. Apply PU for power saving */
-UNUSED(PIN(5, 1))
-UNUSED(PIN(F, 3))
-UNUSED(PIN(3, 1))
-UNUSED(PIN(3, 0))
-UNUSED(PIN(2, 7))
-UNUSED(PIN(2, 6))
-UNUSED(PIN(2, 5))
-UNUSED(PIN(2, 4))
-UNUSED(PIN(2, 3))
-UNUSED(PIN(2, 2))
-UNUSED(PIN(2, 1))
-UNUSED(PIN(2, 0))
-UNUSED(PIN(1, 7))
-UNUSED(PIN(1, 6))
-UNUSED(PIN(1, 5))
-UNUSED(PIN(1, 4))
-UNUSED(PIN(1, 3))
-UNUSED(PIN(1, 2))
-UNUSED(PIN(1, 1))
-UNUSED(PIN(1, 0))
-UNUSED(PIN(0, 7))
-UNUSED(PIN(0, 6))
-UNUSED(PIN(0, 5))
-UNUSED(PIN(9, 4))
-UNUSED(PIN(9, 7))
-UNUSED(PIN(A, 7))
-UNUSED(PIN(B, 0))
-UNUSED(PIN(A, 5))
-UNUSED(PIN(3, 5))
-UNUSED(PIN(7, 2))
-UNUSED(PIN(8, 1))
-UNUSED(PIN(7, 6))
-UNUSED(PIN(3, 4))
-UNUSED(PIN(C, 5))
-UNUSED(PIN(C, 6))
-UNUSED(PIN(A, 3))
-UNUSED(PIN(8, 3))
-UNUSED(PIN(B, 1))
-UNUSED(PIN(5, 6))
-UNUSED(PIN(8, 0))
-UNUSED(PIN(D, 0))
-UNUSED(PIN(D, 1))
-UNUSED(PIN(D, 3))
-UNUSED(PIN(7, 5))
-UNUSED(PIN(8, 6))
-UNUSED(PIN(7, 3))
-UNUSED(PIN(7, 4))
-UNUSED(PIN(D, 7))
-UNUSED(PIN(8, 5))
-
-/* Alternate functions GPIO definitions */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART (GPIO64/65) */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 (GPIOB4/B5) */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1 SDA (GPIO90), I2C2 (GPIO91/92) */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL (GPIO87) */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 (GPIO33/36) */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_SEL_1P8V) /* I2C7 (GPIOB2/B3) - 1.8V */
-ALTERNATE(PIN_MASK(4, 0x1C), 0, MODULE_ADC, 0) /* ADC1 (GPIO44), ADC2 (GPIO43), ADC3 (GPIO42) */
-ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47), SHI_SDI (GPIO46) */
-ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
-ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
-/* TODO(Camera?) should have a poper config for this, PWM or not */
-ALTERNATE(PIN_MASK(C, 0x01), 1, MODULE_PWM, 0) /* PWM6 (GPIOC0) - WCAM_EC_VSYNC */
-ALTERNATE(PIN_MASK(6, 0x01), 1, MODULE_PWM, 0) /* PWM7 (GPIO60) - FCAM_EC_VSYNC */
-
-
diff --git a/board/wormdingler/led.c b/board/wormdingler/led.c
deleted file mode 100644
index 40de6257fa..0000000000
--- a/board/wormdingler/led.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright 2021 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.
- *
- * Power and battery LED control.
- */
-
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "chipset.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "host_command.h"
-#include "led_common.h"
-#include "system.h"
-#include "util.h"
-#include "extpower.h"
-
-#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS)
-/* Battery LED blinks every per 400ms */
-#define LED_HALF_ONE_SEC (500 / HOOK_TICK_INTERVAL_MS)
-
-#define BAT_LED_ON 1
-#define BAT_LED_OFF 0
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-enum led_color {
- LED_OFF = 0,
- LED_RED,
- LED_GREEN,
- LED_AMBER,
- LED_COLOR_COUNT /* Number of colors, not a color itself */
-};
-
-static void led_set_color(enum led_color color)
-{
- gpio_set_level(GPIO_EC_CHG_LED_R_C0,
- (color == LED_RED) ? BAT_LED_ON : BAT_LED_OFF);
- gpio_set_level(GPIO_EC_CHG_LED_G_C0,
- (color == LED_GREEN) ? BAT_LED_ON : BAT_LED_OFF);
- if (color == LED_AMBER) {
- gpio_set_level(GPIO_EC_CHG_LED_R_C0, BAT_LED_ON);
- gpio_set_level(GPIO_EC_CHG_LED_G_C0, BAT_LED_ON);
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_RED] = 1;
- brightness_range[EC_LED_COLOR_GREEN] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_RED] != 0)
- led_set_color(LED_RED);
- else if (brightness[EC_LED_COLOR_GREEN] != 0)
- led_set_color(LED_GREEN);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color(LED_AMBER);
- else
- led_set_color(LED_OFF);
-
- return EC_SUCCESS;
-}
-
-static void board_led_set_battery(void)
-{
- static int battery_ticks;
- int color = LED_OFF;
- int period = 0;
- int percent = DIV_ROUND_NEAREST(charge_get_display_charge(), 10);
- uint32_t chflags = charge_get_flags();
-
- battery_ticks++;
-
- switch (charge_get_state()) {
- case PWR_STATE_CHARGE:
- case PWR_STATE_CHARGE_NEAR_FULL:
- if (chipset_in_state(CHIPSET_STATE_ON |
- CHIPSET_STATE_ANY_SUSPEND |
- CHIPSET_STATE_ANY_OFF)) {
- if (percent <= BATTERY_LEVEL_CRITICAL) {
- /* battery capa <= 5%, Red */
- color = LED_RED;
- } else if (percent > BATTERY_LEVEL_CRITICAL &&
- percent < BATTERY_LEVEL_NEAR_FULL) {
- /* 5% < battery capa < 97%, Orange */
- color = LED_AMBER;
- } else {
- /* battery capa >= 97%, Green */
- color = LED_GREEN;
- }
- }
- break;
- case PWR_STATE_DISCHARGE:
- /* Always indicate off on when discharging */
- color = LED_OFF;
- break;
- case PWR_STATE_ERROR:
- /* Battery error, Red on 1sec off 1sec */
- period = (1 + 1) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 1 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_OFF;
- break;
- case PWR_STATE_IDLE: /* External power connected in IDLE */
- if (chflags & CHARGE_FLAG_FORCE_IDLE) {
- /* Factory mode, Red 2 sec, green 2 sec */
- period = (2 + 2) * LED_ONE_SEC;
- battery_ticks = battery_ticks % period;
- if (battery_ticks < 2 * LED_ONE_SEC)
- color = LED_RED;
- else
- color = LED_GREEN;
- } else
- color = LED_RED;
- break;
- default:
- /* Other states don't alter LED behavior */
- break;
- }
-
- led_set_color(color);
-}
-
-/* Called by hook task every TICK */
-static void led_tick(void)
-{
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
- board_led_set_battery();
-}
-DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
-
-void led_control(enum ec_led_id led_id, enum ec_led_state state)
-{
- enum led_color color;
-
- if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) &&
- (led_id != EC_LED_ID_SYSRQ_DEBUG_LED))
- return;
-
- if (state == LED_STATE_RESET) {
- led_auto_control(EC_LED_ID_BATTERY_LED, 1);
- board_led_set_battery();
- return;
- }
-
- color = state ? LED_RED : LED_OFF;
-
- led_auto_control(EC_LED_ID_BATTERY_LED, 0);
-
- led_set_color(color);
-}
diff --git a/board/wormdingler/vif_override.xml b/board/wormdingler/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/wormdingler/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/yorp/battery.c b/board/yorp/battery.c
deleted file mode 100644
index 1d8ec33d3d..0000000000
--- a/board/yorp/battery.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright 2018 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.
- *
- * Battery pack vendor provided charging profile
- */
-
-#include "battery_fuel_gauge.h"
-#include "common.h"
-#include "util.h"
-
-/*
- * Battery info for all yorp battery types. Note that the fields
- * start_charging_min/max and charging_min/max are not used for the charger.
- * The effective temperature limits are given by discharging_min/max_c.
- *
- * Fuel Gauge (FG) parameters which are used for determining if the battery
- * is connected, the appropriate ship mode (battery cutoff) command, and the
- * charge/discharge FETs status.
- *
- * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery
- * register. For some batteries, the charge/discharge FET bits are set when
- * charging/discharging is active, in other types, these bits set mean that
- * charging/discharging is disabled. Therefore, in addition to the mask for
- * these bits, a disconnect value must be specified. Note that for TI fuel
- * gauge, the charge/discharge FET status is found in Operation Status (0x54),
- * but a read of Manufacturer Access (0x00) will return the lower 16 bits of
- * Operation status which contains the FET status bits.
- *
- * The assumption for battery types supported is that the charge/discharge FET
- * status can be read with a sb_read() command and therefore, only the register
- * address, mask, and disconnect value need to be provided.
- */
-const struct board_batt_params board_battery_info[] = {
- /* LGC AC15A8J Battery Information */
- [BATTERY_LGC15] = {
- .fuel_gauge = {
- .manuf_name = "LGC",
- .device_name = "AC15A8J",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .mfgacc_support = 1,
- .reg_addr = 0x0,
- .reg_mask = 0x0002,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11520, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Panasonic AP1505L Battery Information */
- [BATTERY_PANASONIC] = {
- .fuel_gauge = {
- .manuf_name = "PANASONIC",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = 13200,
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* SANYO AC15A3J Battery Information */
- [BATTERY_SANYO] = {
- .fuel_gauge = {
- .manuf_name = "SANYO",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x4000,
- .disconnect_val = 0x0,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-
- /* Sony Ap13J4K Battery Information */
- [BATTERY_SONY] = {
- .fuel_gauge = {
- .manuf_name = "SONYCorp",
- .ship_mode = {
- .reg_addr = 0x3A,
- .reg_data = { 0xC574, 0xC574 },
- },
- .fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x8000,
- .disconnect_val = 0x8000,
- }
- },
- .batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
- .start_charging_min_c = 0,
- .start_charging_max_c = 50,
- .charging_min_c = 0,
- .charging_max_c = 60,
- .discharging_min_c = 0,
- .discharging_max_c = 60,
- },
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC;
diff --git a/board/yorp/board.c b/board/yorp/board.c
deleted file mode 100644
index 625db5d0b7..0000000000
--- a/board/yorp/board.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Yorp board-specific configuration */
-
-#include "adc.h"
-#include "battery.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "common.h"
-#include "cros_board_info.h"
-#include "driver/accel_kionix.h"
-#include "driver/accelgyro_lsm6dsm.h"
-#include "driver/charger/bd9995x.h"
-#include "driver/ppc/nx20p348x.h"
-#include "driver/tcpm/anx7447.h"
-#include "driver/tcpm/ps8xxx.h"
-#include "driver/tcpm/tcpci.h"
-#include "driver/tcpm/tcpm.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "keyboard_scan.h"
-#include "lid_switch.h"
-#include "motion_sense.h"
-#include "power.h"
-#include "power_button.h"
-#include "switch.h"
-#include "system.h"
-#include "tablet_mode.h"
-#include "tcpm/tcpci.h"
-#include "temp_sensor.h"
-#include "temp_sensor/thermistor.h"
-#include "usb_mux.h"
-#include "usbc_ppc.h"
-#include "util.h"
-
-#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-
-static void ppc_interrupt(enum gpio_signal signal)
-{
- switch (signal) {
- case GPIO_USB_PD_C0_INT_ODL:
- nx20p348x_interrupt(0);
- break;
-
- case GPIO_USB_PD_C1_INT_ODL:
- nx20p348x_interrupt(1);
- break;
-
- default:
- break;
- }
-}
-
-/* Must come after other header files and GPIO interrupts*/
-#include "gpio_list.h"
-
-/* ADC channels */
-const struct adc_t adc_channels[] = {
- [ADC_TEMP_SENSOR_AMB] = {
- "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
- [ADC_TEMP_SENSOR_CHARGER] = {
- "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-const struct temp_sensor_t temp_sensors[] = {
- [TEMP_SENSOR_BATTERY] = {.name = "Battery",
- .type = TEMP_SENSOR_TYPE_BATTERY,
- .read = charge_get_battery_temp,
- .idx = 0},
- [TEMP_SENSOR_AMBIENT] = {.name = "Ambient",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_51k1_47k_4050b,
- .idx = ADC_TEMP_SENSOR_AMB},
- [TEMP_SENSOR_CHARGER] = {.name = "Charger",
- .type = TEMP_SENSOR_TYPE_BOARD,
- .read = get_temp_3v3_13k7_47k_4050b,
- .idx = ADC_TEMP_SENSOR_CHARGER},
-};
-BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
-
-/* Motion sensors */
-/* Mutexes */
-static struct mutex g_lid_mutex;
-static struct mutex g_base_mutex;
-
-/* Matrix to rotate accelrator into standard reference frame */
-const mat33_fp_t base_standard_ref = {
- { 0, FLOAT_TO_FP(-1), 0},
- { FLOAT_TO_FP(1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)}
-};
-
-/* sensor private data */
-static struct kionix_accel_data g_kx022_data;
-static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA;
-
-/* Drivers */
-struct motion_sensor_t motion_sensors[] = {
- [LID_ACCEL] = {
- .name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_lid_mutex,
- .drv_data = &g_kx022_data,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = KX022_ADDR1_FLAGS,
- .rot_standard_ref = NULL, /* Identity matrix. */
- .default_range = 2, /* g */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- /* Sensor on for lid angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- },
- },
- },
-
- [BASE_ACCEL] = {
- .name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_ACCEL),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .rot_standard_ref = &base_standard_ref,
- .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 13000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- /* Sensor on for angle detection */
- [SENSOR_CONFIG_EC_S3] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
- },
- },
- },
-
- [BASE_GYRO] = {
- .name = "Base Gyro",
- .active_mask = SENSOR_ACTIVE_S0_S3,
- .chip = MOTIONSENSE_CHIP_LSM6DSM,
- .type = MOTIONSENSE_TYPE_GYRO,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &lsm6dsm_drv,
- .mutex = &g_base_mutex,
- .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data,
- MOTIONSENSE_TYPE_GYRO),
- .int_signal = GPIO_BASE_SIXAXIS_INT_L,
- .flags = MOTIONSENSE_FLAG_INT_SIGNAL,
- .port = I2C_PORT_SENSOR,
- .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS,
- .default_range = 1000 | ROUND_UP_FLAG, /* dps */
- .rot_standard_ref = &base_standard_ref,
- .min_frequency = LSM6DSM_ODR_MIN_VAL,
- .max_frequency = LSM6DSM_ODR_MAX_VAL,
- },
-};
-
-const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
-
-/* Initialize board. */
-static void board_init(void)
-{
- /* Enable Base Accel interrupt */
- gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L);
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-void board_hibernate_late(void) {
-
- int i;
-
- const uint32_t hibernate_pins[][2] = {
- /* Turn off LEDs before going to hibernate */
- {GPIO_BAT_LED_BLUE_L, GPIO_INPUT | GPIO_PULL_UP},
- {GPIO_BAT_LED_ORANGE_L, GPIO_INPUT | GPIO_PULL_UP},
- };
-
- for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i)
- gpio_set_flags(hibernate_pins[i][0], hibernate_pins[i][1]);
-}
-
-#ifndef TEST_BUILD
-static void post_old_board_warning(void)
-{
- uint32_t board_id = 0;
-
- cbi_get_board_version(&board_id);
-
- if (board_id != 0)
- return;
-
- /*
- * BOARD ID 0 is officially deprecated. Indicate this by posting a
- * warning.
- */
- CPRINTS("\n\n\n ***** BOARD ID 0 is not officially supported!!! *****"
- "\n\n\n");
-}
-DECLARE_HOOK(HOOK_INIT, post_old_board_warning, HOOK_PRIO_INIT_I2C + 1);
-#endif
-
-void board_overcurrent_event(int port, int is_overcurrented)
-{
- /* Check that port number is valid. */
- if ((port < 0) || (port >= CONFIG_USB_PD_PORT_MAX_COUNT))
- return;
-
- /* Note that the level is inverted because the pin is active low. */
- gpio_set_level(GPIO_USB_C_OC, !is_overcurrented);
-}
diff --git a/board/yorp/board.h b/board/yorp/board.h
deleted file mode 100644
index 01f701184a..0000000000
--- a/board/yorp/board.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/* Yorp board configuration */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* Select Baseboard features */
-#define VARIANT_OCTOPUS_EC_NPCX796FB
-#define VARIANT_OCTOPUS_CHARGER_ISL9238
-#include "baseboard.h"
-
-/* EC console commands */
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CMD_ACCEL_INFO
-
-#define CONFIG_LED_COMMON
-
-/* USB PD */
-#undef CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
-
-/* Sensors */
-#define CONFIG_ACCEL_KX022 /* Lid accel */
-#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */
-/* Sensors without hardware FIFO are in forced mode */
-#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
-
-#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_UPDATE
-#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
-#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
-
-#define CONFIG_TEMP_SENSOR
-#define CONFIG_THERMISTOR
-#define CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
-#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
-
-#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL)
-
-#ifndef __ASSEMBLER__
-
-#include "gpio_signal.h"
-#include "registers.h"
-
-enum adc_channel {
- ADC_TEMP_SENSOR_AMB, /* ADC0 */
- ADC_TEMP_SENSOR_CHARGER, /* ADC1 */
- ADC_CH_COUNT
-};
-
-enum temp_sensor_id {
- TEMP_SENSOR_BATTERY,
- TEMP_SENSOR_AMBIENT,
- TEMP_SENSOR_CHARGER,
- TEMP_SENSOR_COUNT
-};
-
-enum pwm_channel {
- PWM_CH_KBLIGHT,
- PWM_CH_COUNT
-};
-
-/* Motion sensors */
-enum sensor_id {
- LID_ACCEL,
- BASE_ACCEL,
- BASE_GYRO,
- SENSOR_COUNT
-};
-
-/* List of possible batteries */
-enum battery_type {
- BATTERY_LGC15,
- BATTERY_PANASONIC,
- BATTERY_SANYO,
- BATTERY_SONY,
- BATTERY_TYPE_COUNT,
-};
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/yorp/build.mk b/board/yorp/build.mk
deleted file mode 100644
index 3d04b75731..0000000000
--- a/board/yorp/build.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- makefile -*-
-# Copyright 2018 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.
-#
-# Board specific files build
-#
-
-CHIP:=npcx
-CHIP_FAMILY:=npcx7
-CHIP_VARIANT:=npcx7m6fb
-BASEBOARD:=octopus
-
-board-y=board.o led.o
-board-$(CONFIG_BATTERY_SMART)+=battery.o
diff --git a/board/yorp/ec.tasklist b/board/yorp/ec.tasklist
deleted file mode 100644
index d98db145e7..0000000000
--- a/board/yorp/ec.tasklist
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 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.
- */
-
-/*
- * See CONFIG_TASK_LIST in config.h for details.
- */
-
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE)
diff --git a/board/yorp/gpio.inc b/board/yorp/gpio.inc
deleted file mode 100644
index 9edd6107c6..0000000000
--- a/board/yorp/gpio.inc
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- mode:c -*-
- *
- * Copyright 2018 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.
- */
-
-/* Declare symbolic names for all the GPIOs that we care about.
- * Note: Those with interrupt handlers must be declared first. */
-
-/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, lid_interrupt)
-/*
- * High-to-low transition on POWER_BUTTON_L is treated as a wake event from
- * hibernate. Absence of GPIO_HIB_WAKE_HIGH flag is treated as wake on
- * high-to-low edge.
- */
-GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK_OD */
-
-/* USB-C interrupts */
-GPIO_INT(USB_C0_MUX_INT_ODL, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_C1_MUX_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
-GPIO_INT(USB_PD_C0_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, ppc_interrupt)
-GPIO_INT(USB_PD_C1_INT_ODL, PIN(F, 1), GPIO_INT_FALLING, ppc_interrupt)
-
-/* Power State interrupts */
-#ifdef CONFIG_POWER_S0IX
-GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
-#endif
-GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
-GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
-GPIO_INT(SUSPWRDNACK, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SUSPWRDNACK */
-GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
-GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_OD */
-
-/* Other interrupts */
-GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
-GPIO_INT(TABLET_MODE_L, PIN(8, 6), GPIO_INT_BOTH, gmr_tablet_switch_isr)
-
-GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt)
-GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-
-/* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */
-#ifndef CONFIG_POWER_S0IX
-GPIO(PCH_SLP_S0_L, PIN(A, 4), GPIO_INPUT) /* SLP_S0_L */
-#endif
-
-/*
- * PLT_RST_L isn't used since there is a Virtual Wire on eSPI for it. It is here
- * only for debugging purposes.
- */
-GPIO(PLT_RST_L, PIN(C, 7), GPIO_INPUT) /* Platform Reset from SoC */
-GPIO(SYS_RESET_L, PIN(3, 4), GPIO_ODR_HIGH) /* SYS_RST_ODL */
-GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
-
-GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW) /* EC_ENTERING_RW */
-GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
-GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
-
-GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) /* EN_PP5000_A */
-GPIO(PP5000_PG, PIN(C, 0), GPIO_INPUT) /* PP5000_PG_OD */
-GPIO(EN_PP3300, PIN(D, 4), GPIO_OUT_LOW) /* EN_PP3300_A */
-GPIO(PP3300_PG, PIN(6, 0), GPIO_INPUT) /* PP3300_PG_OD */
-GPIO(PMIC_EN, PIN(7, 2), GPIO_OUT_LOW) /* Enable A Rails via PMIC */
-GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* RSMRST# to SOC. All _A rails now up. */
-GPIO(PCH_SYS_PWROK, PIN(B, 7), GPIO_OUT_LOW) /* EC_PCH_PWROK. All S0 rails now up. */
-
-/* Peripheral rails */
-GPIO(ENABLE_BACKLIGHT, PIN(D, 3), GPIO_ODR_HIGH |
- GPIO_SEL_1P8V) /* EC_BL_EN_OD */
-GPIO(EN_P3300_TRACKPAD_ODL, PIN(3, 3), GPIO_ODR_HIGH)
-
-GPIO(EC_BATT_PRES_L, PIN(E, 5), GPIO_INPUT)
-
-/*
- * EC_RST_ODL acts as a wake source from PSL hibernate mode. However, it does
- * not need to be an interrupt for normal EC operations. Thus, configure it as
- * GPIO_INPUT with wake on low-to-high edge using GPIO_HIB_WAKE_HIGH so that PSL
- * common code can configure PSL_IN correctly.
- *
- * Reason for choosing low-to-high edge for waking from hibernate is to avoid
- * the double reset - one because of PSL_IN wake and other because of VCC1_RST
- * being asserted. Also, it should be fine to have the EC in hibernate when H1
- * or servo wants to hold the EC in reset since VCC1 will be down and so entire
- * EC logic (except PSL) as well as AP will be in reset.
- *
- * We need to lock the setting so this gpio can't be reconfigured to overdrive
- * the real reset signal. (This is the PSL input pin not the real reset pin).
- */
-GPIO(EC_RST_ODL, PIN(0, 2), GPIO_INT_BOTH |
- GPIO_HIB_WAKE_HIGH |
- GPIO_LOCKED)
-
-/*
- * PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
- * normally driven by the PMIC. The EC can also drive this signal in the event
- * that the ambient or charger temperature sensors exceeds their thresholds.
- */
-GPIO(CPU_PROCHOT, PIN(3, 7), GPIO_INPUT | GPIO_SEL_1P8V) /* PCH_PROCHOT_ODL */
-
-/* I2C pins - Alternate function below configures I2C module on these pins */
-GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SCL */
-GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_I2C_BATTERY_3V3_SDA */
-GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SCL */
-GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT) /* EC_I2C_USB_C0_MUX_SDA */
-GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SCL */
-GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT) /* EC_I2C_USB_C1_MUX_SDA */
-GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT) /* EC_I2C_EEPROM_SCL */
-GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT) /* EC_I2C_EEPROM_SDA */
-GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SCL */
-GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT) /* EC_I2C_CHARGER_3V3_SDA */
-GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SCL */
-GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT |
- GPIO_SEL_1P8V) /* EC_I2C_SENSOR_U_SDA */
-
-/* USB pins */
-GPIO(EN_USB_A0_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0 5V Charging */
-GPIO(EN_USB_A1_5V, PIN(9, 6), GPIO_OUT_LOW) /* Enable A1 5V Charging */
-GPIO(USB_A0_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0 1.5A Charging */
-GPIO(USB_A1_CHARGE_EN_L, PIN(A, 0), GPIO_OUT_HIGH) /* Enable A1 1.5A Charging */
-GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
-GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
-GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-GPIO(USB_C1_PD_RST_ODL, PIN(7, 0), GPIO_ODR_HIGH) /* C1 PD Reset */
-GPIO(USB_C1_BC12_VBUS_ON, PIN(B, 1), GPIO_OUT_LOW) /* C1 BC1.2 Power */
-GPIO(USB_C1_BC12_CHG_DET_L, PIN(E, 4), GPIO_INPUT) /* C1 BC1.2 Detect */
-GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
- GPIO_SEL_1P8V)
-
-/* Not implemented in hardware */
-UNIMPLEMENTED(USB_C0_PD_RST)
-
-/*
- * USB2_OTG_ID is 1.8V pin on the SoC side with an internal pull-up. However, it
- * 3.3V on the EC side. So, configure it as ODR so that the EC never drives it
- * high.
- */
-GPIO(USB2_OTG_ID, PIN(8, 3), GPIO_ODR_LOW) /* OTG ID */
-
-/* LED */
-GPIO(BAT_LED_ORANGE_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
-GPIO(BAT_LED_BLUE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
-GPIO(LED_3_L, PIN(D, 7), GPIO_OUT_HIGH)
-
-/* Keyboard Backlight */
-GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_OUT_LOW)
-
-/* Camera */
-GPIO(WFCAM_VSYNC, PIN(0, 3), GPIO_INPUT) /* TP only */
-
-/* MKBP event synchronization */
-GPIO(EC_INT_L, PIN(9, 4), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
-
-/* Overcurrent event to host */
-GPIO(USB_C_OC, PIN(3, 6), GPIO_ODR_HIGH | GPIO_SEL_1P8V)
-
-/* Strap pins */
-GPIO(GPO66_NC, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(GPOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
-
-/* Misc. */
-GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT)
-
-/* Keyboard pins */
-ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
-ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
-ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
-ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
-ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
-GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
-
-/* Alternate functions GPIO definitions */
-/* Cr50 requires no pull-ups on UART pins. */
-ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */
-ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */
-ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */
-ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */
-ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* 1.8V I2C7 */
-ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
-ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* KB_BL_PWM */
-
-/* Power Switch Logic (PSL) inputs */
-ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
-ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
- GPIO01 = MECH_PWR_BTN_ODL
- GPIO02 = EC_RST_ODL */
diff --git a/board/yorp/led.c b/board/yorp/led.c
deleted file mode 100644
index 888b74fa12..0000000000
--- a/board/yorp/led.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2018 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.
- *
- * Power and battery LED control for Yorp
- */
-
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-
-#define LED_OFF_LVL 1
-#define LED_ON_LVL 0
-
-__override const int led_charge_lvl_1;
-
-__override const int led_charge_lvl_2 = 100;
-
-/* Yorp: Note there is only LED for charge / power */
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
- [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} },
- [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
- [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC},
- {LED_OFF, 3 * LED_ONE_SEC} },
- [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} },
- [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC},
- {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} },
- [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} },
-};
-BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES);
-
-const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- switch (color) {
- case EC_LED_COLOR_BLUE:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_ON_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- case EC_LED_COLOR_AMBER:
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_ON_LVL);
- break;
- default: /* LED_OFF and other unsupported colors */
- gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL);
- gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL);
- break;
- }
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- brightness_range[EC_LED_COLOR_BLUE] = 1;
- brightness_range[EC_LED_COLOR_AMBER] = 1;
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (brightness[EC_LED_COLOR_BLUE] != 0)
- led_set_color_battery(EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else
- led_set_color_battery(LED_OFF);
-
- return EC_SUCCESS;
-}
-
diff --git a/board/yorp/vif_override.xml b/board/yorp/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/yorp/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->
diff --git a/board/zed b/board/zed
deleted file mode 120000
index 7f4a914148..0000000000
--- a/board/zed
+++ /dev/null
@@ -1 +0,0 @@
-hammer \ No newline at end of file
diff --git a/board/zinger/board.c b/board/zinger/board.c
deleted file mode 100644
index b3784fde33..0000000000
--- a/board/zinger/board.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright 2014 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.
- */
-/* Tiny charger configuration */
-
-#include "common.h"
-#include "cros_version.h"
-#include "debug_printf.h"
-#include "ec_commands.h"
-#include "registers.h"
-#include "rsa.h"
-#include "rwsig.h"
-#include "sha256.h"
-#include "system.h"
-#include "task.h"
-#include "usb_pd.h"
-#include "util.h"
-
-/* Large 768-Byte buffer for RSA computation : could be re-use afterwards... */
-static uint32_t rsa_workbuf[3 * RSANUMWORDS];
-
-extern void pd_rx_handler(void);
-
-/* RW firmware reset vector */
-static uint32_t * const rw_rst =
- (uint32_t *)(CONFIG_PROGRAM_MEMORY_BASE+CONFIG_RW_MEM_OFF+4);
-
-/* External interrupt EXTINT7 for external comparator on PA7 */
-void pd_rx_interrupt(void)
-{
- /* trigger reception handling */
- pd_rx_handler();
-}
-DECLARE_IRQ(STM32_IRQ_EXTI4_15, pd_rx_interrupt, 1);
-
-static void jump_to_rw(void)
-{
- void (*jump_rw_rst)(void) = (void *)*rw_rst;
-
- debug_printf("Jump to RW\n");
- /* Disable interrupts */
- asm volatile("cpsid i");
- /* Call RW firmware reset vector */
- jump_rw_rst();
-}
-
-int is_ro_mode(void)
-{
- return (uint32_t)&jump_to_rw < (uint32_t)rw_rst;
-}
-
-static int check_rw_valid(void *rw_hash)
-{
- int good;
-
- /* Check if we have a RW firmware flashed */
- if (*rw_rst == 0xffffffff)
- return 0;
-
- good = rsa_verify((const struct rsa_public_key *)CONFIG_RO_PUBKEY_ADDR,
- (const uint8_t *)CONFIG_RW_SIG_ADDR,
- rw_hash, rsa_workbuf);
- if (!good) {
- debug_printf("RSA FAILED\n");
- pd_log_event(PD_EVENT_ACC_RW_FAIL, 0, 0, NULL);
- return 0;
- }
-
- return 1;
-}
-
-extern void pd_task(void *u);
-
-int main(void)
-{
- void *rw_hash;
-
- hardware_init();
- debug_printf("%s started\n",
- is_ro_mode() ? "RO" : "RW");
-
- /* the RO partition protection is not enabled : do it */
- if (!flash_physical_is_permanently_protected())
- flash_physical_permanent_protect();
-
- /*
- * calculate the hash of the RW partition
- *
- * Also pre-cache it so we can answer Discover Identity VDM
- * fast enough (in less than 30ms).
- */
- rw_hash = flash_hash_rw();
-
- /* Verify RW firmware and use it if valid */
- if (is_ro_mode() && check_rw_valid(rw_hash))
- jump_to_rw();
-
- /* background loop for PD events */
- pd_task(NULL);
-
- debug_printf("EXIT!\n");
- /* we should never reach that point */
- system_reset(0);
- return 0;
-}
diff --git a/board/zinger/board.h b/board/zinger/board.h
deleted file mode 100644
index 82fb29f29e..0000000000
--- a/board/zinger/board.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/*
- * Tiny charger configuration. This config is used for multiple boards
- * including zinger and minimuffin.
- */
-
-#ifndef __CROS_EC_BOARD_H
-#define __CROS_EC_BOARD_H
-
-/* 48 MHz SYSCLK clock frequency */
-#define CPU_CLOCK 48000000
-
-/* the UART console is on USART1 (PA9/PA10) */
-#define CONFIG_UART_CONSOLE 1
-
-#ifdef BOARD_ZINGER
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_ZINGER
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MINOR 1
-#elif defined(BOARD_MINIMUFFIN)
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_MINIMUFFIN
-#define CONFIG_USB_PD_HW_DEV_ID_BOARD_MINOR 0
-#else
-#error "Board does not have a USB-PD HW Device ID"
-#endif
-
-/* Optional features */
-#undef CONFIG_COMMON_GPIO
-#undef CONFIG_COMMON_PANIC_OUTPUT
-#undef CONFIG_COMMON_RUNTIME
-#undef CONFIG_COMMON_TIMER
-#define CONFIG_LOW_POWER_IDLE
-#undef CONFIG_CONSOLE_CMDHELP
-#undef CONFIG_DEBUG_ASSERT
-#undef CONFIG_DEBUG_EXCEPTIONS
-#undef CONFIG_DEBUG_STACK_OVERFLOW
-#undef CONFIG_FLASH_CROS
-#undef CONFIG_FLASH_PHYSICAL
-#undef CONFIG_FMAP
-/* Not using pstate but keep some space for the public key */
-#undef CONFIG_FW_PSTATE_SIZE
-#define CONFIG_FW_PSTATE_SIZE 544
-#define CONFIG_HIBERNATE
-#define CONFIG_HIBERNATE_WAKEUP_PINS STM32_PWR_CSR_EWUP1
-#define CONFIG_HW_CRC
-#undef CONFIG_LID_SWITCH
-#define CONFIG_LTO
-#define CONFIG_RSA
-#define CONFIG_RWSIG_TYPE_USBPD1
-#define CONFIG_SHA256
-#undef CONFIG_TASK_PROFILING
-#define CONFIG_USB_POWER_DELIVERY
-#define CONFIG_USB_PD_TCPMV1
-#define CONFIG_USB_PD_ALT_MODE
-#define CONFIG_USB_PD_CUSTOM_PDO
-#undef CONFIG_USB_PD_DUAL_ROLE
-#undef CONFIG_USB_PD_INTERNAL_COMP
-#define CONFIG_USB_PD_LOGGING
-#undef CONFIG_EVENT_LOG_SIZE
-#define CONFIG_EVENT_LOG_SIZE 256
-#define CONFIG_USB_PD_LOW_POWER_IDLE_WHEN_CONNECTED
-#define CONFIG_USB_PD_PORT_MAX_COUNT 1
-#define CONFIG_USB_PD_TCPC
-#define CONFIG_USB_PD_TCPM_STUB
-#undef CONFIG_USB_PD_RX_COMP_IRQ
-#define CONFIG_USB_PD_SIMPLE_DFP
-#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-#define CONFIG_USBC_BACKWARDS_COMPATIBLE_DFP
-#undef CONFIG_WATCHDOG_HELP
-#undef CONFIG_WATCHDOG_PERIOD_MS
-#define CONFIG_WATCHDOG_PERIOD_MS 2300
-
-/* debug printf flash footprinf is about 1400 bytes */
-#define CONFIG_DEBUG_PRINTF
-#define UARTN CONFIG_UART_CONSOLE
-#define UARTN_BASE STM32_USART_BASE(CONFIG_UART_CONSOLE)
-
-/* USB configuration */
-#if defined(BOARD_ZINGER)
-#define CONFIG_USB_PID 0x5012
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-#elif defined(BOARD_MINIMUFFIN)
-#define CONFIG_USB_PID 0x5013
-#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
-#endif
-
-#ifndef __ASSEMBLER__
-
-#include "common.h"
-
-/* No GPIO abstraction layer */
-
-enum adc_channel {
- ADC_CH_CC1_PD = 1,
- ADC_CH_A_SENSE = 2,
- ADC_CH_V_SENSE = 3,
- /* Number of ADC channels */
- ADC_CH_COUNT
-};
-/* captive cable : no CC2 */
-#define ADC_CH_CC2_PD ADC_CH_CC1_PD
-
-/* 3.0A Rp */
-#define PD_SRC_VNC (PD_SRC_3_0_VNC_MV * 4096 / 3300/* 12-bit ADC, 3.3V range */)
-
-/* delay necessary for the voltage transition on the power supply */
-#define PD_POWER_SUPPLY_TURN_ON_DELAY 50000 /* us */
-#define PD_POWER_SUPPLY_TURN_OFF_DELAY 50000 /* us */
-
-/* Initialize all useful registers */
-void hardware_init(void);
-
-/* last interrupt event */
-extern volatile uint32_t last_event;
-
-/* RW section flashing */
-int flash_erase_rw(void);
-int flash_write_rw(int offset, int size, const char *data);
-void flash_physical_permanent_protect(void);
-int flash_physical_is_permanently_protected(void);
-uint8_t *flash_hash_rw(void);
-int is_ro_mode(void);
-
-void __enter_hibernate(uint32_t seconds, uint32_t microseconds);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/zinger/build.mk b/board/zinger/build.mk
deleted file mode 100644
index 566cf34ce0..0000000000
--- a/board/zinger/build.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- makefile -*-
-# Copyright 2014 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.
-#
-# Board specific files build
-
-# the IC is STmicro STM32F031F6
-CHIP:=stm32
-CHIP_FAMILY:=stm32f0
-CHIP_VARIANT:=stm32f03x
-
-board-y=board.o hardware.o runtime.o usb_pd_policy.o
diff --git a/board/zinger/dev_key.pem b/board/zinger/dev_key.pem
deleted file mode 100644
index 6912b1f44e..0000000000
--- a/board/zinger/dev_key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEAvI3KBubudlZyX1oBNzWhQ+bNemHNVC5bO7TjJMTYTIJeKTaW
-IyHCFLF9ztpe8tT9Y+ga4VO9PEktP1WJpdU0ecG6VwK3951/cElosfnIPmIY7dVp
-PQtGtGS/Zih1nTMRV5hqtGa9SRg0i2kdph+quFXGQoMriTl0StmvNVtD51nRPGwc
-ZsG9+P0yfnyo7l3qXtKu5gBx/jDne2kl5/isPHkKfl9le+aNQaNjWeJyB4XDqHXM
-AjuW1G7FxoKlU4b363gQbE84Q80X1Qd9iAoRj/HLmDrx9h6FDFs+HbKDfCYtg2fK
-upEHr1bFUCxjc6AWuFglSq0yn5kyp1Bh5CD3PQIDAQABAoIBAQCNO2NlEhrx9sSK
-mX8pnHkjxECK97D16hcaPN6azvr5K/ldw25n+ERIfb4vb7AJEfKOn+9qce/ftSw4
-MVj+Jxm8TZjGzdmAlq87KzFJhkAwQghMNTszpzuZqZEX8xxN2E+YHilm4UHM+114
-Qw8bPMMCefUcIuY8ThXGbxFm1Oqi4YHHfqE6waRc0XXnLZOYr7NDCmhgyUG1dpAH
-kW0EYuJ1UNGaKE4LsWKvi0SYBQ48Mqh1XPkyiL/5I2whewsU2K4KEjynZp0+ULUG
-Dxfv3uCywsSsLuNR+EV5tTUp4eY1BLKULJQTMH3hyV1Xf1qEt2YN/3ZHsv7MPQzS
-sPIdN+LhAoGBAN6wbcxPnfkJROOVRUzE05IEEBalVULLo1cA1ss/7RjIeUvdRCAa
-12OxF4LSNzrSxcPCLsDnYq+j4HoS6KZ31c1TbaKcaUOPfRohrtGBZMxPgDTZgEBa
-JlsVtD2vzYvfUIpVQFz6Tnix3F29Gq5RaZdW5/qwOYyx0wtUrPf+pwZ5AoGBANjC
-MjgoGtcubR6chDhZcFU4vopdL7IEhMOZ1qxLFTQnINGXXDJpgVvdJRKdDV29DjNZ
-zF9wgmoiVm+uM/344bquUV7KHl5bEsZ+4KH6EA4y3IKVgxaxU7dpF6Q6L+rAuYp/
-j0N9XoVnS3aq30HkTkt+jQe0Hl6eEDOJqHEjolXlAoGBAJbMqs3cbIGkQT5May1d
-bFhI4Aw10dL1y5qzOsFQfOJ3f4xcPjHve0RLPDye1j/DU6EI8lg3WKDQPMbt3xY7
-uFDe2jNv7+iMVo9Hl/bPxM6GV69ySmNJqQetXu0XC/5YL1Y9/OP5rQIWj7/6uwKo
-pvSRKW6dv5sDIINfx/H4RGshAoGBAMIs7Tn7S1gaoev7QEMOdCAT7jUbF3/8pkZn
-SLUdqcgHiVHYquIKO7TknbJX+MJReygrOHcC3gFf81imkLLiQqyuPfyRSbUzFtW0
-kVzpG3rsuzdL4pvwjNNQFLqs2YIN1eipLtjBtWwCRcrvdYKcmDrvCj2tcEtIg7D3
-j2qTBni1AoGBAI58xPHxB0cNclhWiFHPNgk98GkwADWxfeTZduoyfpraSrpbseu8
-Cfgq1p5E2nM9jWx4jdKA/fxdD40bneupPi5w5SE2gmwtmQFR3TehI8gxNbEL2Gq6
-6ZkgxnGNxFaE6saHVDHKU8Q2bgzCI8JlOOtSjzKvbr+hsQMYHcEJxom6
------END RSA PRIVATE KEY-----
diff --git a/board/zinger/ec.irqlist b/board/zinger/ec.irqlist
deleted file mode 100644
index 690fa950fc..0000000000
--- a/board/zinger/ec.irqlist
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * List of enabled IRQ. To enable an IRQ, use ENABLE_IRQ(irq_num). Any
- * IRQ that is not listed here is disabled.
- */
-
-ENABLE_IRQ(STM32_IRQ_EXTI4_15)
-ENABLE_IRQ(STM32_IRQ_ADC_COMP)
-ENABLE_IRQ(STM32_IRQ_TIM2)
-ENABLE_IRQ(STM32_IRQ_RTC_WAKEUP)
diff --git a/board/zinger/ec.tasklist b/board/zinger/ec.tasklist
deleted file mode 100644
index 091eb90a22..0000000000
--- a/board/zinger/ec.tasklist
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/**
- * See CONFIG_TASK_LIST in config.h for details.
- */
-#define CONFIG_TASK_LIST
diff --git a/board/zinger/hardware.c b/board/zinger/hardware.c
deleted file mode 100644
index c19e6f0f6b..0000000000
--- a/board/zinger/hardware.c
+++ /dev/null
@@ -1,480 +0,0 @@
-/* Copyright 2014 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.
- */
-/* Hardware initialization and common functions */
-
-#include "adc.h"
-#include "common.h"
-#include "cpu.h"
-#include "registers.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "watchdog.h"
-
-static void system_init(void)
-{
- /* Enable access to RCC CSR register and RTC backup registers */
- STM32_PWR_CR |= BIT(8);
-
- /* switch on LSI */
- STM32_RCC_CSR |= BIT(0);
- /* Wait for LSI to be ready */
- while (!(STM32_RCC_CSR & BIT(1)))
- ;
- /* re-configure RTC if needed */
- if ((STM32_RCC_BDCR & 0x00018300) != 0x00008200) {
- /* the RTC settings are bad, we need to reset it */
- STM32_RCC_BDCR |= 0x00010000;
- /* Enable RTC and use LSI as clock source */
- STM32_RCC_BDCR = (STM32_RCC_BDCR & ~0x00018300) | 0x00008200;
- }
-}
-
-static void power_init(void)
-{
- /* enable SYSCFG, COMP, ADC, SPI1, USART1 */
- STM32_RCC_APB2ENR = 0x00005201;
- /* enable TIM2, TIM3, TIM14, PWR */
- STM32_RCC_APB1ENR = 0x10000103;
- /* enable DMA, SRAM, CRC, GPA, GPB, GPF */
- STM32_RCC_AHBENR = 0x460045;
-}
-
-/* GPIO setting helpers */
-#define OUT(n) (1 << ((n) * 2))
-#define AF(n) (2 << ((n) * 2))
-#define ANALOG(n) (3 << ((n) * 2))
-#define HIGH(n) (1 << (n))
-#define ODR(n) (1 << (n))
-#define HISPEED(n) (3 << ((n) * 2))
-#define AFx(n, x) (x << (((n) % 8) * 4))
-
-static void pins_init(void)
-{
- /* Pin usage:
- * PA0 (OUT - GPIO) : Wakeup on Vnc / Threshold
- * PA1 (ANALOG - ADC_IN1) : CC sense
- * PA2 (ANALOG - ADC_IN2) : Current sense
- * PA3 (ANALOG - ADC_IN3) : Voltage sense
- * PA4 (OUT - OD GPIO) : PD TX enable
- * PA5 (AF0 - SPI1_SCK) : TX clock in
- * PA6 (AF0 - SPI1_MISO) : PD TX
- * PA7 (AF5 - TIM3_CH2) : PD RX
- * PA9 (AF1 - UART1_TX) : [DEBUG] UART TX
- * PA10 (AF1 - UART1_RX) : [DEBUG] UART RX
- * PA13 (OUT - GPIO) : voltage select[0]
- * PA14 (OUT - GPIO) : voltage select[1]
- * PB1 (AF0 - TIM14_CH1) : TX clock out
- * PF0 (OUT - GPIO) : LM5050 FET driver off
- * PF1 (OUT - GPIO) : discharge FET
- */
-
- /*
- * Clear power control/status register to disable wakeup
- * pin A0, so that we can change it to an output.
- */
- STM32_PWR_CSR = 0;
- STM32_PWR_CR |= 0xc;
-
- STM32_GPIO_ODR(GPIO_A) = HIGH(0) | HIGH(4);
- STM32_GPIO_AFRL(GPIO_A) = AFx(7, 1);
- STM32_GPIO_AFRH(GPIO_A) = AFx(9, 1) | AFx(10, 1);
- STM32_GPIO_OTYPER(GPIO_A) = ODR(4);
- STM32_GPIO_OSPEEDR(GPIO_A) = HISPEED(5) | HISPEED(6) | HISPEED(7);
- STM32_GPIO_MODER(GPIO_A) = OUT(0) | ANALOG(1) | ANALOG(2) | ANALOG(3)
- | OUT(4) | AF(5) /*| AF(6)*/ | AF(7) | AF(9)
- | AF(10) | OUT(13) | OUT(14);
- /* set PF0 / PF1 as output */
- STM32_GPIO_ODR(GPIO_F) = 0;
- STM32_GPIO_MODER(GPIO_F) = OUT(0) | OUT(1);
- STM32_GPIO_OTYPER(GPIO_F) = 0;
-
- /* Set PB1 as AF0 (TIM14_CH1) */
- STM32_GPIO_OSPEEDR(GPIO_B) = HISPEED(1);
- STM32_GPIO_MODER(GPIO_B) = AF(1);
-}
-
-static void adc_init(void)
-{
- /* Only do the calibration if the ADC is off */
- if (!(STM32_ADC_CR & 1)) {
- /* ADC calibration */
- STM32_ADC_CR = STM32_ADC_CR_ADCAL; /* set ADCAL = 1, ADC off */
- /* wait for the end of calibration */
- while (STM32_ADC_CR & STM32_ADC_CR_ADCAL)
- ;
- }
- /* Single conversion, right aligned, 12-bit */
- STM32_ADC_CFGR1 = BIT(12); /* BIT(15) => AUTOOFF */;
- /* clock is ADCCLK (ADEN must be off when writing this reg) */
- STM32_ADC_CFGR2 = 0;
- /* Sampling time : 71.5 ADC clock cycles, about 5us */
- STM32_ADC_SMPR = 6;
-
- /*
- * ADC enable (note: takes 4 ADC clocks between end of calibration
- * and setting ADEN).
- */
- STM32_ADC_CR = STM32_ADC_CR_ADEN;
- while (!(STM32_ADC_ISR & STM32_ADC_ISR_ADRDY))
- STM32_ADC_CR = STM32_ADC_CR_ADEN;
- /* Disable interrupts */
- STM32_ADC_IER = 0;
- /* Analog watchdog IRQ */
- task_enable_irq(STM32_IRQ_ADC_COMP);
-}
-
-static void uart_init(void)
-{
- /* set baudrate */
- STM32_USART_BRR(UARTN_BASE) =
- DIV_ROUND_NEAREST(CPU_CLOCK, CONFIG_UART_BAUD_RATE);
- /* UART enabled, 8 Data bits, oversampling x16, no parity */
- STM32_USART_CR1(UARTN_BASE) =
- STM32_USART_CR1_UE | STM32_USART_CR1_TE | STM32_USART_CR1_RE;
- /* 1 stop bit, no fancy stuff */
- STM32_USART_CR2(UARTN_BASE) = 0x0000;
- /* DMA disabled, special modes disabled, error interrupt disabled */
- STM32_USART_CR3(UARTN_BASE) = 0x0000;
-}
-
-static void timers_init(void)
-{
- /* TIM2 is a 32-bit free running counter with 1Mhz frequency */
- STM32_TIM_CR2(2) = 0x0000;
- STM32_TIM32_ARR(2) = 0xFFFFFFFF;
- STM32_TIM_PSC(2) = CPU_CLOCK / 1000000 - 1;
- STM32_TIM_EGR(2) = 0x0001; /* Reload the pre-scaler */
- STM32_TIM_CR1(2) = 1;
- STM32_TIM32_CNT(2) = 0x00000000;
- STM32_TIM_SR(2) = 0; /* Clear pending interrupts */
- STM32_TIM_DIER(2) = 1; /* Overflow interrupt */
- task_enable_irq(STM32_IRQ_TIM2);
-}
-
-static void irq_init(void)
-{
- /* clear all pending interrupts */
- CPU_NVIC_UNPEND(0) = 0xffffffff;
- /* enable global interrupts */
- asm("cpsie i");
-}
-
-extern void runtime_init(void);
-void hardware_init(void)
-{
- uint32_t raw_cause = STM32_RCC_CSR;
- uint32_t pwr_status = STM32_PWR_CSR;
-
- power_init();
-
- /* Clear the hardware reset cause by setting the RMVF bit */
- STM32_RCC_CSR |= BIT(24);
- /* Clear SBF in PWR_CSR */
- STM32_PWR_CR |= BIT(3);
-
- /*
- * WORKAROUND: as we cannot de-activate the watchdog during
- * long hibernation, we are woken-up once by the watchdog and
- * go back to hibernate if we detect that condition, without
- * watchdog initialized this time.
- * The RTC deadline (if any) is already set.
- */
- if ((pwr_status & 0x2) && (raw_cause & 0x60000000))
- __enter_hibernate(0, 0);
-
- system_init();
- runtime_init(); /* sets clock */
- pins_init();
- uart_init();
- timers_init();
- watchdog_init();
- adc_init();
- irq_init();
-}
-
-static int watchdog_ain_id, watchdog_ain_high, watchdog_ain_low;
-
-static int adc_enable_last_watchdog(void)
-{
- return adc_enable_watchdog(watchdog_ain_id, watchdog_ain_high,
- watchdog_ain_low);
-}
-
-static inline int adc_watchdog_enabled(void)
-{
- return STM32_ADC_CFGR1 & BIT(23);
-}
-
-int adc_read_channel(enum adc_channel ch)
-{
- int value;
- int watchdog_enabled = adc_watchdog_enabled();
-
- if (watchdog_enabled)
- adc_disable_watchdog();
-
- /* Select channel to convert */
- STM32_ADC_CHSELR = 1 << ch;
- /* Clear flags */
- STM32_ADC_ISR = 0x8e;
- /* Start conversion */
- STM32_ADC_CR |= BIT(2); /* ADSTART */
- /* Wait for end of conversion */
- while (!(STM32_ADC_ISR & BIT(2)))
- ;
- /* read converted value */
- value = STM32_ADC_DR;
-
- if (watchdog_enabled)
- adc_enable_last_watchdog();
-
- return value;
-}
-
-int adc_enable_watchdog(int ch, int high, int low)
-{
- /* store last watchdog setup */
- watchdog_ain_id = ch;
- watchdog_ain_high = high;
- watchdog_ain_low = low;
-
- /* Set thresholds */
- STM32_ADC_TR = ((high & 0xfff) << 16) | (low & 0xfff);
- /* Select channel to convert */
- STM32_ADC_CHSELR = 1 << ch;
- /* Clear flags */
- STM32_ADC_ISR = 0x8e;
- /* Set Watchdog enable bit on a single channel / continuous mode */
- STM32_ADC_CFGR1 = (ch << 26) | BIT(23) | BIT(22)
- | BIT(13) | BIT(12);
- /* Enable watchdog interrupt */
- STM32_ADC_IER = BIT(7);
- /* Start continuous conversion */
- STM32_ADC_CR |= BIT(2); /* ADSTART */
-
- return EC_SUCCESS;
-}
-
-int adc_disable_watchdog(void)
-{
- /* Stop on-going conversion */
- STM32_ADC_CR |= BIT(4); /* ADSTP */
- /* Wait for conversion to stop */
- while (STM32_ADC_CR & BIT(4))
- ;
- /* CONT=0 -> continuous mode off / Clear Watchdog enable */
- STM32_ADC_CFGR1 = BIT(12);
- /* Disable interrupt */
- STM32_ADC_IER = 0;
- /* Clear flags */
- STM32_ADC_ISR = 0x8e;
-
- return EC_SUCCESS;
-}
-
-/* ---- flash handling ---- */
-
-/*
- * Approximate number of CPU cycles per iteration of the loop when polling
- * the flash status
- */
-#define CYCLE_PER_FLASH_LOOP 10
-
-/* Flash page programming timeout. This is 2x the datasheet max. */
-#define FLASH_TIMEOUT_US 16000
-#define FLASH_TIMEOUT_LOOP \
- (FLASH_TIMEOUT_US * (CPU_CLOCK / SECOND) / CYCLE_PER_FLASH_LOOP)
-
-/* Flash unlocking keys */
-#define KEY1 0x45670123
-#define KEY2 0xCDEF89AB
-
-/* Lock bits for FLASH_CR register */
-#define PG BIT(0)
-#define PER BIT(1)
-#define OPTPG BIT(4)
-#define OPTER BIT(5)
-#define STRT BIT(6)
-#define CR_LOCK BIT(7)
-#define OPTWRE BIT(9)
-
-int crec_flash_physical_write(int offset, int size, const char *data)
-{
- uint16_t *address = (uint16_t *)(CONFIG_PROGRAM_MEMORY_BASE + offset);
- int res = EC_SUCCESS;
- int i;
-
- if ((uint32_t)address >
- CONFIG_PROGRAM_MEMORY_BASE + CONFIG_FLASH_SIZE_BYTES)
- return EC_ERROR_INVAL;
-
- /* unlock CR if needed */
- if (STM32_FLASH_CR & CR_LOCK) {
- STM32_FLASH_KEYR = KEY1;
- STM32_FLASH_KEYR = KEY2;
- }
-
- /* Clear previous error status */
- STM32_FLASH_SR = 0x34;
- /* set the ProGram bit */
- STM32_FLASH_CR |= PG;
-
- for (; size > 0; size -= sizeof(uint16_t)) {
- /* wait to be ready */
- for (i = 0; (STM32_FLASH_SR & 1) && (i < FLASH_TIMEOUT_LOOP);
- i++)
- ;
- /* write the half word */
- *address++ = data[0] + (data[1] << 8);
- data += 2;
- /* Wait for writes to complete */
- for (i = 0; (STM32_FLASH_SR & 1) && (i < FLASH_TIMEOUT_LOOP);
- i++)
- ;
- if (i == FLASH_TIMEOUT_LOOP) {
- res = EC_ERROR_TIMEOUT;
- goto exit_wr;
- }
- /* Check for error conditions - erase failed, voltage error,
- * protection error */
- if (STM32_FLASH_SR & 0x14) {
- res = EC_ERROR_UNKNOWN;
- goto exit_wr;
- }
- }
-
-exit_wr:
- STM32_FLASH_CR &= ~PG;
- STM32_FLASH_CR = CR_LOCK;
-
- return res;
-}
-
-int crec_flash_physical_erase(int offset, int size)
-{
- int res = EC_SUCCESS;
-
- /* unlock CR if needed */
- if (STM32_FLASH_CR & CR_LOCK) {
- STM32_FLASH_KEYR = KEY1;
- STM32_FLASH_KEYR = KEY2;
- }
-
- /* Clear previous error status */
- STM32_FLASH_SR = 0x34;
- /* set PER bit */
- STM32_FLASH_CR |= PER;
-
- for (; size > 0; size -= CONFIG_FLASH_ERASE_SIZE,
- offset += CONFIG_FLASH_ERASE_SIZE) {
- int i;
- /* select page to erase */
- STM32_FLASH_AR = CONFIG_PROGRAM_MEMORY_BASE + offset;
- /* set STRT bit : start erase */
- STM32_FLASH_CR |= STRT;
-
-
- /* Wait for erase to complete */
- for (i = 0; (STM32_FLASH_SR & 1) && (i < FLASH_TIMEOUT_LOOP);
- i++)
- ;
- if (i == FLASH_TIMEOUT_LOOP) {
- res = EC_ERROR_TIMEOUT;
- goto exit_er;
- }
-
- /*
- * Check for error conditions - erase failed, voltage error,
- * protection error
- */
- if (STM32_FLASH_SR & 0x14) {
- res = EC_ERROR_UNKNOWN;
- goto exit_er;
- }
- }
-
-exit_er:
- STM32_FLASH_CR &= ~PER;
- STM32_FLASH_CR = CR_LOCK;
-
- return res;
-}
-
-static void unlock_erase_optb(void)
-{
- int i;
-
- /* Clear previous error status */
- STM32_FLASH_SR = 0x34;
-
- /* wait to be ready */
- for (i = 0; (STM32_FLASH_SR & 1) && (i < FLASH_TIMEOUT_LOOP); i++)
- ;
-
- /* Unlock the option bytes access */
- if (STM32_FLASH_CR & CR_LOCK) {
- STM32_FLASH_KEYR = KEY1;
- STM32_FLASH_KEYR = KEY2;
- }
- if (!(STM32_FLASH_CR & OPTWRE)) {
- STM32_FLASH_OPTKEYR = KEY1;
- STM32_FLASH_OPTKEYR = KEY2;
- }
- /* Must be set in 2 separate lines. */
- STM32_FLASH_CR |= OPTER;
- STM32_FLASH_CR |= STRT;
-
- /* wait to be ready */
- for (i = 0; (STM32_FLASH_SR & 1) && (i < FLASH_TIMEOUT_LOOP); i++)
- ;
- /* reset erasing bits */
- STM32_FLASH_CR = OPTWRE;
-}
-
-
-static void write_optb(int byte, uint8_t value)
-{
- volatile int16_t *hword = (uint16_t *)(STM32_OPTB_BASE + byte);
- int i;
-
- /* Clear previous error status */
- STM32_FLASH_SR = 0x34;
-
- /* set OPTPG bit */
- STM32_FLASH_CR |= OPTPG;
-
- *hword = ((~value) << STM32_OPTB_COMPL_SHIFT) | value;
-
- /* reset OPTPG bit */
- STM32_FLASH_CR = OPTWRE;
-
- /* wait to be ready */
- for (i = 0; (STM32_FLASH_SR & 1) && (i < FLASH_TIMEOUT_LOOP); i++)
- ;
-}
-
-void flash_physical_permanent_protect(void)
-{
- unlock_erase_optb();
- /* protect the 16KB RO partition against write/erase in WRP0 */
- write_optb(8, 0xF0);
- /* Set RDP to level 1 to prevent disabling the protection */
- write_optb(0, 0x11);
- /* Reset by using OBL_LAUNCH to take changes into account */
- asm volatile("cpsid i");
- STM32_FLASH_CR |= FLASH_CR_OBL_LAUNCH;
- /* Spin and wait for reboot; should never return */
- while (1)
- ;
-}
-
-int flash_physical_is_permanently_protected(void)
-{
- /* if RDP is still at level 0, the flash protection is not in place */
- return (STM32_FLASH_OBR & STM32_FLASH_OBR_RDP_MASK) &&
- /* the low 16KB (RO partition) are write-protected */
- !(STM32_FLASH_WRPR & 0xF);
-}
diff --git a/board/zinger/runtime.c b/board/zinger/runtime.c
deleted file mode 100644
index 5d17bfda04..0000000000
--- a/board/zinger/runtime.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Copyright 2014 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.
- */
-/* tiny substitute of the runtime layer */
-
-#include "chip/stm32/clock-f.h"
-#include "clock.h"
-#include "common.h"
-#include "cpu.h"
-#include "debug_printf.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-
-volatile uint32_t last_event;
-uint32_t sleep_mask;
-
-/* High word of the 64-bit timestamp counter */
-static volatile uint32_t clksrc_high;
-
-timestamp_t get_time(void)
-{
- timestamp_t t;
-
- t.le.lo = STM32_TIM32_CNT(2);
- t.le.hi = clksrc_high;
- return t;
-}
-
-void force_time(timestamp_t ts)
-{
- STM32_TIM32_CNT(2) = ts.le.lo;
-}
-
-void udelay(unsigned us)
-{
- unsigned t0 = STM32_TIM32_CNT(2);
- while ((STM32_TIM32_CNT(2) - t0) < us)
- ;
-}
-
-void task_enable_irq(int irq)
-{
- CPU_NVIC_EN(0) = 1 << irq;
-}
-
-void task_disable_irq(int irq)
-{
- CPU_NVIC_DIS(0) = 1 << irq;
-}
-
-void task_clear_pending_irq(int irq)
-{
- CPU_NVIC_UNPEND(0) = 1 << irq;
-}
-
-void interrupt_disable(void)
-{
- asm("cpsid i");
-}
-
-void interrupt_enable(void)
-{
- asm("cpsie i");
-}
-
-uint32_t task_set_event(task_id_t tskid, uint32_t event)
-{
- last_event = event;
-
- return 0;
-}
-
-void tim2_interrupt(void)
-{
- uint32_t stat = STM32_TIM_SR(2);
-
- if (stat & 2) { /* Event match */
- /* disable match interrupt but keep update interrupt */
- STM32_TIM_DIER(2) = 1;
- last_event = TASK_EVENT_TIMER;
- }
- if (stat & 1) /* Counter overflow */
- clksrc_high++;
-
- STM32_TIM_SR(2) = ~stat & 3; /* clear interrupt flags */
- task_clear_pending_irq(STM32_IRQ_TIM2);
-}
-DECLARE_IRQ(STM32_IRQ_TIM2, tim2_interrupt, 1);
-
-static void zinger_config_hispeed_clock(void)
-{
- /* Ensure that HSI8 is ON */
- if (!(STM32_RCC_CR & BIT(1))) {
- /* Enable HSI */
- STM32_RCC_CR |= BIT(0);
- /* Wait for HSI to be ready */
- while (!(STM32_RCC_CR & BIT(1)))
- ;
- }
- /* PLLSRC = HSI, PLLMUL = x12 (x HSI/2) = 48Mhz */
- STM32_RCC_CFGR = 0x00288000;
- /* Enable PLL */
- STM32_RCC_CR |= BIT(24);
- /* Wait for PLL to be ready */
- while (!(STM32_RCC_CR & BIT(25)))
- ;
-
- /* switch SYSCLK to PLL */
- STM32_RCC_CFGR = 0x00288002;
- /* wait until the PLL is the clock source */
- while ((STM32_RCC_CFGR & 0xc) != 0x8)
- ;
-}
-
-void runtime_init(void)
-{
- /*
- * put 1 Wait-State for flash access to ensure proper reads at 48Mhz
- * and enable prefetch buffer.
- */
- STM32_FLASH_ACR = STM32_FLASH_ACR_LATENCY | STM32_FLASH_ACR_PRFTEN;
-
- config_hispeed_clock();
-
- rtc_init();
-}
-
-/*
- * minimum delay to enter stop mode
- * STOP_MODE_LATENCY: max time to wake up from STOP mode with regulator in low
- * power mode is 5 us + PLL locking time is 200us.
- * SET_RTC_MATCH_DELAY: max time to set RTC match alarm. if we set the alarm
- * in the past, it will never wake up and cause a watchdog.
- */
-#define STOP_MODE_LATENCY 300 /* us */
-#define SET_RTC_MATCH_DELAY 200 /* us */
-#define MAX_LATENCY (STOP_MODE_LATENCY + SET_RTC_MATCH_DELAY)
-
-uint32_t task_wait_event(int timeout_us)
-{
- uint32_t evt;
- timestamp_t t0, t1;
- struct rtc_time_reg rtc0, rtc1;
-
- t1.val = get_time().val + timeout_us;
-
- asm volatile("cpsid i");
- /* the event already happened */
- if (last_event || !timeout_us) {
- evt = last_event;
- last_event = 0;
-
- asm volatile("cpsie i ; isb");
- return evt;
- }
-
- /* loop until an event is triggered */
- while (1) {
- /* set timeout on timer */
- if (timeout_us < 0) {
- asm volatile ("wfi");
- } else if (timeout_us <= MAX_LATENCY ||
- t1.le.lo - timeout_us > t1.le.lo + MAX_LATENCY ||
- !DEEP_SLEEP_ALLOWED) {
- STM32_TIM32_CCR1(2) = STM32_TIM32_CNT(2) + timeout_us;
- STM32_TIM_DIER(2) = 3; /* match interrupt and UIE */
-
- asm volatile("wfi");
-
- STM32_TIM_DIER(2) = 1; /* disable match, keep UIE */
- } else {
- t0 = get_time();
-
- /* set deep sleep bit */
- CPU_SCB_SYSCTRL |= 0x4;
-
- set_rtc_alarm(0, timeout_us - STOP_MODE_LATENCY,
- &rtc0, 0);
-
- asm volatile("wfi");
-
- CPU_SCB_SYSCTRL &= ~0x4;
-
- zinger_config_hispeed_clock();
-
- /* fast forward timer according to RTC counter */
- reset_rtc_alarm(&rtc1);
- t0.val += get_rtc_diff(&rtc0, &rtc1);
- force_time(t0);
- }
-
- asm volatile("cpsie i ; isb");
- /* note: interrupt that woke us up will run here */
- asm volatile("cpsid i");
-
- t0 = get_time();
- /* check for timeout if timeout was set */
- if (timeout_us >= 0 && t0.val >= t1.val)
- last_event = TASK_EVENT_TIMER;
- /* break from loop when event has triggered */
- if (last_event)
- break;
- /* recalculate timeout if timeout was set */
- if (timeout_us >= 0)
- timeout_us = t1.val - t0.val;
- }
-
- evt = last_event;
- last_event = 0;
- asm volatile("cpsie i ; isb");
- return evt;
-}
-
-uint32_t task_wait_event_mask(uint32_t event_mask, int timeout_us)
-{
- uint32_t evt = 0;
-
- /* Add the timer event to the mask so we can indicate a timeout */
- event_mask |= TASK_EVENT_TIMER;
-
- /* Wait until an event matching event_mask */
- do {
- evt |= task_wait_event(timeout_us);
- } while (!(evt & event_mask));
-
- /* Restore any pending events not in the event_mask */
- if (evt & ~event_mask)
- task_set_event(0, evt & ~event_mask);
-
- return evt & event_mask;
-}
-
-noreturn
-void __keep cpu_reset(void)
-{
- /* Disable interrupts */
- asm volatile("cpsid i");
- /* reboot the CPU */
- CPU_NVIC_APINT = 0x05fa0004;
- /* Spin and wait for reboot; should never return */
- while (1)
- ;
-}
-
-void system_reset(int flags)
-{
- cpu_reset();
-}
-/**
- * Default exception handler, which reports a panic.
- *
- * Declare this as a naked call so we can extract the real LR and SP.
- */
-void exception_panic(void) __attribute__((naked));
-void exception_panic(void)
-{
-#ifdef CONFIG_DEBUG_PRINTF
- asm volatile(
- "mov r0, %0\n"
- /* TODO: Should this be SP_process instead of SP_main? */
- "mov r3, sp\n"
- "ldr r1, [r3, #6*4]\n" /* retrieve exception PC */
- "ldr r2, [r3, #5*4]\n" /* retrieve exception LR */
- "bl debug_printf\n"
- : : "r"("PANIC PC=%08x LR=%08x\n\n"));
-#endif
- cpu_reset();
-}
-
-void panic_reboot(void)
-{ /* for div / 0 */
- debug_printf("DIV0 PANIC\n\n");
- cpu_reset();
-}
-
-enum ec_image system_get_image_copy(void)
-{
- if (is_ro_mode())
- return EC_IMAGE_RO;
- else
- return EC_IMAGE_RW;
-}
-
-/* --- stubs --- */
-void __hw_timer_enable_clock(int n, int enable)
-{ /* Done in hardware init */ }
-
-void usleep(unsigned us)
-{ /* Used only as a workaround */ }
diff --git a/board/zinger/usb_pd_config.h b/board/zinger/usb_pd_config.h
deleted file mode 100644
index d0797b3d80..0000000000
--- a/board/zinger/usb_pd_config.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 2014 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.
- */
-
-/* USB Power delivery board configuration */
-
-#ifndef __CROS_EC_USB_PD_CONFIG_H
-#define __CROS_EC_USB_PD_CONFIG_H
-
-/* Timer selection for baseband PD communication */
-#define TIM_CLOCK_PD_TX_C0 14
-#define TIM_CLOCK_PD_RX_C0 3
-
-#define TIM_CLOCK_PD_TX(p) TIM_CLOCK_PD_TX_C0
-#define TIM_CLOCK_PD_RX(p) TIM_CLOCK_PD_RX_C0
-
-/* Timer channel */
-#define TIM_RX_CCR_C0 1
-#define TIM_TX_CCR_C0 1
-
-/* RX timer capture/compare register */
-#define TIM_CCR_C0 (&STM32_TIM_CCRx(TIM_CLOCK_PD_RX_C0, TIM_RX_CCR_C0))
-#define TIM_RX_CCR_REG(p) TIM_CCR_C0
-
-/* TX and RX timer register */
-#define TIM_REG_TX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_TX_C0))
-#define TIM_REG_RX_C0 (STM32_TIM_BASE(TIM_CLOCK_PD_RX_C0))
-#define TIM_REG_TX(p) TIM_REG_TX_C0
-#define TIM_REG_RX(p) TIM_REG_RX_C0
-
-/* use the hardware accelerator for CRC */
-#define CONFIG_HW_CRC
-
-/* TX is using SPI1 on PA4-6 */
-#define SPI_REGS(p) STM32_SPI1_REGS
-
-static inline void spi_enable_clock(int port)
-{
- /* Already done in hardware_init() */
-}
-
-#define DMAC_SPI_TX(p) STM32_DMAC_CH3
-
-/* RX is on TIM3 CH1 connected to TIM3 CH2 pin (PA7, not internal COMP) */
-#define TIM_TX_CCR_IDX(p) TIM_TX_CCR_C0
-#define TIM_RX_CCR_IDX(p) TIM_RX_CCR_C0
-/* connect TIM3 CH1 to TIM3_CH2 input */
-#define TIM_CCR_CS 2
-#define EXTI_COMP_MASK(p) BIT(7)
-#define IRQ_COMP STM32_IRQ_EXTI4_15
-/* the RX is inverted, triggers on rising edge */
-#define EXTI_XTSR STM32_EXTI_RTSR
-
-#define DMAC_TIM_RX(p) STM32_DMAC_CH4
-
-/* the pins used for communication need to be hi-speed */
-static inline void pd_set_pins_speed(int port)
-{
- /* Already done in hardware_init() */
-}
-
-/* Reset SPI peripheral used for TX */
-static inline void pd_tx_spi_reset(int port)
-{
- /* Reset SPI1 */
- STM32_RCC_APB2RSTR |= BIT(12);
- STM32_RCC_APB2RSTR &= ~BIT(12);
-}
-
-/* Drive the CC line from the TX block */
-static inline void pd_tx_enable(int port, int polarity)
-{
- /* Drive SPI MISO on PA6 by putting it in AF mode */
- STM32_GPIO_MODER(GPIO_A) |= 0x2 << (2*6);
- /* Drive TX GND on PA4 */
- STM32_GPIO_BSRR(GPIO_A) = 1 << (4 + 16 /* Reset */);
-}
-
-/* Put the TX driver in Hi-Z state */
-static inline void pd_tx_disable(int port, int polarity)
-{
- /* Put TX GND (PA4) in Hi-Z state */
- STM32_GPIO_BSRR(GPIO_A) = BIT(4) /* Set */;
- /* Put SPI MISO (PA6) in Hi-Z by putting it in input mode */
- STM32_GPIO_MODER(GPIO_A) &= ~(0x3 << (2*6));
-}
-
-/* we know the plug polarity, do the right configuration */
-static inline void pd_select_polarity(int port, int polarity)
-{
- /* captive cable : no polarity */
-}
-
-/* Initialize pins used for TX and put them in Hi-Z */
-static inline void pd_tx_init(void)
-{
- /* Already done in hardware_init() */
-}
-
-static inline void pd_config_init(int port, uint8_t power_role) {}
-
-static inline int pd_adc_read(int port, int cc)
-{
- /* only one CC line, assume other one is always high */
- return (cc == 0) ? adc_read_channel(ADC_CH_CC1_PD) : 4096;
-}
-
-#endif /* __CROS_EC_USB_PD_CONFIG_H */
diff --git a/board/zinger/usb_pd_policy.c b/board/zinger/usb_pd_policy.c
deleted file mode 100644
index f47789e063..0000000000
--- a/board/zinger/usb_pd_policy.c
+++ /dev/null
@@ -1,565 +0,0 @@
-/* Copyright 2014 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.
- */
-
-#include "adc.h"
-#include "common.h"
-#include "console.h"
-#include "debug_printf.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "registers.h"
-#include "system.h"
-#include "task.h"
-#include "timer.h"
-#include "util.h"
-#include "usb_pd.h"
-
-/* ------------------------- Power supply control ------------------------ */
-
-/* GPIO level setting helpers through BSRR register */
-#define GPIO_SET(n) (1 << (n))
-#define GPIO_RESET(n) (1 << ((n) + 16))
-
-/* Output voltage selection */
-enum volt {
- VO_5V = GPIO_RESET(13) | GPIO_RESET(14),
- VO_12V = GPIO_SET(13) | GPIO_RESET(14),
- VO_13V = GPIO_RESET(13) | GPIO_SET(14),
- VO_20V = GPIO_SET(13) | GPIO_SET(14),
-};
-
-static inline void set_output_voltage(enum volt v)
-{
- /* set voltage_select on PA13/PA14 */
- STM32_GPIO_BSRR(GPIO_A) = v;
-}
-
-static inline void output_enable(void)
-{
- /* GPF0 (enable OR'ing FETs) = 1 */
- STM32_GPIO_BSRR(GPIO_F) = GPIO_SET(0);
-}
-
-static inline void output_disable(void)
-{
- /* GPF0 (disable OR'ing FETs) = 0 */
- STM32_GPIO_BSRR(GPIO_F) = GPIO_RESET(0);
-}
-
-static inline int output_is_enabled(void)
-{
- /* GPF0 = enable output FET */
- return STM32_GPIO_ODR(GPIO_F) & 1;
-}
-
-/* ----- fault conditions ----- */
-
-enum faults {
- FAULT_OK = 0,
- FAULT_OCP, /* Over-Current Protection */
- FAULT_FAST_OCP, /* Over-Current Protection for interrupt context */
- FAULT_OVP, /* Under or Over-Voltage Protection */
- FAULT_DISCHARGE, /* Discharge was ineffective */
-};
-
-/* current fault condition */
-static enum faults fault;
-/* expiration date of the last fault condition */
-static timestamp_t fault_deadline;
-
-/* ADC in 12-bit mode */
-#define ADC_SCALE BIT(12)
-/* ADC power supply : VDDA = 3.3V */
-#define VDDA_MV 3300
-/* Current sense resistor : 5 milliOhm */
-#define R_SENSE 5
-/* VBUS voltage is measured through 10k / 100k voltage divider = /11 */
-#define VOLT_DIV ((10+100)/10)
-/* The current sensing op-amp has a x100 gain */
-#define CURR_GAIN 100
-/* convert VBUS voltage in raw ADC value */
-#define VBUS_MV(mv) ((mv)*ADC_SCALE/VOLT_DIV/VDDA_MV)
-/* convert VBUS current in raw ADC value */
-#define VBUS_MA(ma) ((ma)*ADC_SCALE*R_SENSE/1000*CURR_GAIN/VDDA_MV)
-/* convert raw ADC value to mA */
-#define ADC_TO_CURR_MA(vbus) ((vbus)*1000/(ADC_SCALE*R_SENSE)*VDDA_MV/CURR_GAIN)
-/* convert raw ADC value to mV */
-#define ADC_TO_VOLT_MV(vbus) ((vbus)*VOLT_DIV*VDDA_MV/ADC_SCALE)
-
-/* Max current */
-#if defined(BOARD_ZINGER)
-#define RATED_CURRENT 3000
-#elif defined(BOARD_MINIMUFFIN)
-#define RATED_CURRENT 2250
-#endif
-
-/* Max current : 20% over rated current */
-#define MAX_CURRENT VBUS_MA(RATED_CURRENT * 6/5)
-/* Fast short circuit protection : 50% over rated current */
-#define MAX_CURRENT_FAST VBUS_MA(RATED_CURRENT * 3/2)
-/* reset over-current after 1 second */
-#define OCP_TIMEOUT SECOND
-
-/* Threshold below which we stop fast OCP to save power */
-#define SINK_IDLE_CURRENT VBUS_MA(500 /* mA */)
-
-/* Under-voltage limit is 0.8x Vnom */
-#define UVP_MV(mv) VBUS_MV((mv) * 8 / 10)
-/* Over-voltage limit is 1.2x Vnom */
-#define OVP_MV(mv) VBUS_MV((mv) * 12 / 10)
-/* Over-voltage recovery threshold is 1.1x Vnom */
-#define OVP_REC_MV(mv) VBUS_MV((mv) * 11 / 10)
-
-/* Maximum discharging delay */
-#define DISCHARGE_TIMEOUT (275*MSEC)
-/* Voltage overshoot below the OVP threshold for discharging to avoid OVP */
-#define DISCHARGE_OVERSHOOT_MV VBUS_MV(200)
-
-/* Time to wait after last RX edge interrupt before allowing deep sleep */
-#define PD_RX_SLEEP_TIMEOUT (100*MSEC)
-
-/* ----- output voltage discharging ----- */
-
-/* expiration date of the discharge */
-static timestamp_t discharge_deadline;
-
-static inline void discharge_enable(void)
-{
- STM32_GPIO_BSRR(GPIO_F) = GPIO_SET(1);
-}
-
-static inline void discharge_disable(void)
-{
- STM32_GPIO_BSRR(GPIO_F) = GPIO_RESET(1);
- adc_disable_watchdog();
-}
-
-static inline int discharge_is_enabled(void)
-{
- /* GPF1 = enable discharge FET */
- return STM32_GPIO_ODR(GPIO_F) & 2;
-}
-
-static void discharge_voltage(int target_volt)
-{
- discharge_enable();
- discharge_deadline.val = get_time().val + DISCHARGE_TIMEOUT;
- /* Monitor VBUS voltage */
- target_volt -= DISCHARGE_OVERSHOOT_MV;
- disable_sleep(SLEEP_MASK_USB_PWR);
- adc_enable_watchdog(ADC_CH_V_SENSE, 0xFFF, target_volt);
-}
-
-/* ----------------------- USB Power delivery policy ---------------------- */
-
-#define PDO_FIXED_FLAGS (PDO_FIXED_UNCONSTRAINED | PDO_FIXED_DATA_SWAP)
-
-/* Voltage indexes for the PDOs */
-enum volt_idx {
- PDO_IDX_5V = 0,
- PDO_IDX_12V = 1,
- PDO_IDX_20V = 2,
-
- PDO_IDX_COUNT
-};
-
-/* Power Delivery Objects */
-const uint32_t pd_src_pdo[] = {
- [PDO_IDX_5V] = PDO_FIXED(5000, RATED_CURRENT, PDO_FIXED_FLAGS),
- [PDO_IDX_12V] = PDO_FIXED(12000, RATED_CURRENT, PDO_FIXED_FLAGS),
- [PDO_IDX_20V] = PDO_FIXED(20000, RATED_CURRENT, PDO_FIXED_FLAGS),
-};
-const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
-BUILD_ASSERT(ARRAY_SIZE(pd_src_pdo) == PDO_IDX_COUNT);
-
-/* PDO voltages (should match the table above) */
-static const struct {
- enum volt select; /* GPIO configuration to select the voltage */
- int uvp; /* under-voltage limit in mV */
- int ovp; /* over-voltage limit in mV */
- int ovp_rec;/* over-voltage recovery threshold in mV */
-} voltages[ARRAY_SIZE(pd_src_pdo)] = {
- [PDO_IDX_5V] = {VO_5V, UVP_MV(5000), OVP_MV(5000),
- OVP_REC_MV(5000)},
- [PDO_IDX_12V] = {VO_12V, UVP_MV(12000), OVP_MV(12000),
- OVP_REC_MV(12000)},
- [PDO_IDX_20V] = {VO_20V, UVP_MV(20000), OVP_MV(20000),
- OVP_REC_MV(20000)},
-};
-
-/* current and previous selected PDO entry */
-static int volt_idx;
-static int last_volt_idx;
-/* target voltage at the end of discharge */
-static int discharge_volt_idx;
-
-/* output current measurement */
-int vbus_amp;
-
-__override int pd_board_check_request(uint32_t rdo, int pdo_cnt)
-{
- /* fault condition or output disabled: reject transitions */
- if (fault != FAULT_OK || !output_is_enabled())
- return EC_ERROR_INVAL;
-
- return EC_SUCCESS;
-}
-
-void pd_transition_voltage(int idx)
-{
- last_volt_idx = volt_idx;
- volt_idx = idx - 1;
- if (volt_idx < last_volt_idx) { /* down voltage transition */
- /* Stop OCP monitoring */
- adc_disable_watchdog();
-
- discharge_volt_idx = volt_idx;
- /* from 20V : do an intermediate step at 12V */
- if (volt_idx == PDO_IDX_5V && last_volt_idx == PDO_IDX_20V)
- volt_idx = PDO_IDX_12V;
- discharge_voltage(voltages[volt_idx].ovp);
- } else if (volt_idx > last_volt_idx) { /* up voltage transition */
- if (discharge_is_enabled()) {
- /* Make sure discharging is disabled */
- discharge_disable();
- /* Enable over-current monitoring */
- adc_enable_watchdog(ADC_CH_A_SENSE,
- MAX_CURRENT_FAST, 0);
- }
- }
- set_output_voltage(voltages[volt_idx].select);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* fault condition not cleared : do not turn on power */
- if ((fault != FAULT_OK) || discharge_is_enabled())
- return EC_ERROR_INVAL;
-
- output_enable();
- /* Over-current monitoring */
- adc_enable_watchdog(ADC_CH_A_SENSE, MAX_CURRENT_FAST, 0);
-
- return EC_SUCCESS; /* we are ready */
-}
-
-void pd_power_supply_reset(int port)
-{
- int need_discharge = (volt_idx > 0) || discharge_is_enabled();
-
- output_disable();
- last_volt_idx = volt_idx;
- /* from 20V : do an intermediate step at 12V */
- volt_idx = volt_idx == PDO_IDX_20V ? PDO_IDX_12V : PDO_IDX_5V;
- set_output_voltage(voltages[volt_idx].select);
- /* TODO transition delay */
-
- /* Stop OCP monitoring to save power */
- adc_disable_watchdog();
-
- /* discharge voltage to 5V ? */
- if (need_discharge) {
- /* final target : 5V */
- discharge_volt_idx = PDO_IDX_5V;
- discharge_voltage(voltages[volt_idx].ovp);
- }
-}
-
-int pd_check_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Allow data swap if we are a DFP, otherwise don't allow */
- return (data_role == PD_ROLE_DFP) ? 1 : 0;
-}
-
-void pd_execute_data_swap(int port,
- enum pd_data_role data_role)
-{
- /* Do nothing */
-}
-
-void pd_check_pr_role(int port,
- enum pd_power_role pr_role,
- int flags)
-{
-}
-
-void pd_check_dr_role(int port,
- enum pd_data_role dr_role,
- int flags)
-{
- /* If DFP, try to switch to UFP */
- if ((flags & PD_FLAGS_PARTNER_DR_DATA) && dr_role == PD_ROLE_DFP)
- pd_request_data_swap(port);
-}
-
-int pd_board_checks(void)
-{
-#ifdef CONFIG_HIBERNATE
- static timestamp_t hib_to;
- static int hib_to_ready;
-#endif
- int vbus_volt;
- int ovp_idx;
-
- /* Reload the watchdog */
- STM32_IWDG_KR = STM32_IWDG_KR_RELOAD;
-
-#ifdef CONFIG_HIBERNATE
- /* If output is disabled for long enough, then hibernate */
- if (!pd_is_connected(0) && hib_to_ready) {
- if (get_time().val >= hib_to.val) {
- debug_printf("hib\n");
- __enter_hibernate(0, 0);
- }
- } else {
- hib_to.val = get_time().val + 60*SECOND;
- hib_to_ready = 1;
- }
-#endif
-
- /* if it's been a while since last RX edge, then allow deep sleep */
- if (get_time_since_last_edge(0) > PD_RX_SLEEP_TIMEOUT)
- enable_sleep(SLEEP_MASK_USB_PD);
-
- vbus_volt = adc_read_channel(ADC_CH_V_SENSE);
- vbus_amp = adc_read_channel(ADC_CH_A_SENSE);
-
- if (fault == FAULT_FAST_OCP) {
- debug_printf("Fast OCP\n");
- pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_FAST_OCP, NULL);
- fault = FAULT_OCP;
- /* reset over-current after 1 second */
- fault_deadline.val = get_time().val + OCP_TIMEOUT;
- return EC_ERROR_INVAL;
- }
-
- if (vbus_amp > MAX_CURRENT) {
- /* 3 more samples to check whether this is just a transient */
- int count;
- for (count = 0; count < 3; count++)
- if (adc_read_channel(ADC_CH_A_SENSE) < MAX_CURRENT)
- break;
- /* trigger the slow OCP iff all 4 samples are above the max */
- if (count == 3) {
- debug_printf("OCP %d mA\n",
- vbus_amp * VDDA_MV / CURR_GAIN * 1000
- / R_SENSE / ADC_SCALE);
- pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_OCP, NULL);
- fault = FAULT_OCP;
- /* reset over-current after 1 second */
- fault_deadline.val = get_time().val + OCP_TIMEOUT;
- return EC_ERROR_INVAL;
- }
- }
- /*
- * Optimize power consumption when the sink is idle :
- * Enable STOP mode while we are connected,
- * this kills fast OCP as the actual ADC conversion for the analog
- * watchdog will happen on the next wake-up (x0 ms latency).
- */
- if (vbus_amp < SINK_IDLE_CURRENT && !discharge_is_enabled())
- /* override the PD state machine sleep mask */
- enable_sleep(SLEEP_MASK_USB_PWR);
- else if (vbus_amp > SINK_IDLE_CURRENT)
- disable_sleep(SLEEP_MASK_USB_PWR);
-
- /*
- * Set the voltage index to use for checking OVP. During a down step
- * transition, use the previous voltage index to check for OVP.
- */
- ovp_idx = discharge_is_enabled() ? last_volt_idx : volt_idx;
-
- if ((output_is_enabled() && (vbus_volt > voltages[ovp_idx].ovp)) ||
- (fault && (vbus_volt > voltages[ovp_idx].ovp_rec))) {
- if (!fault) {
- debug_printf("OVP %d mV\n",
- ADC_TO_VOLT_MV(vbus_volt));
- pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_OVP, NULL);
- }
- fault = FAULT_OVP;
- /* no timeout */
- fault_deadline.val = get_time().val;
- return EC_ERROR_INVAL;
- }
-
- /* the discharge did not work properly */
- if (discharge_is_enabled() &&
- (get_time().val > discharge_deadline.val)) {
- /* ensure we always finish a 2-step discharge */
- volt_idx = discharge_volt_idx;
- set_output_voltage(voltages[volt_idx].select);
- /* stop it */
- discharge_disable();
- /* enable over-current monitoring */
- adc_enable_watchdog(ADC_CH_A_SENSE, MAX_CURRENT_FAST, 0);
- debug_printf("Disch FAIL %d mV\n",
- ADC_TO_VOLT_MV(vbus_volt));
- pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_DISCH, NULL);
- fault = FAULT_DISCHARGE;
- /* reset it after 1 second */
- fault_deadline.val = get_time().val + OCP_TIMEOUT;
- return EC_ERROR_INVAL;
- }
-
- /* everything is good *and* the error condition has expired */
- if ((fault != FAULT_OK) && (get_time().val > fault_deadline.val)) {
- fault = FAULT_OK;
- debug_printf("Reset fault\n");
- /*
- * Reset the PD state and communication on both side,
- * so we can now re-negociate a voltage.
- */
- return EC_ERROR_INVAL;
- }
-
- return EC_SUCCESS;
-
-}
-
-void pd_adc_interrupt(void)
-{
- /* Clear flags */
- STM32_ADC_ISR = 0x8e;
-
- if (discharge_is_enabled()) {
- if (discharge_volt_idx != volt_idx) {
- /* first step of the discharge completed: now 12V->5V */
- volt_idx = PDO_IDX_5V;
- set_output_voltage(VO_5V);
- discharge_voltage(voltages[PDO_IDX_5V].ovp);
- } else { /* discharge complete */
- discharge_disable();
- /* enable over-current monitoring */
- adc_enable_watchdog(ADC_CH_A_SENSE,
- MAX_CURRENT_FAST, 0);
- }
- } else {/* Over-current detection */
- /* cut the power output */
- pd_power_supply_reset(0);
- /* record a special fault */
- fault = FAULT_FAST_OCP;
- /* pd_board_checks() will record the timeout later */
- }
-
- /* clear ADC irq so we don't get a second interrupt */
- task_clear_pending_irq(STM32_IRQ_ADC_COMP);
-}
-DECLARE_IRQ(STM32_IRQ_ADC_COMP, pd_adc_interrupt, 1);
-
-/* ----------------- Vendor Defined Messages ------------------ */
-const uint32_t vdo_idh = VDO_IDH(0, /* data caps as USB host */
- 0, /* data caps as USB device */
- IDH_PTYPE_UNDEF, /* Undefined */
- 1, /* supports alt modes */
- USB_VID_GOOGLE);
-
-const uint32_t vdo_product = VDO_PRODUCT(CONFIG_USB_PID, CONFIG_USB_BCD_DEV);
-
-/* When set true, we are in GFU mode */
-static int gfu_mode;
-
-static int svdm_response_identity(int port, uint32_t *payload)
-{
- payload[VDO_I(IDH)] = vdo_idh;
- payload[VDO_I(CSTAT)] = VDO_CSTAT(0);
- payload[VDO_I(PRODUCT)] = vdo_product;
- return VDO_I(PRODUCT) + 1;
-}
-
-static int svdm_response_svids(int port, uint32_t *payload)
-{
- payload[1] = VDO_SVID(USB_VID_GOOGLE, 0);
- return 2;
-}
-
-/* Will only ever be a single mode for this device */
-#define MODE_CNT 1
-#define OPOS 1
-
-const uint32_t vdo_dp_mode[MODE_CNT] = {
- VDO_MODE_GOOGLE(MODE_GOOGLE_FU)
-};
-
-static int svdm_response_modes(int port, uint32_t *payload)
-{
- if (PD_VDO_VID(payload[0]) != USB_VID_GOOGLE)
- return 0; /* nak */
-
- memcpy(payload + 1, vdo_dp_mode, sizeof(vdo_dp_mode));
- return MODE_CNT + 1;
-}
-
-static int svdm_enter_mode(int port, uint32_t *payload)
-{
- /* SID & mode request is valid */
- if ((PD_VDO_VID(payload[0]) != USB_VID_GOOGLE) ||
- (PD_VDO_OPOS(payload[0]) != OPOS))
- return 0; /* will generate NAK */
-
- gfu_mode = 1;
- debug_printf("GFU\n");
- return 1;
-}
-
-static int svdm_exit_mode(int port, uint32_t *payload)
-{
- gfu_mode = 0;
- return 1; /* Must return ACK */
-}
-
-static struct amode_fx dp_fx = {
- .status = NULL,
- .config = NULL,
-};
-
-const struct svdm_response svdm_rsp = {
- .identity = &svdm_response_identity,
- .svids = &svdm_response_svids,
- .modes = &svdm_response_modes,
- .enter_mode = &svdm_enter_mode,
- .amode = &dp_fx,
- .exit_mode = &svdm_exit_mode,
-};
-
-__override int pd_custom_vdm(int port, int cnt, uint32_t *payload,
- uint32_t **rpayload)
-{
- int cmd = PD_VDO_CMD(payload[0]);
- int rsize;
-
- if (PD_VDO_VID(payload[0]) != USB_VID_GOOGLE || !gfu_mode)
- return 0;
-
- debug_printf("%pT] VDM/%d [%d] %08x\n",
- PRINTF_TIMESTAMP_NOW, cnt, cmd, payload[0]);
- *rpayload = payload;
-
- rsize = pd_custom_flash_vdm(port, cnt, payload);
- if (!rsize) {
- switch (cmd) {
- case VDO_CMD_PING_ENABLE:
- pd_ping_enable(0, payload[1]);
- rsize = 1;
- break;
- case VDO_CMD_CURRENT:
- /* return last measured current */
- payload[1] = ADC_TO_CURR_MA(vbus_amp);
- rsize = 2;
- break;
- case VDO_CMD_GET_LOG:
- rsize = pd_vdm_get_log_entry(payload);
- break;
- default:
- /* Unknown : do not answer */
- return 0;
- }
- }
-
- /* respond (positively) to the request */
- payload[0] |= VDO_SRC_RESPONDER;
-
- return rsize;
-}
diff --git a/board/zinger/vif_override.xml b/board/zinger/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/zinger/vif_override.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File
- Definition from the USB-IF.
--->