summaryrefslogtreecommitdiff
path: root/board/adlrvpp_ite
diff options
context:
space:
mode:
authorDeepti Deshatty <deepti.deshatty@intel.corp-partner.google.com>2021-12-14 15:01:10 +0530
committerCommit Bot <commit-bot@chromium.org>2022-01-23 08:06:04 +0000
commit8dcb209a71ab8d56936fee45e403f29cef8567cc (patch)
treeba18a57c51337613deb8505d6155994330c6ac5a /board/adlrvpp_ite
parentaf1da08a314b7bdf6bfa8044d19aa80f471ec3fb (diff)
downloadchrome-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.c15
-rw-r--r--board/adlrvpp_ite/gpio.inc6
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 */