Allowing user space to change the vsel column of the mpu table is trivial. It also sounds better to me than having predefined tables in the kernel. The user space program can have those tables. This patch should do the trick: Disabling specific frequencies might not be as easy. I think that the easiest way is to add a scaling_allowed_frequencies to generic cpufreq code, rather than hacking ARM specific code.