diff options
Diffstat (limited to 'board/casta/board.c')
-rw-r--r-- | board/casta/board.c | 24 |
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. */ |