at91sam3: Wrong PLLA frequency calculations07/1307/2
authorThomas Schmid <thomas.schmid@gmail.com>
Sat, 23 Mar 2013 19:13:46 +0000 (23 13:13 -0600)
committerPeter Stuge <peter@stuge.se>
Sun, 24 Mar 2013 14:25:29 +0000 (24 14:25 +0000)
The command 'at91sam3 info' ignores PLLA DIV values >1. This patch fixes it.
Tested on a SAM3S4C chip.

Change-Id: I051f41bb3dcefe1ac785fbcb48477a807daa16a2
Signed-off-by: Thomas Schmid <thomas.schmid@gmail.com>
Reviewed-on: http://openocd.zylin.com/1307
Tested-by: jenkins
Reviewed-by: Peter Stuge <peter@stuge.se>
src/flash/nor/at91sam3.c

index be3afb2..d6dedae 100644 (file)
@@ -2399,8 +2399,8 @@ static void sam3_explain_ckgr_plla(struct sam3_chip *pChip)
                LOG_USER("\tPLLA Freq: (Disabled,mula = 0)");
        else if (diva == 0)
                LOG_USER("\tPLLA Freq: (Disabled,diva = 0)");
-       else if (diva == 1) {
-               pChip->cfg.plla_freq = (pChip->cfg.mainosc_freq * (mula + 1));
+       else if (diva >= 1) {
+               pChip->cfg.plla_freq = (pChip->cfg.mainosc_freq * (mula + 1) / diva);
                LOG_USER("\tPLLA Freq: %3.03f MHz",
                        _tomhz(pChip->cfg.plla_freq));
        }