diff options
author | Deepti Deshatty <deepti.deshatty@intel.corp-partner.google.com> | 2021-12-14 15:01:10 +0530 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-01-23 08:06:04 +0000 |
commit | 8dcb209a71ab8d56936fee45e403f29cef8567cc (patch) | |
tree | ba18a57c51337613deb8505d6155994330c6ac5a /board/adlrvpp_ite | |
parent | af1da08a314b7bdf6bfa8044d19aa80f471ec3fb (diff) | |
download | chrome-ec-8dcb209a71ab8d56936fee45e403f29cef8567cc.tar.gz |
adlrvpn: configure charger vsys min register
ADL-N uses the similar charger chip as Brya i.e BQ25720
Referring to the b:196184163 charger system voltage register
should be set based on the AC or AC+battery conditions.
New API set_charger_system_voltage() is implemented for this.
API is called when AC/battery is connected/disconnected.
Changes helped to solve the PROCHOT assertion by charger chip
when no battery is connected to the RVP.
BRANCH=none
BUG=none
TEST=verified change on adlrvp-n board. PROCHOT not
asserted when no battery connected to the RVP.
Change-Id: Ic21d8008530e08f2b7d26994665ca8cc37cffdfe
Signed-off-by: Deepti Deshatty <deepti.deshatty@intel.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3338099
Reviewed-by: Boris Mittelberg <bmbm@google.com>
Reviewed-by: caveh jalali <caveh@chromium.org>
Reviewed-by: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Diffstat (limited to 'board/adlrvpp_ite')
-rw-r--r-- | board/adlrvpp_ite/board.c | 15 | ||||
-rw-r--r-- | board/adlrvpp_ite/gpio.inc | 6 |
2 files changed, 18 insertions, 3 deletions
diff --git a/board/adlrvpp_ite/board.c b/board/adlrvpp_ite/board.c index 3baec4aeaf..15aa1c46d7 100644 --- a/board/adlrvpp_ite/board.c +++ b/board/adlrvpp_ite/board.c @@ -8,6 +8,7 @@ #include "fan.h" #include "fusb302.h" #include "gpio.h" +#include "hooks.h" #include "i2c.h" #include "i2c_bitbang.h" #include "it83xx_pd.h" @@ -137,3 +138,17 @@ const struct tcpc_config_t tcpc_config[] = { #endif }; BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT); + +static void enable_irq(void) +{ + gpio_enable_interrupt(CONFIG_BATTERY_PRESENT_GPIO); +} +DECLARE_HOOK(HOOK_INIT, enable_irq, HOOK_PRIO_LAST); + +DECLARE_DEFERRED(set_charger_system_voltage); + +void battery_detect_interrupt(enum gpio_signal signal) +{ + /* Trigger deferred notification of battery interrupt */ + hook_call_deferred(&set_charger_system_voltage_data, 0); +} diff --git a/board/adlrvpp_ite/gpio.inc b/board/adlrvpp_ite/gpio.inc index 00b4aefa3e..9171941a82 100644 --- a/board/adlrvpp_ite/gpio.inc +++ b/board/adlrvpp_ite/gpio.inc @@ -42,6 +42,9 @@ GPIO_INT(BC_ACOK_EC, PIN(K, 3), GPIO_INT_BOTH, extpower_interrupt) /* AC Presen GPIO_INT(UART_SERVO_TX_EC_RX, PIN(B, 0), GPIO_INT_FALLING, uart_deepsleep_interrupt) +/* Battery present */ +GPIO_INT(BAT_DET_EC, PIN(K, 0), GPIO_INT_BOTH, battery_detect_interrupt) + /* USB-C interrupts */ /* Using embedded TCPC for Port-0 */ UNIMPLEMENTED(USBC_TCPC_ALRT_P0) @@ -117,9 +120,6 @@ GPIO(PLT_RST_L, PIN(H, 6), GPIO_INPUT | GPIO_PULL_UP) /* PCH_PLTRST_L */ #endif GPIO(PCH_WAKE_N, PIN(J, 0), GPIO_ODR_HIGH) -/* Battery present */ -GPIO(BAT_DET_EC, PIN(K, 0), GPIO_INPUT) - /* LED */ GPIO(LED_1_L_EC, PIN(A, 6), GPIO_OUT_HIGH) /* BAT_LED_GREEN_L LED_2_L */ GPIO(LED_2_L_EC, PIN(A, 7), GPIO_OUT_HIGH) /* AC_LED_GREEN_L LED_1_L */ |