2.6.36 kernel BB-xM patch for 1 GHz (VDD1 voltage adjusting)

Hi all,

I made a patch for 2.6.36 kernel (git://git.kernel.org/pub/scm/linux/
kernel/git/tmlind/linux-omap-2.6.git) that makes it possible to run
Beagleboard-xM on 1 GHz frequency. The main idea is adjusting
processor voltage VDD1 to the level of OPP1G (1.28..1.38V). Please
note that default processor voltage after boot is 1.2V according to
BOOT0 (=1) and BOOT1 (=0) pins on TPS65950 (see "Table 5-2. Boot
Modes" in SWCU050F, p.238). You can see processor voltage values for
different frequencies in "Table 4-20. Processor Clocks" in SPRS685B
document (p.144). In order to increase voltage there are three

1) SmartReflex technology (implemented in kernel 2.6.32 from Arago,
also used in TI VDSDK and Beagleboard validation, I have no time for
merging all PM related functionality to the new kernel);

2) Setting voltage directly using VDDx_VSEL register in TPS65950;

3) Play with VFLOOR/VROOF registers in TPS65950 and toggling VMODE
input (which is grounded in BB-xM A3).

I implemented adjusting by changing VDD1_VSEL register value (VDDx =
VDDx_VSEL x 12.5mV + 0.6V, thus, for VDD1 = 1.35V VDD1_VSEL = 0x3C -
see " Direct Control" in SWCU050F, p.259).

It would be great if someone check this workaround by reviewing the
code. Thanks!

P.S. I made a couple of tests - the temperature of the chip is
slightly higher than with mpurate=800.

Very cool, well done I'll have a look at the code when I get home.