summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2021-06-24 17:50:06 -0700
committerCommit Bot <commit-bot@chromium.org>2021-06-25 16:36:34 +0000
commitfd38239b6c540e8d666d0a0099a3d79e6c238c30 (patch)
treeb3405e24856e3911537b4a1c2e55e5588af99e7a
parent7aa6adaf53f99f3b3d03fbd935c930ce3f46cc66 (diff)
downloadchrome-ec-fd38239b6c540e8d666d0a0099a3d79e6c238c30.tar.gz
flapjack: Remove flapjack
Flapjack is no longer developed. BUG=None BRANCH=None TEST=buildall Change-Id: I8cf06ff4f60302987f1d85e8abd090774e02a6ee Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2986846
-rw-r--r--board/flapjack/battery.c468
-rw-r--r--board/flapjack/board.c639
-rw-r--r--board/flapjack/board.h350
-rw-r--r--board/flapjack/build.mk21
-rw-r--r--board/flapjack/ec.tasklist21
l---------board/flapjack/emmc.c1
-rw-r--r--board/flapjack/gpio.inc107
-rw-r--r--board/flapjack/led.c182
-rw-r--r--board/flapjack/usb_pd_policy.c155
-rw-r--r--board/flapjack/vif_override.xml3
10 files changed, 0 insertions, 1947 deletions
diff --git a/board/flapjack/battery.c b/board/flapjack/battery.c
deleted file mode 100644
index 981edea013..0000000000
--- a/board/flapjack/battery.c
+++ /dev/null
@@ -1,468 +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.h"
-#include "battery_smart.h"
-#include "charge_state.h"
-#include "console.h"
-#include "driver/battery/max17055.h"
-#include "driver/charger/rt946x.h"
-#include "driver/tcpm/mt6370.h"
-#include "ec_commands.h"
-#include "extpower.h"
-#include "gpio.h"
-#include "hooks.h"
-#include "i2c.h"
-#include "usb_pd.h"
-#include "util.h"
-#include "board.h"
-#include "adc.h"
-#include "adc_chip.h"
-#include "math_util.h"
-#include "p9221.h"
-
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-
-#define BAT_LEVEL_PD_LIMIT 85
-
-#define BATTERY_ATL_CHARGE_MIN_TEMP 0
-#define BATTERY_ATL_CHARGE_MAX_TEMP 60
-
-#define BATTERY_SUNWODA_CHARGE_MIN_TEMP 0
-#define BATTERY_SUNWODA_CHARGE_MAX_TEMP 60
-
-static const uint16_t full_model_ocv_table[][MAX17055_OCV_TABLE_SIZE] = {
- [BATTERY_C18_ATL] = {
- 0x8fc0, 0xb6c0, 0xb910, 0xbb30, 0xbcb0, 0xbdd0, 0xbef0, 0xc050,
- 0xc1a0, 0xc460, 0xc750, 0xca40, 0xcd10, 0xd070, 0xd560, 0xda20,
- 0x0060, 0x0f20, 0x0f40, 0x16c0, 0x17f0, 0x15c0, 0x1050, 0x10e0,
- 0x09f0, 0x0850, 0x0730, 0x07a0, 0x0730, 0x0700, 0x0710, 0x0710,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800,
- },
- [BATTERY_C19_ATL] = {
- 0xa260, 0xb5d0, 0xb840, 0xb940, 0xbbb0, 0xbcb0, 0xbdb0, 0xbf80,
- 0xc0a0, 0xc1e0, 0xc520, 0xc840, 0xcdb0, 0xd150, 0xd590, 0xd9e0,
- 0x0030, 0x0cd0, 0x1100, 0x0f30, 0x19e0, 0x19f0, 0x14f0, 0x1160,
- 0x0dc0, 0x0980, 0x0850, 0x0780, 0x0730, 0x0700, 0x0710, 0x0710,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800,
- },
- [BATTERY_C18_SUNWODA] = {
- 0x9d70, 0xaf80, 0xb6b0, 0xb830, 0xb990, 0xbc00, 0xbcd0, 0xbea0,
- 0xc080, 0xc2e0, 0xc5f0, 0xc890, 0xcb90, 0xcf10, 0xd270, 0xd9e0,
- 0x0060, 0x0240, 0x0b20, 0x1210, 0x0f20, 0x2200, 0x1650, 0x14f0,
- 0x0980, 0x09c0, 0x07b0, 0x07f0, 0x06f0, 0x07e0, 0x05c0, 0x05c0,
- 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
- 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
- },
- [BATTERY_C19_SUNWODA] = {
- 0x8590, 0xb1d0, 0xb810, 0xbae0, 0xbc30, 0xbd70, 0xbeb0, 0xbfa0,
- 0xc0f0, 0xc330, 0xc640, 0xc890, 0xcb50, 0xce20, 0xd370, 0xd950,
- 0x0020, 0x0520, 0x0d80, 0x1860, 0x1910, 0x2040, 0x0be0, 0x0dd0,
- 0x0cb0, 0x07b0, 0x08f0, 0x07c0, 0x0790, 0x06e0, 0x0620, 0x0620,
- 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
- 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(full_model_ocv_table) == BATTERY_COUNT);
-
-/*
- * TODO: Only precharge_current is different. We should consolidate these
- * and apply 294 or 327 at run-time.when we need more rom space later.
- */
-static const struct battery_info info[] = {
- [BATTERY_C18_ATL] = {
- .voltage_max = 4400,
- .voltage_normal = 3850,
- .voltage_min = 3000,
- .precharge_current = 294,
- .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_C19_ATL] = {
- .voltage_max = 4400,
- .voltage_normal = 3850,
- .voltage_min = 3000,
- .precharge_current = 327,
- .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_C18_SUNWODA] = {
- .voltage_max = 4400,
- .voltage_normal = 3850,
- .voltage_min = 3000,
- .precharge_current = 294,
- .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_C19_SUNWODA] = {
- .voltage_max = 4400,
- .voltage_normal = 3850,
- .voltage_min = 3000,
- .precharge_current = 327,
- .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(info) == BATTERY_COUNT);
-
-static const struct max17055_batt_profile batt_profile[] = {
- [BATTERY_C18_ATL] = {
- .is_ez_config = 0,
- .design_cap = 0x2e78, /* 5948mAh */
- .ichg_term = 0x03c0, /* 150 mA */
- /* Empty voltage = 3400mV, Recovery voltage = 4000mV */
- .v_empty_detect = 0xaa64,
- .learn_cfg = 0x4402,
- .dpacc = 0x0c7d,
- .rcomp0 = 0x0011,
- .tempco = 0x0209,
- .qr_table00 = 0x5a00,
- .qr_table10 = 0x2980,
- .qr_table20 = 0x1100,
- .qr_table30 = 0x1000,
- .ocv_table = full_model_ocv_table[BATTERY_C18_ATL],
- },
- [BATTERY_C19_ATL] = {
- .is_ez_config = 0,
- .design_cap = 0x3407, /* 6659mAh */
- .ichg_term = 0x03c0, /* 150 mA */
- /* Empty voltage = 3400mV, Recovery voltage = 4000mV */
- .v_empty_detect = 0xaa64,
- .learn_cfg = 0x4402,
- .dpacc = 0x0c7e,
- .rcomp0 = 0x000f,
- .tempco = 0x000b,
- .qr_table00 = 0x5800,
- .qr_table10 = 0x2680,
- .qr_table20 = 0x0d00,
- .qr_table30 = 0x0b00,
- .ocv_table = full_model_ocv_table[BATTERY_C19_ATL],
- },
- [BATTERY_C18_SUNWODA] = {
- .is_ez_config = 0,
- .design_cap = 0x2fcc, /* 6118mAh */
- .ichg_term = 0x03c0, /* 150 mA */
- /* Empty voltage = 3400mV, Recovery voltage = 4000mV */
- .v_empty_detect = 0xaa64,
- .learn_cfg = 0x4402,
- .dpacc = 0x0c7c,
- .rcomp0 = 0x0024,
- .tempco = 0x0c1f,
- .qr_table00 = 0x9f00,
- .qr_table10 = 0x4480,
- .qr_table20 = 0x1600,
- .qr_table30 = 0x1400,
- .ocv_table = full_model_ocv_table[BATTERY_C18_SUNWODA],
- },
- [BATTERY_C19_SUNWODA] = {
- .is_ez_config = 0,
- .design_cap = 0x34b1, /* 6744mAh */
- .ichg_term = 0x03c0, /* 150 mA */
- /* Empty voltage = 3400mV, Recovery voltage = 4000mV */
- .v_empty_detect = 0xaa64,
- .learn_cfg = 0x4402,
- .dpacc = 0x0c80,
- .rcomp0 = 0x001f,
- .tempco = 0x051f,
- .qr_table00 = 0x9100,
- .qr_table10 = 0x3d00,
- .qr_table20 = 0x1200,
- .qr_table30 = 0x1002,
- .ocv_table = full_model_ocv_table[BATTERY_C19_SUNWODA],
- },
-};
-BUILD_ASSERT(ARRAY_SIZE(batt_profile) == BATTERY_COUNT);
-
-static const struct max17055_alert_profile alert_profile[] = {
- [BATTERY_C18_ATL] = {
- .v_alert_mxmn = VALRT_DISABLE,
- .t_alert_mxmn = MAX17055_TALRTTH_REG(
- BATTERY_ATL_CHARGE_MAX_TEMP,
- BATTERY_ATL_CHARGE_MIN_TEMP),
- .s_alert_mxmn = SALRT_DISABLE,
- .i_alert_mxmn = IALRT_DISABLE,
- },
- [BATTERY_C19_ATL] = {
- .v_alert_mxmn = VALRT_DISABLE,
- .t_alert_mxmn = MAX17055_TALRTTH_REG(
- BATTERY_ATL_CHARGE_MAX_TEMP,
- BATTERY_ATL_CHARGE_MIN_TEMP),
- .s_alert_mxmn = SALRT_DISABLE,
- .i_alert_mxmn = IALRT_DISABLE,
- },
- [BATTERY_C18_SUNWODA] = {
- .v_alert_mxmn = VALRT_DISABLE,
- .t_alert_mxmn = MAX17055_TALRTTH_REG(
- BATTERY_SUNWODA_CHARGE_MIN_TEMP,
- BATTERY_SUNWODA_CHARGE_MAX_TEMP),
- .s_alert_mxmn = SALRT_DISABLE,
- .i_alert_mxmn = IALRT_DISABLE,
- },
- [BATTERY_C19_SUNWODA] = {
- .v_alert_mxmn = VALRT_DISABLE,
- .t_alert_mxmn = MAX17055_TALRTTH_REG(
- BATTERY_SUNWODA_CHARGE_MIN_TEMP,
- BATTERY_SUNWODA_CHARGE_MAX_TEMP),
- .s_alert_mxmn = SALRT_DISABLE,
- .i_alert_mxmn = IALRT_DISABLE,
- },
-
-};
-BUILD_ASSERT(ARRAY_SIZE(alert_profile) == BATTERY_COUNT);
-
-enum temp_zone {
- 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_3, /* t3 <= bat_temp_c < t4 */
- TEMP_ZONE_COUNT,
- TEMP_OUT_OF_RANGE = TEMP_ZONE_COUNT,
-};
-
-/*
- * TODO: Many value in temp_zones are pretty similar, we should consolidate
- * these and modify the value when we need more rom space later.
- */
-static const 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_C18_ATL] = {
- {BATTERY_ATL_CHARGE_MIN_TEMP * 10, 100, 1170, 4400},
- {100, 200, 1755, 4400},
- {200, 450, 2925, 4400},
- {450, BATTERY_ATL_CHARGE_MAX_TEMP * 10, 2925, 4100},
- },
- [BATTERY_C19_ATL] = {
- {BATTERY_ATL_CHARGE_MIN_TEMP * 10, 100, 1300, 4400},
- {100, 200, 1950, 4400},
- {200, 450, 3250, 4400},
- {450, BATTERY_ATL_CHARGE_MAX_TEMP * 10, 3250, 4100},
- },
- [BATTERY_C18_SUNWODA] = {
- {BATTERY_SUNWODA_CHARGE_MIN_TEMP * 10, 100, 1170, 4400},
- {100, 200, 1755, 4400},
- {200, 450, 2925, 4400},
- {450, BATTERY_SUNWODA_CHARGE_MAX_TEMP * 10, 2925, 4100},
- },
- [BATTERY_C19_SUNWODA] = {
- {BATTERY_SUNWODA_CHARGE_MIN_TEMP * 10, 100, 1300, 4400},
- {100, 200, 1950, 4400},
- {200, 450, 3250, 4400},
- {450, BATTERY_SUNWODA_CHARGE_MAX_TEMP * 10, 3250, 4100},
- },
-};
-
-/* BOARD_VERSION < 5: Pull-up = 1800 mV. */
-static const struct mv_to_id batteries0[] = {
- { BATTERY_C18_ATL, 900 }, /* 100K ohm */
- { BATTERY_C19_ATL, 576 }, /* 47K ohm */
- { BATTERY_C18_SUNWODA, 1484 }, /* 470K ohm */
- { BATTERY_C19_SUNWODA, 1200 }, /* 200K ohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(batteries0) < BATTERY_COUNT);
-
-/* BOARD_VERSION >= 5: Pull-up = 3300 mV. */
-static const struct mv_to_id batteries1[] = {
- { BATTERY_C18_ATL, 1650 }, /* 100K ohm */
- { BATTERY_C19_ATL, 1055 }, /* 47K ohm */
- { BATTERY_C18_SUNWODA, 2721 }, /* 470K ohm */
- { BATTERY_C19_SUNWODA, 2200 }, /* 200K ohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(batteries1) < BATTERY_COUNT);
-
-static enum battery_type batt_type = BATTERY_UNKNOWN;
-
-static void board_get_battery_type(void)
-{
- const struct mv_to_id *table = batteries0;
- int size = ARRAY_SIZE(batteries0);
- int id;
-
- if (board_version >= 5) {
- table = batteries1;
- size = ARRAY_SIZE(batteries1);
- }
- id = board_read_id(ADC_BATT_ID, table, size);
- if (id != ADC_READ_ERROR)
- batt_type = id;
- CPRINTS("Battery Type: %d", batt_type);
-}
-/* It has to run after BOARD_VERSION is read */
-DECLARE_HOOK(HOOK_INIT, board_get_battery_type, HOOK_PRIO_INIT_I2C + 2);
-
-const struct battery_info *battery_get_info(void)
-{
- return &info[batt_type];
-}
-
-const struct max17055_batt_profile *max17055_get_batt_profile(void)
-{
- return &batt_profile[batt_type];
-}
-
-const struct max17055_alert_profile *max17055_get_alert_profile(void)
-{
- return &alert_profile[batt_type];
-}
-
-int get_battery_manufacturer_name(char *dest, int size)
-{
- static const char * const name[] = {
- [BATTERY_UNKNOWN] = "UNKNOWN",
- [BATTERY_C18_ATL] = "C18_ATL",
- [BATTERY_C19_ATL] = "C19_ATL",
- [BATTERY_C18_SUNWODA] = "C18_SWD",
- [BATTERY_C19_SUNWODA] = "C19_SWD",
- };
- ASSERT(dest);
- strzcpy(dest, name[batt_type], size);
- return EC_SUCCESS;
-}
-
-int board_cut_off_battery(void)
-{
- /* The cut-off procedure is recommended by Richtek. b/116682788 */
- rt946x_por_reset();
- mt6370_vconn_discharge(0);
- rt946x_cutoff_battery();
-
- return EC_SUCCESS;
-}
-
-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 temp = curr->batt.temperature - 2731;
- enum temp_zone zone;
- int usb_mv, wpc_mv;
- static int previous_usb_mv;
- int val;
-
- if (curr->state != ST_CHARGE)
- return 0;
-
- /* Limit input (=VBUS) to 5V when soc > 85% and charge current < 1A. */
- if (!(curr->batt.flags & BATT_FLAG_BAD_CURRENT) &&
- charge_get_percent() > BAT_LEVEL_PD_LIMIT &&
- curr->batt.current < 1000 &&
- curr->batt.current > 0) {
- usb_mv = 5500;
- wpc_mv = 5500;
- } else {
- usb_mv = PD_MAX_VOLTAGE_MV;
- wpc_mv = P9221_DC_IVL_EPP_MV;
- }
-
- if (usb_mv != previous_usb_mv)
- CPRINTS("VBUS limited to %dmV", usb_mv);
- previous_usb_mv = usb_mv;
-
- /* Pull down USB VBUS */
- if (pd_get_max_voltage() != usb_mv)
- pd_set_external_voltage_limit(0, usb_mv);
-
- /*
- * Pull down WPC VBUS. Need to use raw i2c APIs because RO
- * doesn't have p9221 driver. If WPC is off, this is a no-op.
- */
- if (i2c_read_offset16(I2C_PORT_WPC, P9221_R7_ADDR_FLAGS,
- P9221R7_VOUT_SET_REG, &val, 1) == EC_SUCCESS
- && val * 100 != wpc_mv)
- i2c_write_offset16(I2C_PORT_WPC, P9221_R7_ADDR_FLAGS,
- P9221R7_VOUT_SET_REG, wpc_mv / 100, 1);
-
- if ((curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE) ||
- (temp < temp_zones[batt_type][TEMP_ZONE_0].temp_min)) {
- zone = TEMP_OUT_OF_RANGE;
- } else {
- for (zone = TEMP_ZONE_0; zone < TEMP_ZONE_COUNT; zone++) {
- if (temp < temp_zones[batt_type][zone].temp_max)
- break;
- }
- }
-
- if (zone == TEMP_OUT_OF_RANGE || zone >= TEMP_ZONE_COUNT) {
- curr->requested_current = curr->requested_voltage = 0;
- curr->batt.flags &= ~BATT_FLAG_WANT_CHARGE;
- curr->state = ST_IDLE;
- } else {
- curr->requested_current =
- temp_zones[batt_type][zone].desired_current;
- curr->requested_voltage =
- temp_zones[batt_type][zone].desired_voltage;
- }
-
- /*
- * 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);
- }
-
- return 0;
-}
-
-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/flapjack/board.c b/board/flapjack/board.c
deleted file mode 100644
index 7da3cea4a6..0000000000
--- a/board/flapjack/board.c
+++ /dev/null
@@ -1,639 +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 "adc_chip.h"
-#include "backlight.h"
-#include "board.h"
-#include "button.h"
-#include "charge_manager.h"
-#include "charge_state.h"
-#include "charger.h"
-#include "chipset.h"
-#include "common.h"
-#include "console.h"
-#include "cros_board_info.h"
-#include "driver/accelgyro_bmi_common.h"
-#include "driver/als_tcs3400.h"
-#include "driver/battery/max17055.h"
-#include "driver/charger/rt946x.h"
-#include "driver/sync.h"
-#include "driver/tcpm/mt6370.h"
-#include "driver/temp_sensor/tmp432.h"
-#include "driver/wpc/p9221.h"
-#include "ec_commands.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 "lid_switch.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 "thermal.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)
-
-/* LCM_ID is embedded in SKU_ID bit[19-16] */
-#define SKU_ID_TO_LCM_ID(x) (((x) >> PANEL_ID_BIT_POSITION) & 0xf)
-#define LCM_ID_TO_SKU_ID(x) (((x) & 0xf) << PANEL_ID_BIT_POSITION)
-
-/* BOARD_VERSION < 5: Pull-up = 1800 mV. */
-static const struct mv_to_id panels0[] = {
- { PANEL_BOE_TV101WUM_NG0, 74 }, /* 2.2 kohm */
- { PANEL_BOE_TV080WUM_NG0, 212 }, /* 6.8 kohm */
- { PANEL_STA_10P, 1191 }, /* 100 kohm */
- { PANEL_STA_08P, 1028 }, /* 68 kohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(panels0) < PANEL_COUNT);
-
-/* BOARD_VERSION >= 5: Pull-up = 3300 mV. */
-static const struct mv_to_id panels1[] = {
- { PANEL_BOE_TV101WUM_NG0, 136 }, /* 2.2 kohm */
- { PANEL_BOE_TV080WUM_NG0, 387 }, /* 6.8 kohm */
- { PANEL_STA_10P, 2184 }, /* 100 kohm */
- { PANEL_STA_08P, 1884 }, /* 68 kohm */
-};
-BUILD_ASSERT(ARRAY_SIZE(panels1) < PANEL_COUNT);
-
-BUILD_ASSERT(PANEL_COUNT <= PANEL_UNINITIALIZED);
-
-uint8_t board_version;
-uint8_t oem;
-uint32_t sku = LCM_ID_TO_SKU_ID(PANEL_UNINITIALIZED);
-
-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,
-};
-
-int board_read_id(enum adc_channel ch, const struct mv_to_id *table, int size)
-{
- int mv = adc_read_channel(ch);
- int i;
-
- if (mv == ADC_READ_ERROR)
- mv = adc_read_channel(ch);
-
- for (i = 0; i < size; i++) {
- if (ABS(mv - table[i].median_mv) < ADC_MARGIN_MV)
- return table[i].id;
- }
-
- return ADC_READ_ERROR;
-}
-
-const struct rt946x_init_setting *board_rt946x_init_setting(void)
-{
- return &battery_init_setting;
-}
-
-static void board_setup_panel(void)
-{
- uint8_t channel;
- uint8_t dim;
- int rv = 0;
-
- if (board_version >= 3) {
- switch (SKU_ID_TO_LCM_ID(sku)) {
- case PANEL_BOE_TV080WUM_NG0:
- case PANEL_STA_08P:
- channel = 0xfa;
- dim = 0xc8;
- break;
- case PANEL_BOE_TV101WUM_NG0:
- case PANEL_STA_10P:
- channel = 0xfe;
- dim = 0xc4;
- break;
- default:
- return;
- }
- } else {
- /* TODO: to be removed once the boards are deprecated. */
- channel = sku & SKU_ID_PANEL_SIZE_MASK ? 0xfe : 0xfa;
- dim = sku & SKU_ID_PANEL_SIZE_MASK ? 0xc4 : 0xc8;
- }
-
- rv |= i2c_write8(I2C_PORT_CHARGER, RT946X_ADDR_FLAGS,
- MT6370_BACKLIGHT_BLEN, channel);
- rv |= i2c_write8(I2C_PORT_CHARGER, RT946X_ADDR_FLAGS,
- MT6370_BACKLIGHT_BLDIM, dim);
- rv |= i2c_write8(I2C_PORT_CHARGER, RT946X_ADDR_FLAGS,
- MT6370_BACKLIGHT_BLPWM, 0xac);
- if (rv)
- CPRINTS("Board setup panel failed");
-}
-
-static enum panel_id board_get_panel_id(void)
-{
- enum panel_id id;
-
- if (board_version < 3) {
- id = PANEL_DEFAULT; /* No LCM_ID. */
- } else {
- const struct mv_to_id *table = panels0;
- int size = ARRAY_SIZE(panels0);
- if (board_version >= 5) {
- table = panels1;
- size = ARRAY_SIZE(panels1);
- }
- id = board_read_id(ADC_LCM_ID, table, size);
- if (id < PANEL_DEFAULT || PANEL_COUNT <= id)
- id = PANEL_DEFAULT;
- }
- CPRINTS("LCM ID: %d", id);
- return id;
-}
-
-#define CBI_SKU_ID_SIZE 4
-
-int cbi_board_override(enum cbi_data_tag tag, uint8_t *buf, uint8_t *size)
-{
- switch (tag) {
- case CBI_TAG_SKU_ID:
- if (*size != CBI_SKU_ID_SIZE)
- /* For old boards (board_version < 3) */
- return EC_SUCCESS;
- if (SKU_ID_TO_LCM_ID(sku) == PANEL_UNINITIALIZED)
- /* Haven't read LCM_ID */
- return EC_ERROR_BUSY;
- buf[PANEL_ID_BIT_POSITION / 8] = SKU_ID_TO_LCM_ID(sku);
- break;
- default:
- break;
- }
- return EC_SUCCESS;
-}
-
-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 <= PROJECT_COUNT)
- oem = val;
- CPRINTS("OEM: %d", oem);
-
- sku = LCM_ID_TO_SKU_ID(board_get_panel_id());
-
- 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 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_LCM_ID] = {"LCM_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_USBC_THERM] = {"USBC_THERM", 3300, 4096, 0, STM32_AIN(14),
- STM32_ADC_SMPR_239_5_CY},
-};
-BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
-
-/******************************************************************************/
-/* I2C ports */
-const struct i2c_port_t i2c_ports[] = {
- {"charger", I2C_PORT_CHARGER, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"als", I2C_PORT_ALS, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
- {"battery", I2C_PORT_BATTERY, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"accelgyro", I2C_PORT_ACCEL, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
- {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C2_SCL, GPIO_I2C2_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_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);
-
-#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[] = {
-};
-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},
-};
-
-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_ODL))
- 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 except wireless charging*/
-#ifdef CONFIG_WIRELESS_CHARGER_P9221_R7
- if (board_vbus_source_enabled(charge_port)
- && !wpc_chip_is_online())
-#else
- if (board_vbus_source_enabled(charge_port))
-#endif
- 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)
-{
- 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();
-}
-
-/*
- * Threshold to detect USB-C board. If the USB-C board isn't connected,
- * USBC_THERM is floating thus the ADC pin should read about the pull-up
- * voltage. If it's connected, the voltage is capped by the resistor (429k)
- * place in parallel to the thermistor. 3.3V x 429k/(39k + 429k) = 3.025V
- */
-#define USBC_THERM_THRESHOLD 3025
-
-static void board_init(void)
-{
-#ifdef SECTION_IS_RO
- /* If USB-C board isn't connected, the device is being assembled.
- * We cut off the battery until the assembly is done for better yield.
- * Timing is ok because STM32F0 initializes ADC on demand. */
- if (board_version > 0x02) {
- int mv = adc_read_channel(ADC_USBC_THERM);
- if (mv == ADC_READ_ERROR)
- mv = adc_read_channel(ADC_USBC_THERM);
- CPRINTS("USBC_THERM=%d", mv);
- if (mv > USBC_THERM_THRESHOLD) {
- cflush();
- board_cut_off_battery();
- }
- }
-#endif
- /* Set SPI1 PB13/14/15 pins to high speed */
- STM32_GPIO_OSPEEDR(GPIO_B) |= 0xfc000000;
-
- /* 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
-#ifdef CONFIG_WIRELESS_CHARGER_P9221_R7
- /* Enable Wireless charger interrupts */
- gpio_enable_interrupt(GPIO_P9221_INT_ODL);
-#endif
- /* Enable interrupts from BMI160 sensor. */
- gpio_enable_interrupt(GPIO_ACCEL_INT_ODL);
-
- /* Enable interrupt for the TCS3400 color light sensor */
- if (board_version >= 4)
- gpio_enable_interrupt(GPIO_TCS3400_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);
- board_setup_panel();
-}
-DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
-
-#ifdef SECTION_IS_RW
-static void usb_pd_connect(void)
-{
- /* VBUS from p9221 is already zero as it's disabled by NCP3902 */
- p9221_notify_vbus_change(0);
- rt946x_toggle_bc12_detection();
-}
-DECLARE_HOOK(HOOK_USB_PD_CONNECT, usb_pd_connect, HOOK_PRIO_DEFAULT);
-#endif
-
-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);
-}
-
-/* Motion sensors */
-/* Mutexes */
-#ifdef SECTION_IS_RW
-static struct mutex g_lid_mutex;
-
-static struct bmi_drv_data_t g_bmi160_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.9), /* CT */
- },
-};
-
-static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = {
- .calibration.rgb_cal[X] = {
- .offset = 15, /* 15.65956688 */
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-0.04592318),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0.06756278),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(-0.05885579),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.12021096),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */
- .cover_scale = ALS_CHANNEL_SCALE(0.6)
- }
- },
- .calibration.rgb_cal[Y] = {
- .offset = 8, /* 8.75943638 */
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-0.07786953),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0.18940035),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(-0.0524428),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.09092403),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */
- .cover_scale = ALS_CHANNEL_SCALE(1.0)
- }
- },
- .calibration.rgb_cal[Z] = {
- .offset = -21, /* -21.92665481 */
- .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-0.18981975),
- .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0.5351057),
- .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(-0.01858507),
- .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(-0.01793189),
- .scale = {
- .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */
- .cover_scale = ALS_CHANNEL_SCALE(1.5)
- }
- },
- .calibration.irt = INT_TO_FP(1),
- .saturation.again = TCS_DEFAULT_AGAIN,
- .saturation.atime = TCS_DEFAULT_ATIME,
-};
-
-/* 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 = "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 = 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_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,
- },
- [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],
-};
-BUILD_ASSERT(ARRAY_SIZE(motion_als_sensors) == ALS_COUNT);
-#endif /* SECTION_IS_RW */
-
-int board_allow_i2c_passthru(int port)
-{
- return (port == I2C_PORT_VIRTUAL_BATTERY);
-}
-
-int board_get_fod(uint8_t **fod)
-{
- *fod = NULL;
- return 0;
-}
-
-int board_get_epp_fod(uint8_t **fod)
-{
- *fod = NULL;
- return 0;
-}
-
diff --git a/board/flapjack/board.h b/board/flapjack/board.h
deleted file mode 100644
index 527c911cb0..0000000000
--- a/board/flapjack/board.h
+++ /dev/null
@@ -1,350 +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
-
-/* Optional modules */
-#define CONFIG_ADC
-#undef CONFIG_ADC_WATCHDOG
-#define CONFIG_BOARD_VERSION_CBI
-#define CONFIG_CHIPSET_MT8183
-#define CONFIG_CMD_ACCELS
-#define CONFIG_CRC8
-#define CONFIG_CBI_EEPROM
-#define CONFIG_EMULATED_SYSRQ
-#undef CONFIG_HIBERNATE
-#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_POWER_COMMON
-#define CONFIG_SPI
-#define CONFIG_SPI_CONTROLLER
-#define CONFIG_STM_HWTIMER32
-#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
-
-/* Bootblock */
-#ifdef SECTION_IS_RO
-#define CONFIG_BOOTBLOCK
-
-#define EMMC_SPI_PORT 2
-#endif
-
-/* 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
-#define CONFIG_CMD_AP_RESET_LOG
-
-/* 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
-#define 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_MT6370
-#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 */
-#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_ALS
-#define ALS_COUNT 1
-
-/* TSC3400 ALS */
-#define CONFIG_ALS_TCS3400
-#define CONFIG_ALS_TCS3400_INT_EVENT \
- TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS)
-#define CONFIG_TCS_USE_LUX_TABLE
-
-
-/* ALS needs to be polled */
-#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 */
-
-/* To be able to indicate the device is in tablet mode. */
-#define CONFIG_TABLET_MODE
-#define CONFIG_TABLET_MODE_SWITCH
-
-/*
- * Only include the sensor fifo in the RW section (since the motion task is only
- * included there).
- */
-#ifdef SECTION_IS_RW
-/* 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)
-#endif /* SECTION_IS_RW */
-
-/* Wireless Power Charger Config */
-#ifdef SECTION_IS_RW
-#define CONFIG_WIRELESS_CHARGER_P9221_R7
-#endif
-
-
-/* USB PD config */
-/* Exclude PD state names from RO image to save space */
-#ifdef SECTION_IS_RO
-#undef CONFIG_USB_PD_TCPMV1_DEBUG
-#endif
-#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_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_TCPC_LOW_POWER
-#define CONFIG_USB_PD_TCPM_MT6370
-#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_USB_PD_DP_HPD_GPIO
-#define CONFIG_USBC_DISABLE_CHARGE_FROM_RP_DEF
-#ifdef SECTION_IS_RO
-#define CONFIG_USB_PD_DEBUG_LEVEL 0
-#endif
-
-#define CONFIG_BATTERY_CUT_OFF
-#define CONFIG_BATTERY_PRESENT_CUSTOM
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
-#define CONFIG_BATTERY_MAX17055
-#define CONFIG_BATTERY_MAX17055_ALERT
-#define CONFIG_BATTERY_MAX17055_FULL_MODEL
-
-/* Battery parameters for max17055 ModelGauge m5 algorithm. */
-#define BATTERY_MAX17055_RSENSE 10 /* m-ohm */
-#define BATTERY_DESIRED_CHARGING_CURRENT 2000 /* mA */
-
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_VOLTAGE_MV 9000
-#define PD_MAX_CURRENT_MA 3000
-#define PD_MAX_POWER_MW 18000
-
-#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_ACCELSPOOF
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_BATTFAKE
-#undef CONFIG_CMD_DEVICE_EVENT
-#undef CONFIG_CMD_FASTCHARGE
-#undef CONFIG_CMD_FLASH
-#undef CONFIG_CMD_GETTIME
-#undef CONFIG_CMD_HASH
-#undef CONFIG_CMD_HCDEBUG
-#undef CONFIG_CMD_MD
-#undef CONFIG_CMD_MEM
-#undef CONFIG_CMD_POWERINDEBUG
-#undef CONFIG_CMD_TIMERINFO
-
-#ifdef SECTION_IS_RO
-#undef CONFIG_CMD_ADC
-#undef CONFIG_CMD_APTHROTTLE
-#undef CONFIG_CMD_AP_RESET_LOG
-#undef CONFIG_CMD_CBI
-#undef CONFIG_CMD_I2C_SCAN
-#undef CONFIG_CMD_I2C_XFER
-#undef CONFIG_CMD_IDLE_STATS
-#undef CONFIG_CMD_INA
-#undef CONFIG_CMD_MMAPINFO
-#undef CONFIG_CMD_PD
-#undef CONFIG_CMD_PWR_AVG
-#undef CONFIG_CMD_REGULATOR
-#undef CONFIG_CMD_RW
-#undef CONFIG_CMD_SHMEM
-/* TODO: Consider put these back when FSI is (about to be) done. */
-#undef CONFIG_CMD_SLEEPMASK
-#undef CONFIG_CMD_SLEEPMASK_SET
-#undef CONFIG_CMD_SYSLOCK
-#undef CONFIG_CONSOLE_CMDHELP
-#undef CONFIG_HOSTCMD_GET_UPTIME_INFO
-#endif
-
-#define CONFIG_TASK_PROFILING
-
-/* I2C ports */
-#define I2C_PORT_CHARGER 0
-#define I2C_PORT_TCPC0 0
-#define I2C_PORT_WPC 0
-#define I2C_PORT_BATTERY 1
-#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
-#define I2C_PORT_ACCEL 1
-#define I2C_PORT_ALS 1
-#define I2C_PORT_EEPROM 1
-
-/* I2C addresses */
-#define I2C_ADDR_EEPROM_FLAGS 0x50
-
-/* 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))
-
-/* Define panel size mask according to skuid */
-#define SKU_ID_PANEL_SIZE_MASK BIT(1)
-
-#ifndef __ASSEMBLER__
-
-enum oem_id {
- PROJECT_FLAPJACK = 0,
- PROJECT_COUNT,
-};
-
-enum adc_channel {
- /* Real ADC channels begin here */
- ADC_LCM_ID = 0,
- ADC_EC_SKU_ID,
- ADC_BATT_ID,
- ADC_USBC_THERM,
- ADC_CH_COUNT
-};
-
-/* Panel ID bit position inside sku_id */
-#define PANEL_ID_BIT_POSITION 16
-
-/* Refer to coreboot/src/mainboard/google/kukui/display.h */
-enum panel_id {
- PANEL_DEFAULT = 0,
- PANEL_BOE_TV101WUM_NG0,
- PANEL_BOE_TV080WUM_NG0,
- PANEL_STA_10P,
- PANEL_STA_08P,
- PANEL_COUNT,
- PANEL_UNINITIALIZED = 0xf,
-};
-
-/* 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,
- CLEAR_ALS,
- RGB_ALS,
- VSYNC,
- SENSOR_COUNT,
-};
-
-/* Batteries */
-enum battery_type {
- BATTERY_UNKNOWN = 0,
- BATTERY_C18_ATL,
- BATTERY_C19_ATL,
- BATTERY_C18_SUNWODA,
- BATTERY_C19_SUNWODA,
- BATTERY_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);
-
-#define ADC_MARGIN_MV 56 /* Simply assume 1800/16/2 */
-
-struct mv_to_id {
- int id;
- int median_mv;
-};
-
-int board_read_id(enum adc_channel, const struct mv_to_id *table, int size);
-
-extern uint8_t board_version;
-extern uint8_t oem;
-extern uint32_t sku;
-
-#define PORT_TO_HPD(port) GPIO_USB_C0_HPD_OD
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __CROS_EC_BOARD_H */
diff --git a/board/flapjack/build.mk b/board/flapjack/build.mk
deleted file mode 100644
index a368c187bf..0000000000
--- a/board/flapjack/build.mk
+++ /dev/null
@@ -1,21 +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
-
-board-y=battery.o board.o usb_pd_policy.o led.o
-board-$(CONFIG_BOOTBLOCK)+=emmc.o
-board-$(BOARD_KRANE)+=base_detect_krane.o
-
-$(out)/RO/board/$(BOARD)/emmc.o: $(out)/bootblock_data.h
-
-# 21504 bytes plus some extra buffer
-DEFAULT_BOOTBLOCK_SIZE:=23000
diff --git a/board/flapjack/ec.tasklist b/board/flapjack/ec.tasklist
deleted file mode 100644
index 33e3538139..0000000000
--- a/board/flapjack/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(USB_CHG, usb_charger_task, NULL, 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, 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_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \
- TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(WPC,wireless_power_charger_task,NULL,LARGER_TASK_STACK_SIZE)
-
diff --git a/board/flapjack/emmc.c b/board/flapjack/emmc.c
deleted file mode 120000
index a97e912173..0000000000
--- a/board/flapjack/emmc.c
+++ /dev/null
@@ -1 +0,0 @@
-../../baseboard/kukui/emmc.c \ No newline at end of file
diff --git a/board/flapjack/gpio.inc b/board/flapjack/gpio.inc
deleted file mode 100644
index f349ceb972..0000000000
--- a/board/flapjack/gpio.inc
+++ /dev/null
@@ -1,107 +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, bmi160_interrupt)
-
-GPIO_INT_RW(TCS3400_INT_ODL, PIN(A, 14), GPIO_INT_FALLING,
- tcs3400_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(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH,
- lid_interrupt) /* HALL_INT_L */
-GPIO_INT(GAUGE_INT_ODL, PIN(C, 9), GPIO_INT_FALLING | GPIO_PULL_UP,
- gauge_interrupt)
-GPIO_INT_RW(P9221_INT_ODL, PIN(A, 6), GPIO_INT_FALLING,
- p9221_interrupt)
-
-/* Voltage rails control pins */
-
-/* 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(LCM_ID, PIN(C, 0), GPIO_ANALOG)
-GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
-GPIO(USBC_THERM, PIN(C, 4), 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(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(USB_C0_DP_OE_L, PIN(A, 5), GPIO_OUT_HIGH)
-GPIO(EC_SWDIO, PIN(A, 13), GPIO_ODR_HIGH)
-GPIO(EN_PP5000_USBC, PIN(D, 2), GPIO_OUT_LOW)
-GPIO(BPP_EPP_SEL, PIN(B, 6), GPIO_OUT_LOW)
-GPIO(NCP3902_EN_L, PIN(C, 7), 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/flapjack/led.c b/board/flapjack/led.c
deleted file mode 100644
index 165d549eb7..0000000000
--- a/board/flapjack/led.c
+++ /dev/null
@@ -1,182 +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 Flapjack board.
- */
-
-#include "battery.h"
-#include "charge_state.h"
-#include "console.h"
-#include "driver/charger/rt946x.h"
-#include "hooks.h"
-#include "led_common.h"
-#include "util.h"
-
-/* Define this to enable led command and debug LED */
-#undef DEBUG_LED
-
-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_RED MT6370_LED_ID1
-#define LED_GRN MT6370_LED_ID2
-#define LED_BLU MT6370_LED_ID3
-
-#define LED_MASK_OFF 0
-#define LED_MASK_RED MT6370_MASK_RGB_ISNK1DIM_EN
-#define LED_MASK_GRN MT6370_MASK_RGB_ISNK2DIM_EN
-#define LED_MASK_BLU MT6370_MASK_RGB_ISNK3DIM_EN
-
-static enum charge_state chstate;
-
-static void led_set_battery(void)
-{
- static enum charge_state prev = PWR_STATE_UNCHANGE;
- static int battery_second;
- int red = 0, grn = 0, blu = 0;
-
- battery_second++;
-#ifndef DEBUG_LED
- chstate = charge_get_state();
-#endif
- if (chstate == prev)
- return;
- prev = chstate;
-
- /*
- * Full White
- * Charging Amber
- * Error Red
- */
- switch (chstate) {
- case PWR_STATE_CHARGE:
- /* RGB(current, duty) = (4mA,10/32) (4mA,1/32) (0mA,) */
- red = 1;
- grn = 1;
- mt6370_led_set_pwm_dim_duty(LED_RED, 9);
- mt6370_led_set_pwm_dim_duty(LED_GRN, 0);
- break;
- case PWR_STATE_DISCHARGE:
- /* RGB(current, duty) = (0mA,) (0mA,) (0mA,) */
- break;
- case PWR_STATE_ERROR:
- /* RGB(current, duty) = (4mA,8/32) (0mA,) (0mA,) */
- red = 1;
- mt6370_led_set_pwm_dim_duty(LED_RED, 7);
- break;
- case PWR_STATE_CHARGE_NEAR_FULL:
- /* RGB(current, duty) = (8mA,2/32) (8mA,1/32) (4mA,1/32) */
- red = 2;
- grn = 2;
- blu = 1;
- mt6370_led_set_pwm_dim_duty(LED_RED, 1);
- mt6370_led_set_pwm_dim_duty(LED_GRN, 0);
- mt6370_led_set_pwm_dim_duty(LED_BLU, 0);
- break;
- default:
- /* Other states don't alter LED behavior */
- return;
- }
-
- mt6370_led_set_brightness(LED_RED, red);
- mt6370_led_set_brightness(LED_GRN, grn);
- mt6370_led_set_brightness(LED_BLU, blu);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- /* Current is fixed at 4mA. Brightness is controlled by duty only. */
- const uint8_t max = MT6370_LED_PWM_DIMDUTY_MAX;
- if (led_id != EC_LED_ID_BATTERY_LED)
- return;
- brightness_range[EC_LED_COLOR_GREEN] = max;
- brightness_range[EC_LED_COLOR_RED] = max;
- brightness_range[EC_LED_COLOR_BLUE] = max;
-}
-
-static void set_current_and_pwm_duty(uint8_t brightness,
- enum mt6370_led_index color)
-{
- if (brightness) {
- /* Current is fixed at 4mA. Brightness is controlled by duty. */
- mt6370_led_set_brightness(color, 1);
- mt6370_led_set_pwm_dim_duty(color, brightness);
- } else {
- /* off */
- mt6370_led_set_brightness(color, 0);
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id != EC_LED_ID_BATTERY_LED)
- return EC_ERROR_INVAL;
- set_current_and_pwm_duty(brightness[EC_LED_COLOR_RED], LED_RED);
- set_current_and_pwm_duty(brightness[EC_LED_COLOR_GREEN], LED_GRN);
- set_current_and_pwm_duty(brightness[EC_LED_COLOR_BLUE], LED_BLU);
- return EC_SUCCESS;
-}
-
-static void flapjack_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_GRN | LED_MASK_BLU);
- mt6370_led_set_dim_mode(LED_RED, dim);
- mt6370_led_set_dim_mode(LED_GRN, dim);
- mt6370_led_set_dim_mode(LED_BLU, dim);
- mt6370_led_set_pwm_frequency(LED_RED, freq);
- mt6370_led_set_pwm_frequency(LED_GRN, freq);
- mt6370_led_set_pwm_frequency(LED_BLU, freq);
-}
-DECLARE_HOOK(HOOK_INIT, flapjack_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))
- led_set_battery();
-}
-DECLARE_HOOK(HOOK_SECOND, led_second, HOOK_PRIO_DEFAULT);
-
-#ifdef DEBUG_LED
-static int command_led(int argc, char **argv)
-{
- int val;
- char *e;
-
- mt6370_led_set_color(LED_MASK_RED|LED_MASK_GRN|LED_MASK_BLU);
-
- if (argc == 2) {
- val = strtoi(argv[1], &e, 0);
- if (*e)
- return EC_ERROR_PARAM1;
- chstate = val;
- return EC_SUCCESS;
- }
-
- if (argc < 4)
- return EC_ERROR_PARAM_COUNT;
-
- val = strtoi(argv[1], &e, 0);
- if (*e)
- return EC_ERROR_PARAM1;
- mt6370_led_set_brightness(LED_RED, val);
-
- val = strtoi(argv[2], &e, 0);
- if (*e)
- return EC_ERROR_PARAM2;
- mt6370_led_set_brightness(LED_GRN, val);
-
- val = strtoi(argv[3], &e, 0);
- if (*e)
- return EC_ERROR_PARAM3;
- mt6370_led_set_brightness(LED_BLU, val);
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(led, command_led, "<chg_state> or <R> <G> <B>", NULL);
-#endif
diff --git a/board/flapjack/usb_pd_policy.c b/board/flapjack/usb_pd_policy.c
deleted file mode 100644
index ef2156f1fe..0000000000
--- a/board/flapjack/usb_pd_policy.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.
- */
-
-#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_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;
-}
-
-int pd_set_power_supply_ready(int port)
-{
- /* Disable NCP3902 to avoid charging from VBUS */
- gpio_set_level(GPIO_NCP3902_EN_L, 1);
-
- /* Provide VBUS */
- vbus_en = 1;
- gpio_set_level(GPIO_EN_PP5000_USBC, 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;
-
- if (prev_en) {
- gpio_set_level(GPIO_EN_PP5000_USBC, 0);
- msleep(250);
- gpio_set_level(GPIO_NCP3902_EN_L, 0);
- }
-
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-/* ----------------- 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;
-
- gpio_set_level(GPIO_USB_C0_HPD_OD, 1);
- gpio_set_level(GPIO_USB_C0_DP_OE_L, 0);
- gpio_set_level(GPIO_USB_C0_DP_POLARITY,
- polarity_rm_dts(pd_get_polarity(port)));
-
- /* set the minimum time delay (2ms) for the next HPD IRQ */
- svdm_hpd_deadline[port] = get_time().val + HPD_USTREAM_DEBOUNCE_LVL;
- usb_mux_hpd_update(port, 1, 0);
-}
-
-__override int svdm_dp_attention(int port, uint32_t *payload)
-{
- int cur_lvl = gpio_get_level(GPIO_USB_C0_HPD_OD);
- int lvl = PD_VDO_DPSTS_HPD_LVL(payload[1]);
- int irq = PD_VDO_DPSTS_HPD_IRQ(payload[1]);
-
- dp_status[port] = payload[1];
-
- /* 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;
- }
-
- usb_mux_set(port, lvl ? USB_PD_MUX_DP_ENABLED : USB_PD_MUX_NONE,
- USB_SWITCH_CONNECT, polarity_rm_dts(pd_get_polarity(port)));
-
- usb_mux_hpd_update(port, lvl, irq);
-
- if (irq & cur_lvl) {
- uint64_t now = get_time().val;
- /* wait for the minimum spacing between IRQ_HPD if needed */
- if (now < svdm_hpd_deadline[port])
- usleep(svdm_hpd_deadline[port] - now);
-
- /* generate IRQ_HPD pulse */
- gpio_set_level(GPIO_USB_C0_HPD_OD, 0);
- usleep(HPD_DSTREAM_DEBOUNCE_IRQ);
- gpio_set_level(GPIO_USB_C0_HPD_OD, 1);
-
- gpio_set_level(GPIO_USB_C0_DP_OE_L, 0);
- gpio_set_level(GPIO_USB_C0_DP_POLARITY,
- polarity_rm_dts(pd_get_polarity(port)));
-
- /* set the minimum time delay (2ms) for the next HPD IRQ */
- svdm_hpd_deadline[port] = get_time().val +
- HPD_USTREAM_DEBOUNCE_LVL;
- } else if (irq & !cur_lvl) {
- CPRINTF("ERR:HPD:IRQ&LOW\n");
- return 0; /* nak */
- } else {
- gpio_set_level(GPIO_USB_C0_HPD_OD, lvl);
- gpio_set_level(GPIO_USB_C0_DP_OE_L, !lvl);
- gpio_set_level(GPIO_USB_C0_DP_POLARITY,
- polarity_rm_dts(pd_get_polarity(port)));
- /* set the minimum time delay (2ms) for the next HPD IRQ */
- svdm_hpd_deadline[port] = get_time().val +
- HPD_USTREAM_DEBOUNCE_LVL;
- }
-
- /* ack */
- return 1;
-}
-
-__override void svdm_exit_dp_mode(int port)
-{
- gpio_set_level(GPIO_USB_C0_HPD_OD, 0);
- gpio_set_level(GPIO_USB_C0_DP_OE_L, 1);
- usb_mux_hpd_update(port, 0, 0);
-}
-#endif /* CONFIG_USB_PD_ALT_MODE_DFP */
diff --git a/board/flapjack/vif_override.xml b/board/flapjack/vif_override.xml
deleted file mode 100644
index 32736caf64..0000000000
--- a/board/flapjack/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.
--->