diff options
author | Vijay Hiremath <vijay.p.hiremath@intel.com> | 2021-09-29 18:12:20 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-10-21 00:34:32 +0000 |
commit | 5a3cc7ebf1fb3cd6c6b2a259952c0898404f4e7f (patch) | |
tree | 00a927bca9ec521cc53a18580fc76701a9369046 /baseboard | |
parent | 74e6e0bc2fa41a192b9f485d7c8c683e6e6a5949 (diff) | |
download | chrome-ec-5a3cc7ebf1fb3cd6c6b2a259952c0898404f4e7f.tar.gz |
ADL_RVP: Enable pre-task I2C transactions
ADL-RVP needs to access IOEX based GPIOs pre-task to configure the
SBU lines to CCD or AUX hence enabled pre-task I2C transactions.
BUG=none
BRANCH=none
TEST=Able to configure config SBU lines for CCD pre-task
Change-Id: I1512dc4c1837e769f39e1dd595ae2ba1b4cbdf17
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3194986
Reviewed-by: caveh jalali <caveh@chromium.org>
Reviewed-by: Poornima Tom <poornima.tom@intel.com>
Commit-Queue: caveh jalali <caveh@chromium.org>
Tested-by: caveh jalali <caveh@chromium.org>
Diffstat (limited to 'baseboard')
-rw-r--r-- | baseboard/intelrvp/adlrvp.c | 15 | ||||
-rw-r--r-- | baseboard/intelrvp/adlrvp.h | 10 |
2 files changed, 22 insertions, 3 deletions
diff --git a/baseboard/intelrvp/adlrvp.c b/baseboard/intelrvp/adlrvp.c index 78f4b3613a..9946b7c832 100644 --- a/baseboard/intelrvp/adlrvp.c +++ b/baseboard/intelrvp/adlrvp.c @@ -312,8 +312,6 @@ static void board_connect_c0_sbu_deferred(void) } } DECLARE_DEFERRED(board_connect_c0_sbu_deferred); -/* Make sure SBU are routed to CCD or AUX based on CCD status at init */ -DECLARE_HOOK(HOOK_INIT, board_connect_c0_sbu_deferred, HOOK_PRIO_INIT_I2C + 2); void board_connect_c0_sbu(enum gpio_signal s) { @@ -365,7 +363,6 @@ static void configure_retimer_usbmux(void) break; } } -DECLARE_HOOK(HOOK_INIT, configure_retimer_usbmux, HOOK_PRIO_INIT_I2C + 1); /******************************************************************************/ /* PWROK signal configuration */ @@ -448,3 +445,15 @@ __override bool board_is_tbt_usb4_port(int port) return tbt_usb4; } + +__override void board_pre_task_i2c_peripheral_init(void) +{ + /* Initialized IOEX-0 to access IOEX-GPIOs needed pre-task */ + ioex_init(IOEX_C0_PCA9675); + + /* Make sure SBU are routed to CCD or AUX based on CCD status at init */ + board_connect_c0_sbu_deferred(); + + /* Configure board specific retimer & mux */ + configure_retimer_usbmux(); +} diff --git a/baseboard/intelrvp/adlrvp.h b/baseboard/intelrvp/adlrvp.h index 31bfc5aded..e4316c9013 100644 --- a/baseboard/intelrvp/adlrvp.h +++ b/baseboard/intelrvp/adlrvp.h @@ -181,6 +181,16 @@ enum battery_type { BATTERY_TYPE_COUNT, }; +/* I2C access in polling mode before task is initialized */ +#define CONFIG_I2C_BITBANG + +enum adlrvp_bitbang_i2c_channel { + I2C_BITBANG_CHAN_BRD_ID, + I2C_BITBANG_CHAN_IOEX_0, + I2C_BITBANG_CHAN_COUNT +}; +#define I2C_BITBANG_PORT_COUNT I2C_BITBANG_CHAN_COUNT + void espi_reset_pin_asserted_interrupt(enum gpio_signal signal); void extpower_interrupt(enum gpio_signal signal); void ppc_interrupt(enum gpio_signal signal); |