In arch/arm/plat-mxs/cpufreq.c, there are regulator_set_voltage(vddio, profiles[i].vddio, profiles[i].vddio) calls.
So it looks like profiles[] in arch/arm/mach-mx23/bus_freq.c can affect vddio.
"profile" is defined as below in arch/arm/plat-mxs/include/mach/bus_freq.h
struct profile {
int cpu;
int ahb;
int emi;
int ss;
int vddd;
int vddd_bo;
int cur;
int vddio; // The 8th int
int vdda;
u16 xbus;
/* map of the upper 16 bits of HW_CLKCTRL_HBUS register */
u16 h_autoslow_flags;
};
So please try to change all the 8th integer in struct profile profiles[] to 2800000.
In arch/arm/mach-mx23/pm.c, it will change vddio as well when standby, so please try LOWER_VDDIO=0.