|
@@ -99,11 +99,13 @@ int get_clocks(void)
|
|
|
u32 lcrr;
|
|
|
|
|
|
u32 csb_clk;
|
|
|
-#if defined(CONFIG_MPC834X)
|
|
|
+#if defined(CONFIG_MPC834X) || defined(CONFIG_MPC831X)
|
|
|
u32 tsec1_clk;
|
|
|
u32 tsec2_clk;
|
|
|
- u32 usbmph_clk;
|
|
|
u32 usbdr_clk;
|
|
|
+#endif
|
|
|
+#ifdef CONFIG_MPC834X
|
|
|
+ u32 usbmph_clk;
|
|
|
#endif
|
|
|
u32 core_clk;
|
|
|
u32 i2c1_clk;
|
|
@@ -148,7 +150,7 @@ int get_clocks(void)
|
|
|
|
|
|
sccr = im->clk.sccr;
|
|
|
|
|
|
-#if defined(CONFIG_MPC834X)
|
|
|
+#if defined(CONFIG_MPC834X) || defined(CONFIG_MPC831X)
|
|
|
switch ((sccr & SCCR_TSEC1CM) >> SCCR_TSEC1CM_SHIFT) {
|
|
|
case 0:
|
|
|
tsec1_clk = 0;
|
|
@@ -167,6 +169,26 @@ int get_clocks(void)
|
|
|
return -4;
|
|
|
}
|
|
|
|
|
|
+ switch ((sccr & SCCR_USBDRCM) >> SCCR_USBDRCM_SHIFT) {
|
|
|
+ case 0:
|
|
|
+ usbdr_clk = 0;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ usbdr_clk = csb_clk;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ usbdr_clk = csb_clk / 2;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ usbdr_clk = csb_clk / 3;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ /* unkown SCCR_USBDRCM value */
|
|
|
+ return -8;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(CONFIG_MPC834X)
|
|
|
switch ((sccr & SCCR_TSEC2CM) >> SCCR_TSEC2CM_SHIFT) {
|
|
|
case 0:
|
|
|
tsec2_clk = 0;
|
|
@@ -205,24 +227,6 @@ int get_clocks(void)
|
|
|
return -7;
|
|
|
}
|
|
|
|
|
|
- switch ((sccr & SCCR_USBDRCM) >> SCCR_USBDRCM_SHIFT) {
|
|
|
- case 0:
|
|
|
- usbdr_clk = 0;
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- usbdr_clk = csb_clk;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- usbdr_clk = csb_clk / 2;
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- usbdr_clk = csb_clk / 3;
|
|
|
- break;
|
|
|
- default:
|
|
|
- /* unkown SCCR_USBDRCM value */
|
|
|
- return -8;
|
|
|
- }
|
|
|
-
|
|
|
if (usbmph_clk != 0 && usbdr_clk != 0 && usbmph_clk != usbdr_clk) {
|
|
|
/* if USB MPH clock is not disabled and
|
|
|
* USB DR clock is not disabled then
|
|
@@ -230,8 +234,16 @@ int get_clocks(void)
|
|
|
*/
|
|
|
return -9;
|
|
|
}
|
|
|
+#elif defined(CONFIG_MPC831X)
|
|
|
+ tsec2_clk = tsec1_clk;
|
|
|
+
|
|
|
+ if (!(sccr & SCCR_TSEC1ON))
|
|
|
+ tsec1_clk = 0;
|
|
|
+ if (!(sccr & SCCR_TSEC2ON))
|
|
|
+ tsec2_clk = 0;
|
|
|
#endif
|
|
|
-#if defined(CONFIG_MPC8360) || defined(CONFIG_MPC832X)
|
|
|
+
|
|
|
+#if !defined(CONFIG_MPC834X)
|
|
|
i2c1_clk = csb_clk;
|
|
|
#endif
|
|
|
#if !defined(CONFIG_MPC832X)
|
|
@@ -314,11 +326,13 @@ int get_clocks(void)
|
|
|
#endif
|
|
|
|
|
|
gd->csb_clk = csb_clk;
|
|
|
-#if defined(CONFIG_MPC834X)
|
|
|
+#if defined(CONFIG_MPC834X) || defined(CONFIG_MPC831X)
|
|
|
gd->tsec1_clk = tsec1_clk;
|
|
|
gd->tsec2_clk = tsec2_clk;
|
|
|
- gd->usbmph_clk = usbmph_clk;
|
|
|
gd->usbdr_clk = usbdr_clk;
|
|
|
+#endif
|
|
|
+#if defined(CONFIG_MPC834X)
|
|
|
+ gd->usbmph_clk = usbmph_clk;
|
|
|
#endif
|
|
|
gd->core_clk = core_clk;
|
|
|
gd->i2c1_clk = i2c1_clk;
|
|
@@ -371,11 +385,13 @@ int print_clock_conf(void)
|
|
|
#if !defined(CONFIG_MPC832X)
|
|
|
printf(" I2C2: %4d MHz\n", gd->i2c2_clk / 1000000);
|
|
|
#endif
|
|
|
-#if defined(CONFIG_MPC834X)
|
|
|
+#if defined(CONFIG_MPC834X) || defined(CONFIG_MPC831X)
|
|
|
printf(" TSEC1: %4d MHz\n", gd->tsec1_clk / 1000000);
|
|
|
printf(" TSEC2: %4d MHz\n", gd->tsec2_clk / 1000000);
|
|
|
- printf(" USB MPH: %4d MHz\n", gd->usbmph_clk / 1000000);
|
|
|
printf(" USB DR: %4d MHz\n", gd->usbdr_clk / 1000000);
|
|
|
+#endif
|
|
|
+#if defined(CONFIG_MPC834X)
|
|
|
+ printf(" USB MPH: %4d MHz\n", gd->usbmph_clk / 1000000);
|
|
|
#endif
|
|
|
return 0;
|
|
|
}
|