Hi Team,
we have designed our custom board with IMX8MM SoC with DDR4 density 4GB with PCA9450A PMIC
Below are the Configurations done for PMIC
PMIC Regulator output Volatge
BUCK1 0.9V/3A
BUCK2 0.8V/3A
BUCK3 0.9V/3A
BUCK4 3.3V/3A
BUCK5 1.8V/1.5A
BUCK6 1.2V/3A //deviation from LPDDR4 EVK
LDO1 1.8V/10mA
LDO2 0.8V/10mA
LDO3 1.8V/300mA
LDO4 0.9V/250mA
LDO5 3.3V/150mA // deviation from LPDDR4 EVK for SD card
can you please guide, where we can configure these values from software point of view.
1. Do we need to configure these values in both Uboot and kernel.
2. In some forum questions, I see NXP has suggested to make changes in uboot-imx/board/freescale/imx8mm_evk/spl.c file as shown below
int power_init_board(void) { struct pmic *p; int ret; ret = power_pca9450_init(I2C_PMIC); if (ret) printf("power init failed"); p = pmic_get("PCA9450"); pmic_probe(p); /* BUCKxOUT_DVS0/1 control BUCK123 output */ pmic_reg_write(p, PCA9450_BUCK123_DVS, 0x29); /* Buck 1 DVS control through PMIC_STBY_REQ */ pmic_reg_write(p, PCA9450_BUCK1CTRL, 0x59); /* Set DVS1 to 0.8v for suspend */ pmic_reg_write(p, PCA9450_BUCK1OUT_DVS1, 0x10); /* increase VDD_DRAM to 0.95v for 3Ghz DDR */ pmic_reg_write(p, PCA9450_BUCK3OUT_DVS0, 0x1C); /* VDD_DRAM needs off in suspend, set B1_ENMODE=10 (ON by PMIC_ON_REQ = H && PMIC_STBY_REQ = L) */ pmic_reg_write(p, PCA9450_BUCK3CTRL, 0x4a); /* set VDD_SNVS_0V8 from default 0.85V */ pmic_reg_write(p, PCA9450_LDO2CTRL, 0xC0); /* set WDOG_B_CFG to cold reset */ pmic_reg_write(p, PCA9450_RESET_CTRL, 0xA1); return 0; }
3. do we need to configure all PMIC regulators output in the same fashion in uboot.
4. In kernel drivers/regulator/pca9450-regulator.c also do we need to configure the same or it will get read from same PMIC registers.
Kindly share us if any user guide available for this.
Thanks in advance!!
Raghavendra
You need configure BUCK6 and LDO 5 value in uboot spl stage.As kernel layer, the value decided by dts.