int power_init_board(void) { struct pmic *p; int ret; unsigned int reg, rev_id; ret = power_pfuze300_init(I2C_PMIC); if (ret) return ret; p = pmic_get("PFUZE300"); ret = pmic_probe(p); if (ret) return ret; pmic_reg_read(p, PFUZE300_DEVICEID, ®); pmic_reg_read(p, PFUZE300_REVID, &rev_id); printf("PMIC: PFUZE300 DEV_ID=0x%x REV_ID=0x%x\n", reg, rev_id); /* disable Low Power Mode during standby mode */ pmic_reg_read(p, PFUZE300_LDOGCTL, ®); reg |= 0x1; pmic_reg_write(p, PFUZE300_LDOGCTL, reg); /* SW1A/1B mode set to APS/APS */ reg = 0x8; pmic_reg_write(p, PFUZE300_SW1AMODE, reg); pmic_reg_write(p, PFUZE300_SW1BMODE, reg); /* SW1A/1B standby voltage set to 1.025V */ reg = 0xd; pmic_reg_write(p, PFUZE300_SW1ASTBY, reg); pmic_reg_write(p, PFUZE300_SW1BSTBY, reg); /* decrease SW1B normal voltage to 0.975V */ pmic_reg_read(p, PFUZE300_SW1BVOLT, ®); reg &= ~0x1f; reg |= PFUZE300_SW1AB_SETP(975); pmic_reg_write(p, PFUZE300_SW1BVOLT, reg); return 0; }
int power_init_board(void) { int ret; unsigned int reg, rev_id; ret = power_pfuze300_init(I2C_PMIC); if (ret) return ret; pfuze = pmic_get("PFUZE300"); ret = pmic_probe(pfuze); if (ret) return ret; pmic_reg_read(pfuze, PFUZE300_DEVICEID, ®); pmic_reg_read(pfuze, PFUZE300_REVID, &rev_id); printf("PMIC: PFUZE300 DEV_ID=0x%x REV_ID=0x%x\n", reg, rev_id); /* disable Low Power Mode during standby mode */ pmic_reg_read(pfuze, PFUZE300_LDOGCTL, ®); reg |= 0x1; pmic_reg_write(pfuze, PFUZE300_LDOGCTL, reg); /* SW1B step ramp up time from 2us to 4us/25mV */ reg = 0x40; pmic_reg_write(pfuze, PFUZE300_SW1BCONF, reg); /* SW1B mode to APS/PFM */ reg = 0xc; pmic_reg_write(pfuze, PFUZE300_SW1BMODE, reg); /* SW1B standby voltage set to 0.975V */ reg = 0xb; pmic_reg_write(pfuze, PFUZE300_SW1BSTBY, reg); return 0; }