summaryrefslogtreecommitdiff
path: root/board/casta/board.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/casta/board.c')
-rw-r--r--board/casta/board.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/board/casta/board.c b/board/casta/board.c
index 71311e5ce2..71ab12891e 100644
--- a/board/casta/board.c
+++ b/board/casta/board.c
@@ -8,11 +8,14 @@
#include "adc.h"
#include "adc_chip.h"
#include "battery.h"
+#include "cbi_ssfc.h"
#include "charge_manager.h"
#include "charge_state.h"
#include "common.h"
#include "cros_board_info.h"
#include "driver/charger/bd9995x.h"
+#include "driver/charger/bq25710.h"
+#include "driver/charger/isl923x.h"
#include "driver/ppc/nx20p348x.h"
#include "driver/tcpm/anx7447.h"
#include "driver/tcpm/ps8xxx.h"
@@ -88,6 +91,16 @@ const struct temp_sensor_t temp_sensors[] = {
};
BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
+/* Charger config. Start i2c address at isl9238, update during runtime */
+struct charger_config_t chg_chips[] = {
+ {
+ .i2c_port = I2C_PORT_CHARGER,
+ .i2c_addr_flags = ISL923X_ADDR,
+ .drv = &isl923x_drv,
+ },
+};
+const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);
+
/*
* I2C callbacks to ensure bus free time for battery I2C transactions is at
* least 5ms.
@@ -131,6 +144,17 @@ void i2c_end_xfer_notify(int port, int slave_addr)
battery_last_i2c_time = get_time();
}
+/* TODO: Casta: remove this routine after rev0 is not supported */
+static void board_init(void)
+{
+ if(get_cbi_ssfc_charger() != SSFC_CHARGER_BQ25710)
+ return;
+
+ chg_chips[0].drv = &bq25710_drv;
+ chg_chips[0].i2c_addr_flags = BQ25710_SMBUS_ADDR1;
+}
+DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_INIT_I2C + 2);
+
void board_overcurrent_event(int port, int is_overcurrented)
{
/* Sanity check the port. */