Looking over the android BSP provided by freescale for the imx6q sabresd board, I find that the VGEN3 output is increased from 2.5 to 2.8v and VGEN5 output increased from 2.8 to 3.0v in uboot. This file;
board/freescale/mx6q_sabresd/mx6q_sabresd.c { funciton "static int setup_pmic_voltages(void)" }
The comments in code provide the following explanation;
/*For camera streaks issue,swap VGEN5 and VGEN3 to power camera.
*sperate VDDHIGH_IN and camera 2.8V power supply, after switch:
*VGEN5 for VDDHIGH_IN and increase to 3V to align with datasheet
*VGEN3 for camera 2.8V power supply
*/
/*increase VGEN3 from 2.5 to 2.8V*/
if (i2c_read(0x8, 0x6e, 1, &value, 1)) {
printf("Read VGEN3 error!\n");
return -1;
}
value &= ~0xf;
value |= 0xa;
if (i2c_write(0x8, 0x6e, 1, &value, 1)) {
printf("Set VGEN3 error!\n");
return -1;
}
/*increase VGEN5 from 2.8 to 3V*/
if (i2c_read(0x8, 0x70, 1, &value, 1)) {
printf("Read VGEN5 error!\n");
return -1;
}
value &= ~0xf;
value |= 0xc;
if (i2c_write(0x8, 0x70, 1, &value, 1)) {
printf("Set VGEN5 error!\n");
return -1;
}
My question is this - I have a derivative iMX6 dual core board without a camera. VGEN3 and VGEN5 are only used to power the processor (similar design on sabresd). Will the above setting create problems? Or should I remove it and revert VGEN3 and VGEN5 to their default values?
Amusingly enough, when I cross-checked the sabresd schematics, it states that VGEN3 should be 2.5v and VGEN5 should be 3v.
Curious,
Abraham V.
On the SDP design VGEN3 (from PF0100) may be selected (via R85) to provide supply voltage
GEN_2V5 for i.MX6 SATA, HDMI, MIPI, PCIe, LVDS modules.
Strictly speaking, according to the i.MX6 Datasheet, corresponding voltages should be in
range 2.25 (2.325) - 2.75 V. Therefore 2.8V is out of specified range.
But resistor R85 is not populated by default, therefore such option (VGEN3 -> GEN_2V5) really is not used.
For customer’s designs it may be recommended to double check if VDDHIGH_CAP feeds GEN_2V5,
as on the SDP.