View Single Post
Posts: 313 | Thanked: 247 times | Joined on Jan 2010 @ USA
#86
Originally Posted by Creamy Goodness View Post
It doesn't though, it actually runs at the nominal voltage which is the minimum voltage required to run the worst sample of silicon they manufactured.

There's also this in voltage.c:

/* VDD1 */
static struct omap_volt_data omap34xx_vdd1_volt_data[] = {
{.u_volt_nominal = 975000, .sr_errminlimit = 0xF4,
.vp_errorgain = 0x0C},
{.u_volt_nominal = 1075000, .sr_errminlimit = 0xF4,
.vp_errorgain = 0x0C},
{.u_volt_nominal = 1200000, .sr_errminlimit = 0xF9,
.vp_errorgain = 0x18},
{.u_volt_nominal = 1270000, .sr_errminlimit = 0xF9,
.vp_errorgain = 0x18},
{.u_volt_nominal = 1350000, .sr_errminlimit = 0xF9,
.vp_errorgain = 0x18},
};

I think I was wrong about the dyn_margin though. What it does it start at the nominal voltage and reduce it until it hits errminlimit, then raises it up 50k.
Anyways, on my phone, if i don't even touch anything and just read the data I get
1375000 <<max
1225000 <<nominal
50000 << margin
1175000 << optimized

I thought it's taking nominal - 50k to get optimized, but its actually taking optimized + 50k to get nominal.
I'll try changing the errlimit to like 1 and see what happens.
n9 table is omap36xx_vdd1_volt_data not 34xx