summaryrefslogtreecommitdiff
path: root/baseboard/guybrush/baseboard.c
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2022-09-21 14:10:01 -0700
committerTom Hughes <tomhughes@chromium.org>2022-09-22 12:49:33 -0700
commit2bcf863b492fe7ed8105c853814dba6ed32ba719 (patch)
treefcf6ce5810f9ff9e3c8cce434812dd75492269ed /baseboard/guybrush/baseboard.c
parente5fb0b9ba488614b5684e640530f00821ab7b943 (diff)
parent28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff)
downloadchrome-ec-firmware-fpmcu-bloonchipper-release.tar.gz
Merge remote-tracking branch cros/main into firmware-fpmcu-bloonchipper-releasefirmware-fpmcu-bloonchipper-release
Generated by: ./util/update_release_branch.py --board bloonchipper --relevant_paths_file ./util/fingerprint-relevant-paths.txt firmware- fpmcu-bloonchipper-release Relevant changes: git log --oneline e5fb0b9ba4..28712dae9d -- board/hatch_fp board/bloonchipper common/fpsensor docs/fingerprint driver/fingerprint util/getversion.sh ded9307b79 util/getversion.sh: Fix version when not in a git repo 956055e692 board: change Google USB vendor info 71b2ef709d Update license boilerplate text in source code files 33e11afda0 Revert "fpsensor: Build fpsensor source file with C++" c8d0360723 fpsensor: Build fpsensor source file with C++ bc113abd53 fpsensor: Fix g++ compiler error 150a58a0dc fpsensor: Fix fp_set_sensor_mode return type b33b5ce85b fpsensor: Remove nested designators for C++ compatibility 2e864b2539 tree-wide: const-ify argv for console commands 56d8b360f9 test: Add test for get ikm failure when seed not set 3a3d6c3690 test: Add test for fpsensor trivial key failure 233e6bbd08 fpsensor_crypto: Abstract calls to hmac_SHA256 0a041b285b docs/fingerprint: Typo correction c03fab67e2 docs/fingerprint: Fix the path of fputils.py 0b5d4baf5a util/getversion.sh: Fix empty file list handling 6e128fe760 FPMCU dev board environment with Satlab 3eb29b6aa5 builtin: Move ssize_t to sys/types.h 345d62ebd1 docs/fingerprint: Update power numbers for latest dartmonkey release c25ffdb316 common: Conditionally support printf %l and %i modifiers 9a3c514b45 test: Add a test to check if the debugger is connected 54e603413f Move standard library tests to their own file 43fa6b4bf8 docs/fingerprint: Update power numbers for latest bloonchipper release 25536f9a84 driver/fingerprint/fpc/bep/fpc_sensor_spi.c: Format with clang-format 4face99efd driver/fingerprint/fpc/libfp/fpc_sensor_pal.h: Format with clang-format 738de2b575 trng: Rename rand to trng_rand 14b8270edd docs/fingerprint: Update dragonclaw power numbers 0b268f93d1 driver/fingerprint/fpc/libfp/fpc_private.c: Format with clang-format f80da163f2 driver/fingerprint/fpc/libfp/fpc_private.h: Format with clang-format 5e9c85c9b1 driver/fingerprint/fpc/libfp/fpc_sensor_pal.c: Format with clang-format c1f9dd3cf8 driver/fingerprint/fpc/libfp/fpc_bio_algorithm.h: Format with clang-format eb1e1bed8d driver/fingerprint/fpc/libfp/fpc1145_private.h: Format with clang-format 6e7b611821 driver/fingerprint/fpc/bep/fpc_bio_algorithm.h: Format with clang-format e0589cd5e2 driver/fingerprint/fpc/bep/fpc1035_private.h: Format with clang-format 7905e556a0 common/fpsensor/fpsensor_crypto.c: Format with clang-format 21289d170c driver/fingerprint/fpc/bep/fpc1025_private.h: Format with clang-format 98a20f937e common/fpsensor/fpsensor_state.c: Format with clang-format a2d255d8af common/fpsensor/fpsensor.c: Format with clang-format 73055eeb3f driver/fingerprint/fpc/bep/fpc_private.c: Format with clang-format 0f7b5cb509 common/fpsensor/fpsensor_private.h: Format with clang-format 1ceade6e65 driver/fingerprint/fpc/bep/fpc_private.h: Format with clang-format dc3e9008b8 board/hatch_fp/board.h: Format with clang-format dca9d74321 Revert "trng: Rename rand to trng_rand" a6b0b3554f trng: Rename rand to trng_rand 28d0b75b70 third_party/boringssl: Remove unused header BRANCH=None BUG=b:246424843 b:234181908 b:244781166 b:234181908 b:244387210 BUG=b:242720240 chromium:1098010 b:180945056 b:236025198 b:234181908 BUG=b:234181908 b:237344361 b:131913998 b:236386294 b:234143158 BUG=b:234781655 b:215613183 b:242720910 TEST=`make -j buildall` TEST=./test/run_device_tests.py --board bloonchipper Test "aes": PASSED Test "cec": PASSED Test "cortexm_fpu": PASSED Test "crc": PASSED Test "flash_physical": PASSED Test "flash_write_protect": PASSED Test "fpsensor_hw": PASSED Test "fpsensor_spi_ro": PASSED Test "fpsensor_spi_rw": PASSED Test "fpsensor_uart_ro": PASSED Test "fpsensor_uart_rw": PASSED Test "mpu_ro": PASSED Test "mpu_rw": PASSED Test "mutex": PASSED Test "pingpong": PASSED Test "printf": PASSED Test "queue": PASSED Test "rollback_region0": PASSED Test "rollback_region1": PASSED Test "rollback_entropy": PASSED Test "rtc": PASSED Test "sha256": PASSED Test "sha256_unrolled": PASSED Test "static_if": PASSED Test "stdlib": PASSED Test "system_is_locked_wp_on": PASSED Test "system_is_locked_wp_off": PASSED Test "timer_dos": PASSED Test "utils": PASSED Test "utils_str": PASSED Test "stm32f_rtc": PASSED Test "panic_data_bloonchipper_v2.0.4277": PASSED Test "panic_data_bloonchipper_v2.0.5938": PASSED Force-Relevant-Builds: all Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I264ad0ffe7afcd507a1e483c6e934a9c4fea47c3
Diffstat (limited to 'baseboard/guybrush/baseboard.c')
-rw-r--r--baseboard/guybrush/baseboard.c103
1 files changed, 53 insertions, 50 deletions
diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c
index 6a390b0a43..5d36f5be9a 100644
--- a/baseboard/guybrush/baseboard.c
+++ b/baseboard/guybrush/baseboard.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -16,11 +16,11 @@
#include "chip/npcx/ps2_chip.h"
#include "chip/npcx/pwm_chip.h"
#include "chipset.h"
-#include "driver/ppc/aoz1380.h"
+#include "driver/ppc/aoz1380_public.h"
#include "driver/ppc/nx20p348x.h"
#include "driver/retimer/anx7491.h"
#include "driver/retimer/ps8811.h"
-#include "driver/retimer/ps8818.h"
+#include "driver/retimer/ps8818_public.h"
#include "driver/tcpm/nct38xx.h"
#include "driver/usb_mux/anx7451.h"
#include "driver/usb_mux/amd_fp6.h"
@@ -40,10 +40,10 @@
#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)
+#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ##args)
+#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ##args)
-#define CPRINTSCHIP(format, args...) cprints(CC_CHIPSET, format ## args)
+#define CPRINTSCHIP(format, args...) cprints(CC_CHIPSET, format##args)
static void reset_nct38xx_port(int port);
@@ -53,7 +53,7 @@ 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);
+const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
/* Power Signal Input List */
const struct power_signal_info power_signal_list[] = {
@@ -145,8 +145,6 @@ const struct i2c_port_t i2c_ports[] = {
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-
-
const struct charger_config_t chg_chips[] = {
{
.i2c_port = I2C_PORT_CHARGER,
@@ -235,7 +233,7 @@ const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
};
BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-static int fsusb42umx_set_mux(const struct usb_mux*, mux_state_t);
+static int fsusb42umx_set_mux(const struct usb_mux *, mux_state_t);
__overridable int board_c1_ps8818_mux_set(const struct usb_mux *me,
mux_state_t mux_state)
@@ -244,7 +242,7 @@ __overridable int board_c1_ps8818_mux_set(const struct usb_mux *me,
return 0;
}
-struct usb_mux usbc1_ps8818 = {
+const struct usb_mux usbc1_ps8818 = {
.usb_port = USBC_PORT_C1,
.i2c_port = I2C_PORT_TCPC1,
.flags = USB_MUX_FLAG_RESETS_IN_G3,
@@ -260,7 +258,7 @@ __overridable int board_c1_anx7451_mux_set(const struct usb_mux *me,
return 0;
}
-struct usb_mux usbc1_anx7451 = {
+const struct usb_mux usbc1_anx7451 = {
.usb_port = USBC_PORT_C1,
.i2c_port = I2C_PORT_TCPC1,
.flags = USB_MUX_FLAG_RESETS_IN_G3,
@@ -269,20 +267,27 @@ struct usb_mux usbc1_anx7451 = {
.board_set = &board_c1_anx7451_mux_set,
};
-struct usb_mux usb_muxes[] = {
+/* Filled in by setup_mux based on fw_config */
+struct usb_mux_chain usbc1_mux1;
+
+struct usb_mux_chain usb_muxes[] = {
[USBC_PORT_C0] = {
- .usb_port = USBC_PORT_C0,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = AMD_FP6_C0_MUX_I2C_ADDR,
- .driver = &amd_fp6_usb_mux_driver,
- .board_set = &fsusb42umx_set_mux,
+ .mux = &(const struct usb_mux) {
+ .usb_port = USBC_PORT_C0,
+ .i2c_port = I2C_PORT_USB_MUX,
+ .i2c_addr_flags = AMD_FP6_C0_MUX_I2C_ADDR,
+ .driver = &amd_fp6_usb_mux_driver,
+ .board_set = &fsusb42umx_set_mux,
+ },
},
[USBC_PORT_C1] = {
- .usb_port = USBC_PORT_C1,
- .i2c_port = I2C_PORT_USB_MUX,
- .i2c_addr_flags = AMD_FP6_C4_MUX_I2C_ADDR,
- .driver = &amd_fp6_usb_mux_driver,
- /* .next_mux = filled in by setup_mux based on fw_config */
+ .mux = &(const struct usb_mux) {
+ .usb_port = USBC_PORT_C1,
+ .i2c_port = I2C_PORT_USB_MUX,
+ .i2c_addr_flags = AMD_FP6_C4_MUX_I2C_ADDR,
+ .driver = &amd_fp6_usb_mux_driver,
+ },
+ .next = &usbc1_mux1,
}
};
BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);
@@ -375,22 +380,22 @@ static void setup_mux(void)
switch (board_get_usb_c1_mux()) {
case USB_C1_MUX_PS8818:
CPRINTSUSB("C1: Setting PS8818 mux");
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_ps8818;
+ usbc1_mux1.mux = &usbc1_ps8818;
break;
case USB_C1_MUX_ANX7451:
CPRINTSUSB("C1: Setting ANX7451 mux");
- usb_muxes[USBC_PORT_C1].next_mux = &usbc1_anx7451;
+ usbc1_mux1.mux = &usbc1_anx7451;
break;
default:
CPRINTSUSB("C1: Mux is unknown");
+ usb_muxes[USBC_PORT_C1].next = NULL;
}
}
DECLARE_HOOK(HOOK_INIT, setup_mux, HOOK_PRIO_INIT_I2C);
int board_set_active_charge_port(int port)
{
- int is_valid_port = (port >= 0 &&
- port < CONFIG_USB_PD_PORT_MAX_COUNT);
+ int is_valid_port = (port >= 0 && port < CONFIG_USB_PD_PORT_MAX_COUNT);
int i;
int rv;
@@ -404,7 +409,7 @@ int board_set_active_charge_port(int port)
* ahead and reset it so EN_SNK responds properly.
*/
if (nct38xx_get_boot_type(i) ==
- NCT38XX_BOOT_DEAD_BATTERY) {
+ NCT38XX_BOOT_DEAD_BATTERY) {
reset_nct38xx_port(i);
pd_set_error_recovery(i);
}
@@ -453,7 +458,7 @@ int board_set_active_charge_port(int port)
* change because we'll brown out.
*/
if (nct38xx_get_boot_type(port) ==
- NCT38XX_BOOT_DEAD_BATTERY) {
+ NCT38XX_BOOT_DEAD_BATTERY) {
reset_nct38xx_port(i);
pd_set_error_recovery(i);
} else {
@@ -505,7 +510,9 @@ int board_is_i2c_port_powered(int port)
case I2C_PORT_THERMAL_AP:
/* SOC thermal i2c bus is unpowered in S0i3/S3/S5/Z1 */
return chipset_in_state(CHIPSET_STATE_ANY_OFF |
- CHIPSET_STATE_ANY_SUSPEND) ? 0 : 1;
+ CHIPSET_STATE_ANY_SUSPEND) ?
+ 0 :
+ 1;
default:
return 1;
}
@@ -516,8 +523,7 @@ int board_is_i2c_port_powered(int port)
* the attached NCT3807 to control a GPIO to indicate 1A5 or 3A0
* current limits.
*/
-int board_aoz1380_set_vbus_source_current_limit(int port,
- enum tcpc_rp_value rp)
+int board_aoz1380_set_vbus_source_current_limit(int port, enum tcpc_rp_value rp)
{
int rv;
@@ -528,12 +534,11 @@ int board_aoz1380_set_vbus_source_current_limit(int port,
return rv;
}
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_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);
+ charge_set_input_current_limit(
+ MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
}
void sbu_fault_interrupt(enum ioex_signal signal)
@@ -571,10 +576,10 @@ void tcpc_alert_event(enum gpio_signal signal)
static void reset_nct38xx_port(int port)
{
int rv;
- int saved_state[IOEX_COUNT] = {0};
+ int saved_state[IOEX_COUNT] = { 0 };
enum gpio_signal reset_gpio_l = (port == USBC_PORT_C0) ?
- GPIO_USB_C0_TCPC_RST_L :
- GPIO_USB_C1_TCPC_RST_L;
+ GPIO_USB_C0_TCPC_RST_L :
+ GPIO_USB_C1_TCPC_RST_L;
if (port < 0 || port > USBC_PORT_COUNT) {
CPRINTSUSB("%s invalid port %d", __func__, port);
@@ -877,9 +882,9 @@ static void baseboard_set_en_pwr_pcore(void)
* EN_PWR_S0_R.
*/
gpio_set_level(GPIO_EN_PWR_PCORE_S0_R,
- gpio_get_level(GPIO_PG_LPDDR4X_S3_OD) &&
- gpio_get_level(GPIO_PG_GROUPC_S0_OD) &&
- gpio_get_level(GPIO_EN_PWR_S0_R));
+ gpio_get_level(GPIO_PG_LPDDR4X_S3_OD) &&
+ gpio_get_level(GPIO_PG_GROUPC_S0_OD) &&
+ gpio_get_level(GPIO_EN_PWR_S0_R));
}
void baseboard_en_pwr_pcore_signal(enum gpio_signal signal)
@@ -891,19 +896,17 @@ static void baseboard_check_groupc_low(void)
{
/* Warn if we see unexpected sequencing here */
if (!gpio_get_level(GPIO_EN_PWR_S0_R) &&
- gpio_get_level(GPIO_PG_GROUPC_S0_OD))
+ gpio_get_level(GPIO_PG_GROUPC_S0_OD))
CPRINTSCHIP("WARN: PG_GROUPC_S0_OD high while EN_PWR_S0_R low");
-
}
DECLARE_DEFERRED(baseboard_check_groupc_low);
void baseboard_en_pwr_s0(enum gpio_signal signal)
{
-
/* EC must AND signals SLP_S3_L and PG_PWR_S5 */
gpio_set_level(GPIO_EN_PWR_S0_R,
- gpio_get_level(GPIO_SLP_S3_L) &&
- gpio_get_level(GPIO_PG_PWR_S5));
+ gpio_get_level(GPIO_SLP_S3_L) &&
+ gpio_get_level(GPIO_PG_PWR_S5));
/*
* If we set EN_PWR_S0_R low, then check PG_GROUPC_S0_OD went low as
@@ -973,7 +976,7 @@ __override void power_board_handle_sleep_hang(enum sleep_hang_type hang_type)
ccprints("Consecutive(%d) hard sleep hangs detected!",
hard_sleep_hang_count);
ccprints("AP will be force shutdown in %dms if hang persists",
- HARD_SLEEP_HANG_TIMEOUT);
+ HARD_SLEEP_HANG_TIMEOUT);
}
hook_call_deferred(&board_handle_hard_sleep_hang_data,
@@ -999,7 +1002,7 @@ static void board_handle_hard_sleep_hang(void)
/* If AP reset does not break hang, force a shutdown */
shutdown_on_hard_hang = true;
ccprints("AP will be shutdown in %dms if hang persists",
- HARD_SLEEP_HANG_TIMEOUT);
+ HARD_SLEEP_HANG_TIMEOUT);
hook_call_deferred(&board_handle_hard_sleep_hang_data,
HARD_SLEEP_HANG_TIMEOUT * MSEC);
chipset_reset(CHIPSET_RESET_HANG_REBOOT);