Hallo,
I have OMAP-L138 and I use DVSDK 04.03.00.06. (I have LogicPD ZOOM OMAP-L138 EVM as development board)
I want to slow down the clock to 48MHz, and also to 24MHz (possibly with PLL0 bypassed), for consuption purposes.
I have modified the file ~/ti-dvsdk_omapl138-evm_04_03_00_06/psp/linux-2.6.37-psp03.21.00.04.sdk/arch/arm/mach-davinci/da850.c in this way:
static const struct da850_opp da850_opp_96 = {
.freq = 96000,
.prediv = 1,
.mult = 20,
.postdiv = 5,
.cvdd_min = 1000000,
.cvdd_max = 1050000,
};
static const struct da850_opp da850_opp_48 = {
.freq = 48000,
.prediv = 1,
.mult = 20,
.postdiv = 10,
.cvdd_min = 1000000,
.cvdd_max = 1050000,
};
static const struct da850_opp da850_opp_24 = {
.freq = 24000,
.prediv = 1,
.mult = 20,
.postdiv = 20,
.cvdd_min = 1000000,
.cvdd_max = 1050000,
};
#define OPP(freq) \
{ \
.index = (unsigned int) &da850_opp_##freq, \
.frequency = freq * 1000, \
}
static struct cpufreq_frequency_table da850_freq_table[] = {
OPP(456),
OPP(408),
OPP(372),
OPP(300),
OPP(200),
OPP(96),
OPP(48),
OPP(24),
{
.index = 0,
.frequency = CPUFREQ_TABLE_END,
},
};
then on the target the new frequencies are correctly listed:
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
456000 408000 372000 300000 200000 96000 48000 24000
but if I try to change the frequency:
# echo 24000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
it hangs. It happens also trying to set 48000.
I cannot understand where I am wrong.
maybe the voltages are wrong?
best regards