diff options
author | xiong.huang <xiong.huang@bitland.corp-partner.google.com> | 2020-07-16 16:16:40 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-21 04:55:58 +0000 |
commit | c0b9f2e780f45f2d18a1b9acfd00095dbc0693fa (patch) | |
tree | d3f8a0849f7a797035ae9e0a4c9343d0b735e2b4 /board/malefor/board.c | |
parent | 60e32f992378026af9586492ab6d53d727d47aa3 (diff) | |
download | chrome-ec-c0b9f2e780f45f2d18a1b9acfd00095dbc0693fa.tar.gz |
malefor: reset PD chip
Fill API board_reset_pd_mcu() for resetting DB PD chip.
BUG=b:159024035
BRANCH=none
TEST=make buildall -j
Signed-off-by: xiong.huang <xiong.huang@bitland.corp-partner.google.com>
Change-Id: Id93777bbbcb5d2ced19e3444d5c32fc3c18b21bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2301558
Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'board/malefor/board.c')
-rw-r--r-- | board/malefor/board.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/board/malefor/board.c b/board/malefor/board.c index 778f22260c..ecac587c49 100644 --- a/board/malefor/board.c +++ b/board/malefor/board.c @@ -339,7 +339,32 @@ static const struct usb_mux mux_config_p1_usb3 = { void board_reset_pd_mcu(void) { - /* TODO(b/159024035): Malefor: check USB PD reset operation */ + 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) |