static int max77686_do_volsetting(enum max77686_regnum reg, unsigned int volt, int enable, int volt_units) { struct max77686_para *pmic; unsigned char read_data; int vol_level = 0; int ret; pmic = &max77686_param[reg]; if (pmic->vol_addr == 0) { debug("not a voltage register.\n"); return -1; } ret = max77686_i2c_read(MAX77686_I2C_ADDR, pmic->vol_addr, &read_data); if (ret != 0) { debug("max77686 i2c read failed.\n"); return -1; } if (volt_units == MAX77686_UV) vol_level = volt - pmic->vol_min * 1000; else vol_level = (volt - pmic->vol_min) * 1000; if (vol_level < 0) { debug("Not a valid voltage level to set\n"); return -1; } vol_level /= pmic->vol_div; clrsetbits_8(&read_data, pmic->vol_bitmask << pmic->vol_bitpos, vol_level << pmic->vol_bitpos); ret = max77686_i2c_write(MAX77686_I2C_ADDR, pmic->vol_addr, read_data); if (ret != 0) { debug("max77686 i2c write failed.\n"); return -1; } ret = max77686_enablereg(reg, enable); if (ret != 0) { debug("Failed to enable buck/ldo.\n"); return -1; } return 0; }
int max77686_enable_32khz_cp(unsigned int bus) { return max77686_enablereg(bus, PMIC_EN32KHZ_CP, REG_ENABLE); }
int max77686_enable_32khz_cp(void) { i2c_set_bus_num(0); return max77686_enablereg(PMIC_EN32KHZ_CP, REG_ENABLE); }