I am working on a custom board similar to the BeagleBoneBlack (regarding the PMIC), as there is a AM3354BZCZ100 and a TPS65217D used. I am using the SDK6 to build my kernel.
I am facing weird behaviour of the smartreflex module, as in some cases it never stops setting new voltage, although proper voltage seems to be reached - see the dmesg output below (when running at 1GHz):
[ 42.656036] SR 1: curr=1300000, delta_v=-29300, calc=1270700, act=1275000, gain=32
[ 43.917846] SR 1: curr=1275000, delta_v=19500, calc=1294500, act=1300000, gain=32
[ 45.176025] SR 1: curr=1300000, delta_v=-29300, calc=1270700, act=1275000, gain=32
[ 46.436004] SR 1: curr=1275000, delta_v=19500, calc=1294500, act=1300000, gain=32
[ 47.697845] SR 1: curr=1300000, delta_v=-29300, calc=1270700, act=1275000, gain=32
[ 48.956085] SR 1: curr=1275000, delta_v=19500, calc=1294500, act=1300000, gain=32
The output above was verified by measuring the according voltage: every second it changes between 1.3V and 1.275V.
When sitching to 800MHz via /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed the output is:
[ 323.997375] am33xx_sr_cpufreq_transition: prechange
[ 323.997497] am33xx_sr_cpufreq_transition: postchange
[ 323.997497] am33xx_sr_cpufreq_transition: postchange, new opp=3
[ 324.247467] SR 1: curr=1275000, delta_v=-63750, calc=1211250, act=1225000, gain=00
[ 325.506103] SR 1: curr=1225000, delta_v=-104150, calc=1120850, act=1125000, gain=29
Then regulation stops, so this is working.
When sitching to 720MHz via /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed the output is:
[ 374.328063] am33xx_sr_cpufreq_transition: prechange
[ 374.328186] am33xx_sr_cpufreq_transition: postchange
[ 374.328186] am33xx_sr_cpufreq_transition: postchange, new opp=2
[ 374.587463] SR 1: curr=1200000, delta_v=-60000, calc=1140000, act=1150000, gain=00
[ 375.846130] SR 1: curr=1150000, delta_v=-99990, calc=1050010, act=1075000, gain=21
[ 377.107971] SR 1: curr=1075000, delta_v=-45144, calc=1029856, act=1050000, gain=21
[ 378.376129] SR 1: curr=1050000, delta_v=6435, calc=1056435, act=1075000, gain=21
[ 379.637908] SR 1: curr=1075000, delta_v=-38676, calc=1036324, act=1050000, gain=21
In this case again the regulation never stops.
As I am using the TPS65217D I set "vstep_size_uv = 25000" in my am33xx_sr_platform_data.
I am wondering if I am the only one facing this problem - or maybe there is a patch I am not aware of?
I really want to use smartreflex to gain lower power consumption, but the behaviour of that voltage-setting-algorithm seems like beeing not working properly (and it causes unneccessary CPU- and I2C-load)!