int exynos_power_init(void) { int ret; #ifdef CONFIG_SYS_I2C_INIT_BOARD board_init_i2c(); #endif ret = pmic_init(); /* I2C adapter 7 - bus name s3c24x0_7 */ if( ret < 0 ){ debug("%s: Cannot init pmic\n", __func__); return -1; } ret = pmic_init_s5m8767a(); if( ret < 0 ){ debug("%s: Cannot init pmic\n", __func__); return -1; } return 0; }
int exynos_power_init(void) { int chrg; struct power_battery *pb; struct pmic *p_chrg, *p_muic, *p_fg, *p_bat; #ifdef CONFIG_SYS_I2C_INIT_BOARD board_init_i2c(); #endif pmic_init(I2C_7); /* I2C adapter 7 - bus name s3c24x0_7 */ pmic_init_max77686(); pmic_init_max77693(I2C_10); /* I2C adapter 10 - bus name soft1 */ power_muic_init(I2C_10); /* I2C adapter 10 - bus name soft1 */ power_fg_init(I2C_9); /* I2C adapter 9 - bus name soft0 */ power_bat_init(0); p_chrg = pmic_get("MAX77693_PMIC"); if (!p_chrg) { puts("MAX77693_PMIC: Not found\n"); return -ENODEV; } p_muic = pmic_get("MAX77693_MUIC"); if (!p_muic) { puts("MAX77693_MUIC: Not found\n"); return -ENODEV; } p_fg = pmic_get("MAX77693_FG"); if (!p_fg) { puts("MAX17042_FG: Not found\n"); return -ENODEV; } if (p_chrg->chrg->chrg_bat_present(p_chrg) == 0) puts("No battery detected\n"); p_bat = pmic_get("BAT_TRATS2"); if (!p_bat) { puts("BAT_TRATS2: Not found\n"); return -ENODEV; } p_fg->parent = p_bat; p_chrg->parent = p_bat; p_muic->parent = p_bat; p_bat->pbat->battery_init(p_bat, p_fg, p_chrg, p_muic); pb = p_bat->pbat; chrg = p_muic->chrg->chrg_type(p_muic); debug("CHARGER TYPE: %d\n", chrg); if (!p_chrg->chrg->chrg_bat_present(p_chrg)) { puts("No battery detected\n"); return -1; } p_fg->fg->fg_battery_check(p_fg, p_bat); if (pb->bat->state == CHARGE && chrg == CHARGER_USB) puts("CHARGE Battery !\n"); return 0; }