summaryrefslogtreecommitdiff
path: root/cpu/mpc8260
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/mpc8260')
-rw-r--r--cpu/mpc8260/cpu.c14
-rw-r--r--cpu/mpc8260/i2c.c4
-rw-r--r--cpu/mpc8260/speed.c5
3 files changed, 19 insertions, 4 deletions
diff --git a/cpu/mpc8260/cpu.c b/cpu/mpc8260/cpu.c
index 8adf950..8d634b0 100644
--- a/cpu/mpc8260/cpu.c
+++ b/cpu/mpc8260/cpu.c
@@ -68,6 +68,7 @@ int checkcpu (void)
k = 4;
break;
case PVR_8260_HIP7R1:
+ case PVR_8260_HIP7RA:
case PVR_8260_HIP7:
k = 7;
break;
@@ -129,9 +130,20 @@ int checkcpu (void)
case 0x0A01:
puts ("0.1 1K49M");
break;
+ case 0x0A10:
+ puts ("1.0 1K49M");
+ break;
case 0x0C00:
+ puts ("0.0 0K50M");
+ break;
+ case 0x0C10:
+ puts ("1.0 0K50M");
+ break;
case 0x0D00:
- printf ("0.0 0K50M");
+ puts ("0.0 0K50M");
+ break;
+ case 0x0D10:
+ puts ("1.0 0K50M");
break;
default:
printf ("unknown [immr=0x%04x,k=0x%04x]", m, k);
diff --git a/cpu/mpc8260/i2c.c b/cpu/mpc8260/i2c.c
index 789c514..e0ac684 100644
--- a/cpu/mpc8260/i2c.c
+++ b/cpu/mpc8260/i2c.c
@@ -149,7 +149,7 @@ i2c_roundrate(int hz, int speed, int filter, int modval,
PRINTD(("\t\tmoddiv=%d, brgdiv=%d\n", moddiv, brgdiv));
- *brgval = (brgdiv / 2) - 3 - (2*filter);
+ *brgval = ((brgdiv + 1) / 2) - 3 - (2*filter);
if ((*brgval < 0) || (*brgval > 255)) {
PRINTD(("\t\trejected brgval=%d\n", *brgval));
@@ -158,7 +158,7 @@ i2c_roundrate(int hz, int speed, int filter, int modval,
brgdiv = 2 * (*brgval + 3 + (2 * filter));
div = moddiv * brgdiv ;
- *totspeed = (hz + div - 1) / div;
+ *totspeed = hz / div;
PRINTD(("\t\taccepted brgval=%d, totspeed=%d\n", *brgval, *totspeed));
diff --git a/cpu/mpc8260/speed.c b/cpu/mpc8260/speed.c
index 16f4e90..a761a17 100644
--- a/cpu/mpc8260/speed.c
+++ b/cpu/mpc8260/speed.c
@@ -125,7 +125,10 @@ int get_clocks (void)
busdf = (scmr & SCMR_BUSDF_MSK) >> SCMR_BUSDF_SHIFT;
cpmdf = (scmr & SCMR_CPMDF_MSK) >> SCMR_CPMDF_SHIFT;
- if ((get_pvr () == PVR_8260_HIP7) || (get_pvr () == PVR_8260_HIP7R1)) { /* HiP7 */
+ /* HiP7, HiP7 Rev01, HiP7 RevA */
+ if ((get_pvr () == PVR_8260_HIP7) ||
+ (get_pvr () == PVR_8260_HIP7R1) ||
+ (get_pvr () == PVR_8260_HIP7RA)) {
pllmf = (scmr & SCMR_PLLMF_MSKH7) >> SCMR_PLLMF_SHIFT;
gd->vco_out = clkin * (pllmf + 1);
} else { /* HiP3, HiP4 */