summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2021-09-29 18:12:20 -0700
committerCommit Bot <commit-bot@chromium.org>2021-10-21 00:34:32 +0000
commit5a3cc7ebf1fb3cd6c6b2a259952c0898404f4e7f (patch)
tree00a927bca9ec521cc53a18580fc76701a9369046 /baseboard
parent74e6e0bc2fa41a192b9f485d7c8c683e6e6a5949 (diff)
downloadchrome-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.c15
-rw-r--r--baseboard/intelrvp/adlrvp.h10
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);