diff options
author | Tom Hughes <tomhughes@chromium.org> | 2022-09-21 14:10:01 -0700 |
---|---|---|
committer | Tom Hughes <tomhughes@chromium.org> | 2022-09-22 12:49:33 -0700 |
commit | 2bcf863b492fe7ed8105c853814dba6ed32ba719 (patch) | |
tree | fcf6ce5810f9ff9e3c8cce434812dd75492269ed /driver/ppc/rt1739.c | |
parent | e5fb0b9ba488614b5684e640530f00821ab7b943 (diff) | |
parent | 28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff) | |
download | chrome-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 'driver/ppc/rt1739.c')
-rw-r--r-- | driver/ppc/rt1739.c | 105 |
1 files changed, 43 insertions, 62 deletions
diff --git a/driver/ppc/rt1739.c b/driver/ppc/rt1739.c index 7b08faac83..d89599a7ae 100644 --- a/driver/ppc/rt1739.c +++ b/driver/ppc/rt1739.c @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -15,7 +15,6 @@ #include "usbc_ppc.h" #include "util.h" - #if defined(CONFIG_USBC_PPC_VCONN) && !defined(CONFIG_USBC_PPC_POLARITY) #error "Can't use set_vconn without set_polarity" #endif @@ -24,35 +23,28 @@ #define RT1739_FLAGS_FRS_ENABLED BIT(1) static atomic_t flags[CONFIG_USB_PD_PORT_MAX_COUNT]; -#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args) +#define CPRINTS(format, args...) cprints(CC_USBPD, format, ##args) +#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ##args) static int read_reg(uint8_t port, int reg, int *val) { - return i2c_read8( - ppc_chips[port].i2c_port, - ppc_chips[port].i2c_addr_flags, - reg, val); + return i2c_read8(ppc_chips[port].i2c_port, + ppc_chips[port].i2c_addr_flags, reg, val); } static int write_reg(uint8_t port, int reg, int val) { - return i2c_write8( - ppc_chips[port].i2c_port, - ppc_chips[port].i2c_addr_flags, - reg, val); + return i2c_write8(ppc_chips[port].i2c_port, + ppc_chips[port].i2c_addr_flags, reg, val); } static int update_reg(int port, int reg, int mask, enum mask_update_action action) { - return i2c_update8( - ppc_chips[port].i2c_port, - ppc_chips[port].i2c_addr_flags, - reg, mask, action); + return i2c_update8(ppc_chips[port].i2c_port, + ppc_chips[port].i2c_addr_flags, reg, mask, action); } - static int rt1739_is_sourcing_vbus(int port) { return flags[port] & RT1739_FLAGS_SOURCE_ENABLED; @@ -63,11 +55,11 @@ static int rt1739_vbus_source_enable(int port, int enable) atomic_t prev_flag; if (enable) - prev_flag = atomic_or(&flags[port], - RT1739_FLAGS_SOURCE_ENABLED); + prev_flag = + atomic_or(&flags[port], RT1739_FLAGS_SOURCE_ENABLED); else prev_flag = atomic_clear_bits(&flags[port], - RT1739_FLAGS_SOURCE_ENABLED); + RT1739_FLAGS_SOURCE_ENABLED); /* Return if status doesn't change */ if (!!(prev_flag & RT1739_FLAGS_SOURCE_ENABLED) == !!enable) @@ -90,10 +82,8 @@ static int rt1739_vbus_source_enable(int port, int enable) static int rt1739_vbus_sink_enable(int port, int enable) { - return update_reg(port, RT1739_REG_VBUS_SWITCH_CTRL, - RT1739_HV_SNK_EN, + return update_reg(port, RT1739_REG_VBUS_SWITCH_CTRL, RT1739_HV_SNK_EN, enable ? MASK_SET : MASK_CLR); - } #ifdef CONFIG_CMD_PPC_DUMP @@ -145,8 +135,7 @@ static int rt1739_is_vbus_present(int port) #ifdef CONFIG_USBC_PPC_POLARITY static int rt1739_set_polarity(int port, int polarity) { - return update_reg(port, RT1739_REG_VCONN_CTRL1, - RT1739_VCONN_ORIENT, + return update_reg(port, RT1739_REG_VCONN_CTRL1, RT1739_VCONN_ORIENT, polarity ? RT1739_VCONN_ORIENT_CC1 : RT1739_VCONN_ORIENT_CC2); } @@ -155,9 +144,8 @@ static int rt1739_set_polarity(int port, int polarity) #ifdef CONFIG_USBC_PPC_VCONN static int rt1739_set_vconn(int port, int enable) { - return update_reg(port, RT1739_REG_VCONN_CTRL1, - RT1739_VCONN_EN, - enable ? MASK_SET : MASK_CLR); + return update_reg(port, RT1739_REG_VCONN_CTRL1, RT1739_VCONN_EN, + enable ? MASK_SET : MASK_CLR); } #endif @@ -176,14 +164,13 @@ static int rt1739_workaround(int port) case RT1739_DEVICE_ID_ES1: CPRINTS("RT1739 ES1"); RETURN_ERROR(update_reg(port, RT1739_REG_SYS_CTRL1, - RT1739_OSC640K_FORCE_EN, - MASK_SET)); + RT1739_OSC640K_FORCE_EN, MASK_SET)); RETURN_ERROR(write_reg(port, RT1739_VBUS_FAULT_DIS, RT1739_OVP_DISVBUS_EN | - RT1739_UVLO_DISVBUS_EN | - RT1739_SCP_DISVBUS_EN | - RT1739_OCPS_DISVBUS_EN)); + RT1739_UVLO_DISVBUS_EN | + RT1739_SCP_DISVBUS_EN | + RT1739_OCPS_DISVBUS_EN)); break; case RT1739_DEVICE_ID_ES2: @@ -208,14 +195,13 @@ static int rt1739_workaround(int port) msleep(5); RETURN_ERROR(write_reg(port, RT1739_REG_VBUS_SWITCH_CTRL, 0)); msleep(5); - RETURN_ERROR(write_reg(port, RT1739_VBUS_FAULT_DIS, - RT1739_OVP_DISVBUS_EN | - RT1739_UVLO_DISVBUS_EN | - RT1739_RCP_DISVBUS_EN | - RT1739_SCP_DISVBUS_EN)); - RETURN_ERROR(write_reg(port, RT1739_REG_VBUS_CTRL1, - RT1739_HVLV_SCP_EN | - RT1739_HVLV_OCRC_EN)); + RETURN_ERROR(write_reg( + port, RT1739_VBUS_FAULT_DIS, + RT1739_OVP_DISVBUS_EN | RT1739_UVLO_DISVBUS_EN | + RT1739_RCP_DISVBUS_EN | RT1739_SCP_DISVBUS_EN)); + RETURN_ERROR( + write_reg(port, RT1739_REG_VBUS_CTRL1, + RT1739_HVLV_SCP_EN | RT1739_HVLV_OCRC_EN)); break; default: @@ -229,8 +215,7 @@ static int rt1739_workaround(int port) static int rt1739_set_frs_enable(int port, int enable) { /* Enable FRS RX detect */ - RETURN_ERROR(update_reg(port, RT1739_REG_CC_FRS_CTRL1, - RT1739_FRS_RX_EN, + RETURN_ERROR(update_reg(port, RT1739_REG_CC_FRS_CTRL1, RT1739_FRS_RX_EN, enable ? MASK_SET : MASK_CLR)); /* @@ -243,8 +228,7 @@ static int rt1739_set_frs_enable(int port, int enable) RETURN_ERROR(update_reg(port, RT1739_REG_INT_MASK5, RT1739_BC12_SNK_DONE_MASK, enable ? MASK_CLR : MASK_SET)); - RETURN_ERROR(update_reg(port, RT1739_REG_INT_MASK4, - RT1739_FRS_RX_MASK, + RETURN_ERROR(update_reg(port, RT1739_REG_INT_MASK4, RT1739_FRS_RX_MASK, enable ? MASK_SET : MASK_CLR)); if (enable) atomic_or(&flags[port], RT1739_FLAGS_FRS_ENABLED); @@ -268,22 +252,19 @@ static int rt1739_init(int port) RETURN_ERROR(rt1739_workaround(port)); RETURN_ERROR(rt1739_set_frs_enable(port, false)); RETURN_ERROR(update_reg(port, RT1739_REG_VBUS_DET_EN, - RT1739_VBUS_PRESENT_EN, - MASK_SET)); + RT1739_VBUS_PRESENT_EN, MASK_SET)); RETURN_ERROR(update_reg(port, RT1739_REG_SBU_CTRL_01, - RT1739_DM_SWEN | RT1739_DP_SWEN, - MASK_SET)); + RT1739_DM_SWEN | RT1739_DP_SWEN, MASK_SET)); RETURN_ERROR(update_reg(port, RT1739_REG_SBU_CTRL_01, - RT1739_SBUSW_MUX_SEL, - MASK_CLR)); + RT1739_SBUSW_MUX_SEL, MASK_CLR)); RETURN_ERROR(update_reg(port, RT1739_REG_VCONN_CTRL3, - RT1739_VCONN_CLIMIT_EN, - MASK_SET)); + RT1739_VCONN_CLIMIT_EN, MASK_SET)); /* VBUS OVP -> 23V */ - RETURN_ERROR(write_reg(port, RT1739_REG_VBUS_OV_SETTING, + RETURN_ERROR(write_reg( + port, RT1739_REG_VBUS_OV_SETTING, (RT1739_OVP_SEL_23_0V << RT1739_VBUS_OVP_SEL_SHIFT) | - (RT1739_OVP_SEL_23_0V << RT1739_VIN_HV_OVP_SEL_SHIFT))); + (RT1739_OVP_SEL_23_0V << RT1739_VIN_HV_OVP_SEL_SHIFT))); /* VBUS OCP -> 3.3A (or 5.5A for ES2 HV Sink) */ RETURN_ERROR(rt1739_get_device_id(port, &device_id)); if (device_id == RT1739_DEVICE_ID_ES2) @@ -317,7 +298,7 @@ static void rt1739_update_charge_manager(int port, if (new_bc12_type != current_bc12_type) { if (current_bc12_type != CHARGE_SUPPLIER_NONE) charge_manager_update_charge(current_bc12_type, port, - NULL); + NULL); if (new_bc12_type != CHARGE_SUPPLIER_NONE) { struct charge_port_info chg = { @@ -334,8 +315,8 @@ static void rt1739_update_charge_manager(int port, static void rt1739_enable_bc12_detection(int port, bool enable) { - update_reg(port, RT1739_REG_BC12_SNK_FUNC, - RT1739_BC12_SNK_EN, enable ? MASK_SET : MASK_CLR); + update_reg(port, RT1739_REG_BC12_SNK_FUNC, RT1739_BC12_SNK_EN, + enable ? MASK_SET : MASK_CLR); } static enum charge_supplier rt1739_bc12_get_device_type(int port) @@ -370,16 +351,16 @@ static void rt1739_usb_charger_task_init(const int port) static void rt1739_usb_charger_task_event(const int port, uint32_t evt) { bool is_non_pd_sink = !pd_capable(port) && - !usb_charger_port_is_sourcing_vbus(port) && - pd_check_vbus_level(port, VBUS_PRESENT); + !usb_charger_port_is_sourcing_vbus(port) && + pd_check_vbus_level(port, VBUS_PRESENT); /* vbus change, start bc12 detection */ if (evt & USB_CHG_EVENT_VBUS) { if (is_non_pd_sink) rt1739_enable_bc12_detection(port, true); else - rt1739_update_charge_manager( - port, CHARGE_SUPPLIER_NONE); + rt1739_update_charge_manager(port, + CHARGE_SUPPLIER_NONE); } /* detection done, update charge_manager and stop detection */ |